[
  {
    "path": ".containerignore",
    "content": "*\n!build\n!electron\n!public\n!src\n!package.json\n!package-lock.json\n!.npmrc\n!electron-builder.json5\n!index.html\n!tsconfig*\n!*.ts\n!*.cjs\n!*.js\n"
  },
  {
    "path": ".eslintignore",
    "content": "# electron setup\ndist-electron/\ndist/\n\n# scripts and config\nscripts/\npostcss.config.js\ntailwind.config.js\n*.test.ts\n\n# generated files\nsrc/components/Editor/ui/src/tamagui/themes/themes-generated.ts\nsrc/components/Editor/ui/src/generated-themes.ts"
  },
  {
    "path": ".eslintrc.js",
    "content": "module.exports = {\n  env: {\n    browser: true,\n    es2021: true,\n    node: true,\n  },\n  extends: [\n    'airbnb',\n    'airbnb/hooks',\n    'airbnb-typescript',\n    'plugin:prettier/recommended',\n    'plugin:tailwindcss/recommended',\n  ],\n  parser: '@typescript-eslint/parser',\n  parserOptions: {\n    project: './tsconfig.json',\n  },\n  plugins: ['@typescript-eslint', 'react', 'import', 'jsx-a11y', 'unused-imports', 'prettier', 'tailwindcss'],\n  rules: {\n    'unused-imports/no-unused-imports': 'error',\n    'prettier/prettier': 'error',\n    'react/function-component-definition': [\n      'error',\n      {\n        namedComponents: 'arrow-function',\n        unnamedComponents: 'arrow-function',\n      },\n    ],\n    'import/extensions': ['off', 'ignorePackages'],\n    'jsx-a11y/no-static-element-interactions': 'off',\n    'jsx-a11y/click-events-have-key-events': 'off',\n    'react/require-default-props': 'off',\n    'no-underscore-dangle': 'off',\n    'react/destructoring-assignment': 'off',\n    'react/jsx-props-no-spreading': 'off',\n    'object-shorthand': 'off',\n    \"import/no-extraneous-dependencies\": [\n      \"error\", {\n        \"devDependencies\": true, \n        \"optionalDependencies\": false, \n        \"peerDependencies\": false, \n        \"packageDir\": \"./\"\n      }\n    ],\n    \"react/destructuring-assignment\": \"off\",\n    \"no-plusplus\": \"off\",\n    \"no-restricted-syntax\": \"off\",\n    \"no-param-reassign\": 'off',\n    \"prefer-destructuring\": 'off',\n    \"no-return-assign\": 'off',\n    \"no-cond-assign\": 'off',\n    // TEMPORARILY DISABLE CIRCULAR DEPENDENCY CHECK -- UPDATE LATER\n    \"import/no-cycle\": 'off',\n    \"no-alert\": 'off',\n  },\n  ignorePatterns: ['vite.config.ts', '.eslintrc.js'],\n  settings: {\n    'import/resolver': {\n      node: {\n        extensions: ['.js', '.jsx', '.ts', '.tsx'],\n      },\n    },\n  },\n}\n"
  },
  {
    "path": ".gitattributes",
    "content": "* text=auto eol=lf\n\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "content": "---\nname: Bug report\nabout: Create a report to help us improve\ntitle: ''\nlabels: ''\nassignees: ''\n---\n\n**Describe the bug**\nA description of what the bug is.\n\n**To Reproduce**\nSteps to reproduce the behavior:\n\n1. Go to '...'\n2. Click on '....'\n3. Scroll down to '....'\n4. See error\n\n**Expected behavior**\nA clear and concise description of what you expected to happen.\n\n**Screenshots**\nIf applicable, add screenshots to help explain your problem.\n\n**Desktop (please complete the following information):**\n\n- OS: [e.g. iOS]\n- Hardware: [e.g. CPU, RAM, GPU, etc.]\n- Version [e.g. 22]\n\n**Additional context**\nAdd any other context about the problem here.\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.md",
    "content": "---\nname: Feature request\nabout: Suggest an idea for this project\ntitle: ''\nlabels: ''\nassignees: ''\n---\n\n**Is your feature request related to a problem? Please describe.**\nA clear and concise description of what the problem is. Ex. I'm always frustrated when [...]\n\n**Describe the solution you'd like**\nA clear and concise description of what you want to happen.\n\n**Additional context**\nAdd any other context or screenshots about the feature request here.\n"
  },
  {
    "path": ".github/workflows/build.yml",
    "content": "name: Build and Package Electron App\non:\n  push:\n    branches:\n      - '*'\n  pull_request:\n    branches:\n      - '*'\njobs:\n  build_and_package:\n    strategy:\n      matrix:\n        include:\n          - os: macos-13\n          - os: macos-latest\n          - os: windows-latest\n          - os: ubuntu-latest\n            arch: x64\n      fail-fast: false\n    continue-on-error: true\n    runs-on: ${{ matrix.os }}\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v3\n\n      - name: Setup Node.js\n        uses: actions/setup-node@v3\n        with:\n          node-version: '20'\n      - name: Cache npm dependencies\n        uses: actions/cache@v3\n        with:\n          path: ~/.npm\n          key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}\n          restore-keys: |\n            ${{ runner.os }}-npm-\n\n\n      - name: Cache TypeScript build\n        uses: actions/cache@v3\n        with:\n          path: ./dist\n          key: ${{ runner.os }}-tsc-${{ hashFiles('**/tsconfig.json') }}\n          restore-keys: |\n            ${{ runner.os }}-tsc-\n        \n      - name: Install dependencies\n        run: npm install\n      - name: Run Linter\n        run: npm run lint\n      - name: Set up environment for macOS build\n        if: matrix.os == 'macos-13' || matrix.os == 'macos-latest'\n        env:\n          CSC_LINK: ${{ secrets.CSC_LINK }}\n          CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}\n          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n          NODE_OPTIONS: '--max-old-space-size=8192'\n        run: |\n          npm run build\n      - name: Build for non-macOS\n        if: matrix.os != 'macos-13' && matrix.os != 'macos-latest'\n        env:\n          NODE_OPTIONS: '--max-old-space-size=8192'\n        run: |\n          npm run build\n      - name: Notarize macOS build\n        if: (matrix.os == 'macos-13' || matrix.os == 'macos-latest') && github.ref == 'refs/heads/main' && github.event_name != 'pull_request'\n        env:\n          APPLE_ID: ${{ secrets.APPLE_ID }}\n          APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}\n        run: npm run notarize\n      - name: Set version as env\n        run: echo \"APP_VERSION=$(node -p \"require('./package.json').version\")\" >> $GITHUB_ENV\n      - name: Print APP_VERSION\n        run: echo \"APP_VERSION=${{ env.APP_VERSION }}\"\n      - name: List output files\n        if: matrix.os != 'macos-13' && matrix.os != 'macos-latest'\n        run: |\n          ls ./release/${{ env.APP_VERSION }}/\n      - name: Check runner architecture\n        if: matrix.os != 'macos-13' && matrix.os != 'macos-latest'\n        run: uname -m\n      - name: Rename artifacts for ARM architecture\n        if: matrix.os == 'macos-latest'\n        run: |\n          mv ./release/${{ env.APP_VERSION }}/*.dmg ./release/${{ env.APP_VERSION }}/Reor_${{ env.APP_VERSION }}-arm64.dmg\n      - name: Rename artifacts for Intel architecture\n        if: matrix.os == 'macos-13'\n        run: |\n          mv ./release/${{ env.APP_VERSION }}/*.dmg ./release/${{ env.APP_VERSION }}/Reor_${{ env.APP_VERSION }}-intel.dmg\n      - name: Upload build artifacts\n        uses: actions/upload-artifact@v4\n        with:\n          name: ${{ matrix.os }}-app\n          path: |\n            ./release/*/*.exe\n            ./release/${{ env.APP_VERSION }}/**/*.AppImage\n            ./release/${{ env.APP_VERSION }}/*-arm64.dmg\n            ./release/${{ env.APP_VERSION }}/*-intel.dmg\n"
  },
  {
    "path": ".github/workflows/release.yml",
    "content": "name: Release script\non:\n  push:\n    tags:\n      - 'v*'\njobs:\n  build_and_package:\n    runs-on: ${{ matrix.os }}\n    strategy:\n      matrix:\n        include:\n          - os: macos-13\n          - os: macos-latest\n          - os: windows-latest\n          - os: ubuntu-latest\n            arch: x64\n      fail-fast: false\n    steps:\n      - name: Checkout code\n        uses: actions/checkout@v3\n      - name: Setup Node.js\n        uses: actions/setup-node@v3\n        with:\n          node-version: '20'\n      - name: Cache npm dependencies\n        uses: actions/cache@v3\n        with:\n          path: ~/.npm\n          key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}\n          restore-keys: |\n            ${{ runner.os }}-npm-\n      - name: Cache TypeScript build\n        uses: actions/cache@v3\n        with:\n          path: ./dist\n          key: ${{ runner.os }}-tsc-${{ hashFiles('**/tsconfig.json') }}\n          restore-keys: |\n            ${{ runner.os }}-tsc-\n      - name: Install dependencies\n        run: npm install\n      - name: Run Linter\n        run: npm run lint\n      - name: Set up environment for macOS build\n        if: matrix.os == 'macos-13' || matrix.os == 'macos-latest'\n        env:\n          APPLE_ID: ${{ secrets.APPLE_ID }}\n          APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}\n          CSC_LINK: ${{ secrets.CSC_LINK }}\n          CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}\n          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n          NODE_OPTIONS: '--max-old-space-size=8192'\n        run: |\n          npm run build\n      - name: Notarize macOS build\n        if: matrix.os == 'macos-13' || matrix.os == 'macos-latest'\n        env:\n          APPLE_ID: ${{ secrets.APPLE_ID }}\n          APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}\n        run: npm run notarize\n      - name: Build for non-macOS\n        if: matrix.os != 'macos-13' && matrix.os != 'macos-latest'\n        env:\n          NODE_OPTIONS: '--max-old-space-size=8192'\n        run: |\n          npm run build\n      - name: Set version as env\n        run: echo \"APP_VERSION=$(node -p \"require('./package.json').version\")\" >> $GITHUB_ENV\n      - name: Rename artifacts for ARM architecture\n        if: matrix.os == 'macos-latest'\n        run: |\n          mv ./release/${{ env.APP_VERSION }}/*.dmg ./release/${{ env.APP_VERSION }}/Reor_${{ env.APP_VERSION }}-arm64.dmg\n      - name: Rename artifacts for Intel architecture\n        if: matrix.os == 'macos-13'\n        run: |\n          mv ./release/${{ env.APP_VERSION }}/*.dmg ./release/${{ env.APP_VERSION }}/Reor_${{ env.APP_VERSION }}-intel.dmg\n      - name: Upload build artifacts\n        uses: actions/upload-artifact@v4\n        with:\n          name: ${{ matrix.os }}-app\n          path: |\n            ./release/*/*.exe\n            ./release/${{ env.APP_VERSION }}/**/*.AppImage\n            ./release/${{ env.APP_VERSION }}/*-arm64.dmg\n            ./release/${{ env.APP_VERSION }}/*-intel.dmg\n  create_release:\n    needs: build_and_package\n    runs-on: ubuntu-latest\n    permissions:\n      contents: write\n    steps:\n      - name: Download all artifacts\n        uses: actions/download-artifact@v3\n      - name: Create GitHub Release\n        uses: softprops/action-gh-release@v1\n        with:\n          files: |\n            **/*.exe\n            **/*.AppImage\n            **/*.dmg\n        env:\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n"
  },
  {
    "path": ".gitignore",
    "content": "# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\npnpm-debug.log*\nlerna-debug.log*\n\nnode_modules\ndist\ndist-ssr\ndist-electron\nrelease\n*.local\n\n# Editor directories and files\n.vscode/.debug.env\n.idea\n.DS_Store\n*.suo\n*.ntvs*\n*.njsproj\n*.sln\n*.sw?\n\n# test caches\n/test-results/\n/playwright-report/\n/playwright/.cache/\n\ndata\nbinaries\n.env\n\n# Sentry Config File\n.env.sentry-build-plugin\n"
  },
  {
    "path": ".husky/pre-commit",
    "content": "echo \"\\nRunning some lint checks on your (hopefully) beautiful code...\\n\"\nnpm run lint:fix && npm run type-check"
  },
  {
    "path": ".npmrc",
    "content": "shamefully-hoist=true\nlegacy-peer-deps=true"
  },
  {
    "path": ".prettierrc",
    "content": "{\n  \"printWidth\": 120,\n  \"tslintintegration\": true,\n  \"trailingComma\": \"all\",\n  \"tabWidth\": 2,\n  \"semi\": false,\n  \"singleQuote\": true,\n  \"endOfLine\": \"lf\"\n}\n"
  },
  {
    "path": ".tamagui/tamagui-components.config.cjs",
    "content": "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 __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\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 = { exports: {} }).exports, mod), mod.exports;\n};\nvar __export = (target, all) => {\n  for (var name in all)\n    __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) && key !== except)\n        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\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.\n  isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n  mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// node_modules/@tamagui/use-force-update/dist/cjs/index.cjs\nvar require_cjs = __commonJS({\n  \"node_modules/@tamagui/use-force-update/dist/cjs/index.cjs\"(exports2, module2) {\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 __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toESM2 = /* @__PURE__ */ __name((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,\n      mod\n    )), \"__toESM\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var index_exports = {};\n    __export2(index_exports, {\n      isServerSide: /* @__PURE__ */ __name(() => isServerSide2, \"isServerSide\"),\n      useForceUpdate: /* @__PURE__ */ __name(() => useForceUpdate2, \"useForceUpdate\")\n    });\n    module2.exports = __toCommonJS2(index_exports);\n    var import_react52 = __toESM2(require(\"react\"));\n    var isServerSide2 = typeof window > \"u\";\n    var idFn3 = /* @__PURE__ */ __name(() => {\n    }, \"idFn\");\n    function useForceUpdate2() {\n      return isServerSide2 ? idFn3 : import_react52.default.useReducer((x) => Math.random(), 0)[1];\n    }\n    __name(useForceUpdate2, \"useForceUpdate\");\n  }\n});\n\n// node_modules/@tamagui/animate-presence/dist/cjs/LayoutGroupContext.cjs\nvar require_LayoutGroupContext = __commonJS({\n  \"node_modules/@tamagui/animate-presence/dist/cjs/LayoutGroupContext.cjs\"(exports2, module2) {\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 __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toESM2 = /* @__PURE__ */ __name((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,\n      mod\n    )), \"__toESM\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var LayoutGroupContext_exports = {};\n    __export2(LayoutGroupContext_exports, {\n      LayoutGroupContext: /* @__PURE__ */ __name(() => LayoutGroupContext2, \"LayoutGroupContext\")\n    });\n    module2.exports = __toCommonJS2(LayoutGroupContext_exports);\n    var import_react52 = __toESM2(require(\"react\"));\n    var LayoutGroupContext2 = import_react52.default.createContext({});\n  }\n});\n\n// node_modules/@tamagui/use-constant/dist/cjs/index.cjs\nvar require_cjs2 = __commonJS({\n  \"node_modules/@tamagui/use-constant/dist/cjs/index.cjs\"(exports2, module2) {\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 __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toESM2 = /* @__PURE__ */ __name((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,\n      mod\n    )), \"__toESM\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var index_exports = {};\n    __export2(index_exports, {\n      useConstant: /* @__PURE__ */ __name(() => useConstant2, \"useConstant\")\n    });\n    module2.exports = __toCommonJS2(index_exports);\n    var React75 = __toESM2(require(\"react\"));\n    function useConstant2(fn) {\n      if (typeof document > \"u\") return React75.useMemo(() => fn(), []);\n      const ref = React75.useRef();\n      return ref.current || (ref.current = {\n        v: fn()\n      }), ref.current.v;\n    }\n    __name(useConstant2, \"useConstant\");\n  }\n});\n\n// node_modules/@tamagui/use-presence/dist/cjs/PresenceContext.cjs\nvar require_PresenceContext = __commonJS({\n  \"node_modules/@tamagui/use-presence/dist/cjs/PresenceContext.cjs\"(exports2, module2) {\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 __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toESM2 = /* @__PURE__ */ __name((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,\n      mod\n    )), \"__toESM\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var PresenceContext_exports = {};\n    __export2(PresenceContext_exports, {\n      PresenceContext: /* @__PURE__ */ __name(() => PresenceContext2, \"PresenceContext\"),\n      ResetPresence: /* @__PURE__ */ __name(() => ResetPresence2, \"ResetPresence\")\n    });\n    module2.exports = __toCommonJS2(PresenceContext_exports);\n    var React75 = __toESM2(require(\"react\"));\n    var import_jsx_runtime65 = require(\"react/jsx-runtime\");\n    var PresenceContext2 = React75.createContext(null);\n    var ResetPresence2 = /* @__PURE__ */ __name((props) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(PresenceContext2.Provider, {\n      value: null,\n      children: props.children\n    }), \"ResetPresence\");\n  }\n});\n\n// node_modules/@tamagui/use-presence/dist/cjs/usePresence.cjs\nvar require_usePresence = __commonJS({\n  \"node_modules/@tamagui/use-presence/dist/cjs/usePresence.cjs\"(exports2, module2) {\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 __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toESM2 = /* @__PURE__ */ __name((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,\n      mod\n    )), \"__toESM\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var usePresence_exports = {};\n    __export2(usePresence_exports, {\n      isPresent: /* @__PURE__ */ __name(() => isPresent2, \"isPresent\"),\n      useIsPresent: /* @__PURE__ */ __name(() => useIsPresent2, \"useIsPresent\"),\n      usePresence: /* @__PURE__ */ __name(() => usePresence2, \"usePresence\")\n    });\n    module2.exports = __toCommonJS2(usePresence_exports);\n    var React75 = __toESM2(require(\"react\"));\n    var import_PresenceContext3 = require_PresenceContext();\n    function usePresence2() {\n      const context2 = React75.useContext(import_PresenceContext3.PresenceContext);\n      if (!context2) return [true, null, context2];\n      const {\n        id,\n        isPresent: isPresent22,\n        onExitComplete,\n        register\n      } = context2;\n      return React75.useEffect(() => register(id), []), !isPresent22 && onExitComplete ? [false, () => onExitComplete?.(id), context2] : [true, void 0, context2];\n    }\n    __name(usePresence2, \"usePresence\");\n    function useIsPresent2() {\n      return isPresent2(React75.useContext(import_PresenceContext3.PresenceContext));\n    }\n    __name(useIsPresent2, \"useIsPresent\");\n    function isPresent2(context2) {\n      return context2 === null ? true : context2.isPresent;\n    }\n    __name(isPresent2, \"isPresent\");\n  }\n});\n\n// node_modules/@tamagui/use-presence/dist/cjs/index.cjs\nvar require_cjs3 = __commonJS({\n  \"node_modules/@tamagui/use-presence/dist/cjs/index.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var index_exports = {};\n    __export2(index_exports, {\n      PresenceContext: /* @__PURE__ */ __name(() => import_PresenceContext3.PresenceContext, \"PresenceContext\"),\n      ResetPresence: /* @__PURE__ */ __name(() => import_PresenceContext3.ResetPresence, \"ResetPresence\"),\n      isPresent: /* @__PURE__ */ __name(() => import_usePresence2.isPresent, \"isPresent\"),\n      useIsPresent: /* @__PURE__ */ __name(() => import_usePresence2.useIsPresent, \"useIsPresent\"),\n      usePresence: /* @__PURE__ */ __name(() => import_usePresence2.usePresence, \"usePresence\")\n    });\n    module2.exports = __toCommonJS2(index_exports);\n    var import_PresenceContext3 = require_PresenceContext();\n    var import_usePresence2 = require_usePresence();\n  }\n});\n\n// node_modules/@tamagui/animate-presence/dist/cjs/PresenceChild.cjs\nvar require_PresenceChild = __commonJS({\n  \"node_modules/@tamagui/animate-presence/dist/cjs/PresenceChild.cjs\"(exports2, module2) {\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 __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toESM2 = /* @__PURE__ */ __name((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,\n      mod\n    )), \"__toESM\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var PresenceChild_exports = {};\n    __export2(PresenceChild_exports, {\n      PresenceChild: /* @__PURE__ */ __name(() => PresenceChild2, \"PresenceChild\")\n    });\n    module2.exports = __toCommonJS2(PresenceChild_exports);\n    var import_use_constant3 = require_cjs2();\n    var import_use_presence2 = require_cjs3();\n    var React75 = __toESM2(require(\"react\"));\n    var import_react52 = require(\"react\");\n    var import_jsx_runtime65 = require(\"react/jsx-runtime\");\n    var PresenceChild2 = React75.memo(({\n      children,\n      initial,\n      isPresent: isPresent2,\n      onExitComplete,\n      exitVariant,\n      enterVariant,\n      enterExitVariant,\n      presenceAffectsLayout,\n      custom\n    }) => {\n      const presenceChildren = (0, import_use_constant3.useConstant)(newChildrenMap2), id = (0, import_react52.useId)() || \"\", context2 = React75.useMemo(\n        () => ({\n          id,\n          initial,\n          isPresent: isPresent2,\n          custom,\n          exitVariant,\n          enterVariant,\n          enterExitVariant,\n          onExitComplete: /* @__PURE__ */ __name(() => {\n            presenceChildren.set(id, true);\n            for (const isComplete of presenceChildren.values()) if (!isComplete) return;\n            onExitComplete?.();\n          }, \"onExitComplete\"),\n          register: /* @__PURE__ */ __name(() => (presenceChildren.set(id, false), () => presenceChildren.delete(id)), \"register\")\n        }),\n        /**\n         * If the presence of a child affects the layout of the components around it,\n         * we want to make a new context value to ensure they get re-rendered\n         * so they can detect that layout change.\n         */\n        // @ts-expect-error its ok\n        presenceAffectsLayout ? void 0 : [isPresent2, exitVariant, enterVariant]\n      );\n      return React75.useMemo(() => {\n        presenceChildren.forEach((_, key) => presenceChildren.set(key, false));\n      }, [isPresent2]), React75.useEffect(() => {\n        !isPresent2 && !presenceChildren.size && onExitComplete?.();\n      }, [isPresent2]), /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_use_presence2.PresenceContext.Provider, {\n        value: context2,\n        children\n      });\n    });\n    function newChildrenMap2() {\n      return /* @__PURE__ */ new Map();\n    }\n    __name(newChildrenMap2, \"newChildrenMap\");\n  }\n});\n\n// node_modules/@tamagui/animate-presence/dist/cjs/AnimatePresence.cjs\nvar require_AnimatePresence = __commonJS({\n  \"node_modules/@tamagui/animate-presence/dist/cjs/AnimatePresence.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var AnimatePresence_exports = {};\n    __export2(AnimatePresence_exports, {\n      AnimatePresence: /* @__PURE__ */ __name(() => AnimatePresence2, \"AnimatePresence\")\n    });\n    module2.exports = __toCommonJS2(AnimatePresence_exports);\n    var import_use_force_update2 = require_cjs();\n    var import_react52 = require(\"react\");\n    var import_LayoutGroupContext2 = require_LayoutGroupContext();\n    var import_PresenceChild2 = require_PresenceChild();\n    var import_jsx_runtime65 = require(\"react/jsx-runtime\");\n    var getChildKey2 = /* @__PURE__ */ __name((child) => child.key || \"\", \"getChildKey\");\n    function updateChildLookup2(children, allChildren) {\n      children.forEach((child) => {\n        const key = getChildKey2(child);\n        allChildren.set(key, child);\n      });\n    }\n    __name(updateChildLookup2, \"updateChildLookup\");\n    function onlyElements2(children) {\n      const filtered = [];\n      return import_react52.Children.forEach(children, (child) => {\n        (0, import_react52.isValidElement)(child) && filtered.push(child);\n      }), filtered;\n    }\n    __name(onlyElements2, \"onlyElements\");\n    var AnimatePresence2 = /* @__PURE__ */ __name(({\n      children,\n      enterVariant,\n      exitVariant,\n      enterExitVariant,\n      initial = true,\n      onExitComplete,\n      exitBeforeEnter,\n      presenceAffectsLayout = true,\n      custom\n    }) => {\n      let forceRender = (0, import_react52.useContext)(import_LayoutGroupContext2.LayoutGroupContext).forceRender ?? (0, import_use_force_update2.useForceUpdate)();\n      const filteredChildren = onlyElements2(children), presentChildren = (0, import_react52.useRef)(filteredChildren), allChildren = (0, import_react52.useRef)(/* @__PURE__ */ new Map()).current, exiting = (0, import_react52.useRef)(/* @__PURE__ */ new Set()).current;\n      updateChildLookup2(filteredChildren, allChildren);\n      const isInitialRender = (0, import_react52.useRef)(true);\n      if (isInitialRender.current) return isInitialRender.current = false, /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_jsx_runtime65.Fragment, {\n        children: filteredChildren.map((child) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_PresenceChild2.PresenceChild, {\n          isPresent: true,\n          enterExitVariant,\n          exitVariant,\n          enterVariant,\n          initial: initial ? void 0 : false,\n          presenceAffectsLayout,\n          custom,\n          children: child\n        }, getChildKey2(child)))\n      });\n      let childrenToRender = [...filteredChildren];\n      const presentKeys = presentChildren.current.map(getChildKey2), targetKeys = filteredChildren.map(getChildKey2), numPresent = presentKeys.length;\n      for (let i = 0; i < numPresent; i++) {\n        const key = presentKeys[i];\n        targetKeys.indexOf(key) === -1 ? exiting.add(key) : exiting.delete(key);\n      }\n      return exitBeforeEnter && exiting.size && (childrenToRender = []), exiting.forEach((key) => {\n        if (targetKeys.indexOf(key) !== -1) return;\n        const child = allChildren.get(key);\n        if (!child) return;\n        const insertionIndex = presentKeys.indexOf(key), exitingComponent = /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_PresenceChild2.PresenceChild, {\n          isPresent: false,\n          onExitComplete: /* @__PURE__ */ __name(() => {\n            allChildren.delete(key), exiting.delete(key);\n            const removeIndex = presentChildren.current.findIndex((presentChild) => presentChild.key === key);\n            presentChildren.current.splice(removeIndex, 1), exiting.size || (presentChildren.current = filteredChildren, forceRender(), onExitComplete?.());\n          }, \"onExitComplete\"),\n          presenceAffectsLayout,\n          enterExitVariant,\n          enterVariant,\n          exitVariant,\n          custom,\n          children: child\n        }, getChildKey2(child));\n        childrenToRender.splice(insertionIndex, 0, exitingComponent);\n      }), childrenToRender = childrenToRender.map((child) => {\n        const key = child.key;\n        return exiting.has(key) ? child : /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_PresenceChild2.PresenceChild, {\n          isPresent: true,\n          exitVariant,\n          enterVariant,\n          enterExitVariant,\n          presenceAffectsLayout,\n          custom,\n          children: child\n        }, getChildKey2(child));\n      }), presentChildren.current = childrenToRender, /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_jsx_runtime65.Fragment, {\n        children: exiting.size ? childrenToRender : (\n          // biome-ignore lint/correctness/useJsxKeyInIterable: <explanation>\n          childrenToRender.map((child) => (0, import_react52.cloneElement)(child))\n        )\n      });\n    }, \"AnimatePresence\");\n    AnimatePresence2.displayName = \"AnimatePresence\";\n  }\n});\n\n// node_modules/@tamagui/animate-presence/dist/cjs/types.cjs\nvar require_types = __commonJS({\n  \"node_modules/@tamagui/animate-presence/dist/cjs/types.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var types_exports = {};\n    module2.exports = __toCommonJS2(types_exports);\n  }\n});\n\n// node_modules/@tamagui/animate-presence/dist/cjs/index.cjs\nvar require_cjs4 = __commonJS({\n  \"node_modules/@tamagui/animate-presence/dist/cjs/index.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __reExport2 = /* @__PURE__ */ __name((target, mod, secondTarget) => (__copyProps2(target, mod, \"default\"), secondTarget && __copyProps2(secondTarget, mod, \"default\")), \"__reExport\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var index_exports = {};\n    module2.exports = __toCommonJS2(index_exports);\n    __reExport2(index_exports, require_AnimatePresence(), module2.exports);\n    __reExport2(index_exports, require_cjs3(), module2.exports);\n    __reExport2(index_exports, require_types(), module2.exports);\n    __reExport2(index_exports, require_PresenceChild(), module2.exports);\n  }\n});\n\n// node_modules/@tamagui/simple-hash/dist/cjs/index.cjs\nvar require_cjs5 = __commonJS({\n  \"node_modules/@tamagui/simple-hash/dist/cjs/index.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var index_exports = {};\n    __export2(index_exports, {\n      simpleHash: /* @__PURE__ */ __name(() => simpleHash3, \"simpleHash\")\n    });\n    module2.exports = __toCommonJS2(index_exports);\n    var cache3 = /* @__PURE__ */ new Map();\n    var cacheSize2 = 0;\n    var simpleHash3 = /* @__PURE__ */ __name((strIn, hashMin = 10) => {\n      if (cache3.has(strIn)) return cache3.get(strIn);\n      let str = strIn;\n      str[0] === \"v\" && str.startsWith(\"var(\") && (str = str.slice(6, str.length - 1));\n      let hash = 0, valids = \"\", added = 0;\n      const len = str.length;\n      for (let i = 0; i < len; i++) {\n        if (hashMin !== \"strict\" && added <= hashMin) {\n          const char = str.charCodeAt(i);\n          if (char === 46) {\n            valids += \"--\";\n            continue;\n          }\n          if (isValidCSSCharCode2(char)) {\n            added++, valids += str[i];\n            continue;\n          }\n        }\n        hash = hashChar2(hash, str[i]);\n      }\n      const res = valids + (hash ? Math.abs(hash) : \"\");\n      return cacheSize2 > 1e4 && (cache3.clear(), cacheSize2 = 0), cache3.set(strIn, res), cacheSize2++, res;\n    }, \"simpleHash\");\n    var hashChar2 = /* @__PURE__ */ __name((hash, c) => Math.imul(31, hash) + c.charCodeAt(0) | 0, \"hashChar\");\n    function isValidCSSCharCode2(code) {\n      return (\n        // A-Z\n        code >= 65 && code <= 90 || // a-z\n        code >= 97 && code <= 122 || // _\n        code === 95 || // -\n        code === 45 || // 0-9\n        code >= 48 && code <= 57\n      );\n    }\n    __name(isValidCSSCharCode2, \"isValidCSSCharCode\");\n  }\n});\n\n// node_modules/@tamagui/helpers/dist/cjs/clamp.cjs\nvar require_clamp = __commonJS({\n  \"node_modules/@tamagui/helpers/dist/cjs/clamp.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var clamp_exports = {};\n    __export2(clamp_exports, {\n      clamp: /* @__PURE__ */ __name(() => clamp3, \"clamp\")\n    });\n    module2.exports = __toCommonJS2(clamp_exports);\n    function clamp3(value, [min2, max2]) {\n      return Math.min(max2, Math.max(min2, value));\n    }\n    __name(clamp3, \"clamp\");\n  }\n});\n\n// node_modules/@tamagui/helpers/dist/cjs/composeEventHandlers.cjs\nvar require_composeEventHandlers = __commonJS({\n  \"node_modules/@tamagui/helpers/dist/cjs/composeEventHandlers.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var composeEventHandlers_exports = {};\n    __export2(composeEventHandlers_exports, {\n      composeEventHandlers: /* @__PURE__ */ __name(() => composeEventHandlers3, \"composeEventHandlers\")\n    });\n    module2.exports = __toCommonJS2(composeEventHandlers_exports);\n    function composeEventHandlers3(og, next, {\n      checkDefaultPrevented = true\n    } = {}) {\n      return !og || !next ? next || og || void 0 : (event) => {\n        if (og?.(event), !event || !(checkDefaultPrevented && typeof event == \"object\" && \"defaultPrevented\" in event) || // @ts-ignore\n        \"defaultPrevented\" in event && !event.defaultPrevented) return next?.(event);\n      };\n    }\n    __name(composeEventHandlers3, \"composeEventHandlers\");\n  }\n});\n\n// node_modules/@tamagui/helpers/dist/cjs/concatClassName.cjs\nvar require_concatClassName = __commonJS({\n  \"node_modules/@tamagui/helpers/dist/cjs/concatClassName.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var concatClassName_exports = {};\n    __export2(concatClassName_exports, {\n      concatClassName: /* @__PURE__ */ __name(() => concatClassName2, \"concatClassName\")\n    });\n    module2.exports = __toCommonJS2(concatClassName_exports);\n    function concatClassName2(_cn) {\n      const args = arguments, usedPrefixes = [];\n      let final = \"\";\n      const len = args.length;\n      let propObjects = null;\n      for (let x = len; x >= 0; x--) {\n        const cns = args[x];\n        if (!cns) continue;\n        if (!Array.isArray(cns) && typeof cns != \"string\") {\n          propObjects = propObjects || [], propObjects.push(cns);\n          continue;\n        }\n        const names = Array.isArray(cns) ? cns : cns.split(\" \"), numNames = names.length;\n        for (let i = numNames - 1; i >= 0; i--) {\n          const name = names[i];\n          if (!name || name === \" \") continue;\n          if (name[0] !== \"_\") {\n            final = name + \" \" + final;\n            continue;\n          }\n          const splitIndex = name.indexOf(\"-\");\n          if (splitIndex < 1) {\n            final = name + \" \" + final;\n            continue;\n          }\n          const isMediaQuery = name[splitIndex + 1] === \"_\", styleKey = name.slice(1, name.lastIndexOf(\"-\")), mediaKey = isMediaQuery ? name.slice(splitIndex + 2, splitIndex + 7) : null, uid = mediaKey ? styleKey + mediaKey : styleKey;\n          if (usedPrefixes.indexOf(uid) > -1) continue;\n          usedPrefixes.push(uid);\n          const propName = styleKey;\n          propName && propObjects && propObjects.some((po) => {\n            if (mediaKey) {\n              const propKey = pseudoInvert2[mediaKey];\n              return po && po[propKey] && propName in po[propKey] && po[propKey] !== null;\n            }\n            return po && propName in po && po[propName] !== null;\n          }) || (final = name + \" \" + final);\n        }\n      }\n      return final;\n    }\n    __name(concatClassName2, \"concatClassName\");\n    var pseudoInvert2 = {\n      hover: \"hoverStyle\",\n      focus: \"focusStyle\",\n      press: \"pressStyle\",\n      focusVisible: \"focusVisibleStyle\",\n      focusWithin: \"focusWithinStyle\",\n      disabled: \"disabledStyle\"\n    };\n  }\n});\n\n// node_modules/@tamagui/helpers/dist/cjs/types.cjs\nvar require_types2 = __commonJS({\n  \"node_modules/@tamagui/helpers/dist/cjs/types.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var types_exports = {};\n    __export2(types_exports, {\n      StyleObjectIdentifier: /* @__PURE__ */ __name(() => StyleObjectIdentifier2, \"StyleObjectIdentifier\"),\n      StyleObjectProperty: /* @__PURE__ */ __name(() => StyleObjectProperty2, \"StyleObjectProperty\"),\n      StyleObjectPseudo: /* @__PURE__ */ __name(() => StyleObjectPseudo2, \"StyleObjectPseudo\"),\n      StyleObjectRules: /* @__PURE__ */ __name(() => StyleObjectRules2, \"StyleObjectRules\"),\n      StyleObjectValue: /* @__PURE__ */ __name(() => StyleObjectValue2, \"StyleObjectValue\")\n    });\n    module2.exports = __toCommonJS2(types_exports);\n    var StyleObjectProperty2 = 0;\n    var StyleObjectValue2 = 1;\n    var StyleObjectIdentifier2 = 2;\n    var StyleObjectPseudo2 = 3;\n    var StyleObjectRules2 = 4;\n  }\n});\n\n// node_modules/@tamagui/constants/dist/cjs/constants.cjs\nvar require_constants = __commonJS({\n  \"node_modules/@tamagui/constants/dist/cjs/constants.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var constants_exports = {};\n    __export2(constants_exports, {\n      currentPlatform: /* @__PURE__ */ __name(() => currentPlatform2, \"currentPlatform\"),\n      isAndroid: /* @__PURE__ */ __name(() => isAndroid4, \"isAndroid\"),\n      isChrome: /* @__PURE__ */ __name(() => isChrome3, \"isChrome\"),\n      isClient: /* @__PURE__ */ __name(() => isClient4, \"isClient\"),\n      isIos: /* @__PURE__ */ __name(() => isIos2, \"isIos\"),\n      isServer: /* @__PURE__ */ __name(() => isServer3, \"isServer\"),\n      isTouchable: /* @__PURE__ */ __name(() => isTouchable3, \"isTouchable\"),\n      isWeb: /* @__PURE__ */ __name(() => isWeb7, \"isWeb\"),\n      isWebTouchable: /* @__PURE__ */ __name(() => isWebTouchable3, \"isWebTouchable\"),\n      isWindowDefined: /* @__PURE__ */ __name(() => isWindowDefined2, \"isWindowDefined\"),\n      useIsomorphicLayoutEffect: /* @__PURE__ */ __name(() => useIsomorphicLayoutEffect3, \"useIsomorphicLayoutEffect\")\n    });\n    module2.exports = __toCommonJS2(constants_exports);\n    var import_react52 = require(\"react\");\n    var isWeb7 = true;\n    var isWindowDefined2 = typeof window < \"u\";\n    var isServer3 = isWeb7 && !isWindowDefined2;\n    var isClient4 = isWeb7 && isWindowDefined2;\n    var useIsomorphicLayoutEffect3 = isServer3 ? import_react52.useEffect : import_react52.useLayoutEffect;\n    var isChrome3 = typeof navigator < \"u\" && /Chrome/.test(navigator.userAgent || \"\");\n    var isWebTouchable3 = isClient4 && (\"ontouchstart\" in window || navigator.maxTouchPoints > 0);\n    var isTouchable3 = !isWeb7 || isWebTouchable3;\n    var isAndroid4 = false;\n    var isIos2 = process.env.TEST_NATIVE_PLATFORM === \"ios\";\n    var currentPlatform2 = \"web\";\n  }\n});\n\n// node_modules/@tamagui/constants/dist/cjs/index.cjs\nvar require_cjs6 = __commonJS({\n  \"node_modules/@tamagui/constants/dist/cjs/index.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __reExport2 = /* @__PURE__ */ __name((target, mod, secondTarget) => (__copyProps2(target, mod, \"default\"), secondTarget && __copyProps2(secondTarget, mod, \"default\")), \"__reExport\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var index_exports = {};\n    module2.exports = __toCommonJS2(index_exports);\n    __reExport2(index_exports, require_constants(), module2.exports);\n  }\n});\n\n// node_modules/@tamagui/helpers/dist/cjs/shouldRenderNativePlatform.cjs\nvar require_shouldRenderNativePlatform = __commonJS({\n  \"node_modules/@tamagui/helpers/dist/cjs/shouldRenderNativePlatform.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var shouldRenderNativePlatform_exports = {};\n    __export2(shouldRenderNativePlatform_exports, {\n      shouldRenderNativePlatform: /* @__PURE__ */ __name(() => shouldRenderNativePlatform4, \"shouldRenderNativePlatform\")\n    });\n    module2.exports = __toCommonJS2(shouldRenderNativePlatform_exports);\n    var import_constants47 = require_cjs6();\n    var ALL_PLATFORMS2 = [\"web\", \"android\", \"ios\"];\n    function shouldRenderNativePlatform4(nativeProp) {\n      if (!nativeProp) return null;\n      const userRequestedPlatforms = resolvePlatformNames2(nativeProp);\n      for (const platform2 of ALL_PLATFORMS2) if (platform2 === import_constants47.currentPlatform && userRequestedPlatforms.has(platform2)) return platform2;\n      return null;\n    }\n    __name(shouldRenderNativePlatform4, \"shouldRenderNativePlatform\");\n    function resolvePlatformNames2(nativeProp) {\n      const platforms = nativeProp === true ? ALL_PLATFORMS2 : nativeProp === false ? [] : Array.isArray(nativeProp) ? nativeProp : [nativeProp], set = new Set(platforms);\n      return set.has(\"mobile\") && (set.add(\"android\"), set.add(\"ios\"), set.delete(\"mobile\")), set;\n    }\n    __name(resolvePlatformNames2, \"resolvePlatformNames\");\n  }\n});\n\n// node_modules/@tamagui/helpers/dist/cjs/validStyleProps.cjs\nvar require_validStyleProps = __commonJS({\n  \"node_modules/@tamagui/helpers/dist/cjs/validStyleProps.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var validStyleProps_exports = {};\n    __export2(validStyleProps_exports, {\n      stylePropsAll: /* @__PURE__ */ __name(() => stylePropsAll2, \"stylePropsAll\"),\n      stylePropsText: /* @__PURE__ */ __name(() => stylePropsText2, \"stylePropsText\"),\n      stylePropsTextOnly: /* @__PURE__ */ __name(() => stylePropsTextOnly2, \"stylePropsTextOnly\"),\n      stylePropsTransform: /* @__PURE__ */ __name(() => stylePropsTransform2, \"stylePropsTransform\"),\n      stylePropsUnitless: /* @__PURE__ */ __name(() => stylePropsUnitless2, \"stylePropsUnitless\"),\n      stylePropsView: /* @__PURE__ */ __name(() => stylePropsView2, \"stylePropsView\"),\n      tokenCategories: /* @__PURE__ */ __name(() => tokenCategories2, \"tokenCategories\"),\n      validPseudoKeys: /* @__PURE__ */ __name(() => validPseudoKeys2, \"validPseudoKeys\"),\n      validStyles: /* @__PURE__ */ __name(() => validStyles2, \"validStyles\")\n    });\n    module2.exports = __toCommonJS2(validStyleProps_exports);\n    var import_constants47 = require_cjs6();\n    var textColors2 = {\n      color: true,\n      textDecorationColor: true,\n      textShadowColor: true\n    };\n    var tokenCategories2 = {\n      radius: {\n        borderRadius: true,\n        borderTopLeftRadius: true,\n        borderTopRightRadius: true,\n        borderBottomLeftRadius: true,\n        borderBottomRightRadius: true,\n        // logical\n        borderStartStartRadius: true,\n        borderStartEndRadius: true,\n        borderEndStartRadius: true,\n        borderEndEndRadius: true\n      },\n      size: {\n        width: true,\n        height: true,\n        minWidth: true,\n        minHeight: true,\n        maxWidth: true,\n        maxHeight: true,\n        blockSize: true,\n        minBlockSize: true,\n        maxBlockSize: true,\n        inlineSize: true,\n        minInlineSize: true,\n        maxInlineSize: true\n      },\n      zIndex: {\n        zIndex: true\n      },\n      color: {\n        backgroundColor: true,\n        borderColor: true,\n        borderBlockStartColor: true,\n        borderBlockEndColor: true,\n        borderBlockColor: true,\n        borderBottomColor: true,\n        borderInlineColor: true,\n        borderInlineStartColor: true,\n        borderInlineEndColor: true,\n        borderTopColor: true,\n        borderLeftColor: true,\n        borderRightColor: true,\n        borderEndColor: true,\n        borderStartColor: true,\n        shadowColor: true,\n        ...textColors2,\n        outlineColor: true,\n        caretColor: true\n      }\n    };\n    var stylePropsUnitless2 = {\n      WebkitLineClamp: true,\n      animationIterationCount: true,\n      aspectRatio: true,\n      borderImageOutset: true,\n      borderImageSlice: true,\n      borderImageWidth: true,\n      columnCount: true,\n      flex: true,\n      flexGrow: true,\n      flexOrder: true,\n      flexPositive: true,\n      flexShrink: true,\n      flexNegative: true,\n      fontWeight: true,\n      gridRow: true,\n      gridRowEnd: true,\n      gridRowGap: true,\n      gridRowStart: true,\n      gridColumn: true,\n      gridColumnEnd: true,\n      gridColumnGap: true,\n      gridColumnStart: true,\n      gridTemplateColumns: true,\n      gridTemplateAreas: true,\n      lineClamp: true,\n      opacity: true,\n      order: true,\n      orphans: true,\n      tabSize: true,\n      widows: true,\n      zIndex: true,\n      zoom: true,\n      scale: true,\n      scaleX: true,\n      scaleY: true,\n      scaleZ: true,\n      shadowOpacity: true\n    };\n    var stylePropsTransform2 = {\n      x: true,\n      y: true,\n      scale: true,\n      perspective: true,\n      scaleX: true,\n      scaleY: true,\n      skewX: true,\n      skewY: true,\n      matrix: true,\n      rotate: true,\n      rotateY: true,\n      rotateX: true,\n      rotateZ: true\n    };\n    var stylePropsView2 = {\n      backfaceVisibility: true,\n      borderBottomEndRadius: true,\n      borderBottomStartRadius: true,\n      borderBottomWidth: true,\n      borderLeftWidth: true,\n      borderRightWidth: true,\n      borderBlockWidth: true,\n      borderBlockEndWidth: true,\n      borderBlockStartWidth: true,\n      borderInlineWidth: true,\n      borderInlineEndWidth: true,\n      borderInlineStartWidth: true,\n      borderStyle: true,\n      borderBlockStyle: true,\n      borderBlockEndStyle: true,\n      borderBlockStartStyle: true,\n      borderInlineStyle: true,\n      borderInlineEndStyle: true,\n      borderInlineStartStyle: true,\n      borderTopEndRadius: true,\n      borderTopStartRadius: true,\n      borderTopWidth: true,\n      borderWidth: true,\n      transform: true,\n      transformOrigin: true,\n      alignContent: true,\n      alignItems: true,\n      alignSelf: true,\n      borderEndWidth: true,\n      borderStartWidth: true,\n      bottom: true,\n      display: true,\n      end: true,\n      flexBasis: true,\n      flexDirection: true,\n      flexWrap: true,\n      gap: true,\n      columnGap: true,\n      rowGap: true,\n      justifyContent: true,\n      left: true,\n      margin: true,\n      marginBlock: true,\n      marginBlockEnd: true,\n      marginBlockStart: true,\n      marginInline: true,\n      marginInlineStart: true,\n      marginInlineEnd: true,\n      marginBottom: true,\n      marginEnd: true,\n      marginHorizontal: true,\n      marginLeft: true,\n      marginRight: true,\n      marginStart: true,\n      marginTop: true,\n      marginVertical: true,\n      overflow: true,\n      padding: true,\n      paddingBottom: true,\n      paddingInline: true,\n      paddingBlock: true,\n      paddingBlockStart: true,\n      paddingInlineEnd: true,\n      paddingInlineStart: true,\n      paddingEnd: true,\n      paddingHorizontal: true,\n      paddingLeft: true,\n      paddingRight: true,\n      paddingStart: true,\n      paddingTop: true,\n      paddingVertical: true,\n      position: true,\n      right: true,\n      start: true,\n      top: true,\n      inset: true,\n      insetBlock: true,\n      insetBlockEnd: true,\n      insetBlockStart: true,\n      insetInline: true,\n      insetInlineEnd: true,\n      insetInlineStart: true,\n      direction: true,\n      shadowOffset: true,\n      shadowRadius: true,\n      ...tokenCategories2.color,\n      ...tokenCategories2.radius,\n      ...tokenCategories2.size,\n      ...tokenCategories2.radius,\n      ...stylePropsTransform2,\n      ...stylePropsUnitless2,\n      boxShadow: true,\n      filter: true,\n      // RN doesn't support specific border styles per-edge\n      transition: true,\n      textWrap: true,\n      backdropFilter: true,\n      background: true,\n      backgroundAttachment: true,\n      backgroundBlendMode: true,\n      backgroundClip: true,\n      backgroundColor: true,\n      backgroundImage: true,\n      backgroundOrigin: true,\n      backgroundPosition: true,\n      backgroundRepeat: true,\n      backgroundSize: true,\n      borderBottomStyle: true,\n      borderImage: true,\n      borderLeftStyle: true,\n      borderRightStyle: true,\n      borderTopStyle: true,\n      boxSizing: true,\n      caretColor: true,\n      clipPath: true,\n      contain: true,\n      containerType: true,\n      content: true,\n      cursor: true,\n      float: true,\n      mask: true,\n      maskBorder: true,\n      maskBorderMode: true,\n      maskBorderOutset: true,\n      maskBorderRepeat: true,\n      maskBorderSlice: true,\n      maskBorderSource: true,\n      maskBorderWidth: true,\n      maskClip: true,\n      maskComposite: true,\n      maskImage: true,\n      maskMode: true,\n      maskOrigin: true,\n      maskPosition: true,\n      maskRepeat: true,\n      maskSize: true,\n      maskType: true,\n      mixBlendMode: true,\n      objectFit: true,\n      objectPosition: true,\n      outlineOffset: true,\n      outlineStyle: true,\n      outlineWidth: true,\n      overflowBlock: true,\n      overflowInline: true,\n      overflowX: true,\n      overflowY: true,\n      pointerEvents: true,\n      scrollbarWidth: true,\n      textEmphasis: true,\n      touchAction: true,\n      transformStyle: true,\n      userSelect: true,\n      ...import_constants47.isAndroid ? {\n        elevationAndroid: true\n      } : {}\n    };\n    var stylePropsFont2 = {\n      fontFamily: true,\n      fontSize: true,\n      fontStyle: true,\n      fontWeight: true,\n      fontVariant: true,\n      letterSpacing: true,\n      lineHeight: true,\n      textTransform: true\n    };\n    var stylePropsTextOnly2 = {\n      ...stylePropsFont2,\n      textAlign: true,\n      textDecorationLine: true,\n      textDecorationStyle: true,\n      ...textColors2,\n      textShadowOffset: true,\n      textShadowRadius: true,\n      userSelect: true,\n      selectable: true,\n      verticalAlign: true,\n      whiteSpace: true,\n      wordWrap: true,\n      textOverflow: true,\n      textDecorationDistance: true,\n      cursor: true,\n      WebkitLineClamp: true,\n      WebkitBoxOrient: true\n    };\n    var stylePropsText2 = {\n      ...stylePropsView2,\n      ...stylePropsTextOnly2\n    };\n    var stylePropsAll2 = stylePropsText2;\n    var validPseudoKeys2 = {\n      enterStyle: true,\n      exitStyle: true,\n      hoverStyle: true,\n      pressStyle: true,\n      focusStyle: true,\n      disabledStyle: true,\n      focusWithinStyle: true,\n      focusVisibleStyle: true\n    };\n    var validStyles2 = stylePropsView2;\n  }\n});\n\n// node_modules/@tamagui/helpers/dist/cjs/withStaticProperties.cjs\nvar require_withStaticProperties = __commonJS({\n  \"node_modules/@tamagui/helpers/dist/cjs/withStaticProperties.cjs\"(exports2, module2) {\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 __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toESM2 = /* @__PURE__ */ __name((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,\n      mod\n    )), \"__toESM\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var withStaticProperties_exports = {};\n    __export2(withStaticProperties_exports, {\n      withStaticProperties: /* @__PURE__ */ __name(() => withStaticProperties7, \"withStaticProperties\")\n    });\n    module2.exports = __toCommonJS2(withStaticProperties_exports);\n    var import_react52 = __toESM2(require(\"react\"));\n    var Decorated2 = Symbol();\n    var withStaticProperties7 = /* @__PURE__ */ __name((component, staticProps) => {\n      const next = (() => {\n        if (component[Decorated2]) {\n          const _ = import_react52.default.forwardRef((props, ref) => import_react52.default.createElement(component, {\n            ...props,\n            ref\n          }));\n          for (const key in component) {\n            const v = component[key];\n            _[key] = v && typeof v == \"object\" ? {\n              ...v\n            } : v;\n          }\n        }\n        return component;\n      })();\n      return Object.assign(next, staticProps), next[Decorated2] = true, next;\n    }, \"withStaticProperties\");\n  }\n});\n\n// node_modules/@tamagui/helpers/dist/cjs/index.cjs\nvar require_cjs7 = __commonJS({\n  \"node_modules/@tamagui/helpers/dist/cjs/index.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __reExport2 = /* @__PURE__ */ __name((target, mod, secondTarget) => (__copyProps2(target, mod, \"default\"), secondTarget && __copyProps2(secondTarget, mod, \"default\")), \"__reExport\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var index_exports = {};\n    module2.exports = __toCommonJS2(index_exports);\n    __reExport2(index_exports, require_cjs5(), module2.exports);\n    __reExport2(index_exports, require_clamp(), module2.exports);\n    __reExport2(index_exports, require_composeEventHandlers(), module2.exports);\n    __reExport2(index_exports, require_concatClassName(), module2.exports);\n    __reExport2(index_exports, require_types2(), module2.exports);\n    __reExport2(index_exports, require_shouldRenderNativePlatform(), module2.exports);\n    __reExport2(index_exports, require_validStyleProps(), module2.exports);\n    __reExport2(index_exports, require_withStaticProperties(), module2.exports);\n  }\n});\n\n// node_modules/@tamagui/use-event/dist/cjs/useGet.cjs\nvar require_useGet = __commonJS({\n  \"node_modules/@tamagui/use-event/dist/cjs/useGet.cjs\"(exports2, module2) {\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 __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toESM2 = /* @__PURE__ */ __name((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,\n      mod\n    )), \"__toESM\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var useGet_exports = {};\n    __export2(useGet_exports, {\n      useGet: /* @__PURE__ */ __name(() => useGet5, \"useGet\")\n    });\n    module2.exports = __toCommonJS2(useGet_exports);\n    var import_constants47 = require_cjs6();\n    var React75 = __toESM2(require(\"react\"));\n    function useGet5(currentValue, initialValue2, forwardToFunction) {\n      const curRef = React75.useRef(initialValue2 ?? currentValue);\n      return (0, import_constants47.useIsomorphicLayoutEffect)(() => {\n        curRef.current = currentValue;\n      }), React75.useCallback(forwardToFunction ? (...args) => curRef.current?.apply(null, args) : () => curRef.current, []);\n    }\n    __name(useGet5, \"useGet\");\n  }\n});\n\n// node_modules/@tamagui/use-event/dist/cjs/useEvent.cjs\nvar require_useEvent = __commonJS({\n  \"node_modules/@tamagui/use-event/dist/cjs/useEvent.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var useEvent_exports = {};\n    __export2(useEvent_exports, {\n      useEvent: /* @__PURE__ */ __name(() => useEvent12, \"useEvent\")\n    });\n    module2.exports = __toCommonJS2(useEvent_exports);\n    var import_useGet2 = require_useGet();\n    function useEvent12(callback) {\n      return (0, import_useGet2.useGet)(callback, defaultValue2, true);\n    }\n    __name(useEvent12, \"useEvent\");\n    var defaultValue2 = /* @__PURE__ */ __name(() => {\n      throw new Error(\"Cannot call an event handler while rendering.\");\n    }, \"defaultValue\");\n  }\n});\n\n// node_modules/@tamagui/use-event/dist/cjs/index.cjs\nvar require_cjs8 = __commonJS({\n  \"node_modules/@tamagui/use-event/dist/cjs/index.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __reExport2 = /* @__PURE__ */ __name((target, mod, secondTarget) => (__copyProps2(target, mod, \"default\"), secondTarget && __copyProps2(secondTarget, mod, \"default\")), \"__reExport\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var index_exports = {};\n    module2.exports = __toCommonJS2(index_exports);\n    __reExport2(index_exports, require_useEvent(), module2.exports);\n    __reExport2(index_exports, require_useGet(), module2.exports);\n  }\n});\n\n// node_modules/@tamagui/start-transition/dist/cjs/index.cjs\nvar require_cjs9 = __commonJS({\n  \"node_modules/@tamagui/start-transition/dist/cjs/index.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var index_exports = {};\n    __export2(index_exports, {\n      startTransition: /* @__PURE__ */ __name(() => startTransition2, \"startTransition\")\n    });\n    module2.exports = __toCommonJS2(index_exports);\n    var import_react52 = require(\"react\");\n    var startTransition2 = /* @__PURE__ */ __name((callback) => {\n      (0, import_react52.startTransition)(callback);\n    }, \"startTransition\");\n  }\n});\n\n// node_modules/@tamagui/use-controllable-state/dist/cjs/useControllableState.cjs\nvar require_useControllableState = __commonJS({\n  \"node_modules/@tamagui/use-controllable-state/dist/cjs/useControllableState.cjs\"(exports2, module2) {\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 __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toESM2 = /* @__PURE__ */ __name((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,\n      mod\n    )), \"__toESM\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var useControllableState_exports = {};\n    __export2(useControllableState_exports, {\n      useControllableState: /* @__PURE__ */ __name(() => useControllableState2, \"useControllableState\")\n    });\n    module2.exports = __toCommonJS2(useControllableState_exports);\n    var import_use_event4 = require_cjs8();\n    var React75 = __toESM2(require(\"react\"));\n    var import_start_transition6 = require_cjs9();\n    var emptyCallbackFn2 = /* @__PURE__ */ __name((_) => _(), \"emptyCallbackFn\");\n    function useControllableState2({\n      prop,\n      defaultProp,\n      onChange,\n      strategy = \"prop-wins\",\n      preventUpdate,\n      transition\n    }) {\n      const [state, setState] = React75.useState(prop ?? defaultProp), previous = React75.useRef(state), propWins = strategy === \"prop-wins\" && prop !== void 0, value = propWins ? prop : state, onChangeCb = (0, import_use_event4.useEvent)(onChange || idFn3), transitionFn = transition ? import_start_transition6.startTransition : emptyCallbackFn2;\n      React75.useEffect(() => {\n        prop !== void 0 && (previous.current = prop, transitionFn(() => {\n          setState(prop);\n        }));\n      }, [prop]), React75.useEffect(() => {\n        propWins || state !== previous.current && (previous.current = state, onChangeCb(state));\n      }, [onChangeCb, state, propWins]);\n      const setter = (0, import_use_event4.useEvent)((next) => {\n        if (!preventUpdate) if (propWins) {\n          const nextValue = typeof next == \"function\" ? next(previous.current) : next;\n          onChangeCb(nextValue);\n        } else transitionFn(() => {\n          setState(next);\n        });\n      });\n      return [value, setter];\n    }\n    __name(useControllableState2, \"useControllableState\");\n    var idFn3 = /* @__PURE__ */ __name(() => {\n    }, \"idFn\");\n  }\n});\n\n// node_modules/@tamagui/use-controllable-state/dist/cjs/index.cjs\nvar require_cjs10 = __commonJS({\n  \"node_modules/@tamagui/use-controllable-state/dist/cjs/index.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __reExport2 = /* @__PURE__ */ __name((target, mod, secondTarget) => (__copyProps2(target, mod, \"default\"), secondTarget && __copyProps2(secondTarget, mod, \"default\")), \"__reExport\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var index_exports = {};\n    module2.exports = __toCommonJS2(index_exports);\n    __reExport2(index_exports, require_useControllableState(), module2.exports);\n  }\n});\n\n// node_modules/@tamagui/collapsible/dist/cjs/Collapsible.cjs\nvar require_Collapsible = __commonJS({\n  \"node_modules/@tamagui/collapsible/dist/cjs/Collapsible.cjs\"(exports2, module2) {\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 __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toESM2 = /* @__PURE__ */ __name((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,\n      mod\n    )), \"__toESM\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var Collapsible_exports = {};\n    __export2(Collapsible_exports, {\n      Collapsible: /* @__PURE__ */ __name(() => Collapsible, \"Collapsible\"),\n      CollapsibleContent: /* @__PURE__ */ __name(() => CollapsibleContent, \"CollapsibleContent\"),\n      CollapsibleContentFrame: /* @__PURE__ */ __name(() => CollapsibleContentFrame, \"CollapsibleContentFrame\"),\n      CollapsibleTrigger: /* @__PURE__ */ __name(() => CollapsibleTrigger, \"CollapsibleTrigger\"),\n      CollapsibleTriggerFrame: /* @__PURE__ */ __name(() => CollapsibleTriggerFrame, \"CollapsibleTriggerFrame\")\n    });\n    module2.exports = __toCommonJS2(Collapsible_exports);\n    var import_animate_presence6 = require_cjs4();\n    var import_helpers29 = require_cjs7();\n    var import_use_controllable_state16 = require_cjs10();\n    var import_web21 = require(\"@tamagui/core\");\n    var React75 = __toESM2(require(\"react\"));\n    var import_jsx_runtime65 = require(\"react/jsx-runtime\");\n    var COLLAPSIBLE_NAME = \"Collapsible\";\n    var {\n      Provider: CollapsibleProvider,\n      useStyledContext: useCollapsibleContext\n    } = (0, import_web21.createStyledContext)();\n    var _Collapsible = React75.forwardRef((props, forwardedRef) => {\n      const {\n        __scopeCollapsible,\n        open: openProp,\n        defaultOpen,\n        disabled,\n        onOpenChange,\n        ...collapsibleProps\n      } = props, [open = false, setOpen] = (0, import_use_controllable_state16.useControllableState)({\n        prop: openProp,\n        defaultProp: defaultOpen,\n        onChange: onOpenChange\n      });\n      return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(CollapsibleProvider, {\n        scope: __scopeCollapsible,\n        disabled,\n        contentId: React75.useId(),\n        open,\n        onOpenToggle: React75.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n        children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_web21.Stack, {\n          \"data-state\": getState6(open),\n          \"data-disabled\": disabled ? \"\" : void 0,\n          ...collapsibleProps,\n          ref: forwardedRef\n        })\n      });\n    });\n    _Collapsible.displayName = COLLAPSIBLE_NAME;\n    var TRIGGER_NAME6 = \"CollapsibleTrigger\";\n    var CollapsibleTriggerFrame = (0, import_web21.styled)(import_web21.Stack, {\n      name: TRIGGER_NAME6,\n      tag: \"button\"\n    });\n    var CollapsibleTrigger = CollapsibleTriggerFrame.styleable((props, forwardedRef) => {\n      const {\n        __scopeCollapsible,\n        children,\n        ...triggerProps\n      } = props, context2 = useCollapsibleContext(__scopeCollapsible);\n      return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(CollapsibleTriggerFrame, {\n        \"aria-controls\": context2.contentId,\n        \"aria-expanded\": context2.open || false,\n        \"data-state\": getState6(context2.open),\n        \"data-disabled\": context2.disabled ? \"\" : void 0,\n        disabled: context2.disabled,\n        ...triggerProps,\n        ref: forwardedRef,\n        onPress: (0, import_helpers29.composeEventHandlers)(props.onPress, context2.onOpenToggle),\n        children: typeof children == \"function\" ? children({\n          open: context2.open\n        }) : children\n      });\n    });\n    CollapsibleTrigger.displayName = TRIGGER_NAME6;\n    var CONTENT_NAME5 = \"CollapsibleContent\";\n    var CollapsibleContentFrame = (0, import_web21.styled)(import_web21.Stack, {\n      name: CONTENT_NAME5\n    });\n    var CollapsibleContent = CollapsibleContentFrame.styleable((props, forwardedRef) => {\n      const {\n        forceMount,\n        children,\n        // @ts-expect-error\n        __scopeCollapsible,\n        ...contentProps\n      } = props, context2 = useCollapsibleContext(__scopeCollapsible);\n      return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_animate_presence6.AnimatePresence, {\n        ...contentProps,\n        children: forceMount || context2.open ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(CollapsibleContentFrame, {\n          ref: forwardedRef,\n          ...contentProps,\n          children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_animate_presence6.ResetPresence, {\n            children\n          })\n        }) : null\n      });\n    });\n    CollapsibleContent.displayName = CONTENT_NAME5;\n    function getState6(open) {\n      return open ? \"open\" : \"closed\";\n    }\n    __name(getState6, \"getState\");\n    var Collapsible = (0, import_helpers29.withStaticProperties)(_Collapsible, {\n      Trigger: CollapsibleTrigger,\n      Content: CollapsibleContent\n    });\n  }\n});\n\n// node_modules/@tamagui/collapsible/dist/cjs/index.cjs\nvar require_cjs11 = __commonJS({\n  \"node_modules/@tamagui/collapsible/dist/cjs/index.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __reExport2 = /* @__PURE__ */ __name((target, mod, secondTarget) => (__copyProps2(target, mod, \"default\"), secondTarget && __copyProps2(secondTarget, mod, \"default\")), \"__reExport\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var index_exports = {};\n    module2.exports = __toCommonJS2(index_exports);\n    __reExport2(index_exports, require_Collapsible(), module2.exports);\n  }\n});\n\n// node_modules/@tamagui/compose-refs/dist/cjs/compose-refs.cjs\nvar require_compose_refs = __commonJS({\n  \"node_modules/@tamagui/compose-refs/dist/cjs/compose-refs.cjs\"(exports2, module2) {\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 __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toESM2 = /* @__PURE__ */ __name((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,\n      mod\n    )), \"__toESM\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var compose_refs_exports = {};\n    __export2(compose_refs_exports, {\n      composeRefs: /* @__PURE__ */ __name(() => composeRefs2, \"composeRefs\"),\n      setRef: /* @__PURE__ */ __name(() => setRef2, \"setRef\"),\n      useComposedRefs: /* @__PURE__ */ __name(() => useComposedRefs4, \"useComposedRefs\")\n    });\n    module2.exports = __toCommonJS2(compose_refs_exports);\n    var React75 = __toESM2(require(\"react\"));\n    function setRef2(ref, value) {\n      typeof ref == \"function\" ? ref(value) : ref && (ref.current = value);\n    }\n    __name(setRef2, \"setRef\");\n    function composeRefs2(...refs) {\n      return (node) => refs.forEach((ref) => setRef2(ref, node));\n    }\n    __name(composeRefs2, \"composeRefs\");\n    function useComposedRefs4(...refs) {\n      return React75.useCallback(composeRefs2(...refs), refs);\n    }\n    __name(useComposedRefs4, \"useComposedRefs\");\n  }\n});\n\n// node_modules/@tamagui/compose-refs/dist/cjs/index.cjs\nvar require_cjs12 = __commonJS({\n  \"node_modules/@tamagui/compose-refs/dist/cjs/index.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __reExport2 = /* @__PURE__ */ __name((target, mod, secondTarget) => (__copyProps2(target, mod, \"default\"), secondTarget && __copyProps2(secondTarget, mod, \"default\")), \"__reExport\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var index_exports = {};\n    module2.exports = __toCommonJS2(index_exports);\n    __reExport2(index_exports, require_compose_refs(), module2.exports);\n  }\n});\n\n// node_modules/@tamagui/collection/dist/cjs/Collection.cjs\nvar require_Collection = __commonJS({\n  \"node_modules/@tamagui/collection/dist/cjs/Collection.cjs\"(exports2, module2) {\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 __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toESM2 = /* @__PURE__ */ __name((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,\n      mod\n    )), \"__toESM\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var Collection_exports = {};\n    __export2(Collection_exports, {\n      createCollection: /* @__PURE__ */ __name(() => createCollection2, \"createCollection\")\n    });\n    module2.exports = __toCommonJS2(Collection_exports);\n    var import_compose_refs25 = require_cjs12();\n    var import_constants47 = require_cjs6();\n    var import_core57 = require(\"@tamagui/core\");\n    var import_react52 = __toESM2(require(\"react\"));\n    var import_jsx_runtime65 = require(\"react/jsx-runtime\");\n    function createCollection2(name) {\n      const {\n        Provider: CollectionProviderImpl,\n        useStyledContext: useCollectionContext\n      } = (0, import_core57.createStyledContext)({\n        collectionRef: {\n          current: null\n        },\n        itemMap: /* @__PURE__ */ new Map()\n      }), CollectionProvider = /* @__PURE__ */ __name((props) => {\n        const {\n          __scopeCollection,\n          children\n        } = props, ref = import_react52.default.useRef(null), itemMap = import_react52.default.useRef(/* @__PURE__ */ new Map()).current;\n        return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(CollectionProviderImpl, {\n          scope: __scopeCollection,\n          itemMap,\n          collectionRef: ref,\n          children\n        });\n      }, \"CollectionProvider\");\n      CollectionProvider.displayName = \"CollectionProvider\";\n      const COLLECTION_SLOT_NAME = name + \"CollectionSlot\", CollectionSlot = import_react52.default.forwardRef((props, forwardedRef) => {\n        const {\n          __scopeCollection,\n          children\n        } = props, context2 = useCollectionContext(__scopeCollection), composedRefs = (0, import_compose_refs25.useComposedRefs)(forwardedRef, context2.collectionRef);\n        return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_core57.Slot, {\n          ref: composedRefs,\n          children\n        });\n      });\n      CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n      const ITEM_SLOT_NAME = name + \"CollectionItemSlot\", ITEM_DATA_ATTR = \"data-collection-item\", CollectionItemSlot = import_react52.default.forwardRef((props, forwardedRef) => {\n        const {\n          __scopeCollection,\n          children,\n          ...itemData\n        } = props, ref = import_react52.default.useRef(null), composedRefs = (0, import_compose_refs25.useComposedRefs)(forwardedRef, ref), context2 = useCollectionContext(__scopeCollection);\n        return import_react52.default.useEffect(() => (context2.itemMap.set(ref, {\n          ref,\n          ...itemData\n        }), () => void context2.itemMap.delete(ref))), /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_core57.Slot, {\n          [ITEM_DATA_ATTR]: \"\",\n          ref: composedRefs,\n          children\n        });\n      });\n      CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n      function useCollection2(__scopeCollection) {\n        const context2 = useCollectionContext(__scopeCollection);\n        return import_react52.default.useCallback(() => {\n          if (!import_constants47.isWeb) return [];\n          const collectionNode = context2.collectionRef.current;\n          if (!collectionNode) return [];\n          const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));\n          return Array.from(context2.itemMap.values()).sort((a, b) => orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current));\n        }, [context2.collectionRef, context2.itemMap]);\n      }\n      __name(useCollection2, \"useCollection\");\n      return [{\n        Provider: CollectionProvider,\n        Slot: CollectionSlot,\n        ItemSlot: CollectionItemSlot\n      }, useCollection2];\n    }\n    __name(createCollection2, \"createCollection\");\n  }\n});\n\n// node_modules/@tamagui/collection/dist/cjs/index.cjs\nvar require_cjs13 = __commonJS({\n  \"node_modules/@tamagui/collection/dist/cjs/index.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __reExport2 = /* @__PURE__ */ __name((target, mod, secondTarget) => (__copyProps2(target, mod, \"default\"), secondTarget && __copyProps2(secondTarget, mod, \"default\")), \"__reExport\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var index_exports = {};\n    module2.exports = __toCommonJS2(index_exports);\n    __reExport2(index_exports, require_Collection(), module2.exports);\n  }\n});\n\n// node_modules/@tamagui/stacks/dist/cjs/getElevation.cjs\nvar require_getElevation = __commonJS({\n  \"node_modules/@tamagui/stacks/dist/cjs/getElevation.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var getElevation_exports = {};\n    __export2(getElevation_exports, {\n      getElevation: /* @__PURE__ */ __name(() => getElevation2, \"getElevation\"),\n      getSizedElevation: /* @__PURE__ */ __name(() => getSizedElevation2, \"getSizedElevation\")\n    });\n    module2.exports = __toCommonJS2(getElevation_exports);\n    var import_core57 = require(\"@tamagui/core\");\n    var getElevation2 = /* @__PURE__ */ __name((size4, extras) => {\n      if (!size4) return;\n      const {\n        tokens\n      } = extras, token = tokens.size[size4], sizeNum = (0, import_core57.isVariable)(token) ? +token.val : size4;\n      return getSizedElevation2(sizeNum, extras);\n    }, \"getElevation\");\n    var getSizedElevation2 = /* @__PURE__ */ __name((val, {\n      theme,\n      tokens\n    }) => {\n      let num = 0;\n      if (val === true) {\n        const val2 = (0, import_core57.getVariableValue)(tokens.size.true);\n        typeof val2 == \"number\" ? num = val2 : num = 10;\n      } else num = +val;\n      if (num === 0) return;\n      const [height, shadowRadius] = [Math.round(num / 4 + 1), Math.round(num / 2 + 2)];\n      return {\n        shadowColor: theme.shadowColor,\n        shadowRadius,\n        shadowOffset: {\n          height,\n          width: 0\n        },\n        ...import_core57.isAndroid ? {\n          elevationAndroid: 2 * height\n        } : {}\n      };\n    }, \"getSizedElevation\");\n  }\n});\n\n// node_modules/@tamagui/stacks/dist/cjs/Stacks.cjs\nvar require_Stacks = __commonJS({\n  \"node_modules/@tamagui/stacks/dist/cjs/Stacks.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var Stacks_exports = {};\n    __export2(Stacks_exports, {\n      XStack: /* @__PURE__ */ __name(() => XStack2, \"XStack\"),\n      YStack: /* @__PURE__ */ __name(() => YStack2, \"YStack\"),\n      ZStack: /* @__PURE__ */ __name(() => ZStack2, \"ZStack\"),\n      fullscreenStyle: /* @__PURE__ */ __name(() => fullscreenStyle2, \"fullscreenStyle\")\n    });\n    module2.exports = __toCommonJS2(Stacks_exports);\n    var import_core57 = require(\"@tamagui/core\");\n    var import_getElevation3 = require_getElevation();\n    var fullscreenStyle2 = {\n      position: \"absolute\",\n      top: 0,\n      left: 0,\n      right: 0,\n      bottom: 0\n    };\n    var getInset2 = /* @__PURE__ */ __name((val) => val && typeof val == \"object\" ? val : {\n      top: val,\n      left: val,\n      bottom: val,\n      right: val\n    }, \"getInset\");\n    var variants2 = {\n      fullscreen: {\n        true: fullscreenStyle2\n      },\n      elevation: {\n        \"...size\": import_getElevation3.getElevation,\n        \":number\": import_getElevation3.getElevation\n      },\n      inset: getInset2\n    };\n    var YStack2 = (0, import_core57.styled)(import_core57.View, {\n      flexDirection: \"column\",\n      variants: variants2\n    });\n    YStack2.displayName = \"YStack\";\n    var XStack2 = (0, import_core57.styled)(import_core57.View, {\n      flexDirection: \"row\",\n      variants: variants2\n    });\n    XStack2.displayName = \"XStack\";\n    var ZStack2 = (0, import_core57.styled)(YStack2, {\n      position: \"relative\"\n    }, {\n      neverFlatten: true,\n      isZStack: true\n    });\n    ZStack2.displayName = \"ZStack\";\n  }\n});\n\n// node_modules/@tamagui/get-token/dist/cjs/index.cjs\nvar require_cjs14 = __commonJS({\n  \"node_modules/@tamagui/get-token/dist/cjs/index.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var index_exports = {};\n    __export2(index_exports, {\n      getRadius: /* @__PURE__ */ __name(() => getRadius, \"getRadius\"),\n      getSize: /* @__PURE__ */ __name(() => getSize2, \"getSize\"),\n      getSpace: /* @__PURE__ */ __name(() => getSpace2, \"getSpace\"),\n      getTokenRelative: /* @__PURE__ */ __name(() => getTokenRelative2, \"getTokenRelative\"),\n      stepTokenUpOrDown: /* @__PURE__ */ __name(() => stepTokenUpOrDown2, \"stepTokenUpOrDown\")\n    });\n    module2.exports = __toCommonJS2(index_exports);\n    var import_web21 = require(\"@tamagui/core\");\n    var defaultOptions2 = {\n      shift: 0,\n      bounds: [0]\n    };\n    var getSize2 = /* @__PURE__ */ __name((size4, options) => getTokenRelative2(\"size\", size4, options), \"getSize\");\n    var getSpace2 = /* @__PURE__ */ __name((space, options) => getTokenRelative2(\"space\", space, options), \"getSpace\");\n    var getRadius = /* @__PURE__ */ __name((radius, options) => getTokenRelative2(\"radius\", radius, options), \"getRadius\");\n    var cacheVariables2 = {};\n    var cacheWholeVariables2 = {};\n    var cacheKeys2 = {};\n    var cacheWholeKeys2 = {};\n    var stepTokenUpOrDown2 = /* @__PURE__ */ __name((type, current, options = defaultOptions2) => {\n      const tokens = (0, import_web21.getTokens)({\n        prefixed: true\n      })[type];\n      if (!(type in cacheVariables2)) {\n        cacheKeys2[type] = [], cacheVariables2[type] = [], cacheWholeKeys2[type] = [], cacheWholeVariables2[type] = [];\n        const sorted = Object.keys(tokens).map((k) => tokens[k]).sort((a, b) => a.val - b.val);\n        for (const token of sorted) cacheKeys2[type].push(token.key), cacheVariables2[type].push(token);\n        const sortedExcludingHalfSteps = sorted.filter((x) => !x.key.endsWith(\".5\"));\n        for (const token of sortedExcludingHalfSteps) cacheWholeKeys2[type].push(token.key), cacheWholeVariables2[type].push(token);\n      }\n      const isString = typeof current == \"string\", tokensOrdered = (options.excludeHalfSteps ? isString ? cacheWholeKeys2 : cacheWholeVariables2 : isString ? cacheKeys2 : cacheVariables2)[type], min2 = options.bounds?.[0] ?? 0, max2 = options.bounds?.[1] ?? tokensOrdered.length - 1, currentIndex = tokensOrdered.indexOf(current);\n      let shift4 = options.shift || 0;\n      shift4 && (current === \"$true\" || (0, import_web21.isVariable)(current) && current.name === \"true\") && (shift4 += shift4 > 0 ? 1 : -1);\n      const index3 = Math.min(max2, Math.max(min2, currentIndex + shift4)), found = tokensOrdered[index3];\n      return (typeof found == \"string\" ? tokens[found] : found) || tokens.$true;\n    }, \"stepTokenUpOrDown\");\n    var getTokenRelative2 = stepTokenUpOrDown2;\n  }\n});\n\n// node_modules/@tamagui/get-button-sized/dist/cjs/index.cjs\nvar require_cjs15 = __commonJS({\n  \"node_modules/@tamagui/get-button-sized/dist/cjs/index.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var index_exports = {};\n    __export2(index_exports, {\n      getButtonSized: /* @__PURE__ */ __name(() => getButtonSized2, \"getButtonSized\")\n    });\n    module2.exports = __toCommonJS2(index_exports);\n    var import_get_token16 = require_cjs14();\n    var getButtonSized2 = /* @__PURE__ */ __name((val, {\n      tokens,\n      props\n    }) => {\n      if (!val || props.circular) return;\n      if (typeof val == \"number\") return {\n        paddingHorizontal: val * 0.25,\n        height: val,\n        borderRadius: props.circular ? 1e5 : val * 0.2\n      };\n      const xSize = (0, import_get_token16.getSpace)(val), radiusToken = tokens.radius[val] ?? tokens.radius.$true;\n      return {\n        paddingHorizontal: xSize,\n        height: val,\n        borderRadius: props.circular ? 1e5 : radiusToken\n      };\n    }, \"getButtonSized\");\n  }\n});\n\n// node_modules/@tamagui/stacks/dist/cjs/variants.cjs\nvar require_variants = __commonJS({\n  \"node_modules/@tamagui/stacks/dist/cjs/variants.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var variants_exports = {};\n    __export2(variants_exports, {\n      bordered: /* @__PURE__ */ __name(() => bordered2, \"bordered\"),\n      circular: /* @__PURE__ */ __name(() => circular2, \"circular\"),\n      elevate: /* @__PURE__ */ __name(() => elevate2, \"elevate\"),\n      focusTheme: /* @__PURE__ */ __name(() => focusTheme2, \"focusTheme\"),\n      hoverTheme: /* @__PURE__ */ __name(() => hoverTheme2, \"hoverTheme\"),\n      padded: /* @__PURE__ */ __name(() => padded2, \"padded\"),\n      pressTheme: /* @__PURE__ */ __name(() => pressTheme2, \"pressTheme\"),\n      radiused: /* @__PURE__ */ __name(() => radiused2, \"radiused\")\n    });\n    module2.exports = __toCommonJS2(variants_exports);\n    var import_getElevation3 = require_getElevation();\n    var elevate2 = {\n      true: /* @__PURE__ */ __name((_, extras) => (0, import_getElevation3.getElevation)(extras.props.size, extras), \"true\")\n    };\n    var bordered2 = /* @__PURE__ */ __name((val, {\n      props\n    }) => ({\n      // TODO size it with size in '...size'\n      borderWidth: typeof val == \"number\" ? val : 1,\n      borderColor: \"$borderColor\",\n      ...props.hoverTheme && {\n        hoverStyle: {\n          borderColor: \"$borderColorHover\"\n        }\n      },\n      ...props.pressTheme && {\n        pressStyle: {\n          borderColor: \"$borderColorPress\"\n        }\n      },\n      ...props.focusTheme && {\n        focusStyle: {\n          borderColor: \"$borderColorFocus\"\n        }\n      }\n    }), \"bordered\");\n    var padded2 = {\n      true: /* @__PURE__ */ __name((_, extras) => {\n        const {\n          tokens,\n          props\n        } = extras;\n        return {\n          padding: tokens.space[props.size] || tokens.space.$true\n        };\n      }, \"true\")\n    };\n    var radiused2 = {\n      true: /* @__PURE__ */ __name((_, extras) => {\n        const {\n          tokens,\n          props\n        } = extras;\n        return {\n          borderRadius: tokens.radius[props.size] || tokens.radius.$true\n        };\n      }, \"true\")\n    };\n    var circularStyle2 = {\n      borderRadius: 1e5,\n      padding: 0\n    };\n    var circular2 = {\n      true: /* @__PURE__ */ __name((_, {\n        props,\n        tokens\n      }) => {\n        if (!(\"size\" in props)) return circularStyle2;\n        const size4 = typeof props.size == \"number\" ? props.size : tokens.size[props.size];\n        return {\n          ...circularStyle2,\n          width: size4,\n          height: size4,\n          maxWidth: size4,\n          maxHeight: size4,\n          minWidth: size4,\n          minHeight: size4\n        };\n      }, \"true\")\n    };\n    var hoverTheme2 = {\n      true: {\n        hoverStyle: {\n          backgroundColor: \"$backgroundHover\",\n          borderColor: \"$borderColorHover\"\n        }\n      },\n      false: {}\n    };\n    var pressTheme2 = {\n      true: {\n        cursor: \"pointer\",\n        pressStyle: {\n          backgroundColor: \"$backgroundPress\",\n          borderColor: \"$borderColorPress\"\n        }\n      },\n      false: {}\n    };\n    var focusTheme2 = {\n      true: {\n        focusStyle: {\n          backgroundColor: \"$backgroundFocus\",\n          borderColor: \"$borderColorFocus\"\n        }\n      },\n      false: {}\n    };\n  }\n});\n\n// node_modules/@tamagui/stacks/dist/cjs/SizableStack.cjs\nvar require_SizableStack = __commonJS({\n  \"node_modules/@tamagui/stacks/dist/cjs/SizableStack.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var SizableStack_exports = {};\n    __export2(SizableStack_exports, {\n      SizableStack: /* @__PURE__ */ __name(() => SizableStack2, \"SizableStack\")\n    });\n    module2.exports = __toCommonJS2(SizableStack_exports);\n    var import_core57 = require(\"@tamagui/core\");\n    var import_get_button_sized6 = require_cjs15();\n    var import_Stacks3 = require_Stacks();\n    var import_variants3 = require_variants();\n    var SizableStack2 = (0, import_core57.styled)(import_Stacks3.XStack, {\n      name: \"SizableStack\",\n      variants: {\n        unstyled: {\n          true: {\n            hoverTheme: false,\n            pressTheme: false,\n            focusTheme: false,\n            elevate: false,\n            bordered: false\n          }\n        },\n        hoverTheme: import_variants3.hoverTheme,\n        pressTheme: import_variants3.pressTheme,\n        focusTheme: import_variants3.focusTheme,\n        circular: import_variants3.circular,\n        elevate: import_variants3.elevate,\n        bordered: import_variants3.bordered,\n        size: {\n          \"...size\": /* @__PURE__ */ __name((val, extras) => (0, import_get_button_sized6.getButtonSized)(val, extras), \"...size\")\n        }\n      }\n    });\n  }\n});\n\n// node_modules/@tamagui/stacks/dist/cjs/ThemeableStack.cjs\nvar require_ThemeableStack = __commonJS({\n  \"node_modules/@tamagui/stacks/dist/cjs/ThemeableStack.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var ThemeableStack_exports = {};\n    __export2(ThemeableStack_exports, {\n      ThemeableStack: /* @__PURE__ */ __name(() => ThemeableStack2, \"ThemeableStack\"),\n      themeableVariants: /* @__PURE__ */ __name(() => themeableVariants2, \"themeableVariants\")\n    });\n    module2.exports = __toCommonJS2(ThemeableStack_exports);\n    var import_core57 = require(\"@tamagui/core\");\n    var import_Stacks3 = require_Stacks();\n    var import_variants3 = require_variants();\n    var chromelessStyle2 = {\n      backgroundColor: \"transparent\",\n      borderColor: \"transparent\",\n      shadowColor: \"transparent\",\n      hoverStyle: {\n        borderColor: \"transparent\"\n      }\n    };\n    var themeableVariants2 = {\n      backgrounded: {\n        true: {\n          backgroundColor: \"$background\"\n        }\n      },\n      radiused: import_variants3.radiused,\n      hoverTheme: import_variants3.hoverTheme,\n      pressTheme: import_variants3.pressTheme,\n      focusTheme: import_variants3.focusTheme,\n      circular: import_variants3.circular,\n      padded: import_variants3.padded,\n      elevate: import_variants3.elevate,\n      bordered: import_variants3.bordered,\n      transparent: {\n        true: {\n          backgroundColor: \"transparent\"\n        }\n      },\n      chromeless: {\n        true: chromelessStyle2,\n        all: {\n          ...chromelessStyle2,\n          hoverStyle: chromelessStyle2,\n          pressStyle: chromelessStyle2,\n          focusStyle: chromelessStyle2\n        }\n      }\n    };\n    var ThemeableStack2 = (0, import_core57.styled)(import_Stacks3.YStack, {\n      variants: themeableVariants2\n    });\n  }\n});\n\n// node_modules/@tamagui/stacks/dist/cjs/NestingContext.cjs\nvar require_NestingContext = __commonJS({\n  \"node_modules/@tamagui/stacks/dist/cjs/NestingContext.cjs\"(exports2, module2) {\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 __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toESM2 = /* @__PURE__ */ __name((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,\n      mod\n    )), \"__toESM\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var NestingContext_exports = {};\n    __export2(NestingContext_exports, {\n      ButtonNestingContext: /* @__PURE__ */ __name(() => ButtonNestingContext2, \"ButtonNestingContext\")\n    });\n    module2.exports = __toCommonJS2(NestingContext_exports);\n    var import_react52 = __toESM2(require(\"react\"));\n    var ButtonNestingContext2 = import_react52.default.createContext(false);\n  }\n});\n\n// node_modules/@tamagui/stacks/dist/cjs/index.cjs\nvar require_cjs16 = __commonJS({\n  \"node_modules/@tamagui/stacks/dist/cjs/index.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __reExport2 = /* @__PURE__ */ __name((target, mod, secondTarget) => (__copyProps2(target, mod, \"default\"), secondTarget && __copyProps2(secondTarget, mod, \"default\")), \"__reExport\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var index_exports = {};\n    module2.exports = __toCommonJS2(index_exports);\n    __reExport2(index_exports, require_Stacks(), module2.exports);\n    __reExport2(index_exports, require_SizableStack(), module2.exports);\n    __reExport2(index_exports, require_ThemeableStack(), module2.exports);\n    __reExport2(index_exports, require_NestingContext(), module2.exports);\n  }\n});\n\n// node_modules/@tamagui/get-font-sized/dist/cjs/index.cjs\nvar require_cjs17 = __commonJS({\n  \"node_modules/@tamagui/get-font-sized/dist/cjs/index.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var index_exports = {};\n    __export2(index_exports, {\n      getFontSized: /* @__PURE__ */ __name(() => getFontSized2, \"getFontSized\")\n    });\n    module2.exports = __toCommonJS2(index_exports);\n    var import_constants47 = require_cjs6();\n    var import_core57 = require(\"@tamagui/core\");\n    var getFontSized2 = /* @__PURE__ */ __name((sizeTokenIn = \"$true\", {\n      font,\n      fontFamily,\n      props\n    }) => {\n      if (!font) return {\n        fontSize: sizeTokenIn\n      };\n      const sizeToken = sizeTokenIn === \"$true\" ? getDefaultSizeToken2(font) : sizeTokenIn, style = {}, fontSize = font.size[sizeToken], lineHeight = font.lineHeight?.[sizeToken], fontWeight = font.weight?.[sizeToken], letterSpacing = font.letterSpacing?.[sizeToken], textTransform = font.transform?.[sizeToken], fontStyle = props.fontStyle ?? font.style?.[sizeToken], color = props.color ?? font.color?.[sizeToken];\n      return fontStyle && (style.fontStyle = fontStyle), textTransform && (style.textTransform = textTransform), fontFamily && (style.fontFamily = fontFamily), fontWeight && (style.fontWeight = fontWeight), letterSpacing && (style.letterSpacing = letterSpacing), fontSize && (style.fontSize = fontSize), lineHeight && (style.lineHeight = lineHeight), color && (style.color = color), process.env.NODE_ENV === \"development\" && props.debug && props.debug === \"verbose\" && (console.groupCollapsed(\"  \\u{1F539} getFontSized\", sizeTokenIn, sizeToken), import_constants47.isClient && console.info({\n        style,\n        props,\n        font\n      }), console.groupEnd()), style;\n    }, \"getFontSized\");\n    var cache3 = /* @__PURE__ */ new WeakMap();\n    function getDefaultSizeToken2(font) {\n      if (typeof font == \"object\" && cache3.has(font)) return cache3.get(font);\n      const sizeTokens = \"$true\" in font.size ? font.size : (0, import_core57.getTokens)().size, sizeDefault = sizeTokens.$true, sizeDefaultSpecific = sizeDefault ? Object.keys(sizeTokens).find((x) => x !== \"$true\" && sizeTokens[x].val === sizeDefault.val) : null;\n      return !sizeDefault || !sizeDefaultSpecific ? (process.env.NODE_ENV === \"development\" && console.warn(`No default size is set in your tokens for the \"true\" key, fonts will be inconsistent.\n\n      Fix this by having consistent tokens across fonts and sizes and setting a true key for your size tokens, or\n      set true keys for all your font tokens: \"size\", \"lineHeight\", \"fontStyle\", etc.`), Object.keys(font.size)[3]) : (cache3.set(font, sizeDefaultSpecific), sizeDefaultSpecific);\n    }\n    __name(getDefaultSizeToken2, \"getDefaultSizeToken\");\n  }\n});\n\n// node_modules/@tamagui/text/dist/cjs/SizableText.cjs\nvar require_SizableText = __commonJS({\n  \"node_modules/@tamagui/text/dist/cjs/SizableText.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var SizableText_exports = {};\n    __export2(SizableText_exports, {\n      SizableText: /* @__PURE__ */ __name(() => SizableText2, \"SizableText\")\n    });\n    module2.exports = __toCommonJS2(SizableText_exports);\n    var import_get_font_sized5 = require_cjs17();\n    var import_web21 = require(\"@tamagui/core\");\n    var SizableText2 = (0, import_web21.styled)(import_web21.Text, {\n      name: \"SizableText\",\n      fontFamily: \"$body\",\n      variants: {\n        unstyled: {\n          false: {\n            size: \"$true\",\n            color: \"$color\"\n          }\n        },\n        size: import_get_font_sized5.getFontSized\n      },\n      defaultVariants: {\n        unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n      }\n    });\n    SizableText2.staticConfig.variants.fontFamily = {\n      \"...\": /* @__PURE__ */ __name((_val, extras) => {\n        const sizeProp = extras.props.size, fontSizeProp = extras.props.fontSize, size4 = sizeProp === \"$true\" && fontSizeProp ? fontSizeProp : extras.props.size || \"$true\";\n        return (0, import_get_font_sized5.getFontSized)(size4, extras);\n      }, \"...\")\n    };\n  }\n});\n\n// node_modules/@tamagui/text/dist/cjs/Paragraph.cjs\nvar require_Paragraph = __commonJS({\n  \"node_modules/@tamagui/text/dist/cjs/Paragraph.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var Paragraph_exports = {};\n    __export2(Paragraph_exports, {\n      Paragraph: /* @__PURE__ */ __name(() => Paragraph2, \"Paragraph\")\n    });\n    module2.exports = __toCommonJS2(Paragraph_exports);\n    var import_web21 = require(\"@tamagui/core\");\n    var import_SizableText2 = require_SizableText();\n    var Paragraph2 = (0, import_web21.styled)(import_SizableText2.SizableText, {\n      name: \"Paragraph\",\n      tag: \"p\",\n      userSelect: \"auto\",\n      color: \"$color\",\n      size: \"$true\",\n      whiteSpace: \"normal\"\n    });\n  }\n});\n\n// node_modules/@tamagui/text/dist/cjs/Headings.cjs\nvar require_Headings = __commonJS({\n  \"node_modules/@tamagui/text/dist/cjs/Headings.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var Headings_exports = {};\n    __export2(Headings_exports, {\n      H1: /* @__PURE__ */ __name(() => H12, \"H1\"),\n      H2: /* @__PURE__ */ __name(() => H22, \"H2\"),\n      H3: /* @__PURE__ */ __name(() => H32, \"H3\"),\n      H4: /* @__PURE__ */ __name(() => H42, \"H4\"),\n      H5: /* @__PURE__ */ __name(() => H52, \"H5\"),\n      H6: /* @__PURE__ */ __name(() => H62, \"H6\"),\n      Heading: /* @__PURE__ */ __name(() => Heading2, \"Heading\")\n    });\n    module2.exports = __toCommonJS2(Headings_exports);\n    var import_web21 = require(\"@tamagui/core\");\n    var import_Paragraph2 = require_Paragraph();\n    var Heading2 = (0, import_web21.styled)(import_Paragraph2.Paragraph, {\n      tag: \"span\",\n      name: \"Heading\",\n      accessibilityRole: \"header\",\n      fontFamily: \"$heading\",\n      size: \"$8\",\n      margin: 0\n    });\n    var H12 = (0, import_web21.styled)(Heading2, {\n      name: \"H1\",\n      tag: \"h1\",\n      variants: {\n        unstyled: {\n          false: {\n            size: \"$10\"\n          }\n        }\n      },\n      defaultVariants: {\n        unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n      }\n    });\n    var H22 = (0, import_web21.styled)(Heading2, {\n      name: \"H2\",\n      tag: \"h2\",\n      variants: {\n        unstyled: {\n          false: {\n            size: \"$9\"\n          }\n        }\n      },\n      defaultVariants: {\n        unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n      }\n    });\n    var H32 = (0, import_web21.styled)(Heading2, {\n      name: \"H3\",\n      tag: \"h3\",\n      variants: {\n        unstyled: {\n          false: {\n            size: \"$8\"\n          }\n        }\n      },\n      defaultVariants: {\n        unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n      }\n    });\n    var H42 = (0, import_web21.styled)(Heading2, {\n      name: \"H4\",\n      tag: \"h4\",\n      variants: {\n        unstyled: {\n          false: {\n            size: \"$7\"\n          }\n        }\n      },\n      defaultVariants: {\n        unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n      }\n    });\n    var H52 = (0, import_web21.styled)(Heading2, {\n      name: \"H5\",\n      tag: \"h5\",\n      variants: {\n        unstyled: {\n          false: {\n            size: \"$6\"\n          }\n        }\n      },\n      defaultVariants: {\n        unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n      }\n    });\n    var H62 = (0, import_web21.styled)(Heading2, {\n      name: \"H6\",\n      tag: \"h6\",\n      variants: {\n        unstyled: {\n          false: {\n            size: \"$5\"\n          }\n        }\n      },\n      defaultVariants: {\n        unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n      }\n    });\n  }\n});\n\n// node_modules/@tamagui/text/dist/cjs/wrapChildrenInText.cjs\nvar require_wrapChildrenInText = __commonJS({\n  \"node_modules/@tamagui/text/dist/cjs/wrapChildrenInText.cjs\"(exports2, module2) {\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 __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toESM2 = /* @__PURE__ */ __name((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,\n      mod\n    )), \"__toESM\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var wrapChildrenInText_exports = {};\n    __export2(wrapChildrenInText_exports, {\n      wrapChildrenInText: /* @__PURE__ */ __name(() => wrapChildrenInText2, \"wrapChildrenInText\")\n    });\n    module2.exports = __toCommonJS2(wrapChildrenInText_exports);\n    var import_react52 = __toESM2(require(\"react\"));\n    var import_jsx_runtime65 = (\n      // so \"data-disable-theme\" is a hack to fix themeInverse, don't ask me why\n      require(\"react/jsx-runtime\")\n    );\n    function wrapChildrenInText2(TextComponent, propsIn, extraProps) {\n      const {\n        children,\n        textProps,\n        size: size4,\n        noTextWrap,\n        color,\n        fontFamily,\n        fontSize,\n        fontWeight,\n        letterSpacing,\n        textAlign,\n        fontStyle,\n        maxFontSizeMultiplier\n      } = propsIn;\n      if (noTextWrap || !children) return [children];\n      const props = {\n        ...extraProps\n      };\n      return color && (props.color = color), fontFamily && (props.fontFamily = fontFamily), fontSize && (props.fontSize = fontSize), fontWeight && (props.fontWeight = fontWeight), letterSpacing && (props.letterSpacing = letterSpacing), textAlign && (props.textAlign = textAlign), size4 && (props.size = size4), fontStyle && (props.fontStyle = fontStyle), maxFontSizeMultiplier && (props.maxFontSizeMultiplier = maxFontSizeMultiplier), import_react52.default.Children.toArray(children).map((child, index3) => typeof child == \"string\" ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(TextComponent, {\n        ...props,\n        ...textProps,\n        children: child\n      }, index3) : child);\n    }\n    __name(wrapChildrenInText2, \"wrapChildrenInText\");\n  }\n});\n\n// node_modules/@tamagui/text/dist/cjs/types.cjs\nvar require_types3 = __commonJS({\n  \"node_modules/@tamagui/text/dist/cjs/types.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var types_exports = {};\n    module2.exports = __toCommonJS2(types_exports);\n  }\n});\n\n// node_modules/@tamagui/text/dist/cjs/index.cjs\nvar require_cjs18 = __commonJS({\n  \"node_modules/@tamagui/text/dist/cjs/index.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __reExport2 = /* @__PURE__ */ __name((target, mod, secondTarget) => (__copyProps2(target, mod, \"default\"), secondTarget && __copyProps2(secondTarget, mod, \"default\")), \"__reExport\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var index_exports = {};\n    module2.exports = __toCommonJS2(index_exports);\n    __reExport2(index_exports, require_SizableText(), module2.exports);\n    __reExport2(index_exports, require_Paragraph(), module2.exports);\n    __reExport2(index_exports, require_Headings(), module2.exports);\n    __reExport2(index_exports, require_wrapChildrenInText(), module2.exports);\n    __reExport2(index_exports, require_types3(), module2.exports);\n  }\n});\n\n// node_modules/@tamagui/use-direction/dist/cjs/useDirection.cjs\nvar require_useDirection = __commonJS({\n  \"node_modules/@tamagui/use-direction/dist/cjs/useDirection.cjs\"(exports2, module2) {\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 __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __toESM2 = /* @__PURE__ */ __name((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,\n      mod\n    )), \"__toESM\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var useDirection_exports = {};\n    __export2(useDirection_exports, {\n      DirectionProvider: /* @__PURE__ */ __name(() => DirectionProvider, \"DirectionProvider\"),\n      Provider: /* @__PURE__ */ __name(() => Provider, \"Provider\"),\n      useDirection: /* @__PURE__ */ __name(() => useDirection2, \"useDirection\")\n    });\n    module2.exports = __toCommonJS2(useDirection_exports);\n    var React75 = __toESM2(require(\"react\"));\n    var import_jsx_runtime65 = require(\"react/jsx-runtime\");\n    var DirectionContext2 = React75.createContext(void 0);\n    var DirectionProvider = /* @__PURE__ */ __name((props) => {\n      const {\n        dir,\n        children\n      } = props;\n      return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(DirectionContext2.Provider, {\n        value: dir,\n        children\n      });\n    }, \"DirectionProvider\");\n    function useDirection2(localDir) {\n      const globalDir = React75.useContext(DirectionContext2);\n      return localDir || globalDir || \"ltr\";\n    }\n    __name(useDirection2, \"useDirection\");\n    var Provider = DirectionProvider;\n  }\n});\n\n// node_modules/@tamagui/use-direction/dist/cjs/index.cjs\nvar require_cjs19 = __commonJS({\n  \"node_modules/@tamagui/use-direction/dist/cjs/index.cjs\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\") for (let key of __getOwnPropNames2(from)) !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {\n        get: /* @__PURE__ */ __name(() => from[key], \"get\"),\n        enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n      });\n      return to;\n    }, \"__copyProps\");\n    var __reExport2 = /* @__PURE__ */ __name((target, mod, secondTarget) => (__copyProps2(target, mod, \"default\"), secondTarget && __copyProps2(secondTarget, mod, \"default\")), \"__reExport\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod), \"__toCommonJS\");\n    var index_exports = {};\n    module2.exports = __toCommonJS2(index_exports);\n    __reExport2(index_exports, require_useDirection(), module2.exports);\n  }\n});\n\n// node_modules/@tamagui/accordion/dist/cjs/Accordion.js\nvar require_Accordion = __commonJS({\n  \"node_modules/@tamagui/accordion/dist/cjs/Accordion.js\"(exports2, module2) {\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 __export2 = /* @__PURE__ */ __name((target, all) => {\n      for (var name in all)\n        __defProp2(target, name, { get: all[name], enumerable: true });\n    }, \"__export\");\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\")\n        for (let key of __getOwnPropNames2(from))\n          !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: /* @__PURE__ */ __name(() => from[key], \"get\"), enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });\n      return to;\n    }, \"__copyProps\");\n    var __toESM2 = /* @__PURE__ */ __name((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\", { value: mod, enumerable: true }) : target,\n      mod\n    )), \"__toESM\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", { value: true }), mod), \"__toCommonJS\");\n    var Accordion_exports = {};\n    __export2(Accordion_exports, {\n      Accordion: /* @__PURE__ */ __name(() => Accordion, \"Accordion\")\n    });\n    module2.exports = __toCommonJS2(Accordion_exports);\n    var import_collapsible = require_cjs11();\n    var import_collection2 = require_cjs13();\n    var import_compose_refs25 = require_cjs12();\n    var import_constants47 = require_cjs6();\n    var import_helpers29 = require_cjs7();\n    var import_stacks27 = require_cjs16();\n    var import_text9 = require_cjs18();\n    var import_use_controllable_state16 = require_cjs10();\n    var import_use_direction5 = require_cjs19();\n    var import_web21 = require(\"@tamagui/core\");\n    var React75 = __toESM2(require(\"react\"));\n    var import_jsx_runtime65 = require(\"react/jsx-runtime\");\n    var ACCORDION_NAME = \"Accordion\";\n    var ACCORDION_KEYS = [\"Home\", \"End\", \"ArrowDown\", \"ArrowUp\", \"ArrowLeft\", \"ArrowRight\"];\n    var [Collection2, useCollection2] = (0, import_collection2.createCollection)(ACCORDION_NAME);\n    var ACCORDION_CONTEXT = \"Accordion\";\n    var AccordionComponent = React75.forwardRef((props, forwardedRef) => {\n      const { type, ...accordionProps } = props, singleProps = accordionProps, multipleProps = accordionProps;\n      return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Collection2.Provider, { __scopeCollection: props.__scopeAccordion || ACCORDION_CONTEXT, children: type === \"multiple\" ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(AccordionImplMultiple, { ...multipleProps, ref: forwardedRef }) : /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(AccordionImplSingle, { ...singleProps, ref: forwardedRef }) });\n    });\n    AccordionComponent.displayName = ACCORDION_NAME;\n    AccordionComponent.propTypes = {\n      type(props) {\n        const value = props.value || props.defaultValue;\n        return props.type && ![\"single\", \"multiple\"].includes(props.type) ? new Error(\n          \"Invalid prop `type` supplied to `Accordion`. Expected one of `single | multiple`.\"\n        ) : props.type === \"multiple\" && typeof value == \"string\" ? new Error(\n          \"Invalid prop `type` supplied to `Accordion`. Expected `single` when `defaultValue` or `value` is type `string`.\"\n        ) : props.type === \"single\" && Array.isArray(value) ? new Error(\n          \"Invalid prop `type` supplied to `Accordion`. Expected `multiple` when `defaultValue` or `value` is type `string[]`.\"\n        ) : null;\n      }\n    };\n    var { Provider: AccordionValueProvider, useStyledContext: useAccordionValueContext } = (0, import_web21.createStyledContext)();\n    var {\n      Provider: AccordionCollapsibleProvider,\n      useStyledContext: useAccordionCollapsibleContext\n    } = (0, import_web21.createStyledContext)();\n    var AccordionImplSingle = React75.forwardRef((props, forwardedRef) => {\n      const {\n        value: valueProp,\n        defaultValue: defaultValue2,\n        control,\n        onValueChange = /* @__PURE__ */ __name(() => {\n        }, \"onValueChange\"),\n        collapsible = false,\n        ...accordionSingleProps\n      } = props, [value, setValue] = (0, import_use_controllable_state16.useControllableState)({\n        prop: valueProp,\n        defaultProp: defaultValue2 || \"\",\n        onChange: onValueChange\n      });\n      return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(\n        AccordionValueProvider,\n        {\n          scope: props.__scopeAccordion,\n          value: value ? [value] : [],\n          onItemOpen: setValue,\n          onItemClose: React75.useCallback(\n            () => collapsible && setValue(\"\"),\n            [setValue, collapsible]\n          ),\n          children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(\n            AccordionCollapsibleProvider,\n            {\n              scope: props.__scopeAccordion,\n              collapsible,\n              children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(AccordionImpl, { ...accordionSingleProps, ref: forwardedRef })\n            }\n          )\n        }\n      );\n    });\n    var AccordionImplMultiple = React75.forwardRef((props, forwardedRef) => {\n      const {\n        value: valueProp,\n        defaultValue: defaultValue2,\n        onValueChange = /* @__PURE__ */ __name(() => {\n        }, \"onValueChange\"),\n        ...accordionMultipleProps\n      } = props, [value, setValue] = (0, import_use_controllable_state16.useControllableState)({\n        prop: valueProp,\n        defaultProp: defaultValue2 || [],\n        onChange: onValueChange\n      }), handleItemOpen = React75.useCallback(\n        (itemValue) => setValue((prevValue = []) => [...prevValue, itemValue]),\n        [setValue]\n      ), handleItemClose = React75.useCallback(\n        (itemValue) => setValue((prevValue = []) => prevValue.filter((value2) => value2 !== itemValue)),\n        [setValue]\n      );\n      return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(\n        AccordionValueProvider,\n        {\n          scope: props.__scopeAccordion,\n          value: value || [],\n          onItemOpen: handleItemOpen,\n          onItemClose: handleItemClose,\n          children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(AccordionCollapsibleProvider, { scope: props.__scopeAccordion, collapsible: true, children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(AccordionImpl, { ...accordionMultipleProps, ref: forwardedRef }) })\n        }\n      );\n    });\n    var { Provider: AccordionImplProvider, useStyledContext: useAccordionContext } = (0, import_web21.createStyledContext)();\n    var AccordionImpl = React75.forwardRef(\n      (props, forwardedRef) => {\n        const {\n          __scopeAccordion,\n          disabled,\n          dir,\n          orientation = \"vertical\",\n          ...accordionProps\n        } = props, accordionRef = React75.useRef(null), composedRef = (0, import_compose_refs25.useComposedRefs)(accordionRef, forwardedRef), getItems = useCollection2(__scopeAccordion || ACCORDION_CONTEXT), isDirectionLTR = (0, import_use_direction5.useDirection)(dir) === \"ltr\", handleKeyDown = (0, import_helpers29.composeEventHandlers)(\n          props.onKeyDown,\n          (event) => {\n            if (!ACCORDION_KEYS.includes(event.key)) return;\n            const target = event.target, triggerCollection = getItems().filter((item) => !item.ref.current?.disabled), triggerIndex = triggerCollection.findIndex(\n              (item) => item.ref.current === target\n            ), triggerCount = triggerCollection.length;\n            if (triggerIndex === -1) return;\n            event.preventDefault();\n            let nextIndex = triggerIndex;\n            const homeIndex = 0, endIndex = triggerCount - 1, moveNext = /* @__PURE__ */ __name(() => {\n              nextIndex = triggerIndex + 1, nextIndex > endIndex && (nextIndex = homeIndex);\n            }, \"moveNext\"), movePrev = /* @__PURE__ */ __name(() => {\n              nextIndex = triggerIndex - 1, nextIndex < homeIndex && (nextIndex = endIndex);\n            }, \"movePrev\");\n            switch (event.key) {\n              case \"Home\":\n                nextIndex = homeIndex;\n                break;\n              case \"End\":\n                nextIndex = endIndex;\n                break;\n              case \"ArrowRight\":\n                orientation === \"horizontal\" && (isDirectionLTR ? moveNext() : movePrev());\n                break;\n              case \"ArrowDown\":\n                orientation === \"vertical\" && moveNext();\n                break;\n              case \"ArrowLeft\":\n                orientation === \"horizontal\" && (isDirectionLTR ? movePrev() : moveNext());\n                break;\n              case \"ArrowUp\":\n                orientation === \"vertical\" && movePrev();\n                break;\n            }\n            const clampedIndex = nextIndex % triggerCount;\n            triggerCollection[clampedIndex].ref.current?.focus();\n          }\n        );\n        return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(\n          AccordionImplProvider,\n          {\n            scope: __scopeAccordion,\n            disabled,\n            direction: dir,\n            orientation,\n            children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Collection2.Slot, { __scopeCollection: __scopeAccordion || ACCORDION_CONTEXT, children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(\n              import_stacks27.YStack,\n              {\n                \"data-orientation\": orientation,\n                ref: composedRef,\n                ...accordionProps,\n                ...import_constants47.isWeb && {\n                  onKeyDown: handleKeyDown\n                }\n              }\n            ) })\n          }\n        );\n      }\n    );\n    var ITEM_NAME3 = \"AccordionItem\";\n    var { Provider: AccordionItemProvider, useStyledContext: useAccordionItemContext } = (0, import_web21.createStyledContext)();\n    var AccordionItem = React75.forwardRef(\n      (props, forwardedRef) => {\n        const { __scopeAccordion, value, ...accordionItemProps } = props, accordionContext = useAccordionContext(__scopeAccordion), valueContext = useAccordionValueContext(__scopeAccordion), triggerId = React75.useId(), open = value && valueContext.value.includes(value) || false, disabled = accordionContext.disabled || props.disabled;\n        return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(\n          AccordionItemProvider,\n          {\n            scope: __scopeAccordion,\n            open,\n            disabled,\n            triggerId,\n            children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(\n              import_collapsible.Collapsible,\n              {\n                \"data-orientation\": accordionContext.orientation,\n                \"data-state\": open ? \"open\" : \"closed\",\n                __scopeCollapsible: __scopeAccordion || ACCORDION_CONTEXT,\n                ...accordionItemProps,\n                ref: forwardedRef,\n                disabled,\n                open,\n                onOpenChange: /* @__PURE__ */ __name((open2) => {\n                  open2 ? valueContext.onItemOpen(value) : valueContext.onItemClose(value);\n                }, \"onOpenChange\")\n              }\n            )\n          }\n        );\n      }\n    );\n    AccordionItem.displayName = ITEM_NAME3;\n    var HEADER_NAME = \"AccordionHeader\";\n    var AccordionHeader = React75.forwardRef(\n      (props, forwardedRef) => {\n        const { __scopeAccordion, ...headerProps } = props, accordionContext = useAccordionContext(__scopeAccordion), itemContext = useAccordionItemContext(__scopeAccordion);\n        return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(\n          import_text9.H1,\n          {\n            \"data-orientation\": accordionContext.orientation,\n            \"data-state\": getState6(itemContext.open),\n            \"data-disabled\": itemContext.disabled ? \"\" : void 0,\n            ...headerProps,\n            ref: forwardedRef\n          }\n        );\n      }\n    );\n    AccordionHeader.displayName = HEADER_NAME;\n    var AccordionTriggerFrame = (0, import_web21.styled)(import_collapsible.Collapsible.Trigger, {\n      variants: {\n        unstyled: {\n          false: {\n            cursor: \"pointer\",\n            backgroundColor: \"$background\",\n            borderColor: \"$borderColor\",\n            borderWidth: 1,\n            padding: \"$true\",\n            hoverStyle: {\n              backgroundColor: \"$backgroundHover\"\n            },\n            focusStyle: {\n              backgroundColor: \"$backgroundFocus\"\n            },\n            pressStyle: {\n              backgroundColor: \"$backgroundPress\"\n            }\n          }\n        }\n      },\n      defaultVariants: {\n        unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n      }\n    });\n    var AccordionTrigger = AccordionTriggerFrame.styleable(function(props, forwardedRef) {\n      const { __scopeAccordion, ...triggerProps } = props, accordionContext = useAccordionContext(__scopeAccordion), itemContext = useAccordionItemContext(__scopeAccordion), collapsibleContext = useAccordionCollapsibleContext(__scopeAccordion);\n      return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Collection2.ItemSlot, { __scopeCollection: __scopeAccordion || ACCORDION_CONTEXT, children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(\n        AccordionTriggerFrame,\n        {\n          __scopeCollapsible: __scopeAccordion || ACCORDION_CONTEXT,\n          \"aria-disabled\": itemContext.open && !collapsibleContext.collapsible || void 0,\n          \"data-orientation\": accordionContext.orientation,\n          id: itemContext.triggerId,\n          ...triggerProps,\n          ref: forwardedRef\n        }\n      ) });\n    });\n    var AccordionContentFrame = (0, import_web21.styled)(import_collapsible.Collapsible.Content, {\n      variants: {\n        unstyled: {\n          false: {\n            padding: \"$true\",\n            backgroundColor: \"$background\"\n          }\n        }\n      },\n      defaultVariants: {\n        unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n      }\n    });\n    var AccordionContent = AccordionContentFrame.styleable(function(props, forwardedRef) {\n      const { __scopeAccordion, ...contentProps } = props, accordionContext = useAccordionContext(__scopeAccordion), itemContext = useAccordionItemContext(__scopeAccordion);\n      return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(\n        AccordionContentFrame,\n        {\n          role: \"region\",\n          \"aria-labelledby\": itemContext.triggerId,\n          \"data-orientation\": accordionContext.orientation,\n          __scopeCollapsible: __scopeAccordion || ACCORDION_CONTEXT,\n          ...contentProps,\n          ref: forwardedRef\n        }\n      );\n    });\n    var HeightAnimator = import_web21.View.styleable((props, ref) => {\n      const itemContext = useAccordionItemContext(), { children, ...rest } = props, [height, setHeight] = React75.useState(0), onLayout = (0, import_web21.useEvent)(({ nativeEvent }) => {\n        nativeEvent.layout.height && setHeight(nativeEvent.layout.height);\n      });\n      return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_web21.View, { ref, height: itemContext.open ? height : 0, ...rest, children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(\n        import_web21.View,\n        {\n          position: \"absolute\",\n          width: \"100%\",\n          onLayout,\n          children\n        }\n      ) });\n    });\n    function getState6(open) {\n      return open ? \"open\" : \"closed\";\n    }\n    __name(getState6, \"getState\");\n    var Accordion = (0, import_helpers29.withStaticProperties)(AccordionComponent, {\n      Trigger: AccordionTrigger,\n      Header: AccordionHeader,\n      Content: AccordionContent,\n      Item: AccordionItem,\n      HeightAnimator\n    });\n  }\n});\n\n// node_modules/@tamagui/accordion/dist/cjs/index.js\nvar require_cjs20 = __commonJS({\n  \"node_modules/@tamagui/accordion/dist/cjs/index.js\"(exports2, module2) {\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {\n      if (from && typeof from == \"object\" || typeof from == \"function\")\n        for (let key of __getOwnPropNames2(from))\n          !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: /* @__PURE__ */ __name(() => from[key], \"get\"), enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });\n      return to;\n    }, \"__copyProps\");\n    var __reExport2 = /* @__PURE__ */ __name((target, mod, secondTarget) => (__copyProps2(target, mod, \"default\"), secondTarget && __copyProps2(secondTarget, mod, \"default\")), \"__reExport\");\n    var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, \"__esModule\", { value: true }), mod), \"__toCommonJS\");\n    var index_exports = {};\n    module2.exports = __toCommonJS2(index_exports);\n    __reExport2(index_exports, require_Accordion(), module2.exports);\n  }\n});\n\n// node_modules/aria-hidden/dist/es5/index.js\nvar require_es5 = __commonJS({\n  \"node_modules/aria-hidden/dist/es5/index.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    exports2.suppressOthers = exports2.supportsInert = exports2.inertOthers = exports2.hideOthers = void 0;\n    var getDefaultParent = /* @__PURE__ */ __name(function(originalTarget) {\n      if (typeof document === \"undefined\") {\n        return null;\n      }\n      var sampleTarget = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget;\n      return sampleTarget.ownerDocument.body;\n    }, \"getDefaultParent\");\n    var counterMap2 = /* @__PURE__ */ new WeakMap();\n    var uncontrolledNodes = /* @__PURE__ */ new WeakMap();\n    var markerMap2 = {};\n    var lockCount2 = 0;\n    var unwrapHost2 = /* @__PURE__ */ __name(function(node) {\n      return node && (node.host || unwrapHost2(node.parentNode));\n    }, \"unwrapHost\");\n    var correctTargets = /* @__PURE__ */ __name(function(parent, targets) {\n      return targets.map(function(target) {\n        if (parent.contains(target)) {\n          return target;\n        }\n        var correctedTarget = unwrapHost2(target);\n        if (correctedTarget && parent.contains(correctedTarget)) {\n          return correctedTarget;\n        }\n        console.error(\"aria-hidden\", target, \"in not contained inside\", parent, \". Doing nothing\");\n        return null;\n      }).filter(function(x) {\n        return Boolean(x);\n      });\n    }, \"correctTargets\");\n    var applyAttributeToOthers2 = /* @__PURE__ */ __name(function(originalTarget, parentNode, markerName, controlAttribute) {\n      var targets = correctTargets(parentNode, Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n      if (!markerMap2[markerName]) {\n        markerMap2[markerName] = /* @__PURE__ */ new WeakMap();\n      }\n      var markerCounter = markerMap2[markerName];\n      var hiddenNodes = [];\n      var elementsToKeep = /* @__PURE__ */ new Set();\n      var elementsToStop = new Set(targets);\n      var keep = /* @__PURE__ */ __name(function(el) {\n        if (!el || elementsToKeep.has(el)) {\n          return;\n        }\n        elementsToKeep.add(el);\n        keep(el.parentNode);\n      }, \"keep\");\n      targets.forEach(keep);\n      var deep = /* @__PURE__ */ __name(function(parent) {\n        if (!parent || elementsToStop.has(parent)) {\n          return;\n        }\n        Array.prototype.forEach.call(parent.children, function(node) {\n          if (elementsToKeep.has(node)) {\n            deep(node);\n          } else {\n            try {\n              var attr2 = node.getAttribute(controlAttribute);\n              var alreadyHidden = attr2 !== null && attr2 !== \"false\";\n              var counterValue = (counterMap2.get(node) || 0) + 1;\n              var markerValue = (markerCounter.get(node) || 0) + 1;\n              counterMap2.set(node, counterValue);\n              markerCounter.set(node, markerValue);\n              hiddenNodes.push(node);\n              if (counterValue === 1 && alreadyHidden) {\n                uncontrolledNodes.set(node, true);\n              }\n              if (markerValue === 1) {\n                node.setAttribute(markerName, \"true\");\n              }\n              if (!alreadyHidden) {\n                node.setAttribute(controlAttribute, \"true\");\n              }\n            } catch (e) {\n              console.error(\"aria-hidden: cannot operate on \", node, e);\n            }\n          }\n        });\n      }, \"deep\");\n      deep(parentNode);\n      elementsToKeep.clear();\n      lockCount2++;\n      return function() {\n        hiddenNodes.forEach(function(node) {\n          var counterValue = counterMap2.get(node) - 1;\n          var markerValue = markerCounter.get(node) - 1;\n          counterMap2.set(node, counterValue);\n          markerCounter.set(node, markerValue);\n          if (!counterValue) {\n            if (!uncontrolledNodes.has(node)) {\n              node.removeAttribute(controlAttribute);\n            }\n            uncontrolledNodes.delete(node);\n          }\n          if (!markerValue) {\n            node.removeAttribute(markerName);\n          }\n        });\n        lockCount2--;\n        if (!lockCount2) {\n          counterMap2 = /* @__PURE__ */ new WeakMap();\n          counterMap2 = /* @__PURE__ */ new WeakMap();\n          uncontrolledNodes = /* @__PURE__ */ new WeakMap();\n          markerMap2 = {};\n        }\n      };\n    }, \"applyAttributeToOthers\");\n    var hideOthers2 = /* @__PURE__ */ __name(function(originalTarget, parentNode, markerName) {\n      if (markerName === void 0) {\n        markerName = \"data-aria-hidden\";\n      }\n      var targets = Array.from(Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n      var activeParentNode = parentNode || getDefaultParent(originalTarget);\n      if (!activeParentNode) {\n        return function() {\n          return null;\n        };\n      }\n      targets.push.apply(targets, Array.from(activeParentNode.querySelectorAll(\"[aria-live]\")));\n      return applyAttributeToOthers2(targets, activeParentNode, markerName, \"aria-hidden\");\n    }, \"hideOthers\");\n    exports2.hideOthers = hideOthers2;\n    var inertOthers = /* @__PURE__ */ __name(function(originalTarget, parentNode, markerName) {\n      if (markerName === void 0) {\n        markerName = \"data-inert-ed\";\n      }\n      var activeParentNode = parentNode || getDefaultParent(originalTarget);\n      if (!activeParentNode) {\n        return function() {\n          return null;\n        };\n      }\n      return applyAttributeToOthers2(originalTarget, activeParentNode, markerName, \"inert\");\n    }, \"inertOthers\");\n    exports2.inertOthers = inertOthers;\n    var supportsInert2 = /* @__PURE__ */ __name(function() {\n      return typeof HTMLElement !== \"undefined\" && HTMLElement.prototype.hasOwnProperty(\"inert\");\n    }, \"supportsInert\");\n    exports2.supportsInert = supportsInert2;\n    var suppressOthers = /* @__PURE__ */ __name(function(originalTarget, parentNode, markerName) {\n      if (markerName === void 0) {\n        markerName = \"data-suppressed\";\n      }\n      return ((0, exports2.supportsInert)() ? exports2.inertOthers : exports2.hideOthers)(originalTarget, parentNode, markerName);\n    }, \"suppressOthers\");\n    exports2.suppressOthers = suppressOthers;\n  }\n});\n\n// node_modules/tslib/tslib.es6.mjs\nvar tslib_es6_exports = {};\n__export(tslib_es6_exports, {\n  __addDisposableResource: () => __addDisposableResource,\n  __assign: () => __assign,\n  __asyncDelegator: () => __asyncDelegator,\n  __asyncGenerator: () => __asyncGenerator,\n  __asyncValues: () => __asyncValues,\n  __await: () => __await,\n  __awaiter: () => __awaiter,\n  __classPrivateFieldGet: () => __classPrivateFieldGet,\n  __classPrivateFieldIn: () => __classPrivateFieldIn,\n  __classPrivateFieldSet: () => __classPrivateFieldSet,\n  __createBinding: () => __createBinding,\n  __decorate: () => __decorate,\n  __disposeResources: () => __disposeResources,\n  __esDecorate: () => __esDecorate,\n  __exportStar: () => __exportStar,\n  __extends: () => __extends,\n  __generator: () => __generator,\n  __importDefault: () => __importDefault,\n  __importStar: () => __importStar,\n  __makeTemplateObject: () => __makeTemplateObject,\n  __metadata: () => __metadata,\n  __param: () => __param,\n  __propKey: () => __propKey,\n  __read: () => __read,\n  __rest: () => __rest,\n  __rewriteRelativeImportExtension: () => __rewriteRelativeImportExtension,\n  __runInitializers: () => __runInitializers,\n  __setFunctionName: () => __setFunctionName,\n  __spread: () => __spread,\n  __spreadArray: () => __spreadArray,\n  __spreadArrays: () => __spreadArrays,\n  __values: () => __values,\n  default: () => tslib_es6_default\n});\nfunction __extends(d, b) {\n  if (typeof b !== \"function\" && b !== null)\n    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  __name(__, \"__\");\n  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\nfunction __rest(s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n    t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n    for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n      if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n        t[p[i]] = s[p[i]];\n    }\n  return t;\n}\nfunction __decorate(decorators, target, key, desc) {\n  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n  return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nfunction __param(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n}\nfunction __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n  function accept(f) {\n    if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\");\n    return f;\n  }\n  __name(accept, \"accept\");\n  var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n  var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n  var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n  var _, done = false;\n  for (var i = decorators.length - 1; i >= 0; i--) {\n    var context2 = {};\n    for (var p in contextIn) context2[p] = p === \"access\" ? {} : contextIn[p];\n    for (var p in contextIn.access) context2.access[p] = contextIn.access[p];\n    context2.addInitializer = function(f) {\n      if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\");\n      extraInitializers.push(accept(f || null));\n    };\n    var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context2);\n    if (kind === \"accessor\") {\n      if (result === void 0) continue;\n      if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n      if (_ = accept(result.get)) descriptor.get = _;\n      if (_ = accept(result.set)) descriptor.set = _;\n      if (_ = accept(result.init)) initializers.unshift(_);\n    } else if (_ = accept(result)) {\n      if (kind === \"field\") initializers.unshift(_);\n      else descriptor[key] = _;\n    }\n  }\n  if (target) Object.defineProperty(target, contextIn.name, descriptor);\n  done = true;\n}\nfunction __runInitializers(thisArg, initializers, value) {\n  var useValue = arguments.length > 2;\n  for (var i = 0; i < initializers.length; i++) {\n    value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n  }\n  return useValue ? value : void 0;\n}\nfunction __propKey(x) {\n  return typeof x === \"symbol\" ? x : \"\".concat(x);\n}\nfunction __setFunctionName(f, name, prefix) {\n  if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n  return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n}\nfunction __metadata(metadataKey, metadataValue) {\n  if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\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  __name(adopt, \"adopt\");\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    __name(fulfilled, \"fulfilled\");\n    function rejected(value) {\n      try {\n        step(generator[\"throw\"](value));\n      } catch (e) {\n        reject(e);\n      }\n    }\n    __name(rejected, \"rejected\");\n    function step(result) {\n      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n    }\n    __name(step, \"step\");\n    step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n}\nfunction __generator(thisArg, body) {\n  var _ = { label: 0, sent: /* @__PURE__ */ __name(function() {\n    if (t[0] & 1) throw t[1];\n    return t[1];\n  }, \"sent\"), trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n  return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), 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  __name(verb, \"verb\");\n  function step(op) {\n    if (f) throw new TypeError(\"Generator is already executing.\");\n    while (g && (g = 0, op[0] && (_ = 0)), _) 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 { value: op[1], done: false };\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 { value: op[0] ? op[1] : void 0, done: true };\n  }\n  __name(step, \"step\");\n}\nfunction __exportStar(m, o) {\n  for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\nfunction __values(o) {\n  var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n  if (m) return m.call(o);\n  if (o && typeof o.length === \"number\") return {\n    next: /* @__PURE__ */ __name(function() {\n      if (o && i >= o.length) o = void 0;\n      return { value: o && o[i++], done: !o };\n    }, \"next\")\n  };\n  throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nfunction __read(o, n) {\n  var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n  if (!m) return o;\n  var i = m.call(o), r, ar = [], e;\n  try {\n    while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n  } catch (error2) {\n    e = { error: error2 };\n  } finally {\n    try {\n      if (r && !r.done && (m = i[\"return\"])) m.call(i);\n    } finally {\n      if (e) throw e.error;\n    }\n  }\n  return ar;\n}\nfunction __spread() {\n  for (var ar = [], i = 0; i < arguments.length; i++)\n    ar = ar.concat(__read(arguments[i]));\n  return ar;\n}\nfunction __spreadArrays() {\n  for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n  for (var r = Array(s), k = 0, i = 0; i < il; i++)\n    for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n      r[k] = a[j];\n  return r;\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 __await(v) {\n  return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nfunction __asyncGenerator(thisArg, _arguments, generator) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var g = generator.apply(thisArg, _arguments || []), i, q = [];\n  return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function() {\n    return this;\n  }, i;\n  function awaitReturn(f) {\n    return function(v) {\n      return Promise.resolve(v).then(f, reject);\n    };\n  }\n  __name(awaitReturn, \"awaitReturn\");\n  function verb(n, f) {\n    if (g[n]) {\n      i[n] = function(v) {\n        return new Promise(function(a, b) {\n          q.push([n, v, a, b]) > 1 || resume(n, v);\n        });\n      };\n      if (f) i[n] = f(i[n]);\n    }\n  }\n  __name(verb, \"verb\");\n  function resume(n, v) {\n    try {\n      step(g[n](v));\n    } catch (e) {\n      settle(q[0][3], e);\n    }\n  }\n  __name(resume, \"resume\");\n  function step(r) {\n    r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n  }\n  __name(step, \"step\");\n  function fulfill(value) {\n    resume(\"next\", value);\n  }\n  __name(fulfill, \"fulfill\");\n  function reject(value) {\n    resume(\"throw\", value);\n  }\n  __name(reject, \"reject\");\n  function settle(f, v) {\n    if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n  }\n  __name(settle, \"settle\");\n}\nfunction __asyncDelegator(o) {\n  var i, p;\n  return i = {}, verb(\"next\"), verb(\"throw\", function(e) {\n    throw e;\n  }), verb(\"return\"), i[Symbol.iterator] = function() {\n    return this;\n  }, i;\n  function verb(n, f) {\n    i[n] = o[n] ? function(v) {\n      return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v;\n    } : f;\n  }\n  __name(verb, \"verb\");\n}\nfunction __asyncValues(o) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var m = o[Symbol.asyncIterator], i;\n  return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function() {\n    return this;\n  }, i);\n  function verb(n) {\n    i[n] = o[n] && function(v) {\n      return new Promise(function(resolve, reject) {\n        v = o[n](v), settle(resolve, reject, v.done, v.value);\n      });\n    };\n  }\n  __name(verb, \"verb\");\n  function settle(resolve, reject, d, v) {\n    Promise.resolve(v).then(function(v2) {\n      resolve({ value: v2, done: d });\n    }, reject);\n  }\n  __name(settle, \"settle\");\n}\nfunction __makeTemplateObject(cooked, raw) {\n  if (Object.defineProperty) {\n    Object.defineProperty(cooked, \"raw\", { value: raw });\n  } else {\n    cooked.raw = raw;\n  }\n  return cooked;\n}\nfunction __importStar(mod) {\n  if (mod && mod.__esModule) return mod;\n  var result = {};\n  if (mod != null) {\n    for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n  }\n  __setModuleDefault(result, mod);\n  return result;\n}\nfunction __importDefault(mod) {\n  return mod && mod.__esModule ? mod : { default: mod };\n}\nfunction __classPrivateFieldGet(receiver, state, kind, f) {\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n  return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\nfunction __classPrivateFieldSet(receiver, state, value, kind, f) {\n  if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n  return kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;\n}\nfunction __classPrivateFieldIn(state, receiver) {\n  if (receiver === null || typeof receiver !== \"object\" && typeof receiver !== \"function\") throw new TypeError(\"Cannot use 'in' operator on non-object\");\n  return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\nfunction __addDisposableResource(env, value, async) {\n  if (value !== null && value !== void 0) {\n    if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n    var dispose, inner2;\n    if (async) {\n      if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n      dispose = value[Symbol.asyncDispose];\n    }\n    if (dispose === void 0) {\n      if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n      dispose = value[Symbol.dispose];\n      if (async) inner2 = dispose;\n    }\n    if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n    if (inner2) dispose = /* @__PURE__ */ __name(function() {\n      try {\n        inner2.call(this);\n      } catch (e) {\n        return Promise.reject(e);\n      }\n    }, \"dispose\");\n    env.stack.push({ value, dispose, async });\n  } else if (async) {\n    env.stack.push({ async: true });\n  }\n  return value;\n}\nfunction __disposeResources(env) {\n  function fail(e) {\n    env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n    env.hasError = true;\n  }\n  __name(fail, \"fail\");\n  var r, s = 0;\n  function next() {\n    while (r = env.stack.pop()) {\n      try {\n        if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n        if (r.dispose) {\n          var result = r.dispose.call(r.value);\n          if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) {\n            fail(e);\n            return next();\n          });\n        } else s |= 1;\n      } catch (e) {\n        fail(e);\n      }\n    }\n    if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n    if (env.hasError) throw env.error;\n  }\n  __name(next, \"next\");\n  return next();\n}\nfunction __rewriteRelativeImportExtension(path, preserveJsx) {\n  if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n    return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function(m, tsx, d, ext, cm) {\n      return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : d + ext + \".\" + cm.toLowerCase() + \"js\";\n    });\n  }\n  return path;\n}\nvar extendStatics, __assign, __createBinding, __setModuleDefault, ownKeys, _SuppressedError, tslib_es6_default;\nvar init_tslib_es6 = __esm({\n  \"node_modules/tslib/tslib.es6.mjs\"() {\n    extendStatics = /* @__PURE__ */ __name(function(d, b) {\n      extendStatics = Object.setPrototypeOf || { __proto__: [] } 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    }, \"extendStatics\");\n    __name(__extends, \"__extends\");\n    __assign = /* @__PURE__ */ __name(function() {\n      __assign = Object.assign || /* @__PURE__ */ __name(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      }, \"__assign\");\n      return __assign.apply(this, arguments);\n    }, \"__assign\");\n    __name(__rest, \"__rest\");\n    __name(__decorate, \"__decorate\");\n    __name(__param, \"__param\");\n    __name(__esDecorate, \"__esDecorate\");\n    __name(__runInitializers, \"__runInitializers\");\n    __name(__propKey, \"__propKey\");\n    __name(__setFunctionName, \"__setFunctionName\");\n    __name(__metadata, \"__metadata\");\n    __name(__awaiter, \"__awaiter\");\n    __name(__generator, \"__generator\");\n    __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 = { enumerable: true, get: /* @__PURE__ */ __name(function() {\n          return m[k];\n        }, \"get\") };\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    __name(__exportStar, \"__exportStar\");\n    __name(__values, \"__values\");\n    __name(__read, \"__read\");\n    __name(__spread, \"__spread\");\n    __name(__spreadArrays, \"__spreadArrays\");\n    __name(__spreadArray, \"__spreadArray\");\n    __name(__await, \"__await\");\n    __name(__asyncGenerator, \"__asyncGenerator\");\n    __name(__asyncDelegator, \"__asyncDelegator\");\n    __name(__asyncValues, \"__asyncValues\");\n    __name(__makeTemplateObject, \"__makeTemplateObject\");\n    __setModuleDefault = Object.create ? function(o, v) {\n      Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n    } : function(o, v) {\n      o[\"default\"] = v;\n    };\n    ownKeys = /* @__PURE__ */ __name(function(o) {\n      ownKeys = Object.getOwnPropertyNames || function(o2) {\n        var ar = [];\n        for (var k in o2) if (Object.prototype.hasOwnProperty.call(o2, k)) ar[ar.length] = k;\n        return ar;\n      };\n      return ownKeys(o);\n    }, \"ownKeys\");\n    __name(__importStar, \"__importStar\");\n    __name(__importDefault, \"__importDefault\");\n    __name(__classPrivateFieldGet, \"__classPrivateFieldGet\");\n    __name(__classPrivateFieldSet, \"__classPrivateFieldSet\");\n    __name(__classPrivateFieldIn, \"__classPrivateFieldIn\");\n    __name(__addDisposableResource, \"__addDisposableResource\");\n    _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function(error2, suppressed, message) {\n      var e = new Error(message);\n      return e.name = \"SuppressedError\", e.error = error2, e.suppressed = suppressed, e;\n    };\n    __name(__disposeResources, \"__disposeResources\");\n    __name(__rewriteRelativeImportExtension, \"__rewriteRelativeImportExtension\");\n    tslib_es6_default = {\n      __extends,\n      __assign,\n      __rest,\n      __decorate,\n      __param,\n      __esDecorate,\n      __runInitializers,\n      __propKey,\n      __setFunctionName,\n      __metadata,\n      __awaiter,\n      __generator,\n      __createBinding,\n      __exportStar,\n      __values,\n      __read,\n      __spread,\n      __spreadArrays,\n      __spreadArray,\n      __await,\n      __asyncGenerator,\n      __asyncDelegator,\n      __asyncValues,\n      __makeTemplateObject,\n      __importStar,\n      __importDefault,\n      __classPrivateFieldGet,\n      __classPrivateFieldSet,\n      __classPrivateFieldIn,\n      __addDisposableResource,\n      __disposeResources,\n      __rewriteRelativeImportExtension\n    };\n  }\n});\n\n// node_modules/react-remove-scroll-bar/dist/es5/constants.js\nvar require_constants2 = __commonJS({\n  \"node_modules/react-remove-scroll-bar/dist/es5/constants.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    exports2.removedBarSizeVariable = exports2.noScrollbarsClassName = exports2.fullWidthClassName = exports2.zeroRightClassName = void 0;\n    exports2.zeroRightClassName = \"right-scroll-bar-position\";\n    exports2.fullWidthClassName = \"width-before-scroll-bar\";\n    exports2.noScrollbarsClassName = \"with-scroll-bars-hidden\";\n    exports2.removedBarSizeVariable = \"--removed-body-scroll-bar-size\";\n  }\n});\n\n// node_modules/use-callback-ref/dist/es5/assignRef.js\nvar require_assignRef = __commonJS({\n  \"node_modules/use-callback-ref/dist/es5/assignRef.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    exports2.assignRef = void 0;\n    function assignRef(ref, value) {\n      if (typeof ref === \"function\") {\n        ref(value);\n      } else if (ref) {\n        ref.current = value;\n      }\n      return ref;\n    }\n    __name(assignRef, \"assignRef\");\n    exports2.assignRef = assignRef;\n  }\n});\n\n// node_modules/use-callback-ref/dist/es5/useRef.js\nvar require_useRef = __commonJS({\n  \"node_modules/use-callback-ref/dist/es5/useRef.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    exports2.useCallbackRef = void 0;\n    var react_1 = require(\"react\");\n    function useCallbackRef2(initialValue2, callback) {\n      var ref = (0, react_1.useState)(function() {\n        return {\n          // value\n          value: initialValue2,\n          // last callback\n          callback,\n          // \"memoized\" public interface\n          facade: {\n            get current() {\n              return ref.value;\n            },\n            set current(value) {\n              var last = ref.value;\n              if (last !== value) {\n                ref.value = value;\n                ref.callback(value, last);\n              }\n            }\n          }\n        };\n      })[0];\n      ref.callback = callback;\n      return ref.facade;\n    }\n    __name(useCallbackRef2, \"useCallbackRef\");\n    exports2.useCallbackRef = useCallbackRef2;\n  }\n});\n\n// node_modules/use-callback-ref/dist/es5/createRef.js\nvar require_createRef = __commonJS({\n  \"node_modules/use-callback-ref/dist/es5/createRef.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    exports2.createCallbackRef = void 0;\n    function createCallbackRef(callback) {\n      var current = null;\n      return {\n        get current() {\n          return current;\n        },\n        set current(value) {\n          var last = current;\n          if (last !== value) {\n            current = value;\n            callback(value, last);\n          }\n        }\n      };\n    }\n    __name(createCallbackRef, \"createCallbackRef\");\n    exports2.createCallbackRef = createCallbackRef;\n  }\n});\n\n// node_modules/use-callback-ref/dist/es5/mergeRef.js\nvar require_mergeRef = __commonJS({\n  \"node_modules/use-callback-ref/dist/es5/mergeRef.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    exports2.mergeRefs = void 0;\n    var assignRef_1 = require_assignRef();\n    var createRef_1 = require_createRef();\n    function mergeRefs(refs) {\n      return (0, createRef_1.createCallbackRef)(function(newValue) {\n        return refs.forEach(function(ref) {\n          return (0, assignRef_1.assignRef)(ref, newValue);\n        });\n      });\n    }\n    __name(mergeRefs, \"mergeRefs\");\n    exports2.mergeRefs = mergeRefs;\n  }\n});\n\n// node_modules/use-callback-ref/dist/es5/useMergeRef.js\nvar require_useMergeRef = __commonJS({\n  \"node_modules/use-callback-ref/dist/es5/useMergeRef.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    exports2.useMergeRefs = void 0;\n    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));\n    var React75 = tslib_1.__importStar(require(\"react\"));\n    var assignRef_1 = require_assignRef();\n    var useRef_1 = require_useRef();\n    var useIsomorphicLayoutEffect3 = typeof window !== \"undefined\" ? React75.useLayoutEffect : React75.useEffect;\n    var currentValues = /* @__PURE__ */ new WeakMap();\n    function useMergeRefs(refs, defaultValue2) {\n      var callbackRef = (0, useRef_1.useCallbackRef)(defaultValue2 || null, function(newValue) {\n        return refs.forEach(function(ref) {\n          return (0, assignRef_1.assignRef)(ref, newValue);\n        });\n      });\n      useIsomorphicLayoutEffect3(function() {\n        var oldValue = currentValues.get(callbackRef);\n        if (oldValue) {\n          var prevRefs_1 = new Set(oldValue);\n          var nextRefs_1 = new Set(refs);\n          var current_1 = callbackRef.current;\n          prevRefs_1.forEach(function(ref) {\n            if (!nextRefs_1.has(ref)) {\n              (0, assignRef_1.assignRef)(ref, null);\n            }\n          });\n          nextRefs_1.forEach(function(ref) {\n            if (!prevRefs_1.has(ref)) {\n              (0, assignRef_1.assignRef)(ref, current_1);\n            }\n          });\n        }\n        currentValues.set(callbackRef, refs);\n      }, [refs]);\n      return callbackRef;\n    }\n    __name(useMergeRefs, \"useMergeRefs\");\n    exports2.useMergeRefs = useMergeRefs;\n  }\n});\n\n// node_modules/use-callback-ref/dist/es5/useTransformRef.js\nvar require_useTransformRef = __commonJS({\n  \"node_modules/use-callback-ref/dist/es5/useTransformRef.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    exports2.useTransformRef = void 0;\n    var assignRef_1 = require_assignRef();\n    var useRef_1 = require_useRef();\n    function useTransformRef(ref, transformer) {\n      return (0, useRef_1.useCallbackRef)(null, function(value) {\n        return (0, assignRef_1.assignRef)(ref, transformer(value));\n      });\n    }\n    __name(useTransformRef, \"useTransformRef\");\n    exports2.useTransformRef = useTransformRef;\n  }\n});\n\n// node_modules/use-callback-ref/dist/es5/transformRef.js\nvar require_transformRef = __commonJS({\n  \"node_modules/use-callback-ref/dist/es5/transformRef.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    exports2.transformRef = void 0;\n    var assignRef_1 = require_assignRef();\n    var createRef_1 = require_createRef();\n    function transformRef(ref, transformer) {\n      return (0, createRef_1.createCallbackRef)(function(value) {\n        return (0, assignRef_1.assignRef)(ref, transformer(value));\n      });\n    }\n    __name(transformRef, \"transformRef\");\n    exports2.transformRef = transformRef;\n  }\n});\n\n// node_modules/use-callback-ref/dist/es5/refToCallback.js\nvar require_refToCallback = __commonJS({\n  \"node_modules/use-callback-ref/dist/es5/refToCallback.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    exports2.useRefToCallback = exports2.refToCallback = void 0;\n    function refToCallback(ref) {\n      return function(newValue) {\n        if (typeof ref === \"function\") {\n          ref(newValue);\n        } else if (ref) {\n          ref.current = newValue;\n        }\n      };\n    }\n    __name(refToCallback, \"refToCallback\");\n    exports2.refToCallback = refToCallback;\n    var nullCallback = /* @__PURE__ */ __name(function() {\n      return null;\n    }, \"nullCallback\");\n    var weakMem = /* @__PURE__ */ new WeakMap();\n    var weakMemoize = /* @__PURE__ */ __name(function(ref) {\n      var usedRef = ref || nullCallback;\n      var storedRef = weakMem.get(usedRef);\n      if (storedRef) {\n        return storedRef;\n      }\n      var cb = refToCallback(usedRef);\n      weakMem.set(usedRef, cb);\n      return cb;\n    }, \"weakMemoize\");\n    function useRefToCallback(ref) {\n      return weakMemoize(ref);\n    }\n    __name(useRefToCallback, \"useRefToCallback\");\n    exports2.useRefToCallback = useRefToCallback;\n  }\n});\n\n// node_modules/use-callback-ref/dist/es5/index.js\nvar require_es52 = __commonJS({\n  \"node_modules/use-callback-ref/dist/es5/index.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    exports2.useRefToCallback = exports2.refToCallback = exports2.transformRef = exports2.useTransformRef = exports2.useMergeRefs = exports2.mergeRefs = exports2.createCallbackRef = exports2.useCallbackRef = exports2.assignRef = void 0;\n    var assignRef_1 = require_assignRef();\n    Object.defineProperty(exports2, \"assignRef\", { enumerable: true, get: /* @__PURE__ */ __name(function() {\n      return assignRef_1.assignRef;\n    }, \"get\") });\n    var useRef_1 = require_useRef();\n    Object.defineProperty(exports2, \"useCallbackRef\", { enumerable: true, get: /* @__PURE__ */ __name(function() {\n      return useRef_1.useCallbackRef;\n    }, \"get\") });\n    var createRef_1 = require_createRef();\n    Object.defineProperty(exports2, \"createCallbackRef\", { enumerable: true, get: /* @__PURE__ */ __name(function() {\n      return createRef_1.createCallbackRef;\n    }, \"get\") });\n    var mergeRef_1 = require_mergeRef();\n    Object.defineProperty(exports2, \"mergeRefs\", { enumerable: true, get: /* @__PURE__ */ __name(function() {\n      return mergeRef_1.mergeRefs;\n    }, \"get\") });\n    var useMergeRef_1 = require_useMergeRef();\n    Object.defineProperty(exports2, \"useMergeRefs\", { enumerable: true, get: /* @__PURE__ */ __name(function() {\n      return useMergeRef_1.useMergeRefs;\n    }, \"get\") });\n    var useTransformRef_1 = require_useTransformRef();\n    Object.defineProperty(exports2, \"useTransformRef\", { enumerable: true, get: /* @__PURE__ */ __name(function() {\n      return useTransformRef_1.useTransformRef;\n    }, \"get\") });\n    var transformRef_1 = require_transformRef();\n    Object.defineProperty(exports2, \"transformRef\", { enumerable: true, get: /* @__PURE__ */ __name(function() {\n      return transformRef_1.transformRef;\n    }, \"get\") });\n    var refToCallback_1 = require_refToCallback();\n    Object.defineProperty(exports2, \"refToCallback\", { enumerable: true, get: /* @__PURE__ */ __name(function() {\n      return refToCallback_1.refToCallback;\n    }, \"get\") });\n    Object.defineProperty(exports2, \"useRefToCallback\", { enumerable: true, get: /* @__PURE__ */ __name(function() {\n      return refToCallback_1.useRefToCallback;\n    }, \"get\") });\n  }\n});\n\n// node_modules/detect-node-es/es5/node.js\nvar require_node = __commonJS({\n  \"node_modules/detect-node-es/es5/node.js\"(exports2, module2) {\n    module2.exports.isNode = Object.prototype.toString.call(typeof process !== \"undefined\" ? process : 0) === \"[object process]\";\n  }\n});\n\n// node_modules/use-sidecar/dist/es5/env.js\nvar require_env = __commonJS({\n  \"node_modules/use-sidecar/dist/es5/env.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    exports2.env = void 0;\n    var detect_node_es_1 = require_node();\n    exports2.env = {\n      isNode: detect_node_es_1.isNode,\n      forceCache: false\n    };\n  }\n});\n\n// node_modules/use-sidecar/dist/es5/hook.js\nvar require_hook = __commonJS({\n  \"node_modules/use-sidecar/dist/es5/hook.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    exports2.useSidecar = void 0;\n    var react_1 = require(\"react\");\n    var env_1 = require_env();\n    var cache3 = /* @__PURE__ */ new WeakMap();\n    var NO_OPTIONS = {};\n    function useSidecar(importer, effect) {\n      var options = effect && effect.options || NO_OPTIONS;\n      if (env_1.env.isNode && !options.ssr) {\n        return [null, null];\n      }\n      return useRealSidecar(importer, effect);\n    }\n    __name(useSidecar, \"useSidecar\");\n    exports2.useSidecar = useSidecar;\n    function useRealSidecar(importer, effect) {\n      var options = effect && effect.options || NO_OPTIONS;\n      var couldUseCache = env_1.env.forceCache || env_1.env.isNode && !!options.ssr || !options.async;\n      var _a = (0, react_1.useState)(couldUseCache ? function() {\n        return cache3.get(importer);\n      } : void 0), Car = _a[0], setCar = _a[1];\n      var _b = (0, react_1.useState)(null), error2 = _b[0], setError = _b[1];\n      (0, react_1.useEffect)(function() {\n        if (!Car) {\n          importer().then(function(car) {\n            var resolved = effect ? effect.read() : car.default || car;\n            if (!resolved) {\n              console.error(\"Sidecar error: with importer\", importer);\n              var error_1;\n              if (effect) {\n                console.error(\"Sidecar error: with medium\", effect);\n                error_1 = new Error(\"Sidecar medium was not found\");\n              } else {\n                error_1 = new Error(\"Sidecar was not found in exports\");\n              }\n              setError(function() {\n                return error_1;\n              });\n              throw error_1;\n            }\n            cache3.set(importer, resolved);\n            setCar(function() {\n              return resolved;\n            });\n          }, function(e) {\n            return setError(function() {\n              return e;\n            });\n          });\n        }\n      }, []);\n      return [Car, error2];\n    }\n    __name(useRealSidecar, \"useRealSidecar\");\n  }\n});\n\n// node_modules/use-sidecar/dist/es5/hoc.js\nvar require_hoc = __commonJS({\n  \"node_modules/use-sidecar/dist/es5/hoc.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    exports2.sidecar = void 0;\n    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));\n    var React75 = tslib_1.__importStar(require(\"react\"));\n    var hook_1 = require_hook();\n    function sidecar(importer, errorComponent) {\n      var ErrorCase = /* @__PURE__ */ __name(function() {\n        return errorComponent;\n      }, \"ErrorCase\");\n      return /* @__PURE__ */ __name(function Sidecar(props) {\n        var _a = (0, hook_1.useSidecar)(importer, props.sideCar), Car = _a[0], error2 = _a[1];\n        if (error2 && errorComponent) {\n          return ErrorCase;\n        }\n        return Car ? React75.createElement(Car, tslib_1.__assign({}, props)) : null;\n      }, \"Sidecar\");\n    }\n    __name(sidecar, \"sidecar\");\n    exports2.sidecar = sidecar;\n  }\n});\n\n// node_modules/use-sidecar/dist/es5/config.js\nvar require_config = __commonJS({\n  \"node_modules/use-sidecar/dist/es5/config.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    exports2.setConfig = exports2.config = void 0;\n    exports2.config = {\n      onError: /* @__PURE__ */ __name(function(e) {\n        return console.error(e);\n      }, \"onError\")\n    };\n    var setConfig2 = /* @__PURE__ */ __name(function(conf) {\n      Object.assign(exports2.config, conf);\n    }, \"setConfig\");\n    exports2.setConfig = setConfig2;\n  }\n});\n\n// node_modules/use-sidecar/dist/es5/medium.js\nvar require_medium = __commonJS({\n  \"node_modules/use-sidecar/dist/es5/medium.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    exports2.createSidecarMedium = exports2.createMedium = void 0;\n    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));\n    function ItoI(a) {\n      return a;\n    }\n    __name(ItoI, \"ItoI\");\n    function innerCreateMedium(defaults, middleware) {\n      if (middleware === void 0) {\n        middleware = ItoI;\n      }\n      var buffer = [];\n      var assigned = false;\n      var medium = {\n        read: /* @__PURE__ */ __name(function() {\n          if (assigned) {\n            throw new Error(\"Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.\");\n          }\n          if (buffer.length) {\n            return buffer[buffer.length - 1];\n          }\n          return defaults;\n        }, \"read\"),\n        useMedium: /* @__PURE__ */ __name(function(data) {\n          var item = middleware(data, assigned);\n          buffer.push(item);\n          return function() {\n            buffer = buffer.filter(function(x) {\n              return x !== item;\n            });\n          };\n        }, \"useMedium\"),\n        assignSyncMedium: /* @__PURE__ */ __name(function(cb) {\n          assigned = true;\n          while (buffer.length) {\n            var cbs2 = buffer;\n            buffer = [];\n            cbs2.forEach(cb);\n          }\n          buffer = {\n            push: /* @__PURE__ */ __name(function(x) {\n              return cb(x);\n            }, \"push\"),\n            filter: /* @__PURE__ */ __name(function() {\n              return buffer;\n            }, \"filter\")\n          };\n        }, \"assignSyncMedium\"),\n        assignMedium: /* @__PURE__ */ __name(function(cb) {\n          assigned = true;\n          var pendingQueue = [];\n          if (buffer.length) {\n            var cbs2 = buffer;\n            buffer = [];\n            cbs2.forEach(cb);\n            pendingQueue = buffer;\n          }\n          var executeQueue = /* @__PURE__ */ __name(function() {\n            var cbs3 = pendingQueue;\n            pendingQueue = [];\n            cbs3.forEach(cb);\n          }, \"executeQueue\");\n          var cycle = /* @__PURE__ */ __name(function() {\n            return Promise.resolve().then(executeQueue);\n          }, \"cycle\");\n          cycle();\n          buffer = {\n            push: /* @__PURE__ */ __name(function(x) {\n              pendingQueue.push(x);\n              cycle();\n            }, \"push\"),\n            filter: /* @__PURE__ */ __name(function(filter) {\n              pendingQueue = pendingQueue.filter(filter);\n              return buffer;\n            }, \"filter\")\n          };\n        }, \"assignMedium\")\n      };\n      return medium;\n    }\n    __name(innerCreateMedium, \"innerCreateMedium\");\n    function createMedium(defaults, middleware) {\n      if (middleware === void 0) {\n        middleware = ItoI;\n      }\n      return innerCreateMedium(defaults, middleware);\n    }\n    __name(createMedium, \"createMedium\");\n    exports2.createMedium = createMedium;\n    function createSidecarMedium(options) {\n      if (options === void 0) {\n        options = {};\n      }\n      var medium = innerCreateMedium(null);\n      medium.options = tslib_1.__assign({ async: true, ssr: false }, options);\n      return medium;\n    }\n    __name(createSidecarMedium, \"createSidecarMedium\");\n    exports2.createSidecarMedium = createSidecarMedium;\n  }\n});\n\n// node_modules/use-sidecar/dist/es5/renderProp.js\nvar require_renderProp = __commonJS({\n  \"node_modules/use-sidecar/dist/es5/renderProp.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    exports2.renderCar = void 0;\n    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));\n    var React75 = tslib_1.__importStar(require(\"react\"));\n    var react_1 = require(\"react\");\n    function renderCar(WrappedComponent, defaults) {\n      function State(_a) {\n        var stateRef = _a.stateRef, props = _a.props;\n        var renderTarget = (0, react_1.useCallback)(/* @__PURE__ */ __name(function SideTarget() {\n          var args = [];\n          for (var _i = 0; _i < arguments.length; _i++) {\n            args[_i] = arguments[_i];\n          }\n          (0, react_1.useLayoutEffect)(function() {\n            stateRef.current(args);\n          });\n          return null;\n        }, \"SideTarget\"), []);\n        return React75.createElement(WrappedComponent, tslib_1.__assign({}, props, { children: renderTarget }));\n      }\n      __name(State, \"State\");\n      var Children7 = React75.memo(function(_a) {\n        var stateRef = _a.stateRef, defaultState = _a.defaultState, children = _a.children;\n        var _b = (0, react_1.useState)(defaultState.current), state = _b[0], setState = _b[1];\n        (0, react_1.useEffect)(function() {\n          stateRef.current = setState;\n        }, []);\n        return children.apply(void 0, state);\n      }, function() {\n        return true;\n      });\n      return /* @__PURE__ */ __name(function Combiner(props) {\n        var defaultState = React75.useRef(defaults(props));\n        var ref = React75.useRef(function(state) {\n          return defaultState.current = state;\n        });\n        return React75.createElement(\n          React75.Fragment,\n          null,\n          React75.createElement(State, { stateRef: ref, props }),\n          React75.createElement(Children7, { stateRef: ref, defaultState, children: props.children })\n        );\n      }, \"Combiner\");\n    }\n    __name(renderCar, \"renderCar\");\n    exports2.renderCar = renderCar;\n  }\n});\n\n// node_modules/use-sidecar/dist/es5/exports.js\nvar require_exports = __commonJS({\n  \"node_modules/use-sidecar/dist/es5/exports.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    exports2.exportSidecar = void 0;\n    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));\n    var React75 = tslib_1.__importStar(require(\"react\"));\n    var SideCar = /* @__PURE__ */ __name(function(_a) {\n      var sideCar = _a.sideCar, rest = tslib_1.__rest(_a, [\"sideCar\"]);\n      if (!sideCar) {\n        throw new Error(\"Sidecar: please provide `sideCar` property to import the right car\");\n      }\n      var Target = sideCar.read();\n      if (!Target) {\n        throw new Error(\"Sidecar medium not found\");\n      }\n      return React75.createElement(Target, tslib_1.__assign({}, rest));\n    }, \"SideCar\");\n    SideCar.isSideCarExport = true;\n    function exportSidecar(medium, exported) {\n      medium.useMedium(exported);\n      return SideCar;\n    }\n    __name(exportSidecar, \"exportSidecar\");\n    exports2.exportSidecar = exportSidecar;\n  }\n});\n\n// node_modules/use-sidecar/dist/es5/index.js\nvar require_es53 = __commonJS({\n  \"node_modules/use-sidecar/dist/es5/index.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    exports2.exportSidecar = exports2.renderCar = exports2.createSidecarMedium = exports2.createMedium = exports2.setConfig = exports2.useSidecar = exports2.sidecar = void 0;\n    var hoc_1 = require_hoc();\n    Object.defineProperty(exports2, \"sidecar\", { enumerable: true, get: /* @__PURE__ */ __name(function() {\n      return hoc_1.sidecar;\n    }, \"get\") });\n    var hook_1 = require_hook();\n    Object.defineProperty(exports2, \"useSidecar\", { enumerable: true, get: /* @__PURE__ */ __name(function() {\n      return hook_1.useSidecar;\n    }, \"get\") });\n    var config_1 = require_config();\n    Object.defineProperty(exports2, \"setConfig\", { enumerable: true, get: /* @__PURE__ */ __name(function() {\n      return config_1.setConfig;\n    }, \"get\") });\n    var medium_1 = require_medium();\n    Object.defineProperty(exports2, \"createMedium\", { enumerable: true, get: /* @__PURE__ */ __name(function() {\n      return medium_1.createMedium;\n    }, \"get\") });\n    Object.defineProperty(exports2, \"createSidecarMedium\", { enumerable: true, get: /* @__PURE__ */ __name(function() {\n      return medium_1.createSidecarMedium;\n    }, \"get\") });\n    var renderProp_1 = require_renderProp();\n    Object.defineProperty(exports2, \"renderCar\", { enumerable: true, get: /* @__PURE__ */ __name(function() {\n      return renderProp_1.renderCar;\n    }, \"get\") });\n    var exports_1 = require_exports();\n    Object.defineProperty(exports2, \"exportSidecar\", { enumerable: true, get: /* @__PURE__ */ __name(function() {\n      return exports_1.exportSidecar;\n    }, \"get\") });\n  }\n});\n\n// node_modules/react-remove-scroll/dist/es5/medium.js\nvar require_medium2 = __commonJS({\n  \"node_modules/react-remove-scroll/dist/es5/medium.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    exports2.effectCar = void 0;\n    var use_sidecar_1 = require_es53();\n    exports2.effectCar = (0, use_sidecar_1.createSidecarMedium)();\n  }\n});\n\n// node_modules/react-remove-scroll/dist/es5/UI.js\nvar require_UI = __commonJS({\n  \"node_modules/react-remove-scroll/dist/es5/UI.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    exports2.RemoveScroll = void 0;\n    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));\n    var React75 = tslib_1.__importStar(require(\"react\"));\n    var constants_1 = require_constants2();\n    var use_callback_ref_1 = require_es52();\n    var medium_1 = require_medium2();\n    var nothing = /* @__PURE__ */ __name(function() {\n      return;\n    }, \"nothing\");\n    var RemoveScroll2 = React75.forwardRef(function(props, parentRef) {\n      var ref = React75.useRef(null);\n      var _a = React75.useState({\n        onScrollCapture: nothing,\n        onWheelCapture: nothing,\n        onTouchMoveCapture: nothing\n      }), callbacks = _a[0], setCallbacks = _a[1];\n      var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container = _b === void 0 ? \"div\" : _b, gapMode = props.gapMode, rest = tslib_1.__rest(props, [\"forwardProps\", \"children\", \"className\", \"removeScrollBar\", \"enabled\", \"shards\", \"sideCar\", \"noIsolation\", \"inert\", \"allowPinchZoom\", \"as\", \"gapMode\"]);\n      var SideCar = sideCar;\n      var containerRef = (0, use_callback_ref_1.useMergeRefs)([ref, parentRef]);\n      var containerProps = tslib_1.__assign(tslib_1.__assign({}, rest), callbacks);\n      return React75.createElement(\n        React75.Fragment,\n        null,\n        enabled && React75.createElement(SideCar, { sideCar: medium_1.effectCar, removeScrollBar, shards, noIsolation, inert, setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref, gapMode }),\n        forwardProps ? React75.cloneElement(React75.Children.only(children), tslib_1.__assign(tslib_1.__assign({}, containerProps), { ref: containerRef })) : React75.createElement(Container, tslib_1.__assign({}, containerProps, { className, ref: containerRef }), children)\n      );\n    });\n    exports2.RemoveScroll = RemoveScroll2;\n    RemoveScroll2.defaultProps = {\n      enabled: true,\n      removeScrollBar: true,\n      inert: false\n    };\n    RemoveScroll2.classNames = {\n      fullWidth: constants_1.fullWidthClassName,\n      zeroRight: constants_1.zeroRightClassName\n    };\n  }\n});\n\n// node_modules/get-nonce/dist/es5/index.js\nvar require_es54 = __commonJS({\n  \"node_modules/get-nonce/dist/es5/index.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    var currentNonce;\n    exports2.setNonce = function(nonce) {\n      currentNonce = nonce;\n    };\n    exports2.getNonce = function() {\n      if (currentNonce) {\n        return currentNonce;\n      }\n      if (typeof __webpack_nonce__ !== \"undefined\") {\n        return __webpack_nonce__;\n      }\n      return void 0;\n    };\n  }\n});\n\n// node_modules/react-style-singleton/dist/es5/singleton.js\nvar require_singleton = __commonJS({\n  \"node_modules/react-style-singleton/dist/es5/singleton.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    exports2.stylesheetSingleton = void 0;\n    var get_nonce_1 = require_es54();\n    function makeStyleTag() {\n      if (!document)\n        return null;\n      var tag = document.createElement(\"style\");\n      tag.type = \"text/css\";\n      var nonce = (0, get_nonce_1.getNonce)();\n      if (nonce) {\n        tag.setAttribute(\"nonce\", nonce);\n      }\n      return tag;\n    }\n    __name(makeStyleTag, \"makeStyleTag\");\n    function injectStyles(tag, css) {\n      if (tag.styleSheet) {\n        tag.styleSheet.cssText = css;\n      } else {\n        tag.appendChild(document.createTextNode(css));\n      }\n    }\n    __name(injectStyles, \"injectStyles\");\n    function insertStyleTag(tag) {\n      var head = document.head || document.getElementsByTagName(\"head\")[0];\n      head.appendChild(tag);\n    }\n    __name(insertStyleTag, \"insertStyleTag\");\n    var stylesheetSingleton = /* @__PURE__ */ __name(function() {\n      var counter = 0;\n      var stylesheet = null;\n      return {\n        add: /* @__PURE__ */ __name(function(style) {\n          if (counter == 0) {\n            if (stylesheet = makeStyleTag()) {\n              injectStyles(stylesheet, style);\n              insertStyleTag(stylesheet);\n            }\n          }\n          counter++;\n        }, \"add\"),\n        remove: /* @__PURE__ */ __name(function() {\n          counter--;\n          if (!counter && stylesheet) {\n            stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);\n            stylesheet = null;\n          }\n        }, \"remove\")\n      };\n    }, \"stylesheetSingleton\");\n    exports2.stylesheetSingleton = stylesheetSingleton;\n  }\n});\n\n// node_modules/react-style-singleton/dist/es5/hook.js\nvar require_hook2 = __commonJS({\n  \"node_modules/react-style-singleton/dist/es5/hook.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    exports2.styleHookSingleton = void 0;\n    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));\n    var React75 = tslib_1.__importStar(require(\"react\"));\n    var singleton_1 = require_singleton();\n    var styleHookSingleton = /* @__PURE__ */ __name(function() {\n      var sheet = (0, singleton_1.stylesheetSingleton)();\n      return function(styles, isDynamic) {\n        React75.useEffect(function() {\n          sheet.add(styles);\n          return function() {\n            sheet.remove();\n          };\n        }, [styles && isDynamic]);\n      };\n    }, \"styleHookSingleton\");\n    exports2.styleHookSingleton = styleHookSingleton;\n  }\n});\n\n// node_modules/react-style-singleton/dist/es5/component.js\nvar require_component = __commonJS({\n  \"node_modules/react-style-singleton/dist/es5/component.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    exports2.styleSingleton = void 0;\n    var hook_1 = require_hook2();\n    var styleSingleton = /* @__PURE__ */ __name(function() {\n      var useStyle2 = (0, hook_1.styleHookSingleton)();\n      var Sheet2 = /* @__PURE__ */ __name(function(_a) {\n        var styles = _a.styles, dynamic = _a.dynamic;\n        useStyle2(styles, dynamic);\n        return null;\n      }, \"Sheet\");\n      return Sheet2;\n    }, \"styleSingleton\");\n    exports2.styleSingleton = styleSingleton;\n  }\n});\n\n// node_modules/react-style-singleton/dist/es5/index.js\nvar require_es55 = __commonJS({\n  \"node_modules/react-style-singleton/dist/es5/index.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    exports2.styleHookSingleton = exports2.stylesheetSingleton = exports2.styleSingleton = void 0;\n    var component_1 = require_component();\n    Object.defineProperty(exports2, \"styleSingleton\", { enumerable: true, get: /* @__PURE__ */ __name(function() {\n      return component_1.styleSingleton;\n    }, \"get\") });\n    var singleton_1 = require_singleton();\n    Object.defineProperty(exports2, \"stylesheetSingleton\", { enumerable: true, get: /* @__PURE__ */ __name(function() {\n      return singleton_1.stylesheetSingleton;\n    }, \"get\") });\n    var hook_1 = require_hook2();\n    Object.defineProperty(exports2, \"styleHookSingleton\", { enumerable: true, get: /* @__PURE__ */ __name(function() {\n      return hook_1.styleHookSingleton;\n    }, \"get\") });\n  }\n});\n\n// node_modules/react-remove-scroll-bar/dist/es5/utils.js\nvar require_utils = __commonJS({\n  \"node_modules/react-remove-scroll-bar/dist/es5/utils.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    exports2.getGapWidth = exports2.zeroGap = void 0;\n    exports2.zeroGap = {\n      left: 0,\n      top: 0,\n      right: 0,\n      gap: 0\n    };\n    var parse = /* @__PURE__ */ __name(function(x) {\n      return parseInt(x || \"\", 10) || 0;\n    }, \"parse\");\n    var getOffset = /* @__PURE__ */ __name(function(gapMode) {\n      var cs = window.getComputedStyle(document.body);\n      var left = cs[gapMode === \"padding\" ? \"paddingLeft\" : \"marginLeft\"];\n      var top = cs[gapMode === \"padding\" ? \"paddingTop\" : \"marginTop\"];\n      var right = cs[gapMode === \"padding\" ? \"paddingRight\" : \"marginRight\"];\n      return [parse(left), parse(top), parse(right)];\n    }, \"getOffset\");\n    var getGapWidth = /* @__PURE__ */ __name(function(gapMode) {\n      if (gapMode === void 0) {\n        gapMode = \"margin\";\n      }\n      if (typeof window === \"undefined\") {\n        return exports2.zeroGap;\n      }\n      var offsets = getOffset(gapMode);\n      var documentWidth = document.documentElement.clientWidth;\n      var windowWidth = window.innerWidth;\n      return {\n        left: offsets[0],\n        top: offsets[1],\n        right: offsets[2],\n        gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0])\n      };\n    }, \"getGapWidth\");\n    exports2.getGapWidth = getGapWidth;\n  }\n});\n\n// node_modules/react-remove-scroll-bar/dist/es5/component.js\nvar require_component2 = __commonJS({\n  \"node_modules/react-remove-scroll-bar/dist/es5/component.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    exports2.RemoveScrollBar = exports2.useLockAttribute = exports2.lockAttribute = void 0;\n    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));\n    var React75 = tslib_1.__importStar(require(\"react\"));\n    var react_style_singleton_1 = require_es55();\n    var constants_1 = require_constants2();\n    var utils_1 = require_utils();\n    var Style = (0, react_style_singleton_1.styleSingleton)();\n    exports2.lockAttribute = \"data-scroll-locked\";\n    var getStyles = /* @__PURE__ */ __name(function(_a, allowRelative, gapMode, important) {\n      var left = _a.left, top = _a.top, right = _a.right, gap = _a.gap;\n      if (gapMode === void 0) {\n        gapMode = \"margin\";\n      }\n      return \"\\n  .\".concat(constants_1.noScrollbarsClassName, \" {\\n   overflow: hidden \").concat(important, \";\\n   padding-right: \").concat(gap, \"px \").concat(important, \";\\n  }\\n  body[\").concat(exports2.lockAttribute, \"] {\\n    overflow: hidden \").concat(important, \";\\n    overscroll-behavior: contain;\\n    \").concat([\n        allowRelative && \"position: relative \".concat(important, \";\"),\n        gapMode === \"margin\" && \"\\n    padding-left: \".concat(left, \"px;\\n    padding-top: \").concat(top, \"px;\\n    padding-right: \").concat(right, \"px;\\n    margin-left:0;\\n    margin-top:0;\\n    margin-right: \").concat(gap, \"px \").concat(important, \";\\n    \"),\n        gapMode === \"padding\" && \"padding-right: \".concat(gap, \"px \").concat(important, \";\")\n      ].filter(Boolean).join(\"\"), \"\\n  }\\n  \\n  .\").concat(constants_1.zeroRightClassName, \" {\\n    right: \").concat(gap, \"px \").concat(important, \";\\n  }\\n  \\n  .\").concat(constants_1.fullWidthClassName, \" {\\n    margin-right: \").concat(gap, \"px \").concat(important, \";\\n  }\\n  \\n  .\").concat(constants_1.zeroRightClassName, \" .\").concat(constants_1.zeroRightClassName, \" {\\n    right: 0 \").concat(important, \";\\n  }\\n  \\n  .\").concat(constants_1.fullWidthClassName, \" .\").concat(constants_1.fullWidthClassName, \" {\\n    margin-right: 0 \").concat(important, \";\\n  }\\n  \\n  body[\").concat(exports2.lockAttribute, \"] {\\n    \").concat(constants_1.removedBarSizeVariable, \": \").concat(gap, \"px;\\n  }\\n\");\n    }, \"getStyles\");\n    var getCurrentUseCounter = /* @__PURE__ */ __name(function() {\n      var counter = parseInt(document.body.getAttribute(exports2.lockAttribute) || \"0\", 10);\n      return isFinite(counter) ? counter : 0;\n    }, \"getCurrentUseCounter\");\n    var useLockAttribute = /* @__PURE__ */ __name(function() {\n      React75.useEffect(function() {\n        document.body.setAttribute(exports2.lockAttribute, (getCurrentUseCounter() + 1).toString());\n        return function() {\n          var newCounter = getCurrentUseCounter() - 1;\n          if (newCounter <= 0) {\n            document.body.removeAttribute(exports2.lockAttribute);\n          } else {\n            document.body.setAttribute(exports2.lockAttribute, newCounter.toString());\n          }\n        };\n      }, []);\n    }, \"useLockAttribute\");\n    exports2.useLockAttribute = useLockAttribute;\n    var RemoveScrollBar = /* @__PURE__ */ __name(function(_a) {\n      var noRelative = _a.noRelative, noImportant = _a.noImportant, _b = _a.gapMode, gapMode = _b === void 0 ? \"margin\" : _b;\n      (0, exports2.useLockAttribute)();\n      var gap = React75.useMemo(function() {\n        return (0, utils_1.getGapWidth)(gapMode);\n      }, [gapMode]);\n      return React75.createElement(Style, { styles: getStyles(gap, !noRelative, gapMode, !noImportant ? \"!important\" : \"\") });\n    }, \"RemoveScrollBar\");\n    exports2.RemoveScrollBar = RemoveScrollBar;\n  }\n});\n\n// node_modules/react-remove-scroll-bar/dist/es5/index.js\nvar require_es56 = __commonJS({\n  \"node_modules/react-remove-scroll-bar/dist/es5/index.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    exports2.getGapWidth = exports2.removedBarSizeVariable = exports2.noScrollbarsClassName = exports2.fullWidthClassName = exports2.zeroRightClassName = exports2.RemoveScrollBar = void 0;\n    var component_1 = require_component2();\n    Object.defineProperty(exports2, \"RemoveScrollBar\", { enumerable: true, get: /* @__PURE__ */ __name(function() {\n      return component_1.RemoveScrollBar;\n    }, \"get\") });\n    var constants_1 = require_constants2();\n    Object.defineProperty(exports2, \"zeroRightClassName\", { enumerable: true, get: /* @__PURE__ */ __name(function() {\n      return constants_1.zeroRightClassName;\n    }, \"get\") });\n    Object.defineProperty(exports2, \"fullWidthClassName\", { enumerable: true, get: /* @__PURE__ */ __name(function() {\n      return constants_1.fullWidthClassName;\n    }, \"get\") });\n    Object.defineProperty(exports2, \"noScrollbarsClassName\", { enumerable: true, get: /* @__PURE__ */ __name(function() {\n      return constants_1.noScrollbarsClassName;\n    }, \"get\") });\n    Object.defineProperty(exports2, \"removedBarSizeVariable\", { enumerable: true, get: /* @__PURE__ */ __name(function() {\n      return constants_1.removedBarSizeVariable;\n    }, \"get\") });\n    var utils_1 = require_utils();\n    Object.defineProperty(exports2, \"getGapWidth\", { enumerable: true, get: /* @__PURE__ */ __name(function() {\n      return utils_1.getGapWidth;\n    }, \"get\") });\n  }\n});\n\n// node_modules/react-remove-scroll/dist/es5/aggresiveCapture.js\nvar require_aggresiveCapture = __commonJS({\n  \"node_modules/react-remove-scroll/dist/es5/aggresiveCapture.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    exports2.nonPassive = void 0;\n    var passiveSupported = false;\n    if (typeof window !== \"undefined\") {\n      try {\n        options = Object.defineProperty({}, \"passive\", {\n          get: /* @__PURE__ */ __name(function() {\n            passiveSupported = true;\n            return true;\n          }, \"get\")\n        });\n        window.addEventListener(\"test\", options, options);\n        window.removeEventListener(\"test\", options, options);\n      } catch (err) {\n        passiveSupported = false;\n      }\n    }\n    var options;\n    exports2.nonPassive = passiveSupported ? { passive: false } : false;\n  }\n});\n\n// node_modules/react-remove-scroll/dist/es5/handleScroll.js\nvar require_handleScroll = __commonJS({\n  \"node_modules/react-remove-scroll/dist/es5/handleScroll.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    exports2.handleScroll = exports2.locationCouldBeScrolled = void 0;\n    var alwaysContainsScroll = /* @__PURE__ */ __name(function(node) {\n      return node.tagName === \"TEXTAREA\";\n    }, \"alwaysContainsScroll\");\n    var elementCanBeScrolled = /* @__PURE__ */ __name(function(node, overflow) {\n      if (!(node instanceof Element)) {\n        return false;\n      }\n      var styles = window.getComputedStyle(node);\n      return (\n        // not-not-scrollable\n        styles[overflow] !== \"hidden\" && // contains scroll inside self\n        !(styles.overflowY === styles.overflowX && !alwaysContainsScroll(node) && styles[overflow] === \"visible\")\n      );\n    }, \"elementCanBeScrolled\");\n    var elementCouldBeVScrolled = /* @__PURE__ */ __name(function(node) {\n      return elementCanBeScrolled(node, \"overflowY\");\n    }, \"elementCouldBeVScrolled\");\n    var elementCouldBeHScrolled = /* @__PURE__ */ __name(function(node) {\n      return elementCanBeScrolled(node, \"overflowX\");\n    }, \"elementCouldBeHScrolled\");\n    var locationCouldBeScrolled = /* @__PURE__ */ __name(function(axis, node) {\n      var ownerDocument = node.ownerDocument;\n      var current = node;\n      do {\n        if (typeof ShadowRoot !== \"undefined\" && current instanceof ShadowRoot) {\n          current = current.host;\n        }\n        var isScrollable = elementCouldBeScrolled(axis, current);\n        if (isScrollable) {\n          var _a = getScrollVariables(axis, current), scrollHeight = _a[1], clientHeight = _a[2];\n          if (scrollHeight > clientHeight) {\n            return true;\n          }\n        }\n        current = current.parentNode;\n      } while (current && current !== ownerDocument.body);\n      return false;\n    }, \"locationCouldBeScrolled\");\n    exports2.locationCouldBeScrolled = locationCouldBeScrolled;\n    var getVScrollVariables = /* @__PURE__ */ __name(function(_a) {\n      var scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight;\n      return [\n        scrollTop,\n        scrollHeight,\n        clientHeight\n      ];\n    }, \"getVScrollVariables\");\n    var getHScrollVariables = /* @__PURE__ */ __name(function(_a) {\n      var scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;\n      return [\n        scrollLeft,\n        scrollWidth,\n        clientWidth\n      ];\n    }, \"getHScrollVariables\");\n    var elementCouldBeScrolled = /* @__PURE__ */ __name(function(axis, node) {\n      return axis === \"v\" ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node);\n    }, \"elementCouldBeScrolled\");\n    var getScrollVariables = /* @__PURE__ */ __name(function(axis, node) {\n      return axis === \"v\" ? getVScrollVariables(node) : getHScrollVariables(node);\n    }, \"getScrollVariables\");\n    var getDirectionFactor = /* @__PURE__ */ __name(function(axis, direction) {\n      return axis === \"h\" && direction === \"rtl\" ? -1 : 1;\n    }, \"getDirectionFactor\");\n    var handleScroll = /* @__PURE__ */ __name(function(axis, endTarget, event, sourceDelta, noOverscroll) {\n      var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction);\n      var delta = directionFactor * sourceDelta;\n      var target = event.target;\n      var targetInLock = endTarget.contains(target);\n      var shouldCancelScroll = false;\n      var isDeltaPositive = delta > 0;\n      var availableScroll = 0;\n      var availableScrollTop = 0;\n      do {\n        var _a = getScrollVariables(axis, target), position = _a[0], scroll_1 = _a[1], capacity = _a[2];\n        var elementScroll = scroll_1 - capacity - directionFactor * position;\n        if (position || elementScroll) {\n          if (elementCouldBeScrolled(axis, target)) {\n            availableScroll += elementScroll;\n            availableScrollTop += position;\n          }\n        }\n        if (target instanceof ShadowRoot) {\n          target = target.host;\n        } else {\n          target = target.parentNode;\n        }\n      } while (\n        // portaled content\n        !targetInLock && target !== document.body || // self content\n        targetInLock && (endTarget.contains(target) || endTarget === target)\n      );\n      if (isDeltaPositive && (noOverscroll && Math.abs(availableScroll) < 1 || !noOverscroll && delta > availableScroll)) {\n        shouldCancelScroll = true;\n      } else if (!isDeltaPositive && (noOverscroll && Math.abs(availableScrollTop) < 1 || !noOverscroll && -delta > availableScrollTop)) {\n        shouldCancelScroll = true;\n      }\n      return shouldCancelScroll;\n    }, \"handleScroll\");\n    exports2.handleScroll = handleScroll;\n  }\n});\n\n// node_modules/react-remove-scroll/dist/es5/SideEffect.js\nvar require_SideEffect = __commonJS({\n  \"node_modules/react-remove-scroll/dist/es5/SideEffect.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    exports2.RemoveScrollSideCar = exports2.getDeltaXY = exports2.getTouchXY = void 0;\n    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));\n    var React75 = tslib_1.__importStar(require(\"react\"));\n    var react_remove_scroll_bar_1 = require_es56();\n    var react_style_singleton_1 = require_es55();\n    var aggresiveCapture_1 = require_aggresiveCapture();\n    var handleScroll_1 = require_handleScroll();\n    var getTouchXY = /* @__PURE__ */ __name(function(event) {\n      return \"changedTouches\" in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0];\n    }, \"getTouchXY\");\n    exports2.getTouchXY = getTouchXY;\n    var getDeltaXY = /* @__PURE__ */ __name(function(event) {\n      return [event.deltaX, event.deltaY];\n    }, \"getDeltaXY\");\n    exports2.getDeltaXY = getDeltaXY;\n    var extractRef = /* @__PURE__ */ __name(function(ref) {\n      return ref && \"current\" in ref ? ref.current : ref;\n    }, \"extractRef\");\n    var deltaCompare = /* @__PURE__ */ __name(function(x, y) {\n      return x[0] === y[0] && x[1] === y[1];\n    }, \"deltaCompare\");\n    var generateStyle = /* @__PURE__ */ __name(function(id) {\n      return \"\\n  .block-interactivity-\".concat(id, \" {pointer-events: none;}\\n  .allow-interactivity-\").concat(id, \" {pointer-events: all;}\\n\");\n    }, \"generateStyle\");\n    var idCounter = 0;\n    var lockStack = [];\n    function RemoveScrollSideCar(props) {\n      var shouldPreventQueue = React75.useRef([]);\n      var touchStartRef = React75.useRef([0, 0]);\n      var activeAxis = React75.useRef();\n      var id = React75.useState(idCounter++)[0];\n      var Style = React75.useState(react_style_singleton_1.styleSingleton)[0];\n      var lastProps = React75.useRef(props);\n      React75.useEffect(function() {\n        lastProps.current = props;\n      }, [props]);\n      React75.useEffect(function() {\n        if (props.inert) {\n          document.body.classList.add(\"block-interactivity-\".concat(id));\n          var allow_1 = tslib_1.__spreadArray([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);\n          allow_1.forEach(function(el) {\n            return el.classList.add(\"allow-interactivity-\".concat(id));\n          });\n          return function() {\n            document.body.classList.remove(\"block-interactivity-\".concat(id));\n            allow_1.forEach(function(el) {\n              return el.classList.remove(\"allow-interactivity-\".concat(id));\n            });\n          };\n        }\n        return;\n      }, [props.inert, props.lockRef.current, props.shards]);\n      var shouldCancelEvent = React75.useCallback(function(event, parent) {\n        if (\"touches\" in event && event.touches.length === 2 || event.type === \"wheel\" && event.ctrlKey) {\n          return !lastProps.current.allowPinchZoom;\n        }\n        var touch = (0, exports2.getTouchXY)(event);\n        var touchStart = touchStartRef.current;\n        var deltaX = \"deltaX\" in event ? event.deltaX : touchStart[0] - touch[0];\n        var deltaY = \"deltaY\" in event ? event.deltaY : touchStart[1] - touch[1];\n        var currentAxis;\n        var target = event.target;\n        var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? \"h\" : \"v\";\n        if (\"touches\" in event && moveDirection === \"h\" && target.type === \"range\") {\n          return false;\n        }\n        var canBeScrolledInMainDirection = (0, handleScroll_1.locationCouldBeScrolled)(moveDirection, target);\n        if (!canBeScrolledInMainDirection) {\n          return true;\n        }\n        if (canBeScrolledInMainDirection) {\n          currentAxis = moveDirection;\n        } else {\n          currentAxis = moveDirection === \"v\" ? \"h\" : \"v\";\n          canBeScrolledInMainDirection = (0, handleScroll_1.locationCouldBeScrolled)(moveDirection, target);\n        }\n        if (!canBeScrolledInMainDirection) {\n          return false;\n        }\n        if (!activeAxis.current && \"changedTouches\" in event && (deltaX || deltaY)) {\n          activeAxis.current = currentAxis;\n        }\n        if (!currentAxis) {\n          return true;\n        }\n        var cancelingAxis = activeAxis.current || currentAxis;\n        return (0, handleScroll_1.handleScroll)(cancelingAxis, parent, event, cancelingAxis === \"h\" ? deltaX : deltaY, true);\n      }, []);\n      var shouldPrevent = React75.useCallback(function(_event) {\n        var event = _event;\n        if (!lockStack.length || lockStack[lockStack.length - 1] !== Style) {\n          return;\n        }\n        var delta = \"deltaY\" in event ? (0, exports2.getDeltaXY)(event) : (0, exports2.getTouchXY)(event);\n        var sourceEvent = shouldPreventQueue.current.filter(function(e) {\n          return e.name === event.type && (e.target === event.target || event.target === e.shadowParent) && deltaCompare(e.delta, delta);\n        })[0];\n        if (sourceEvent && sourceEvent.should) {\n          if (event.cancelable) {\n            event.preventDefault();\n          }\n          return;\n        }\n        if (!sourceEvent) {\n          var shardNodes = (lastProps.current.shards || []).map(extractRef).filter(Boolean).filter(function(node) {\n            return node.contains(event.target);\n          });\n          var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation;\n          if (shouldStop) {\n            if (event.cancelable) {\n              event.preventDefault();\n            }\n          }\n        }\n      }, []);\n      var shouldCancel = React75.useCallback(function(name, delta, target, should) {\n        var event = { name, delta, target, should, shadowParent: getOutermostShadowParent(target) };\n        shouldPreventQueue.current.push(event);\n        setTimeout(function() {\n          shouldPreventQueue.current = shouldPreventQueue.current.filter(function(e) {\n            return e !== event;\n          });\n        }, 1);\n      }, []);\n      var scrollTouchStart = React75.useCallback(function(event) {\n        touchStartRef.current = (0, exports2.getTouchXY)(event);\n        activeAxis.current = void 0;\n      }, []);\n      var scrollWheel = React75.useCallback(function(event) {\n        shouldCancel(event.type, (0, exports2.getDeltaXY)(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n      }, []);\n      var scrollTouchMove = React75.useCallback(function(event) {\n        shouldCancel(event.type, (0, exports2.getTouchXY)(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n      }, []);\n      React75.useEffect(function() {\n        lockStack.push(Style);\n        props.setCallbacks({\n          onScrollCapture: scrollWheel,\n          onWheelCapture: scrollWheel,\n          onTouchMoveCapture: scrollTouchMove\n        });\n        document.addEventListener(\"wheel\", shouldPrevent, aggresiveCapture_1.nonPassive);\n        document.addEventListener(\"touchmove\", shouldPrevent, aggresiveCapture_1.nonPassive);\n        document.addEventListener(\"touchstart\", scrollTouchStart, aggresiveCapture_1.nonPassive);\n        return function() {\n          lockStack = lockStack.filter(function(inst) {\n            return inst !== Style;\n          });\n          document.removeEventListener(\"wheel\", shouldPrevent, aggresiveCapture_1.nonPassive);\n          document.removeEventListener(\"touchmove\", shouldPrevent, aggresiveCapture_1.nonPassive);\n          document.removeEventListener(\"touchstart\", scrollTouchStart, aggresiveCapture_1.nonPassive);\n        };\n      }, []);\n      var removeScrollBar = props.removeScrollBar, inert = props.inert;\n      return React75.createElement(\n        React75.Fragment,\n        null,\n        inert ? React75.createElement(Style, { styles: generateStyle(id) }) : null,\n        removeScrollBar ? React75.createElement(react_remove_scroll_bar_1.RemoveScrollBar, { gapMode: props.gapMode }) : null\n      );\n    }\n    __name(RemoveScrollSideCar, \"RemoveScrollSideCar\");\n    exports2.RemoveScrollSideCar = RemoveScrollSideCar;\n    function getOutermostShadowParent(node) {\n      var shadowParent = null;\n      while (node !== null) {\n        if (node instanceof ShadowRoot) {\n          shadowParent = node.host;\n          node = node.host;\n        }\n        node = node.parentNode;\n      }\n      return shadowParent;\n    }\n    __name(getOutermostShadowParent, \"getOutermostShadowParent\");\n  }\n});\n\n// node_modules/react-remove-scroll/dist/es5/sidecar.js\nvar require_sidecar = __commonJS({\n  \"node_modules/react-remove-scroll/dist/es5/sidecar.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    var use_sidecar_1 = require_es53();\n    var SideEffect_1 = require_SideEffect();\n    var medium_1 = require_medium2();\n    exports2.default = (0, use_sidecar_1.exportSidecar)(medium_1.effectCar, SideEffect_1.RemoveScrollSideCar);\n  }\n});\n\n// node_modules/react-remove-scroll/dist/es5/Combination.js\nvar require_Combination = __commonJS({\n  \"node_modules/react-remove-scroll/dist/es5/Combination.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));\n    var React75 = tslib_1.__importStar(require(\"react\"));\n    var UI_1 = require_UI();\n    var sidecar_1 = tslib_1.__importDefault(require_sidecar());\n    var ReactRemoveScroll = React75.forwardRef(function(props, ref) {\n      return React75.createElement(UI_1.RemoveScroll, tslib_1.__assign({}, props, { ref, sideCar: sidecar_1.default }));\n    });\n    ReactRemoveScroll.classNames = UI_1.RemoveScroll.classNames;\n    exports2.default = ReactRemoveScroll;\n  }\n});\n\n// node_modules/react-remove-scroll/dist/es5/index.js\nvar require_es57 = __commonJS({\n  \"node_modules/react-remove-scroll/dist/es5/index.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    exports2.RemoveScroll = void 0;\n    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));\n    var Combination_1 = tslib_1.__importDefault(require_Combination());\n    exports2.RemoveScroll = Combination_1.default;\n  }\n});\n\n// node_modules/@babel/runtime/helpers/interopRequireDefault.js\nvar require_interopRequireDefault = __commonJS({\n  \"node_modules/@babel/runtime/helpers/interopRequireDefault.js\"(exports2, module2) {\n    function _interopRequireDefault(e) {\n      return e && e.__esModule ? e : {\n        \"default\": e\n      };\n    }\n    __name(_interopRequireDefault, \"_interopRequireDefault\");\n    module2.exports = _interopRequireDefault, module2.exports.__esModule = true, module2.exports[\"default\"] = module2.exports;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/AccessibilityUtil/isDisabled.js\nvar require_isDisabled = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/AccessibilityUtil/isDisabled.js\"(exports2, module2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var isDisabled2 = /* @__PURE__ */ __name((props) => props.disabled || Array.isArray(props.accessibilityStates) && props.accessibilityStates.indexOf(\"disabled\") > -1, \"isDisabled\");\n    var _default = exports2.default = isDisabled2;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/AccessibilityUtil/propsToAriaRole.js\nvar require_propsToAriaRole = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/AccessibilityUtil/propsToAriaRole.js\"(exports2, module2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var accessibilityRoleToWebRole = {\n      adjustable: \"slider\",\n      button: \"button\",\n      header: \"heading\",\n      image: \"img\",\n      imagebutton: null,\n      keyboardkey: null,\n      label: null,\n      link: \"link\",\n      none: \"presentation\",\n      search: \"search\",\n      summary: \"region\",\n      text: null\n    };\n    var propsToAriaRole = /* @__PURE__ */ __name((_ref) => {\n      var accessibilityRole = _ref.accessibilityRole, role = _ref.role;\n      var _role = role || accessibilityRole;\n      if (_role) {\n        var inferredRole = accessibilityRoleToWebRole[_role];\n        if (inferredRole !== null) {\n          return inferredRole || _role;\n        }\n      }\n    }, \"propsToAriaRole\");\n    var _default = exports2.default = propsToAriaRole;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/AccessibilityUtil/propsToAccessibilityComponent.js\nvar require_propsToAccessibilityComponent = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/AccessibilityUtil/propsToAccessibilityComponent.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _propsToAriaRole = _interopRequireDefault(require_propsToAriaRole());\n    var roleComponents = {\n      article: \"article\",\n      banner: \"header\",\n      blockquote: \"blockquote\",\n      button: \"button\",\n      code: \"code\",\n      complementary: \"aside\",\n      contentinfo: \"footer\",\n      deletion: \"del\",\n      emphasis: \"em\",\n      figure: \"figure\",\n      insertion: \"ins\",\n      form: \"form\",\n      list: \"ul\",\n      listitem: \"li\",\n      main: \"main\",\n      navigation: \"nav\",\n      paragraph: \"p\",\n      region: \"section\",\n      strong: \"strong\"\n    };\n    var emptyObject = {};\n    var propsToAccessibilityComponent = /* @__PURE__ */ __name(function propsToAccessibilityComponent2(props) {\n      if (props === void 0) {\n        props = emptyObject;\n      }\n      var roleProp = props.role || props.accessibilityRole;\n      if (roleProp === \"label\") {\n        return \"label\";\n      }\n      var role = (0, _propsToAriaRole.default)(props);\n      if (role) {\n        if (role === \"heading\") {\n          var level = props.accessibilityLevel || props[\"aria-level\"];\n          if (level != null) {\n            return \"h\" + level;\n          }\n          return \"h1\";\n        }\n        return roleComponents[role];\n      }\n    }, \"propsToAccessibilityComponent\");\n    var _default = exports2.default = propsToAccessibilityComponent;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/AccessibilityUtil/index.js\nvar require_AccessibilityUtil = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/AccessibilityUtil/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _isDisabled = _interopRequireDefault(require_isDisabled());\n    var _propsToAccessibilityComponent = _interopRequireDefault(require_propsToAccessibilityComponent());\n    var _propsToAriaRole = _interopRequireDefault(require_propsToAriaRole());\n    var AccessibilityUtil = {\n      isDisabled: _isDisabled.default,\n      propsToAccessibilityComponent: _propsToAccessibilityComponent.default,\n      propsToAriaRole: _propsToAriaRole.default\n    };\n    var _default = exports2.default = AccessibilityUtil;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/@babel/runtime/helpers/typeof.js\nvar require_typeof = __commonJS({\n  \"node_modules/@babel/runtime/helpers/typeof.js\"(exports2, module2) {\n    function _typeof(o) {\n      \"@babel/helpers - typeof\";\n      return module2.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(o2) {\n        return typeof o2;\n      } : function(o2) {\n        return o2 && \"function\" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? \"symbol\" : typeof o2;\n      }, module2.exports.__esModule = true, module2.exports[\"default\"] = module2.exports, _typeof(o);\n    }\n    __name(_typeof, \"_typeof\");\n    module2.exports = _typeof, module2.exports.__esModule = true, module2.exports[\"default\"] = module2.exports;\n  }\n});\n\n// node_modules/@babel/runtime/helpers/toPrimitive.js\nvar require_toPrimitive = __commonJS({\n  \"node_modules/@babel/runtime/helpers/toPrimitive.js\"(exports2, module2) {\n    var _typeof = require_typeof()[\"default\"];\n    function toPrimitive(t, r) {\n      if (\"object\" != _typeof(t) || !t) return t;\n      var e = t[Symbol.toPrimitive];\n      if (void 0 !== e) {\n        var i = e.call(t, r || \"default\");\n        if (\"object\" != _typeof(i)) return i;\n        throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n      }\n      return (\"string\" === r ? String : Number)(t);\n    }\n    __name(toPrimitive, \"toPrimitive\");\n    module2.exports = toPrimitive, module2.exports.__esModule = true, module2.exports[\"default\"] = module2.exports;\n  }\n});\n\n// node_modules/@babel/runtime/helpers/toPropertyKey.js\nvar require_toPropertyKey = __commonJS({\n  \"node_modules/@babel/runtime/helpers/toPropertyKey.js\"(exports2, module2) {\n    var _typeof = require_typeof()[\"default\"];\n    var toPrimitive = require_toPrimitive();\n    function toPropertyKey(t) {\n      var i = toPrimitive(t, \"string\");\n      return \"symbol\" == _typeof(i) ? i : i + \"\";\n    }\n    __name(toPropertyKey, \"toPropertyKey\");\n    module2.exports = toPropertyKey, module2.exports.__esModule = true, module2.exports[\"default\"] = module2.exports;\n  }\n});\n\n// node_modules/@babel/runtime/helpers/defineProperty.js\nvar require_defineProperty = __commonJS({\n  \"node_modules/@babel/runtime/helpers/defineProperty.js\"(exports2, module2) {\n    var toPropertyKey = require_toPropertyKey();\n    function _defineProperty(e, r, t) {\n      return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n        value: t,\n        enumerable: true,\n        configurable: true,\n        writable: true\n      }) : e[r] = t, e;\n    }\n    __name(_defineProperty, \"_defineProperty\");\n    module2.exports = _defineProperty, module2.exports.__esModule = true, module2.exports[\"default\"] = module2.exports;\n  }\n});\n\n// node_modules/@babel/runtime/helpers/objectSpread2.js\nvar require_objectSpread2 = __commonJS({\n  \"node_modules/@babel/runtime/helpers/objectSpread2.js\"(exports2, module2) {\n    var defineProperty = require_defineProperty();\n    function ownKeys2(e, r) {\n      var t = Object.keys(e);\n      if (Object.getOwnPropertySymbols) {\n        var o = Object.getOwnPropertySymbols(e);\n        r && (o = o.filter(function(r2) {\n          return Object.getOwnPropertyDescriptor(e, r2).enumerable;\n        })), t.push.apply(t, o);\n      }\n      return t;\n    }\n    __name(ownKeys2, \"ownKeys\");\n    function _objectSpread2(e) {\n      for (var r = 1; r < arguments.length; r++) {\n        var t = null != arguments[r] ? arguments[r] : {};\n        r % 2 ? ownKeys2(Object(t), true).forEach(function(r2) {\n          defineProperty(e, r2, t[r2]);\n        }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys2(Object(t)).forEach(function(r2) {\n          Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2));\n        });\n      }\n      return e;\n    }\n    __name(_objectSpread2, \"_objectSpread2\");\n    module2.exports = _objectSpread2, module2.exports.__esModule = true, module2.exports[\"default\"] = module2.exports;\n  }\n});\n\n// node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\nvar require_objectWithoutPropertiesLoose = __commonJS({\n  \"node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\"(exports2, module2) {\n    function _objectWithoutPropertiesLoose(r, e) {\n      if (null == r) return {};\n      var t = {};\n      for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n        if (-1 !== e.indexOf(n)) continue;\n        t[n] = r[n];\n      }\n      return t;\n    }\n    __name(_objectWithoutPropertiesLoose, \"_objectWithoutPropertiesLoose\");\n    module2.exports = _objectWithoutPropertiesLoose, module2.exports.__esModule = true, module2.exports[\"default\"] = module2.exports;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/StyleSheet/compiler/unitlessNumbers.js\nvar require_unitlessNumbers = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/StyleSheet/compiler/unitlessNumbers.js\"(exports2, module2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var unitlessNumbers = {\n      animationIterationCount: true,\n      aspectRatio: true,\n      borderImageOutset: true,\n      borderImageSlice: true,\n      borderImageWidth: true,\n      boxFlex: true,\n      boxFlexGroup: true,\n      boxOrdinalGroup: true,\n      columnCount: true,\n      flex: true,\n      flexGrow: true,\n      flexOrder: true,\n      flexPositive: true,\n      flexShrink: true,\n      flexNegative: true,\n      fontWeight: true,\n      gridRow: true,\n      gridRowEnd: true,\n      gridRowGap: true,\n      gridRowStart: true,\n      gridColumn: true,\n      gridColumnEnd: true,\n      gridColumnGap: true,\n      gridColumnStart: true,\n      lineClamp: true,\n      opacity: true,\n      order: true,\n      orphans: true,\n      tabSize: true,\n      widows: true,\n      zIndex: true,\n      zoom: true,\n      // SVG-related\n      fillOpacity: true,\n      floodOpacity: true,\n      stopOpacity: true,\n      strokeDasharray: true,\n      strokeDashoffset: true,\n      strokeMiterlimit: true,\n      strokeOpacity: true,\n      strokeWidth: true,\n      // transform types\n      scale: true,\n      scaleX: true,\n      scaleY: true,\n      scaleZ: true,\n      // RN properties\n      shadowOpacity: true\n    };\n    var prefixes = [\"ms\", \"Moz\", \"O\", \"Webkit\"];\n    var prefixKey = /* @__PURE__ */ __name((prefix, key) => {\n      return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n    }, \"prefixKey\");\n    Object.keys(unitlessNumbers).forEach((prop) => {\n      prefixes.forEach((prefix) => {\n        unitlessNumbers[prefixKey(prefix, prop)] = unitlessNumbers[prop];\n      });\n    });\n    var _default = exports2.default = unitlessNumbers;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/isWebColor/index.js\nvar require_isWebColor = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/isWebColor/index.js\"(exports2, module2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var isWebColor = /* @__PURE__ */ __name((color) => color === \"currentcolor\" || color === \"currentColor\" || color === \"inherit\" || color.indexOf(\"var(\") === 0, \"isWebColor\");\n    var _default = exports2.default = isWebColor;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/node_modules/@react-native/normalize-colors/index.js\nvar require_normalize_colors = __commonJS({\n  \"node_modules/react-native-web/node_modules/@react-native/normalize-colors/index.js\"(exports2, module2) {\n    \"use strict\";\n    function normalizeColor(color) {\n      if (typeof color === \"number\") {\n        if (color >>> 0 === color && color >= 0 && color <= 4294967295) {\n          return color;\n        }\n        return null;\n      }\n      if (typeof color !== \"string\") {\n        return null;\n      }\n      const matchers = getMatchers();\n      let match;\n      if (match = matchers.hex6.exec(color)) {\n        return parseInt(match[1] + \"ff\", 16) >>> 0;\n      }\n      const colorFromKeyword = normalizeKeyword(color);\n      if (colorFromKeyword != null) {\n        return colorFromKeyword;\n      }\n      if (match = matchers.rgb.exec(color)) {\n        return (parse255(match[1]) << 24 | // r\n        parse255(match[2]) << 16 | // g\n        parse255(match[3]) << 8 | // b\n        255) >>> // a\n        0;\n      }\n      if (match = matchers.rgba.exec(color)) {\n        if (match[6] !== void 0) {\n          return (parse255(match[6]) << 24 | // r\n          parse255(match[7]) << 16 | // g\n          parse255(match[8]) << 8 | // b\n          parse1(match[9])) >>> // a\n          0;\n        }\n        return (parse255(match[2]) << 24 | // r\n        parse255(match[3]) << 16 | // g\n        parse255(match[4]) << 8 | // b\n        parse1(match[5])) >>> // a\n        0;\n      }\n      if (match = matchers.hex3.exec(color)) {\n        return parseInt(\n          match[1] + match[1] + // r\n          match[2] + match[2] + // g\n          match[3] + match[3] + // b\n          \"ff\",\n          // a\n          16\n        ) >>> 0;\n      }\n      if (match = matchers.hex8.exec(color)) {\n        return parseInt(match[1], 16) >>> 0;\n      }\n      if (match = matchers.hex4.exec(color)) {\n        return parseInt(\n          match[1] + match[1] + // r\n          match[2] + match[2] + // g\n          match[3] + match[3] + // b\n          match[4] + match[4],\n          // a\n          16\n        ) >>> 0;\n      }\n      if (match = matchers.hsl.exec(color)) {\n        return (hslToRgb(\n          parse360(match[1]),\n          // h\n          parsePercentage(match[2]),\n          // s\n          parsePercentage(match[3])\n          // l\n        ) | 255) >>> // a\n        0;\n      }\n      if (match = matchers.hsla.exec(color)) {\n        if (match[6] !== void 0) {\n          return (hslToRgb(\n            parse360(match[6]),\n            // h\n            parsePercentage(match[7]),\n            // s\n            parsePercentage(match[8])\n            // l\n          ) | parse1(match[9])) >>> // a\n          0;\n        }\n        return (hslToRgb(\n          parse360(match[2]),\n          // h\n          parsePercentage(match[3]),\n          // s\n          parsePercentage(match[4])\n          // l\n        ) | parse1(match[5])) >>> // a\n        0;\n      }\n      if (match = matchers.hwb.exec(color)) {\n        return (hwbToRgb(\n          parse360(match[1]),\n          // h\n          parsePercentage(match[2]),\n          // w\n          parsePercentage(match[3])\n          // b\n        ) | 255) >>> // a\n        0;\n      }\n      return null;\n    }\n    __name(normalizeColor, \"normalizeColor\");\n    function hue2rgb(p, q, t) {\n      if (t < 0) {\n        t += 1;\n      }\n      if (t > 1) {\n        t -= 1;\n      }\n      if (t < 1 / 6) {\n        return p + (q - p) * 6 * t;\n      }\n      if (t < 1 / 2) {\n        return q;\n      }\n      if (t < 2 / 3) {\n        return p + (q - p) * (2 / 3 - t) * 6;\n      }\n      return p;\n    }\n    __name(hue2rgb, \"hue2rgb\");\n    function hslToRgb(h, s, l) {\n      const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n      const p = 2 * l - q;\n      const r = hue2rgb(p, q, h + 1 / 3);\n      const g = hue2rgb(p, q, h);\n      const b = hue2rgb(p, q, h - 1 / 3);\n      return Math.round(r * 255) << 24 | Math.round(g * 255) << 16 | Math.round(b * 255) << 8;\n    }\n    __name(hslToRgb, \"hslToRgb\");\n    function hwbToRgb(h, w, b) {\n      if (w + b >= 1) {\n        const gray = Math.round(w * 255 / (w + b));\n        return gray << 24 | gray << 16 | gray << 8;\n      }\n      const red = hue2rgb(0, 1, h + 1 / 3) * (1 - w - b) + w;\n      const green = hue2rgb(0, 1, h) * (1 - w - b) + w;\n      const blue = hue2rgb(0, 1, h - 1 / 3) * (1 - w - b) + w;\n      return Math.round(red * 255) << 24 | Math.round(green * 255) << 16 | Math.round(blue * 255) << 8;\n    }\n    __name(hwbToRgb, \"hwbToRgb\");\n    var NUMBER = \"[-+]?\\\\d*\\\\.?\\\\d+\";\n    var PERCENTAGE = NUMBER + \"%\";\n    function call(...args) {\n      return \"\\\\(\\\\s*(\" + args.join(\")\\\\s*,?\\\\s*(\") + \")\\\\s*\\\\)\";\n    }\n    __name(call, \"call\");\n    function callWithSlashSeparator(...args) {\n      return \"\\\\(\\\\s*(\" + args.slice(0, args.length - 1).join(\")\\\\s*,?\\\\s*(\") + \")\\\\s*/\\\\s*(\" + args[args.length - 1] + \")\\\\s*\\\\)\";\n    }\n    __name(callWithSlashSeparator, \"callWithSlashSeparator\");\n    function commaSeparatedCall(...args) {\n      return \"\\\\(\\\\s*(\" + args.join(\")\\\\s*,\\\\s*(\") + \")\\\\s*\\\\)\";\n    }\n    __name(commaSeparatedCall, \"commaSeparatedCall\");\n    var cachedMatchers;\n    function getMatchers() {\n      if (cachedMatchers === void 0) {\n        cachedMatchers = {\n          rgb: new RegExp(\"rgb\" + call(NUMBER, NUMBER, NUMBER)),\n          rgba: new RegExp(\n            \"rgba(\" + commaSeparatedCall(NUMBER, NUMBER, NUMBER, NUMBER) + \"|\" + callWithSlashSeparator(NUMBER, NUMBER, NUMBER, NUMBER) + \")\"\n          ),\n          hsl: new RegExp(\"hsl\" + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n          hsla: new RegExp(\n            \"hsla(\" + commaSeparatedCall(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER) + \"|\" + callWithSlashSeparator(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER) + \")\"\n          ),\n          hwb: new RegExp(\"hwb\" + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n          hex3: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n          hex4: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n          hex6: /^#([0-9a-fA-F]{6})$/,\n          hex8: /^#([0-9a-fA-F]{8})$/\n        };\n      }\n      return cachedMatchers;\n    }\n    __name(getMatchers, \"getMatchers\");\n    function parse255(str) {\n      const int = parseInt(str, 10);\n      if (int < 0) {\n        return 0;\n      }\n      if (int > 255) {\n        return 255;\n      }\n      return int;\n    }\n    __name(parse255, \"parse255\");\n    function parse360(str) {\n      const int = parseFloat(str);\n      return (int % 360 + 360) % 360 / 360;\n    }\n    __name(parse360, \"parse360\");\n    function parse1(str) {\n      const num = parseFloat(str);\n      if (num < 0) {\n        return 0;\n      }\n      if (num > 1) {\n        return 255;\n      }\n      return Math.round(num * 255);\n    }\n    __name(parse1, \"parse1\");\n    function parsePercentage(str) {\n      const int = parseFloat(str);\n      if (int < 0) {\n        return 0;\n      }\n      if (int > 100) {\n        return 1;\n      }\n      return int / 100;\n    }\n    __name(parsePercentage, \"parsePercentage\");\n    function normalizeKeyword(name) {\n      switch (name) {\n        case \"transparent\":\n          return 0;\n        // http://www.w3.org/TR/css3-color/#svg-color\n        case \"aliceblue\":\n          return 4042850303;\n        case \"antiquewhite\":\n          return 4209760255;\n        case \"aqua\":\n          return 16777215;\n        case \"aquamarine\":\n          return 2147472639;\n        case \"azure\":\n          return 4043309055;\n        case \"beige\":\n          return 4126530815;\n        case \"bisque\":\n          return 4293182719;\n        case \"black\":\n          return 255;\n        case \"blanchedalmond\":\n          return 4293643775;\n        case \"blue\":\n          return 65535;\n        case \"blueviolet\":\n          return 2318131967;\n        case \"brown\":\n          return 2771004159;\n        case \"burlywood\":\n          return 3736635391;\n        case \"burntsienna\":\n          return 3934150143;\n        case \"cadetblue\":\n          return 1604231423;\n        case \"chartreuse\":\n          return 2147418367;\n        case \"chocolate\":\n          return 3530104575;\n        case \"coral\":\n          return 4286533887;\n        case \"cornflowerblue\":\n          return 1687547391;\n        case \"cornsilk\":\n          return 4294499583;\n        case \"crimson\":\n          return 3692313855;\n        case \"cyan\":\n          return 16777215;\n        case \"darkblue\":\n          return 35839;\n        case \"darkcyan\":\n          return 9145343;\n        case \"darkgoldenrod\":\n          return 3095792639;\n        case \"darkgray\":\n          return 2846468607;\n        case \"darkgreen\":\n          return 6553855;\n        case \"darkgrey\":\n          return 2846468607;\n        case \"darkkhaki\":\n          return 3182914559;\n        case \"darkmagenta\":\n          return 2332068863;\n        case \"darkolivegreen\":\n          return 1433087999;\n        case \"darkorange\":\n          return 4287365375;\n        case \"darkorchid\":\n          return 2570243327;\n        case \"darkred\":\n          return 2332033279;\n        case \"darksalmon\":\n          return 3918953215;\n        case \"darkseagreen\":\n          return 2411499519;\n        case \"darkslateblue\":\n          return 1211993087;\n        case \"darkslategray\":\n          return 793726975;\n        case \"darkslategrey\":\n          return 793726975;\n        case \"darkturquoise\":\n          return 13554175;\n        case \"darkviolet\":\n          return 2483082239;\n        case \"deeppink\":\n          return 4279538687;\n        case \"deepskyblue\":\n          return 12582911;\n        case \"dimgray\":\n          return 1768516095;\n        case \"dimgrey\":\n          return 1768516095;\n        case \"dodgerblue\":\n          return 512819199;\n        case \"firebrick\":\n          return 2988581631;\n        case \"floralwhite\":\n          return 4294635775;\n        case \"forestgreen\":\n          return 579543807;\n        case \"fuchsia\":\n          return 4278255615;\n        case \"gainsboro\":\n          return 3705462015;\n        case \"ghostwhite\":\n          return 4177068031;\n        case \"gold\":\n          return 4292280575;\n        case \"goldenrod\":\n          return 3668254975;\n        case \"gray\":\n          return 2155905279;\n        case \"green\":\n          return 8388863;\n        case \"greenyellow\":\n          return 2919182335;\n        case \"grey\":\n          return 2155905279;\n        case \"honeydew\":\n          return 4043305215;\n        case \"hotpink\":\n          return 4285117695;\n        case \"indianred\":\n          return 3445382399;\n        case \"indigo\":\n          return 1258324735;\n        case \"ivory\":\n          return 4294963455;\n        case \"khaki\":\n          return 4041641215;\n        case \"lavender\":\n          return 3873897215;\n        case \"lavenderblush\":\n          return 4293981695;\n        case \"lawngreen\":\n          return 2096890111;\n        case \"lemonchiffon\":\n          return 4294626815;\n        case \"lightblue\":\n          return 2916673279;\n        case \"lightcoral\":\n          return 4034953471;\n        case \"lightcyan\":\n          return 3774873599;\n        case \"lightgoldenrodyellow\":\n          return 4210742015;\n        case \"lightgray\":\n          return 3553874943;\n        case \"lightgreen\":\n          return 2431553791;\n        case \"lightgrey\":\n          return 3553874943;\n        case \"lightpink\":\n          return 4290167295;\n        case \"lightsalmon\":\n          return 4288707327;\n        case \"lightseagreen\":\n          return 548580095;\n        case \"lightskyblue\":\n          return 2278488831;\n        case \"lightslategray\":\n          return 2005441023;\n        case \"lightslategrey\":\n          return 2005441023;\n        case \"lightsteelblue\":\n          return 2965692159;\n        case \"lightyellow\":\n          return 4294959359;\n        case \"lime\":\n          return 16711935;\n        case \"limegreen\":\n          return 852308735;\n        case \"linen\":\n          return 4210091775;\n        case \"magenta\":\n          return 4278255615;\n        case \"maroon\":\n          return 2147483903;\n        case \"mediumaquamarine\":\n          return 1724754687;\n        case \"mediumblue\":\n          return 52735;\n        case \"mediumorchid\":\n          return 3126187007;\n        case \"mediumpurple\":\n          return 2473647103;\n        case \"mediumseagreen\":\n          return 1018393087;\n        case \"mediumslateblue\":\n          return 2070474495;\n        case \"mediumspringgreen\":\n          return 16423679;\n        case \"mediumturquoise\":\n          return 1221709055;\n        case \"mediumvioletred\":\n          return 3340076543;\n        case \"midnightblue\":\n          return 421097727;\n        case \"mintcream\":\n          return 4127193855;\n        case \"mistyrose\":\n          return 4293190143;\n        case \"moccasin\":\n          return 4293178879;\n        case \"navajowhite\":\n          return 4292783615;\n        case \"navy\":\n          return 33023;\n        case \"oldlace\":\n          return 4260751103;\n        case \"olive\":\n          return 2155872511;\n        case \"olivedrab\":\n          return 1804477439;\n        case \"orange\":\n          return 4289003775;\n        case \"orangered\":\n          return 4282712319;\n        case \"orchid\":\n          return 3664828159;\n        case \"palegoldenrod\":\n          return 4008225535;\n        case \"palegreen\":\n          return 2566625535;\n        case \"paleturquoise\":\n          return 2951671551;\n        case \"palevioletred\":\n          return 3681588223;\n        case \"papayawhip\":\n          return 4293907967;\n        case \"peachpuff\":\n          return 4292524543;\n        case \"peru\":\n          return 3448061951;\n        case \"pink\":\n          return 4290825215;\n        case \"plum\":\n          return 3718307327;\n        case \"powderblue\":\n          return 2967529215;\n        case \"purple\":\n          return 2147516671;\n        case \"rebeccapurple\":\n          return 1714657791;\n        case \"red\":\n          return 4278190335;\n        case \"rosybrown\":\n          return 3163525119;\n        case \"royalblue\":\n          return 1097458175;\n        case \"saddlebrown\":\n          return 2336560127;\n        case \"salmon\":\n          return 4202722047;\n        case \"sandybrown\":\n          return 4104413439;\n        case \"seagreen\":\n          return 780883967;\n        case \"seashell\":\n          return 4294307583;\n        case \"sienna\":\n          return 2689740287;\n        case \"silver\":\n          return 3233857791;\n        case \"skyblue\":\n          return 2278484991;\n        case \"slateblue\":\n          return 1784335871;\n        case \"slategray\":\n          return 1887473919;\n        case \"slategrey\":\n          return 1887473919;\n        case \"snow\":\n          return 4294638335;\n        case \"springgreen\":\n          return 16744447;\n        case \"steelblue\":\n          return 1182971135;\n        case \"tan\":\n          return 3535047935;\n        case \"teal\":\n          return 8421631;\n        case \"thistle\":\n          return 3636451583;\n        case \"tomato\":\n          return 4284696575;\n        case \"turquoise\":\n          return 1088475391;\n        case \"violet\":\n          return 4001558271;\n        case \"wheat\":\n          return 4125012991;\n        case \"white\":\n          return 4294967295;\n        case \"whitesmoke\":\n          return 4126537215;\n        case \"yellow\":\n          return 4294902015;\n        case \"yellowgreen\":\n          return 2597139199;\n      }\n      return null;\n    }\n    __name(normalizeKeyword, \"normalizeKeyword\");\n    module2.exports = normalizeColor;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/processColor/index.js\nvar require_processColor = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/processColor/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _normalizeColors = _interopRequireDefault(require_normalize_colors());\n    var processColor = /* @__PURE__ */ __name((color) => {\n      if (color === void 0 || color === null) {\n        return color;\n      }\n      var int32Color = (0, _normalizeColors.default)(color);\n      if (int32Color === void 0 || int32Color === null) {\n        return void 0;\n      }\n      int32Color = (int32Color << 24 | int32Color >>> 8) >>> 0;\n      return int32Color;\n    }, \"processColor\");\n    var _default = exports2.default = processColor;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/StyleSheet/compiler/normalizeColor.js\nvar require_normalizeColor = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/StyleSheet/compiler/normalizeColor.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _isWebColor = _interopRequireDefault(require_isWebColor());\n    var _processColor = _interopRequireDefault(require_processColor());\n    var normalizeColor = /* @__PURE__ */ __name(function normalizeColor2(color, opacity) {\n      if (opacity === void 0) {\n        opacity = 1;\n      }\n      if (color == null) return;\n      if (typeof color === \"string\" && (0, _isWebColor.default)(color)) {\n        return color;\n      }\n      var colorInt = (0, _processColor.default)(color);\n      if (colorInt != null) {\n        var r = colorInt >> 16 & 255;\n        var g = colorInt >> 8 & 255;\n        var b = colorInt & 255;\n        var a = (colorInt >> 24 & 255) / 255;\n        var alpha = (a * opacity).toFixed(2);\n        return \"rgba(\" + r + \",\" + g + \",\" + b + \",\" + alpha + \")\";\n      }\n    }, \"normalizeColor\");\n    var _default = exports2.default = normalizeColor;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/StyleSheet/compiler/normalizeValueWithProperty.js\nvar require_normalizeValueWithProperty = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/StyleSheet/compiler/normalizeValueWithProperty.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = normalizeValueWithProperty;\n    var _unitlessNumbers = _interopRequireDefault(require_unitlessNumbers());\n    var _normalizeColor = _interopRequireDefault(require_normalizeColor());\n    var colorProps = {\n      backgroundColor: true,\n      borderColor: true,\n      borderTopColor: true,\n      borderRightColor: true,\n      borderBottomColor: true,\n      borderLeftColor: true,\n      color: true,\n      shadowColor: true,\n      textDecorationColor: true,\n      textShadowColor: true\n    };\n    function normalizeValueWithProperty(value, property) {\n      var returnValue = value;\n      if ((property == null || !_unitlessNumbers.default[property]) && typeof value === \"number\") {\n        returnValue = value + \"px\";\n      } else if (property != null && colorProps[property]) {\n        returnValue = (0, _normalizeColor.default)(value);\n      }\n      return returnValue;\n    }\n    __name(normalizeValueWithProperty, \"normalizeValueWithProperty\");\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/canUseDom/index.js\nvar require_canUseDom = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/canUseDom/index.js\"(exports2, module2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n    var _default = exports2.default = canUseDOM;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/StyleSheet/compiler/createReactDOMStyle.js\nvar require_createReactDOMStyle = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/StyleSheet/compiler/createReactDOMStyle.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _normalizeValueWithProperty = _interopRequireDefault(require_normalizeValueWithProperty());\n    var _canUseDom = _interopRequireDefault(require_canUseDom());\n    var emptyObject = {};\n    var supportsCSS3TextDecoration = !_canUseDom.default || window.CSS != null && window.CSS.supports != null && (window.CSS.supports(\"text-decoration-line\", \"none\") || window.CSS.supports(\"-webkit-text-decoration-line\", \"none\"));\n    var MONOSPACE_FONT_STACK = \"monospace,monospace\";\n    var SYSTEM_FONT_STACK = '-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif';\n    var STYLE_SHORT_FORM_EXPANSIONS = {\n      borderColor: [\"borderTopColor\", \"borderRightColor\", \"borderBottomColor\", \"borderLeftColor\"],\n      borderBlockColor: [\"borderTopColor\", \"borderBottomColor\"],\n      borderInlineColor: [\"borderRightColor\", \"borderLeftColor\"],\n      borderRadius: [\"borderTopLeftRadius\", \"borderTopRightRadius\", \"borderBottomRightRadius\", \"borderBottomLeftRadius\"],\n      borderStyle: [\"borderTopStyle\", \"borderRightStyle\", \"borderBottomStyle\", \"borderLeftStyle\"],\n      borderBlockStyle: [\"borderTopStyle\", \"borderBottomStyle\"],\n      borderInlineStyle: [\"borderRightStyle\", \"borderLeftStyle\"],\n      borderWidth: [\"borderTopWidth\", \"borderRightWidth\", \"borderBottomWidth\", \"borderLeftWidth\"],\n      borderBlockWidth: [\"borderTopWidth\", \"borderBottomWidth\"],\n      borderInlineWidth: [\"borderRightWidth\", \"borderLeftWidth\"],\n      insetBlock: [\"top\", \"bottom\"],\n      insetInline: [\"left\", \"right\"],\n      marginBlock: [\"marginTop\", \"marginBottom\"],\n      marginInline: [\"marginRight\", \"marginLeft\"],\n      paddingBlock: [\"paddingTop\", \"paddingBottom\"],\n      paddingInline: [\"paddingRight\", \"paddingLeft\"],\n      overflow: [\"overflowX\", \"overflowY\"],\n      overscrollBehavior: [\"overscrollBehaviorX\", \"overscrollBehaviorY\"],\n      borderBlockStartColor: [\"borderTopColor\"],\n      borderBlockStartStyle: [\"borderTopStyle\"],\n      borderBlockStartWidth: [\"borderTopWidth\"],\n      borderBlockEndColor: [\"borderBottomColor\"],\n      borderBlockEndStyle: [\"borderBottomStyle\"],\n      borderBlockEndWidth: [\"borderBottomWidth\"],\n      //borderInlineStartColor: ['borderLeftColor'],\n      //borderInlineStartStyle: ['borderLeftStyle'],\n      //borderInlineStartWidth: ['borderLeftWidth'],\n      //borderInlineEndColor: ['borderRightColor'],\n      //borderInlineEndStyle: ['borderRightStyle'],\n      //borderInlineEndWidth: ['borderRightWidth'],\n      borderEndStartRadius: [\"borderBottomLeftRadius\"],\n      borderEndEndRadius: [\"borderBottomRightRadius\"],\n      borderStartStartRadius: [\"borderTopLeftRadius\"],\n      borderStartEndRadius: [\"borderTopRightRadius\"],\n      insetBlockEnd: [\"bottom\"],\n      insetBlockStart: [\"top\"],\n      //insetInlineEnd: ['right'],\n      //insetInlineStart: ['left'],\n      marginBlockStart: [\"marginTop\"],\n      marginBlockEnd: [\"marginBottom\"],\n      //marginInlineStart: ['marginLeft'],\n      //marginInlineEnd: ['marginRight'],\n      paddingBlockStart: [\"paddingTop\"],\n      paddingBlockEnd: [\"paddingBottom\"]\n      //paddingInlineStart: ['marginLeft'],\n      //paddingInlineEnd: ['marginRight'],\n    };\n    var createReactDOMStyle = /* @__PURE__ */ __name((style, isInline) => {\n      if (!style) {\n        return emptyObject;\n      }\n      var resolvedStyle = {};\n      var _loop = /* @__PURE__ */ __name(function _loop2() {\n        var value = style[prop];\n        if (\n          // Ignore everything with a null value\n          value == null\n        ) {\n          return \"continue\";\n        }\n        if (prop === \"backgroundClip\") {\n          if (value === \"text\") {\n            resolvedStyle.backgroundClip = value;\n            resolvedStyle.WebkitBackgroundClip = value;\n          }\n        } else if (prop === \"flex\") {\n          if (value === -1) {\n            resolvedStyle.flexGrow = 0;\n            resolvedStyle.flexShrink = 1;\n            resolvedStyle.flexBasis = \"auto\";\n          } else {\n            resolvedStyle.flex = value;\n          }\n        } else if (prop === \"font\") {\n          resolvedStyle[prop] = value.replace(\"System\", SYSTEM_FONT_STACK);\n        } else if (prop === \"fontFamily\") {\n          if (value.indexOf(\"System\") > -1) {\n            var stack = value.split(/,\\s*/);\n            stack[stack.indexOf(\"System\")] = SYSTEM_FONT_STACK;\n            resolvedStyle[prop] = stack.join(\",\");\n          } else if (value === \"monospace\") {\n            resolvedStyle[prop] = MONOSPACE_FONT_STACK;\n          } else {\n            resolvedStyle[prop] = value;\n          }\n        } else if (prop === \"textDecorationLine\") {\n          if (!supportsCSS3TextDecoration) {\n            resolvedStyle.textDecoration = value;\n          } else {\n            resolvedStyle.textDecorationLine = value;\n          }\n        } else if (prop === \"writingDirection\") {\n          resolvedStyle.direction = value;\n        } else {\n          var _value = (0, _normalizeValueWithProperty.default)(style[prop], prop);\n          var longFormProperties = STYLE_SHORT_FORM_EXPANSIONS[prop];\n          if (isInline && prop === \"inset\") {\n            if (style.insetInline == null) {\n              resolvedStyle.left = _value;\n              resolvedStyle.right = _value;\n            }\n            if (style.insetBlock == null) {\n              resolvedStyle.top = _value;\n              resolvedStyle.bottom = _value;\n            }\n          } else if (isInline && prop === \"margin\") {\n            if (style.marginInline == null) {\n              resolvedStyle.marginLeft = _value;\n              resolvedStyle.marginRight = _value;\n            }\n            if (style.marginBlock == null) {\n              resolvedStyle.marginTop = _value;\n              resolvedStyle.marginBottom = _value;\n            }\n          } else if (isInline && prop === \"padding\") {\n            if (style.paddingInline == null) {\n              resolvedStyle.paddingLeft = _value;\n              resolvedStyle.paddingRight = _value;\n            }\n            if (style.paddingBlock == null) {\n              resolvedStyle.paddingTop = _value;\n              resolvedStyle.paddingBottom = _value;\n            }\n          } else if (longFormProperties) {\n            longFormProperties.forEach((longForm, i) => {\n              if (style[longForm] == null) {\n                resolvedStyle[longForm] = _value;\n              }\n            });\n          } else {\n            resolvedStyle[prop] = _value;\n          }\n        }\n      }, \"_loop\");\n      for (var prop in style) {\n        var _ret = _loop();\n        if (_ret === \"continue\") continue;\n      }\n      return resolvedStyle;\n    }, \"createReactDOMStyle\");\n    var _default = exports2.default = createReactDOMStyle;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/StyleSheet/compiler/hash.js\nvar require_hash = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/StyleSheet/compiler/hash.js\"(exports2, module2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    function murmurhash2_32_gc(str, seed) {\n      var l = str.length, h = seed ^ l, i = 0, k;\n      while (l >= 4) {\n        k = str.charCodeAt(i) & 255 | (str.charCodeAt(++i) & 255) << 8 | (str.charCodeAt(++i) & 255) << 16 | (str.charCodeAt(++i) & 255) << 24;\n        k = (k & 65535) * 1540483477 + (((k >>> 16) * 1540483477 & 65535) << 16);\n        k ^= k >>> 24;\n        k = (k & 65535) * 1540483477 + (((k >>> 16) * 1540483477 & 65535) << 16);\n        h = (h & 65535) * 1540483477 + (((h >>> 16) * 1540483477 & 65535) << 16) ^ k;\n        l -= 4;\n        ++i;\n      }\n      switch (l) {\n        case 3:\n          h ^= (str.charCodeAt(i + 2) & 255) << 16;\n        case 2:\n          h ^= (str.charCodeAt(i + 1) & 255) << 8;\n        case 1:\n          h ^= str.charCodeAt(i) & 255;\n          h = (h & 65535) * 1540483477 + (((h >>> 16) * 1540483477 & 65535) << 16);\n      }\n      h ^= h >>> 13;\n      h = (h & 65535) * 1540483477 + (((h >>> 16) * 1540483477 & 65535) << 16);\n      h ^= h >>> 15;\n      return h >>> 0;\n    }\n    __name(murmurhash2_32_gc, \"murmurhash2_32_gc\");\n    var hash = /* @__PURE__ */ __name((str) => murmurhash2_32_gc(str, 1).toString(36), \"hash\");\n    var _default = exports2.default = hash;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/StyleSheet/compiler/hyphenateStyleName.js\nvar require_hyphenateStyleName = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/StyleSheet/compiler/hyphenateStyleName.js\"(exports2, module2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var uppercasePattern = /[A-Z]/g;\n    var msPattern = /^ms-/;\n    var cache3 = {};\n    function toHyphenLower(match) {\n      return \"-\" + match.toLowerCase();\n    }\n    __name(toHyphenLower, \"toHyphenLower\");\n    function hyphenateStyleName(name) {\n      if (name in cache3) {\n        return cache3[name];\n      }\n      var hName = name.replace(uppercasePattern, toHyphenLower);\n      return cache3[name] = msPattern.test(hName) ? \"-\" + hName : hName;\n    }\n    __name(hyphenateStyleName, \"hyphenateStyleName\");\n    var _default = exports2.default = hyphenateStyleName;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/inline-style-prefixer/lib/utils/capitalizeString.js\nvar require_capitalizeString = __commonJS({\n  \"node_modules/inline-style-prefixer/lib/utils/capitalizeString.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", {\n      value: true\n    });\n    exports2.default = capitalizeString;\n    function capitalizeString(str) {\n      return str.charAt(0).toUpperCase() + str.slice(1);\n    }\n    __name(capitalizeString, \"capitalizeString\");\n  }\n});\n\n// node_modules/inline-style-prefixer/lib/utils/prefixProperty.js\nvar require_prefixProperty = __commonJS({\n  \"node_modules/inline-style-prefixer/lib/utils/prefixProperty.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", {\n      value: true\n    });\n    exports2.default = prefixProperty;\n    var _capitalizeString = require_capitalizeString();\n    var _capitalizeString2 = _interopRequireDefault(_capitalizeString);\n    function _interopRequireDefault(obj) {\n      return obj && obj.__esModule ? obj : { default: obj };\n    }\n    __name(_interopRequireDefault, \"_interopRequireDefault\");\n    function prefixProperty(prefixProperties, property, style) {\n      var requiredPrefixes = prefixProperties[property];\n      if (requiredPrefixes && style.hasOwnProperty(property)) {\n        var capitalizedProperty = (0, _capitalizeString2.default)(property);\n        for (var i = 0; i < requiredPrefixes.length; ++i) {\n          var prefixedProperty = requiredPrefixes[i] + capitalizedProperty;\n          if (!style[prefixedProperty]) {\n            style[prefixedProperty] = style[property];\n          }\n        }\n      }\n      return style;\n    }\n    __name(prefixProperty, \"prefixProperty\");\n  }\n});\n\n// node_modules/inline-style-prefixer/lib/utils/prefixValue.js\nvar require_prefixValue = __commonJS({\n  \"node_modules/inline-style-prefixer/lib/utils/prefixValue.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", {\n      value: true\n    });\n    exports2.default = prefixValue;\n    function prefixValue(plugins, property, value, style, metaData) {\n      for (var i = 0, len = plugins.length; i < len; ++i) {\n        var processedValue = plugins[i](property, value, style, metaData);\n        if (processedValue) {\n          return processedValue;\n        }\n      }\n    }\n    __name(prefixValue, \"prefixValue\");\n  }\n});\n\n// node_modules/inline-style-prefixer/lib/utils/addNewValuesOnly.js\nvar require_addNewValuesOnly = __commonJS({\n  \"node_modules/inline-style-prefixer/lib/utils/addNewValuesOnly.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", {\n      value: true\n    });\n    exports2.default = addNewValuesOnly;\n    function addIfNew(list, value) {\n      if (list.indexOf(value) === -1) {\n        list.push(value);\n      }\n    }\n    __name(addIfNew, \"addIfNew\");\n    function addNewValuesOnly(list, values) {\n      if (Array.isArray(values)) {\n        for (var i = 0, len = values.length; i < len; ++i) {\n          addIfNew(list, values[i]);\n        }\n      } else {\n        addIfNew(list, values);\n      }\n    }\n    __name(addNewValuesOnly, \"addNewValuesOnly\");\n  }\n});\n\n// node_modules/inline-style-prefixer/lib/utils/isObject.js\nvar require_isObject = __commonJS({\n  \"node_modules/inline-style-prefixer/lib/utils/isObject.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", {\n      value: true\n    });\n    exports2.default = isObject;\n    function isObject(value) {\n      return value instanceof Object && !Array.isArray(value);\n    }\n    __name(isObject, \"isObject\");\n  }\n});\n\n// node_modules/inline-style-prefixer/lib/createPrefixer.js\nvar require_createPrefixer = __commonJS({\n  \"node_modules/inline-style-prefixer/lib/createPrefixer.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", {\n      value: true\n    });\n    exports2.default = createPrefixer;\n    var _prefixProperty = require_prefixProperty();\n    var _prefixProperty2 = _interopRequireDefault(_prefixProperty);\n    var _prefixValue = require_prefixValue();\n    var _prefixValue2 = _interopRequireDefault(_prefixValue);\n    var _addNewValuesOnly = require_addNewValuesOnly();\n    var _addNewValuesOnly2 = _interopRequireDefault(_addNewValuesOnly);\n    var _isObject = require_isObject();\n    var _isObject2 = _interopRequireDefault(_isObject);\n    function _interopRequireDefault(obj) {\n      return obj && obj.__esModule ? obj : { default: obj };\n    }\n    __name(_interopRequireDefault, \"_interopRequireDefault\");\n    function createPrefixer(_ref) {\n      var prefixMap = _ref.prefixMap, plugins = _ref.plugins;\n      return /* @__PURE__ */ __name(function prefix(style) {\n        for (var property in style) {\n          var value = style[property];\n          if ((0, _isObject2.default)(value)) {\n            style[property] = prefix(value);\n          } else if (Array.isArray(value)) {\n            var combinedValue = [];\n            for (var i = 0, len = value.length; i < len; ++i) {\n              var processedValue = (0, _prefixValue2.default)(plugins, property, value[i], style, prefixMap);\n              (0, _addNewValuesOnly2.default)(combinedValue, processedValue || value[i]);\n            }\n            if (combinedValue.length > 0) {\n              style[property] = combinedValue;\n            }\n          } else {\n            var _processedValue = (0, _prefixValue2.default)(plugins, property, value, style, prefixMap);\n            if (_processedValue) {\n              style[property] = _processedValue;\n            }\n            style = (0, _prefixProperty2.default)(prefixMap, property, style);\n          }\n        }\n        return style;\n      }, \"prefix\");\n    }\n    __name(createPrefixer, \"createPrefixer\");\n  }\n});\n\n// node_modules/inline-style-prefixer/lib/plugins/backgroundClip.js\nvar require_backgroundClip = __commonJS({\n  \"node_modules/inline-style-prefixer/lib/plugins/backgroundClip.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", {\n      value: true\n    });\n    exports2.default = backgroundClip;\n    function backgroundClip() {\n      return null;\n    }\n    __name(backgroundClip, \"backgroundClip\");\n  }\n});\n\n// node_modules/css-in-js-utils/lib/assignStyle.js\nvar require_assignStyle = __commonJS({\n  \"node_modules/css-in-js-utils/lib/assignStyle.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", {\n      value: true\n    });\n    exports2[\"default\"] = assignStyle;\n    function _typeof(obj) {\n      \"@babel/helpers - typeof\";\n      if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n        _typeof = /* @__PURE__ */ __name(function _typeof2(obj2) {\n          return typeof obj2;\n        }, \"_typeof\");\n      } else {\n        _typeof = /* @__PURE__ */ __name(function _typeof2(obj2) {\n          return obj2 && typeof Symbol === \"function\" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? \"symbol\" : typeof obj2;\n        }, \"_typeof\");\n      }\n      return _typeof(obj);\n    }\n    __name(_typeof, \"_typeof\");\n    function _toConsumableArray(arr) {\n      return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n    }\n    __name(_toConsumableArray, \"_toConsumableArray\");\n    function _nonIterableSpread() {\n      throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n    }\n    __name(_nonIterableSpread, \"_nonIterableSpread\");\n    function _unsupportedIterableToArray(o, minLen) {\n      if (!o) return;\n      if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n      var n = Object.prototype.toString.call(o).slice(8, -1);\n      if (n === \"Object\" && o.constructor) n = o.constructor.name;\n      if (n === \"Map\" || n === \"Set\") return Array.from(n);\n      if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n    }\n    __name(_unsupportedIterableToArray, \"_unsupportedIterableToArray\");\n    function _iterableToArray(iter) {\n      if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n    }\n    __name(_iterableToArray, \"_iterableToArray\");\n    function _arrayWithoutHoles(arr) {\n      if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n    }\n    __name(_arrayWithoutHoles, \"_arrayWithoutHoles\");\n    function _arrayLikeToArray(arr, len) {\n      if (len == null || len > arr.length) len = arr.length;\n      for (var i = 0, arr2 = new Array(len); i < len; i++) {\n        arr2[i] = arr[i];\n      }\n      return arr2;\n    }\n    __name(_arrayLikeToArray, \"_arrayLikeToArray\");\n    function filterUniqueArray(arr) {\n      return arr.filter(function(val, index3) {\n        return arr.lastIndexOf(val) === index3;\n      });\n    }\n    __name(filterUniqueArray, \"filterUniqueArray\");\n    function assignStyle(base) {\n      for (var i = 0, len = arguments.length <= 1 ? 0 : arguments.length - 1; i < len; ++i) {\n        var style = i + 1 < 1 || arguments.length <= i + 1 ? void 0 : arguments[i + 1];\n        for (var property in style) {\n          var value = style[property];\n          var baseValue = base[property];\n          if (baseValue && value) {\n            if (Array.isArray(baseValue)) {\n              base[property] = filterUniqueArray(baseValue.concat(value));\n              continue;\n            }\n            if (Array.isArray(value)) {\n              base[property] = filterUniqueArray([baseValue].concat(_toConsumableArray(value)));\n              continue;\n            }\n            if (_typeof(value) === \"object\") {\n              base[property] = assignStyle({}, baseValue, value);\n              continue;\n            }\n          }\n          base[property] = value;\n        }\n      }\n      return base;\n    }\n    __name(assignStyle, \"assignStyle\");\n  }\n});\n\n// node_modules/css-in-js-utils/lib/camelCaseProperty.js\nvar require_camelCaseProperty = __commonJS({\n  \"node_modules/css-in-js-utils/lib/camelCaseProperty.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", {\n      value: true\n    });\n    exports2[\"default\"] = camelCaseProperty;\n    var DASH = /-([a-z])/g;\n    var MS = /^Ms/g;\n    var cache3 = {};\n    function toUpper(match) {\n      return match[1].toUpperCase();\n    }\n    __name(toUpper, \"toUpper\");\n    function camelCaseProperty(property) {\n      if (cache3.hasOwnProperty(property)) {\n        return cache3[property];\n      }\n      var camelProp = property.replace(DASH, toUpper).replace(MS, \"ms\");\n      cache3[property] = camelProp;\n      return camelProp;\n    }\n    __name(camelCaseProperty, \"camelCaseProperty\");\n  }\n});\n\n// node_modules/hyphenate-style-name/index.cjs.js\nvar require_index_cjs = __commonJS({\n  \"node_modules/hyphenate-style-name/index.cjs.js\"(exports2, module2) {\n    \"use strict\";\n    var uppercasePattern = /[A-Z]/g;\n    var msPattern = /^ms-/;\n    var cache3 = {};\n    function toHyphenLower(match) {\n      return \"-\" + match.toLowerCase();\n    }\n    __name(toHyphenLower, \"toHyphenLower\");\n    function hyphenateStyleName(name) {\n      if (cache3.hasOwnProperty(name)) {\n        return cache3[name];\n      }\n      var hName = name.replace(uppercasePattern, toHyphenLower);\n      return cache3[name] = msPattern.test(hName) ? \"-\" + hName : hName;\n    }\n    __name(hyphenateStyleName, \"hyphenateStyleName\");\n    module2.exports = hyphenateStyleName;\n  }\n});\n\n// node_modules/css-in-js-utils/lib/hyphenateProperty.js\nvar require_hyphenateProperty = __commonJS({\n  \"node_modules/css-in-js-utils/lib/hyphenateProperty.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", {\n      value: true\n    });\n    exports2[\"default\"] = hyphenateProperty;\n    var _hyphenateStyleName = require_index_cjs();\n    var _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName);\n    function _interopRequireDefault(obj) {\n      return obj && obj.__esModule ? obj : { \"default\": obj };\n    }\n    __name(_interopRequireDefault, \"_interopRequireDefault\");\n    function hyphenateProperty(property) {\n      return (0, _hyphenateStyleName2[\"default\"])(property);\n    }\n    __name(hyphenateProperty, \"hyphenateProperty\");\n  }\n});\n\n// node_modules/css-in-js-utils/lib/cssifyDeclaration.js\nvar require_cssifyDeclaration = __commonJS({\n  \"node_modules/css-in-js-utils/lib/cssifyDeclaration.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", {\n      value: true\n    });\n    exports2[\"default\"] = cssifyDeclaration;\n    var _hyphenateProperty = require_hyphenateProperty();\n    var _hyphenateProperty2 = _interopRequireDefault(_hyphenateProperty);\n    function _interopRequireDefault(obj) {\n      return obj && obj.__esModule ? obj : { \"default\": obj };\n    }\n    __name(_interopRequireDefault, \"_interopRequireDefault\");\n    function cssifyDeclaration(property, value) {\n      return (0, _hyphenateProperty2[\"default\"])(property) + \":\" + value;\n    }\n    __name(cssifyDeclaration, \"cssifyDeclaration\");\n  }\n});\n\n// node_modules/css-in-js-utils/lib/cssifyObject.js\nvar require_cssifyObject = __commonJS({\n  \"node_modules/css-in-js-utils/lib/cssifyObject.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", {\n      value: true\n    });\n    exports2[\"default\"] = cssifyObject;\n    var _cssifyDeclaration = require_cssifyDeclaration();\n    var _cssifyDeclaration2 = _interopRequireDefault(_cssifyDeclaration);\n    function _interopRequireDefault(obj) {\n      return obj && obj.__esModule ? obj : { \"default\": obj };\n    }\n    __name(_interopRequireDefault, \"_interopRequireDefault\");\n    function cssifyObject(style) {\n      var css = \"\";\n      for (var property in style) {\n        var value = style[property];\n        if (typeof value !== \"string\" && typeof value !== \"number\") {\n          continue;\n        }\n        if (css) {\n          css += \";\";\n        }\n        css += (0, _cssifyDeclaration2[\"default\"])(property, value);\n      }\n      return css;\n    }\n    __name(cssifyObject, \"cssifyObject\");\n  }\n});\n\n// node_modules/css-in-js-utils/lib/isPrefixedProperty.js\nvar require_isPrefixedProperty = __commonJS({\n  \"node_modules/css-in-js-utils/lib/isPrefixedProperty.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", {\n      value: true\n    });\n    exports2[\"default\"] = isPrefixedProperty;\n    var RE = /^(Webkit|Moz|O|ms)/;\n    function isPrefixedProperty(property) {\n      return RE.test(property);\n    }\n    __name(isPrefixedProperty, \"isPrefixedProperty\");\n  }\n});\n\n// node_modules/css-in-js-utils/lib/isPrefixedValue.js\nvar require_isPrefixedValue = __commonJS({\n  \"node_modules/css-in-js-utils/lib/isPrefixedValue.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", {\n      value: true\n    });\n    exports2[\"default\"] = isPrefixedValue;\n    var RE = /-webkit-|-moz-|-ms-/;\n    function isPrefixedValue(value) {\n      return typeof value === \"string\" && RE.test(value);\n    }\n    __name(isPrefixedValue, \"isPrefixedValue\");\n  }\n});\n\n// node_modules/css-in-js-utils/lib/isUnitlessProperty.js\nvar require_isUnitlessProperty = __commonJS({\n  \"node_modules/css-in-js-utils/lib/isUnitlessProperty.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", {\n      value: true\n    });\n    exports2[\"default\"] = isUnitlessProperty;\n    var _hyphenateProperty = require_hyphenateProperty();\n    var _hyphenateProperty2 = _interopRequireDefault(_hyphenateProperty);\n    function _interopRequireDefault(obj) {\n      return obj && obj.__esModule ? obj : { \"default\": obj };\n    }\n    __name(_interopRequireDefault, \"_interopRequireDefault\");\n    var unitlessProperties = {\n      borderImageOutset: true,\n      borderImageSlice: true,\n      borderImageWidth: true,\n      fontWeight: true,\n      lineHeight: true,\n      opacity: true,\n      orphans: true,\n      tabSize: true,\n      widows: true,\n      zIndex: true,\n      zoom: true,\n      // SVG-related properties\n      fillOpacity: true,\n      floodOpacity: true,\n      stopOpacity: true,\n      strokeDasharray: true,\n      strokeDashoffset: true,\n      strokeMiterlimit: true,\n      strokeOpacity: true,\n      strokeWidth: true\n    };\n    var prefixedUnitlessProperties = [\"animationIterationCount\", \"boxFlex\", \"boxFlexGroup\", \"boxOrdinalGroup\", \"columnCount\", \"flex\", \"flexGrow\", \"flexPositive\", \"flexShrink\", \"flexNegative\", \"flexOrder\", \"gridColumn\", \"gridColumnEnd\", \"gridColumnStart\", \"gridRow\", \"gridRowEnd\", \"gridRowStart\", \"lineClamp\", \"order\"];\n    var prefixes = [\"Webkit\", \"ms\", \"Moz\", \"O\"];\n    function getPrefixedProperty(prefix, property2) {\n      return prefix + property2.charAt(0).toUpperCase() + property2.slice(1);\n    }\n    __name(getPrefixedProperty, \"getPrefixedProperty\");\n    for (i = 0, len = prefixedUnitlessProperties.length; i < len; ++i) {\n      property = prefixedUnitlessProperties[i];\n      unitlessProperties[property] = true;\n      for (j = 0, jLen = prefixes.length; j < jLen; ++j) {\n        unitlessProperties[getPrefixedProperty(prefixes[j], property)] = true;\n      }\n    }\n    var property;\n    var j;\n    var jLen;\n    var i;\n    var len;\n    for (_property in unitlessProperties) {\n      unitlessProperties[(0, _hyphenateProperty2[\"default\"])(_property)] = true;\n    }\n    var _property;\n    function isUnitlessProperty(property2) {\n      return unitlessProperties.hasOwnProperty(property2);\n    }\n    __name(isUnitlessProperty, \"isUnitlessProperty\");\n  }\n});\n\n// node_modules/css-in-js-utils/lib/unprefixProperty.js\nvar require_unprefixProperty = __commonJS({\n  \"node_modules/css-in-js-utils/lib/unprefixProperty.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", {\n      value: true\n    });\n    exports2[\"default\"] = unprefixProperty;\n    var RE = /^(ms|Webkit|Moz|O)/;\n    function unprefixProperty(property) {\n      var propertyWithoutPrefix = property.replace(RE, \"\");\n      return propertyWithoutPrefix.charAt(0).toLowerCase() + propertyWithoutPrefix.slice(1);\n    }\n    __name(unprefixProperty, \"unprefixProperty\");\n  }\n});\n\n// node_modules/css-in-js-utils/lib/normalizeProperty.js\nvar require_normalizeProperty = __commonJS({\n  \"node_modules/css-in-js-utils/lib/normalizeProperty.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", {\n      value: true\n    });\n    exports2[\"default\"] = normalizeProperty;\n    var _camelCaseProperty = require_camelCaseProperty();\n    var _camelCaseProperty2 = _interopRequireDefault(_camelCaseProperty);\n    var _unprefixProperty = require_unprefixProperty();\n    var _unprefixProperty2 = _interopRequireDefault(_unprefixProperty);\n    function _interopRequireDefault(obj) {\n      return obj && obj.__esModule ? obj : { \"default\": obj };\n    }\n    __name(_interopRequireDefault, \"_interopRequireDefault\");\n    function normalizeProperty(property) {\n      return (0, _unprefixProperty2[\"default\"])((0, _camelCaseProperty2[\"default\"])(property));\n    }\n    __name(normalizeProperty, \"normalizeProperty\");\n  }\n});\n\n// node_modules/css-in-js-utils/lib/resolveArrayValue.js\nvar require_resolveArrayValue = __commonJS({\n  \"node_modules/css-in-js-utils/lib/resolveArrayValue.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", {\n      value: true\n    });\n    exports2[\"default\"] = resolveArrayValue;\n    var _hyphenateProperty = require_hyphenateProperty();\n    var _hyphenateProperty2 = _interopRequireDefault(_hyphenateProperty);\n    function _interopRequireDefault(obj) {\n      return obj && obj.__esModule ? obj : { \"default\": obj };\n    }\n    __name(_interopRequireDefault, \"_interopRequireDefault\");\n    function resolveArrayValue(property, value) {\n      return value.join(\";\" + (0, _hyphenateProperty2[\"default\"])(property) + \":\");\n    }\n    __name(resolveArrayValue, \"resolveArrayValue\");\n  }\n});\n\n// node_modules/css-in-js-utils/lib/unprefixValue.js\nvar require_unprefixValue = __commonJS({\n  \"node_modules/css-in-js-utils/lib/unprefixValue.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", {\n      value: true\n    });\n    exports2[\"default\"] = unprefixValue;\n    var RE = /(-ms-|-webkit-|-moz-|-o-)/g;\n    function unprefixValue(value) {\n      if (typeof value === \"string\") {\n        return value.replace(RE, \"\");\n      }\n      return value;\n    }\n    __name(unprefixValue, \"unprefixValue\");\n  }\n});\n\n// node_modules/css-in-js-utils/lib/index.js\nvar require_lib = __commonJS({\n  \"node_modules/css-in-js-utils/lib/index.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", {\n      value: true\n    });\n    exports2.unprefixValue = exports2.unprefixProperty = exports2.resolveArrayValue = exports2.normalizeProperty = exports2.isUnitlessProperty = exports2.isPrefixedValue = exports2.isPrefixedProperty = exports2.hyphenateProperty = exports2.cssifyObject = exports2.cssifyDeclaration = exports2.camelCaseProperty = exports2.assignStyle = void 0;\n    var _assignStyle = require_assignStyle();\n    var _assignStyle2 = _interopRequireDefault(_assignStyle);\n    var _camelCaseProperty = require_camelCaseProperty();\n    var _camelCaseProperty2 = _interopRequireDefault(_camelCaseProperty);\n    var _cssifyDeclaration = require_cssifyDeclaration();\n    var _cssifyDeclaration2 = _interopRequireDefault(_cssifyDeclaration);\n    var _cssifyObject = require_cssifyObject();\n    var _cssifyObject2 = _interopRequireDefault(_cssifyObject);\n    var _hyphenateProperty = require_hyphenateProperty();\n    var _hyphenateProperty2 = _interopRequireDefault(_hyphenateProperty);\n    var _isPrefixedProperty = require_isPrefixedProperty();\n    var _isPrefixedProperty2 = _interopRequireDefault(_isPrefixedProperty);\n    var _isPrefixedValue = require_isPrefixedValue();\n    var _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n    var _isUnitlessProperty = require_isUnitlessProperty();\n    var _isUnitlessProperty2 = _interopRequireDefault(_isUnitlessProperty);\n    var _normalizeProperty = require_normalizeProperty();\n    var _normalizeProperty2 = _interopRequireDefault(_normalizeProperty);\n    var _resolveArrayValue = require_resolveArrayValue();\n    var _resolveArrayValue2 = _interopRequireDefault(_resolveArrayValue);\n    var _unprefixProperty = require_unprefixProperty();\n    var _unprefixProperty2 = _interopRequireDefault(_unprefixProperty);\n    var _unprefixValue = require_unprefixValue();\n    var _unprefixValue2 = _interopRequireDefault(_unprefixValue);\n    function _interopRequireDefault(obj) {\n      return obj && obj.__esModule ? obj : { \"default\": obj };\n    }\n    __name(_interopRequireDefault, \"_interopRequireDefault\");\n    exports2.assignStyle = _assignStyle2[\"default\"];\n    exports2.camelCaseProperty = _camelCaseProperty2[\"default\"];\n    exports2.cssifyDeclaration = _cssifyDeclaration2[\"default\"];\n    exports2.cssifyObject = _cssifyObject2[\"default\"];\n    exports2.hyphenateProperty = _hyphenateProperty2[\"default\"];\n    exports2.isPrefixedProperty = _isPrefixedProperty2[\"default\"];\n    exports2.isPrefixedValue = _isPrefixedValue2[\"default\"];\n    exports2.isUnitlessProperty = _isUnitlessProperty2[\"default\"];\n    exports2.normalizeProperty = _normalizeProperty2[\"default\"];\n    exports2.resolveArrayValue = _resolveArrayValue2[\"default\"];\n    exports2.unprefixProperty = _unprefixProperty2[\"default\"];\n    exports2.unprefixValue = _unprefixValue2[\"default\"];\n  }\n});\n\n// node_modules/inline-style-prefixer/lib/plugins/crossFade.js\nvar require_crossFade = __commonJS({\n  \"node_modules/inline-style-prefixer/lib/plugins/crossFade.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", {\n      value: true\n    });\n    exports2.default = crossFade;\n    var _cssInJsUtils = require_lib();\n    var CROSS_FADE_REGEX = /cross-fade\\(/g;\n    var prefixes = [\"-webkit-\", \"\"];\n    function crossFade(property, value) {\n      if (typeof value === \"string\" && !(0, _cssInJsUtils.isPrefixedValue)(value) && value.indexOf(\"cross-fade(\") !== -1) {\n        return prefixes.map(function(prefix) {\n          return value.replace(CROSS_FADE_REGEX, prefix + \"cross-fade(\");\n        });\n      }\n    }\n    __name(crossFade, \"crossFade\");\n  }\n});\n\n// node_modules/inline-style-prefixer/lib/plugins/cursor.js\nvar require_cursor = __commonJS({\n  \"node_modules/inline-style-prefixer/lib/plugins/cursor.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", {\n      value: true\n    });\n    exports2.default = cursor;\n    var prefixes = [\"-webkit-\", \"-moz-\", \"\"];\n    var values = {\n      \"zoom-in\": true,\n      \"zoom-out\": true,\n      grab: true,\n      grabbing: true\n    };\n    function cursor(property, value) {\n      if (property === \"cursor\" && values.hasOwnProperty(value)) {\n        return prefixes.map(function(prefix) {\n          return prefix + value;\n        });\n      }\n    }\n    __name(cursor, \"cursor\");\n  }\n});\n\n// node_modules/inline-style-prefixer/lib/plugins/filter.js\nvar require_filter = __commonJS({\n  \"node_modules/inline-style-prefixer/lib/plugins/filter.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", {\n      value: true\n    });\n    exports2.default = filter;\n    var _cssInJsUtils = require_lib();\n    var FILTER_REGEX = /filter\\(/g;\n    var prefixes = [\"-webkit-\", \"\"];\n    function filter(property, value) {\n      if (typeof value === \"string\" && !(0, _cssInJsUtils.isPrefixedValue)(value) && value.indexOf(\"filter(\") !== -1) {\n        return prefixes.map(function(prefix) {\n          return value.replace(FILTER_REGEX, prefix + \"filter(\");\n        });\n      }\n    }\n    __name(filter, \"filter\");\n  }\n});\n\n// node_modules/inline-style-prefixer/lib/plugins/imageSet.js\nvar require_imageSet = __commonJS({\n  \"node_modules/inline-style-prefixer/lib/plugins/imageSet.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", {\n      value: true\n    });\n    exports2.default = imageSet;\n    var _isPrefixedValue = require_isPrefixedValue();\n    var _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n    function _interopRequireDefault(obj) {\n      return obj && obj.__esModule ? obj : { default: obj };\n    }\n    __name(_interopRequireDefault, \"_interopRequireDefault\");\n    var prefixes = [\"-webkit-\", \"\"];\n    function imageSet(property, value) {\n      if (typeof value === \"string\" && !(0, _isPrefixedValue2.default)(value) && value.indexOf(\"image-set(\") > -1) {\n        return prefixes.map(function(prefix) {\n          return value.replace(/image-set\\(/g, prefix + \"image-set(\");\n        });\n      }\n    }\n    __name(imageSet, \"imageSet\");\n  }\n});\n\n// node_modules/inline-style-prefixer/lib/plugins/logical.js\nvar require_logical = __commonJS({\n  \"node_modules/inline-style-prefixer/lib/plugins/logical.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", {\n      value: true\n    });\n    exports2.default = logical;\n    var alternativeProps = {\n      marginBlockStart: [\"WebkitMarginBefore\"],\n      marginBlockEnd: [\"WebkitMarginAfter\"],\n      marginInlineStart: [\"WebkitMarginStart\", \"MozMarginStart\"],\n      marginInlineEnd: [\"WebkitMarginEnd\", \"MozMarginEnd\"],\n      paddingBlockStart: [\"WebkitPaddingBefore\"],\n      paddingBlockEnd: [\"WebkitPaddingAfter\"],\n      paddingInlineStart: [\"WebkitPaddingStart\", \"MozPaddingStart\"],\n      paddingInlineEnd: [\"WebkitPaddingEnd\", \"MozPaddingEnd\"],\n      borderBlockStart: [\"WebkitBorderBefore\"],\n      borderBlockStartColor: [\"WebkitBorderBeforeColor\"],\n      borderBlockStartStyle: [\"WebkitBorderBeforeStyle\"],\n      borderBlockStartWidth: [\"WebkitBorderBeforeWidth\"],\n      borderBlockEnd: [\"WebkitBorderAfter\"],\n      borderBlockEndColor: [\"WebkitBorderAfterColor\"],\n      borderBlockEndStyle: [\"WebkitBorderAfterStyle\"],\n      borderBlockEndWidth: [\"WebkitBorderAfterWidth\"],\n      borderInlineStart: [\"WebkitBorderStart\", \"MozBorderStart\"],\n      borderInlineStartColor: [\"WebkitBorderStartColor\", \"MozBorderStartColor\"],\n      borderInlineStartStyle: [\"WebkitBorderStartStyle\", \"MozBorderStartStyle\"],\n      borderInlineStartWidth: [\"WebkitBorderStartWidth\", \"MozBorderStartWidth\"],\n      borderInlineEnd: [\"WebkitBorderEnd\", \"MozBorderEnd\"],\n      borderInlineEndColor: [\"WebkitBorderEndColor\", \"MozBorderEndColor\"],\n      borderInlineEndStyle: [\"WebkitBorderEndStyle\", \"MozBorderEndStyle\"],\n      borderInlineEndWidth: [\"WebkitBorderEndWidth\", \"MozBorderEndWidth\"]\n    };\n    function logical(property, value, style) {\n      if (Object.prototype.hasOwnProperty.call(alternativeProps, property)) {\n        var alternativePropList = alternativeProps[property];\n        for (var i = 0, len = alternativePropList.length; i < len; ++i) {\n          style[alternativePropList[i]] = value;\n        }\n      }\n    }\n    __name(logical, \"logical\");\n  }\n});\n\n// node_modules/inline-style-prefixer/lib/plugins/position.js\nvar require_position = __commonJS({\n  \"node_modules/inline-style-prefixer/lib/plugins/position.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", {\n      value: true\n    });\n    exports2.default = position;\n    function position(property, value) {\n      if (property === \"position\" && value === \"sticky\") {\n        return [\"-webkit-sticky\", \"sticky\"];\n      }\n    }\n    __name(position, \"position\");\n  }\n});\n\n// node_modules/inline-style-prefixer/lib/plugins/sizing.js\nvar require_sizing = __commonJS({\n  \"node_modules/inline-style-prefixer/lib/plugins/sizing.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", {\n      value: true\n    });\n    exports2.default = sizing;\n    var prefixes = [\"-webkit-\", \"-moz-\", \"\"];\n    var properties = {\n      maxHeight: true,\n      maxWidth: true,\n      width: true,\n      height: true,\n      columnWidth: true,\n      minWidth: true,\n      minHeight: true\n    };\n    var values = {\n      \"min-content\": true,\n      \"max-content\": true,\n      \"fill-available\": true,\n      \"fit-content\": true,\n      \"contain-floats\": true\n    };\n    function sizing(property, value) {\n      if (properties.hasOwnProperty(property) && values.hasOwnProperty(value)) {\n        return prefixes.map(function(prefix) {\n          return prefix + value;\n        });\n      }\n    }\n    __name(sizing, \"sizing\");\n  }\n});\n\n// node_modules/inline-style-prefixer/lib/plugins/transition.js\nvar require_transition = __commonJS({\n  \"node_modules/inline-style-prefixer/lib/plugins/transition.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", {\n      value: true\n    });\n    exports2.default = transition;\n    var _hyphenateProperty = require_hyphenateProperty();\n    var _hyphenateProperty2 = _interopRequireDefault(_hyphenateProperty);\n    var _isPrefixedValue = require_isPrefixedValue();\n    var _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n    var _capitalizeString = require_capitalizeString();\n    var _capitalizeString2 = _interopRequireDefault(_capitalizeString);\n    function _interopRequireDefault(obj) {\n      return obj && obj.__esModule ? obj : { default: obj };\n    }\n    __name(_interopRequireDefault, \"_interopRequireDefault\");\n    var properties = {\n      transition: true,\n      transitionProperty: true,\n      WebkitTransition: true,\n      WebkitTransitionProperty: true,\n      MozTransition: true,\n      MozTransitionProperty: true\n    };\n    var prefixMapping = {\n      Webkit: \"-webkit-\",\n      Moz: \"-moz-\",\n      ms: \"-ms-\"\n    };\n    function prefixValue(value, propertyPrefixMap) {\n      if ((0, _isPrefixedValue2.default)(value)) {\n        return value;\n      }\n      var multipleValues = value.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g);\n      for (var i = 0, len = multipleValues.length; i < len; ++i) {\n        var singleValue = multipleValues[i];\n        var values = [singleValue];\n        for (var property in propertyPrefixMap) {\n          var dashCaseProperty = (0, _hyphenateProperty2.default)(property);\n          if (singleValue.indexOf(dashCaseProperty) > -1 && dashCaseProperty !== \"order\") {\n            var prefixes = propertyPrefixMap[property];\n            for (var j = 0, pLen = prefixes.length; j < pLen; ++j) {\n              values.unshift(singleValue.replace(dashCaseProperty, prefixMapping[prefixes[j]] + dashCaseProperty));\n            }\n          }\n        }\n        multipleValues[i] = values.join(\",\");\n      }\n      return multipleValues.join(\",\");\n    }\n    __name(prefixValue, \"prefixValue\");\n    function transition(property, value, style, propertyPrefixMap) {\n      if (typeof value === \"string\" && properties.hasOwnProperty(property)) {\n        var outputValue = prefixValue(value, propertyPrefixMap);\n        var webkitOutput = outputValue.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g).filter(function(val) {\n          return !/-moz-|-ms-/.test(val);\n        }).join(\",\");\n        if (property.indexOf(\"Webkit\") > -1) {\n          return webkitOutput;\n        }\n        var mozOutput = outputValue.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g).filter(function(val) {\n          return !/-webkit-|-ms-/.test(val);\n        }).join(\",\");\n        if (property.indexOf(\"Moz\") > -1) {\n          return mozOutput;\n        }\n        style[\"Webkit\" + (0, _capitalizeString2.default)(property)] = webkitOutput;\n        style[\"Moz\" + (0, _capitalizeString2.default)(property)] = mozOutput;\n        return outputValue;\n      }\n    }\n    __name(transition, \"transition\");\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/prefixStyles/static.js\nvar require_static = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/prefixStyles/static.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _backgroundClip = _interopRequireDefault(require_backgroundClip());\n    var _crossFade = _interopRequireDefault(require_crossFade());\n    var _cursor = _interopRequireDefault(require_cursor());\n    var _filter = _interopRequireDefault(require_filter());\n    var _imageSet = _interopRequireDefault(require_imageSet());\n    var _logical = _interopRequireDefault(require_logical());\n    var _position = _interopRequireDefault(require_position());\n    var _sizing = _interopRequireDefault(require_sizing());\n    var _transition = _interopRequireDefault(require_transition());\n    var w = [\"Webkit\"];\n    var m = [\"Moz\"];\n    var wm = [\"Webkit\", \"Moz\"];\n    var wms = [\"Webkit\", \"ms\"];\n    var wmms = [\"Webkit\", \"Moz\", \"ms\"];\n    var _default = exports2.default = {\n      plugins: [_backgroundClip.default, _crossFade.default, _cursor.default, _filter.default, _imageSet.default, _logical.default, _position.default, _sizing.default, _transition.default],\n      prefixMap: {\n        appearance: wmms,\n        userSelect: wm,\n        textEmphasisPosition: wms,\n        textEmphasis: wms,\n        textEmphasisStyle: wms,\n        textEmphasisColor: wms,\n        boxDecorationBreak: wms,\n        clipPath: w,\n        maskImage: wms,\n        maskMode: wms,\n        maskRepeat: wms,\n        maskPosition: wms,\n        maskClip: wms,\n        maskOrigin: wms,\n        maskSize: wms,\n        maskComposite: wms,\n        mask: wms,\n        maskBorderSource: wms,\n        maskBorderMode: wms,\n        maskBorderSlice: wms,\n        maskBorderWidth: wms,\n        maskBorderOutset: wms,\n        maskBorderRepeat: wms,\n        maskBorder: wms,\n        maskType: wms,\n        textDecorationStyle: w,\n        textDecorationSkip: w,\n        textDecorationLine: w,\n        textDecorationColor: w,\n        filter: w,\n        breakAfter: w,\n        breakBefore: w,\n        breakInside: w,\n        columnCount: w,\n        columnFill: w,\n        columnGap: w,\n        columnRule: w,\n        columnRuleColor: w,\n        columnRuleStyle: w,\n        columnRuleWidth: w,\n        columns: w,\n        columnSpan: w,\n        columnWidth: w,\n        backdropFilter: w,\n        hyphens: w,\n        flowInto: w,\n        flowFrom: w,\n        regionFragment: w,\n        textOrientation: w,\n        tabSize: m,\n        fontKerning: w,\n        textSizeAdjust: w\n      }\n    };\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/prefixStyles/index.js\nvar require_prefixStyles = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/prefixStyles/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _createPrefixer = _interopRequireDefault(require_createPrefixer());\n    var _static = _interopRequireDefault(require_static());\n    var prefixAll = (0, _createPrefixer.default)(_static.default);\n    var _default = exports2.default = prefixAll;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/StyleSheet/compiler/index.js\nvar require_compiler = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/StyleSheet/compiler/index.js\"(exports2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.atomic = atomic;\n    exports2.classic = classic;\n    exports2.inline = inline4;\n    exports2.stringifyValueWithProperty = stringifyValueWithProperty;\n    var _objectSpread2 = _interopRequireDefault(require_objectSpread2());\n    var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());\n    var _createReactDOMStyle = _interopRequireDefault(require_createReactDOMStyle());\n    var _hash = _interopRequireDefault(require_hash());\n    var _hyphenateStyleName = _interopRequireDefault(require_hyphenateStyleName());\n    var _normalizeValueWithProperty = _interopRequireDefault(require_normalizeValueWithProperty());\n    var _prefixStyles = _interopRequireDefault(require_prefixStyles());\n    var _excluded = [\"animationKeyframes\"];\n    var cache3 = /* @__PURE__ */ new Map();\n    var emptyObject = {};\n    var classicGroup = 1;\n    var atomicGroup = 3;\n    var customGroup = {\n      borderColor: 2,\n      borderRadius: 2,\n      borderStyle: 2,\n      borderWidth: 2,\n      display: 2,\n      flex: 2,\n      inset: 2,\n      margin: 2,\n      overflow: 2,\n      overscrollBehavior: 2,\n      padding: 2,\n      insetBlock: 2.1,\n      insetInline: 2.1,\n      marginInline: 2.1,\n      marginBlock: 2.1,\n      paddingInline: 2.1,\n      paddingBlock: 2.1,\n      borderBlockStartColor: 2.2,\n      borderBlockStartStyle: 2.2,\n      borderBlockStartWidth: 2.2,\n      borderBlockEndColor: 2.2,\n      borderBlockEndStyle: 2.2,\n      borderBlockEndWidth: 2.2,\n      borderInlineStartColor: 2.2,\n      borderInlineStartStyle: 2.2,\n      borderInlineStartWidth: 2.2,\n      borderInlineEndColor: 2.2,\n      borderInlineEndStyle: 2.2,\n      borderInlineEndWidth: 2.2,\n      borderEndStartRadius: 2.2,\n      borderEndEndRadius: 2.2,\n      borderStartStartRadius: 2.2,\n      borderStartEndRadius: 2.2,\n      insetBlockEnd: 2.2,\n      insetBlockStart: 2.2,\n      insetInlineEnd: 2.2,\n      insetInlineStart: 2.2,\n      marginBlockStart: 2.2,\n      marginBlockEnd: 2.2,\n      marginInlineStart: 2.2,\n      marginInlineEnd: 2.2,\n      paddingBlockStart: 2.2,\n      paddingBlockEnd: 2.2,\n      paddingInlineStart: 2.2,\n      paddingInlineEnd: 2.2\n    };\n    var borderTopLeftRadius = \"borderTopLeftRadius\";\n    var borderTopRightRadius = \"borderTopRightRadius\";\n    var borderBottomLeftRadius = \"borderBottomLeftRadius\";\n    var borderBottomRightRadius = \"borderBottomRightRadius\";\n    var borderLeftColor = \"borderLeftColor\";\n    var borderLeftStyle = \"borderLeftStyle\";\n    var borderLeftWidth = \"borderLeftWidth\";\n    var borderRightColor = \"borderRightColor\";\n    var borderRightStyle = \"borderRightStyle\";\n    var borderRightWidth = \"borderRightWidth\";\n    var right = \"right\";\n    var marginLeft = \"marginLeft\";\n    var marginRight = \"marginRight\";\n    var paddingLeft = \"paddingLeft\";\n    var paddingRight = \"paddingRight\";\n    var left = \"left\";\n    var PROPERTIES_FLIP = {\n      [borderTopLeftRadius]: borderTopRightRadius,\n      [borderTopRightRadius]: borderTopLeftRadius,\n      [borderBottomLeftRadius]: borderBottomRightRadius,\n      [borderBottomRightRadius]: borderBottomLeftRadius,\n      [borderLeftColor]: borderRightColor,\n      [borderLeftStyle]: borderRightStyle,\n      [borderLeftWidth]: borderRightWidth,\n      [borderRightColor]: borderLeftColor,\n      [borderRightStyle]: borderLeftStyle,\n      [borderRightWidth]: borderLeftWidth,\n      [left]: right,\n      [marginLeft]: marginRight,\n      [marginRight]: marginLeft,\n      [paddingLeft]: paddingRight,\n      [paddingRight]: paddingLeft,\n      [right]: left\n    };\n    var PROPERTIES_I18N = {\n      borderStartStartRadius: borderTopLeftRadius,\n      borderStartEndRadius: borderTopRightRadius,\n      borderEndStartRadius: borderBottomLeftRadius,\n      borderEndEndRadius: borderBottomRightRadius,\n      borderInlineStartColor: borderLeftColor,\n      borderInlineStartStyle: borderLeftStyle,\n      borderInlineStartWidth: borderLeftWidth,\n      borderInlineEndColor: borderRightColor,\n      borderInlineEndStyle: borderRightStyle,\n      borderInlineEndWidth: borderRightWidth,\n      insetInlineEnd: right,\n      insetInlineStart: left,\n      marginInlineStart: marginLeft,\n      marginInlineEnd: marginRight,\n      paddingInlineStart: paddingLeft,\n      paddingInlineEnd: paddingRight\n    };\n    var PROPERTIES_VALUE = [\"clear\", \"float\", \"textAlign\"];\n    function atomic(style) {\n      var compiledStyle = {\n        $$css: true\n      };\n      var compiledRules = [];\n      function atomicCompile(srcProp, prop, value) {\n        var valueString = stringifyValueWithProperty(value, prop);\n        var cacheKey = prop + valueString;\n        var cachedResult = cache3.get(cacheKey);\n        var identifier;\n        if (cachedResult != null) {\n          identifier = cachedResult[0];\n          compiledRules.push(cachedResult[1]);\n        } else {\n          var v = srcProp !== prop ? cacheKey : valueString;\n          identifier = createIdentifier(\"r\", srcProp, v);\n          var order = customGroup[srcProp] || atomicGroup;\n          var rules = createAtomicRules(identifier, prop, value);\n          var orderedRules = [rules, order];\n          compiledRules.push(orderedRules);\n          cache3.set(cacheKey, [identifier, orderedRules]);\n        }\n        return identifier;\n      }\n      __name(atomicCompile, \"atomicCompile\");\n      Object.keys(style).sort().forEach((srcProp) => {\n        var value = style[srcProp];\n        if (value != null) {\n          var localizeableValue;\n          if (PROPERTIES_VALUE.indexOf(srcProp) > -1) {\n            var _left = atomicCompile(srcProp, srcProp, \"left\");\n            var _right = atomicCompile(srcProp, srcProp, \"right\");\n            if (value === \"start\") {\n              localizeableValue = [_left, _right];\n            } else if (value === \"end\") {\n              localizeableValue = [_right, _left];\n            }\n          }\n          var propPolyfill = PROPERTIES_I18N[srcProp];\n          if (propPolyfill != null) {\n            var ltr = atomicCompile(srcProp, propPolyfill, value);\n            var rtl = atomicCompile(srcProp, PROPERTIES_FLIP[propPolyfill], value);\n            localizeableValue = [ltr, rtl];\n          }\n          if (srcProp === \"transitionProperty\") {\n            var values = Array.isArray(value) ? value : [value];\n            var polyfillIndices = [];\n            for (var i = 0; i < values.length; i++) {\n              var val = values[i];\n              if (typeof val === \"string\" && PROPERTIES_I18N[val] != null) {\n                polyfillIndices.push(i);\n              }\n            }\n            if (polyfillIndices.length > 0) {\n              var ltrPolyfillValues = [...values];\n              var rtlPolyfillValues = [...values];\n              polyfillIndices.forEach((i2) => {\n                var ltrVal = ltrPolyfillValues[i2];\n                if (typeof ltrVal === \"string\") {\n                  var ltrPolyfill = PROPERTIES_I18N[ltrVal];\n                  var rtlPolyfill = PROPERTIES_FLIP[ltrPolyfill];\n                  ltrPolyfillValues[i2] = ltrPolyfill;\n                  rtlPolyfillValues[i2] = rtlPolyfill;\n                  var _ltr = atomicCompile(srcProp, srcProp, ltrPolyfillValues);\n                  var _rtl = atomicCompile(srcProp, srcProp, rtlPolyfillValues);\n                  localizeableValue = [_ltr, _rtl];\n                }\n              });\n            }\n          }\n          if (localizeableValue == null) {\n            localizeableValue = atomicCompile(srcProp, srcProp, value);\n          } else {\n            compiledStyle[\"$$css$localize\"] = true;\n          }\n          compiledStyle[srcProp] = localizeableValue;\n        }\n      });\n      return [compiledStyle, compiledRules];\n    }\n    __name(atomic, \"atomic\");\n    function classic(style, name) {\n      var compiledStyle = {\n        $$css: true\n      };\n      var compiledRules = [];\n      var animationKeyframes = style.animationKeyframes, rest = (0, _objectWithoutPropertiesLoose2.default)(style, _excluded);\n      var identifier = createIdentifier(\"css\", name, JSON.stringify(style));\n      var selector = \".\" + identifier;\n      var animationName;\n      if (animationKeyframes != null) {\n        var _processKeyframesValu = processKeyframesValue(animationKeyframes), animationNames = _processKeyframesValu[0], keyframesRules = _processKeyframesValu[1];\n        animationName = animationNames.join(\",\");\n        compiledRules.push(...keyframesRules);\n      }\n      var block = createDeclarationBlock((0, _objectSpread2.default)((0, _objectSpread2.default)({}, rest), {}, {\n        animationName\n      }));\n      compiledRules.push(\"\" + selector + block);\n      compiledStyle[identifier] = identifier;\n      return [compiledStyle, [[compiledRules, classicGroup]]];\n    }\n    __name(classic, \"classic\");\n    function inline4(originalStyle, isRTL2) {\n      var style = originalStyle || emptyObject;\n      var frozenProps = {};\n      var nextStyle = {};\n      var _loop = /* @__PURE__ */ __name(function _loop2() {\n        var originalValue = style[originalProp];\n        var prop = originalProp;\n        var value = originalValue;\n        if (!Object.prototype.hasOwnProperty.call(style, originalProp) || originalValue == null) {\n          return \"continue\";\n        }\n        if (PROPERTIES_VALUE.indexOf(originalProp) > -1) {\n          if (originalValue === \"start\") {\n            value = isRTL2 ? \"right\" : \"left\";\n          } else if (originalValue === \"end\") {\n            value = isRTL2 ? \"left\" : \"right\";\n          }\n        }\n        var propPolyfill = PROPERTIES_I18N[originalProp];\n        if (propPolyfill != null) {\n          prop = isRTL2 ? PROPERTIES_FLIP[propPolyfill] : propPolyfill;\n        }\n        if (originalProp === \"transitionProperty\") {\n          var originalValues = Array.isArray(originalValue) ? originalValue : [originalValue];\n          originalValues.forEach((val, i) => {\n            if (typeof val === \"string\") {\n              var valuePolyfill = PROPERTIES_I18N[val];\n              if (valuePolyfill != null) {\n                originalValues[i] = isRTL2 ? PROPERTIES_FLIP[valuePolyfill] : valuePolyfill;\n                value = originalValues.join(\" \");\n              }\n            }\n          });\n        }\n        if (!frozenProps[prop]) {\n          nextStyle[prop] = value;\n        }\n        if (prop === originalProp) {\n          frozenProps[prop] = true;\n        }\n      }, \"_loop\");\n      for (var originalProp in style) {\n        var _ret = _loop();\n        if (_ret === \"continue\") continue;\n      }\n      return (0, _createReactDOMStyle.default)(nextStyle, true);\n    }\n    __name(inline4, \"inline\");\n    function stringifyValueWithProperty(value, property) {\n      var normalizedValue = (0, _normalizeValueWithProperty.default)(value, property);\n      return typeof normalizedValue !== \"string\" ? JSON.stringify(normalizedValue || \"\") : normalizedValue;\n    }\n    __name(stringifyValueWithProperty, \"stringifyValueWithProperty\");\n    function createAtomicRules(identifier, property, value) {\n      var rules = [];\n      var selector = \".\" + identifier;\n      switch (property) {\n        case \"animationKeyframes\": {\n          var _processKeyframesValu2 = processKeyframesValue(value), animationNames = _processKeyframesValu2[0], keyframesRules = _processKeyframesValu2[1];\n          var block = createDeclarationBlock({\n            animationName: animationNames.join(\",\")\n          });\n          rules.push(\"\" + selector + block, ...keyframesRules);\n          break;\n        }\n        // Equivalent to using '::placeholder'\n        case \"placeholderTextColor\": {\n          var _block = createDeclarationBlock({\n            color: value,\n            opacity: 1\n          });\n          rules.push(selector + \"::-webkit-input-placeholder\" + _block, selector + \"::-moz-placeholder\" + _block, selector + \":-ms-input-placeholder\" + _block, selector + \"::placeholder\" + _block);\n          break;\n        }\n        // Polyfill for additional 'pointer-events' values\n        // See d13f78622b233a0afc0c7a200c0a0792c8ca9e58\n        case \"pointerEvents\": {\n          var finalValue = value;\n          if (value === \"auto\" || value === \"box-only\") {\n            finalValue = \"auto!important\";\n            if (value === \"box-only\") {\n              var _block2 = createDeclarationBlock({\n                pointerEvents: \"none\"\n              });\n              rules.push(selector + \">*\" + _block2);\n            }\n          } else if (value === \"none\" || value === \"box-none\") {\n            finalValue = \"none!important\";\n            if (value === \"box-none\") {\n              var _block3 = createDeclarationBlock({\n                pointerEvents: \"auto\"\n              });\n              rules.push(selector + \">*\" + _block3);\n            }\n          }\n          var _block4 = createDeclarationBlock({\n            pointerEvents: finalValue\n          });\n          rules.push(\"\" + selector + _block4);\n          break;\n        }\n        // Polyfill for draft spec\n        // https://drafts.csswg.org/css-scrollbars-1/\n        case \"scrollbarWidth\": {\n          if (value === \"none\") {\n            rules.push(selector + \"::-webkit-scrollbar{display:none}\");\n          }\n          var _block5 = createDeclarationBlock({\n            scrollbarWidth: value\n          });\n          rules.push(\"\" + selector + _block5);\n          break;\n        }\n        default: {\n          var _block6 = createDeclarationBlock({\n            [property]: value\n          });\n          rules.push(\"\" + selector + _block6);\n          break;\n        }\n      }\n      return rules;\n    }\n    __name(createAtomicRules, \"createAtomicRules\");\n    function createDeclarationBlock(style) {\n      var domStyle = (0, _prefixStyles.default)((0, _createReactDOMStyle.default)(style));\n      var declarationsString = Object.keys(domStyle).map((property) => {\n        var value = domStyle[property];\n        var prop = (0, _hyphenateStyleName.default)(property);\n        if (Array.isArray(value)) {\n          return value.map((v) => prop + \":\" + v).join(\";\");\n        } else {\n          return prop + \":\" + value;\n        }\n      }).sort().join(\";\");\n      return \"{\" + declarationsString + \";}\";\n    }\n    __name(createDeclarationBlock, \"createDeclarationBlock\");\n    function createIdentifier(prefix, name, key) {\n      var hashedString = (0, _hash.default)(name + key);\n      return process.env.NODE_ENV !== \"production\" ? prefix + \"-\" + name + \"-\" + hashedString : prefix + \"-\" + hashedString;\n    }\n    __name(createIdentifier, \"createIdentifier\");\n    function createKeyframes(keyframes) {\n      var prefixes = [\"-webkit-\", \"\"];\n      var identifier = createIdentifier(\"r\", \"animation\", JSON.stringify(keyframes));\n      var steps = \"{\" + Object.keys(keyframes).map((stepName) => {\n        var rule = keyframes[stepName];\n        var block = createDeclarationBlock(rule);\n        return \"\" + stepName + block;\n      }).join(\"\") + \"}\";\n      var rules = prefixes.map((prefix) => {\n        return \"@\" + prefix + \"keyframes \" + identifier + steps;\n      });\n      return [identifier, rules];\n    }\n    __name(createKeyframes, \"createKeyframes\");\n    function processKeyframesValue(keyframesValue) {\n      if (typeof keyframesValue === \"number\") {\n        throw new Error(\"Invalid CSS keyframes type: \" + typeof keyframesValue);\n      }\n      var animationNames = [];\n      var rules = [];\n      var value = Array.isArray(keyframesValue) ? keyframesValue : [keyframesValue];\n      value.forEach((keyframes) => {\n        if (typeof keyframes === \"string\") {\n          animationNames.push(keyframes);\n        } else {\n          var _createKeyframes = createKeyframes(keyframes), identifier = _createKeyframes[0], keyframesRules = _createKeyframes[1];\n          animationNames.push(identifier);\n          rules.push(...keyframesRules);\n        }\n      });\n      return [animationNames, rules];\n    }\n    __name(processKeyframesValue, \"processKeyframesValue\");\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/StyleSheet/dom/createCSSStyleSheet.js\nvar require_createCSSStyleSheet = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/StyleSheet/dom/createCSSStyleSheet.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = createCSSStyleSheet;\n    var _canUseDom = _interopRequireDefault(require_canUseDom());\n    function createCSSStyleSheet(id, rootNode, textContent) {\n      if (_canUseDom.default) {\n        var root = rootNode != null ? rootNode : document;\n        var element = root.getElementById(id);\n        if (element == null) {\n          element = document.createElement(\"style\");\n          element.setAttribute(\"id\", id);\n          if (typeof textContent === \"string\") {\n            element.appendChild(document.createTextNode(textContent));\n          }\n          if (root instanceof ShadowRoot) {\n            root.insertBefore(element, root.firstChild);\n          } else {\n            var head = root.head;\n            if (head) {\n              head.insertBefore(element, head.firstChild);\n            }\n          }\n        }\n        return element.sheet;\n      } else {\n        return null;\n      }\n    }\n    __name(createCSSStyleSheet, \"createCSSStyleSheet\");\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/StyleSheet/dom/createOrderedCSSStyleSheet.js\nvar require_createOrderedCSSStyleSheet = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/StyleSheet/dom/createOrderedCSSStyleSheet.js\"(exports2, module2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.default = createOrderedCSSStyleSheet;\n    var slice = Array.prototype.slice;\n    function createOrderedCSSStyleSheet(sheet) {\n      var groups = {};\n      var selectors = {};\n      if (sheet != null) {\n        var group;\n        slice.call(sheet.cssRules).forEach((cssRule, i) => {\n          var cssText = cssRule.cssText;\n          if (cssText.indexOf(\"stylesheet-group\") > -1) {\n            group = decodeGroupRule(cssRule);\n            groups[group] = {\n              start: i,\n              rules: [cssText]\n            };\n          } else {\n            var selectorText = getSelectorText(cssText);\n            if (selectorText != null) {\n              selectors[selectorText] = true;\n              groups[group].rules.push(cssText);\n            }\n          }\n        });\n      }\n      function sheetInsert(sheet2, group2, text) {\n        var orderedGroups = getOrderedGroups(groups);\n        var groupIndex = orderedGroups.indexOf(group2);\n        var nextGroupIndex = groupIndex + 1;\n        var nextGroup = orderedGroups[nextGroupIndex];\n        var position = nextGroup != null && groups[nextGroup].start != null ? groups[nextGroup].start : sheet2.cssRules.length;\n        var isInserted = insertRuleAt(sheet2, text, position);\n        if (isInserted) {\n          if (groups[group2].start == null) {\n            groups[group2].start = position;\n          }\n          for (var i = nextGroupIndex; i < orderedGroups.length; i += 1) {\n            var groupNumber = orderedGroups[i];\n            var previousStart = groups[groupNumber].start || 0;\n            groups[groupNumber].start = previousStart + 1;\n          }\n        }\n        return isInserted;\n      }\n      __name(sheetInsert, \"sheetInsert\");\n      var OrderedCSSStyleSheet = {\n        /**\n         * The textContent of the style sheet.\n         */\n        getTextContent() {\n          return getOrderedGroups(groups).map((group2) => {\n            var rules = groups[group2].rules;\n            var marker = rules.shift();\n            rules.sort();\n            rules.unshift(marker);\n            return rules.join(\"\\n\");\n          }).join(\"\\n\");\n        },\n        /**\n         * Insert a rule into the style sheet\n         */\n        insert(cssText, groupValue) {\n          var group2 = Number(groupValue);\n          if (groups[group2] == null) {\n            var markerRule = encodeGroupRule(group2);\n            groups[group2] = {\n              start: null,\n              rules: [markerRule]\n            };\n            if (sheet != null) {\n              sheetInsert(sheet, group2, markerRule);\n            }\n          }\n          var selectorText = getSelectorText(cssText);\n          if (selectorText != null && selectors[selectorText] == null) {\n            selectors[selectorText] = true;\n            groups[group2].rules.push(cssText);\n            if (sheet != null) {\n              var isInserted = sheetInsert(sheet, group2, cssText);\n              if (!isInserted) {\n                groups[group2].rules.pop();\n              }\n            }\n          }\n        }\n      };\n      return OrderedCSSStyleSheet;\n    }\n    __name(createOrderedCSSStyleSheet, \"createOrderedCSSStyleSheet\");\n    function encodeGroupRule(group) {\n      return '[stylesheet-group=\"' + group + '\"]{}';\n    }\n    __name(encodeGroupRule, \"encodeGroupRule\");\n    var groupPattern = /[\"']/g;\n    function decodeGroupRule(cssRule) {\n      return Number(cssRule.selectorText.split(groupPattern)[1]);\n    }\n    __name(decodeGroupRule, \"decodeGroupRule\");\n    function getOrderedGroups(obj) {\n      return Object.keys(obj).map(Number).sort((a, b) => a > b ? 1 : -1);\n    }\n    __name(getOrderedGroups, \"getOrderedGroups\");\n    var selectorPattern = /\\s*([,])\\s*/g;\n    function getSelectorText(cssText) {\n      var selector = cssText.split(\"{\")[0].trim();\n      return selector !== \"\" ? selector.replace(selectorPattern, \"$1\") : null;\n    }\n    __name(getSelectorText, \"getSelectorText\");\n    function insertRuleAt(root, cssText, position) {\n      try {\n        root.insertRule(cssText, position);\n        return true;\n      } catch (e) {\n        return false;\n      }\n    }\n    __name(insertRuleAt, \"insertRuleAt\");\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/StyleSheet/dom/index.js\nvar require_dom = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/StyleSheet/dom/index.js\"(exports2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.createSheet = createSheet2;\n    var _canUseDom = _interopRequireDefault(require_canUseDom());\n    var _createCSSStyleSheet = _interopRequireDefault(require_createCSSStyleSheet());\n    var _createOrderedCSSStyleSheet = _interopRequireDefault(require_createOrderedCSSStyleSheet());\n    var defaultId = \"react-native-stylesheet\";\n    var roots = /* @__PURE__ */ new WeakMap();\n    var sheets = [];\n    var initialRules = [\n      // minimal top-level reset\n      \"html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);}\",\n      \"body{margin:0;}\",\n      // minimal form pseudo-element reset\n      \"button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}\",\n      \"input::-webkit-search-cancel-button,input::-webkit-search-decoration,input::-webkit-search-results-button,input::-webkit-search-results-decoration{display:none;}\"\n    ];\n    function createSheet2(root, id) {\n      if (id === void 0) {\n        id = defaultId;\n      }\n      var sheet;\n      if (_canUseDom.default) {\n        var rootNode = root != null ? root.getRootNode() : document;\n        if (sheets.length === 0) {\n          sheet = (0, _createOrderedCSSStyleSheet.default)((0, _createCSSStyleSheet.default)(id));\n          initialRules.forEach((rule) => {\n            sheet.insert(rule, 0);\n          });\n          roots.set(rootNode, sheets.length);\n          sheets.push(sheet);\n        } else {\n          var index3 = roots.get(rootNode);\n          if (index3 == null) {\n            var initialSheet = sheets[0];\n            var textContent = initialSheet != null ? initialSheet.getTextContent() : \"\";\n            sheet = (0, _createOrderedCSSStyleSheet.default)((0, _createCSSStyleSheet.default)(id, rootNode, textContent));\n            roots.set(rootNode, sheets.length);\n            sheets.push(sheet);\n          } else {\n            sheet = sheets[index3];\n          }\n        }\n      } else {\n        if (sheets.length === 0) {\n          sheet = (0, _createOrderedCSSStyleSheet.default)((0, _createCSSStyleSheet.default)(id));\n          initialRules.forEach((rule) => {\n            sheet.insert(rule, 0);\n          });\n          sheets.push(sheet);\n        } else {\n          sheet = sheets[0];\n        }\n      }\n      return {\n        getTextContent() {\n          return sheet.getTextContent();\n        },\n        id,\n        insert(cssText, groupValue) {\n          sheets.forEach((s) => {\n            s.insert(cssText, groupValue);\n          });\n        }\n      };\n    }\n    __name(createSheet2, \"createSheet\");\n  }\n});\n\n// node_modules/styleq/dist/transform-localize-style.js\nvar require_transform_localize_style = __commonJS({\n  \"node_modules/styleq/dist/transform-localize-style.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", {\n      value: true\n    });\n    exports2.localizeStyle = localizeStyle;\n    var cache3 = /* @__PURE__ */ new WeakMap();\n    var markerProp = \"$$css$localize\";\n    function compileStyle(style, isRTL2) {\n      var compiledStyle = {};\n      for (var prop in style) {\n        if (prop !== markerProp) {\n          var value = style[prop];\n          if (Array.isArray(value)) {\n            compiledStyle[prop] = isRTL2 ? value[1] : value[0];\n          } else {\n            compiledStyle[prop] = value;\n          }\n        }\n      }\n      return compiledStyle;\n    }\n    __name(compileStyle, \"compileStyle\");\n    function localizeStyle(style, isRTL2) {\n      if (style[markerProp] != null) {\n        var compiledStyleIndex = isRTL2 ? 1 : 0;\n        if (cache3.has(style)) {\n          var _cachedStyles = cache3.get(style);\n          var _compiledStyle = _cachedStyles[compiledStyleIndex];\n          if (_compiledStyle == null) {\n            _compiledStyle = compileStyle(style, isRTL2);\n            _cachedStyles[compiledStyleIndex] = _compiledStyle;\n            cache3.set(style, _cachedStyles);\n          }\n          return _compiledStyle;\n        }\n        var compiledStyle = compileStyle(style, isRTL2);\n        var cachedStyles = new Array(2);\n        cachedStyles[compiledStyleIndex] = compiledStyle;\n        cache3.set(style, cachedStyles);\n        return compiledStyle;\n      }\n      return style;\n    }\n    __name(localizeStyle, \"localizeStyle\");\n  }\n});\n\n// node_modules/styleq/transform-localize-style.js\nvar require_transform_localize_style2 = __commonJS({\n  \"node_modules/styleq/transform-localize-style.js\"(exports2, module2) {\n    module2.exports = require_transform_localize_style();\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/warnOnce/index.js\nvar require_warnOnce = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/warnOnce/index.js\"(exports2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.warnOnce = warnOnce;\n    var warnedKeys = {};\n    function warnOnce(key, message) {\n      if (process.env.NODE_ENV !== \"production\") {\n        if (warnedKeys[key]) {\n          return;\n        }\n        console.warn(message);\n        warnedKeys[key] = true;\n      }\n    }\n    __name(warnOnce, \"warnOnce\");\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/StyleSheet/preprocess.js\nvar require_preprocess = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/StyleSheet/preprocess.js\"(exports2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.preprocess = exports2.default = exports2.createTransformValue = exports2.createTextShadowValue = exports2.createBoxShadowValue = void 0;\n    var _normalizeColor = _interopRequireDefault(require_normalizeColor());\n    var _normalizeValueWithProperty = _interopRequireDefault(require_normalizeValueWithProperty());\n    var _warnOnce = require_warnOnce();\n    var emptyObject = {};\n    var defaultOffset = {\n      height: 0,\n      width: 0\n    };\n    var createBoxShadowValue = /* @__PURE__ */ __name((style) => {\n      var shadowColor = style.shadowColor, shadowOffset = style.shadowOffset, shadowOpacity = style.shadowOpacity, shadowRadius = style.shadowRadius;\n      var _ref = shadowOffset || defaultOffset, height = _ref.height, width = _ref.width;\n      var offsetX = (0, _normalizeValueWithProperty.default)(width);\n      var offsetY = (0, _normalizeValueWithProperty.default)(height);\n      var blurRadius = (0, _normalizeValueWithProperty.default)(shadowRadius || 0);\n      var color = (0, _normalizeColor.default)(shadowColor || \"black\", shadowOpacity);\n      if (color != null && offsetX != null && offsetY != null && blurRadius != null) {\n        return offsetX + \" \" + offsetY + \" \" + blurRadius + \" \" + color;\n      }\n    }, \"createBoxShadowValue\");\n    exports2.createBoxShadowValue = createBoxShadowValue;\n    var createTextShadowValue = /* @__PURE__ */ __name((style) => {\n      var textShadowColor = style.textShadowColor, textShadowOffset = style.textShadowOffset, textShadowRadius = style.textShadowRadius;\n      var _ref2 = textShadowOffset || defaultOffset, height = _ref2.height, width = _ref2.width;\n      var radius = textShadowRadius || 0;\n      var offsetX = (0, _normalizeValueWithProperty.default)(width);\n      var offsetY = (0, _normalizeValueWithProperty.default)(height);\n      var blurRadius = (0, _normalizeValueWithProperty.default)(radius);\n      var color = (0, _normalizeValueWithProperty.default)(textShadowColor, \"textShadowColor\");\n      if (color && (height !== 0 || width !== 0 || radius !== 0) && offsetX != null && offsetY != null && blurRadius != null) {\n        return offsetX + \" \" + offsetY + \" \" + blurRadius + \" \" + color;\n      }\n    }, \"createTextShadowValue\");\n    exports2.createTextShadowValue = createTextShadowValue;\n    var mapTransform = /* @__PURE__ */ __name((transform) => {\n      var type = Object.keys(transform)[0];\n      var value = transform[type];\n      if (type === \"matrix\" || type === \"matrix3d\") {\n        return type + \"(\" + value.join(\",\") + \")\";\n      } else {\n        var normalizedValue = (0, _normalizeValueWithProperty.default)(value, type);\n        return type + \"(\" + normalizedValue + \")\";\n      }\n    }, \"mapTransform\");\n    var createTransformValue = /* @__PURE__ */ __name((value) => {\n      return value.map(mapTransform).join(\" \");\n    }, \"createTransformValue\");\n    exports2.createTransformValue = createTransformValue;\n    var PROPERTIES_STANDARD = {\n      borderBottomEndRadius: \"borderEndEndRadius\",\n      borderBottomStartRadius: \"borderEndStartRadius\",\n      borderTopEndRadius: \"borderStartEndRadius\",\n      borderTopStartRadius: \"borderStartStartRadius\",\n      borderEndColor: \"borderInlineEndColor\",\n      borderEndStyle: \"borderInlineEndStyle\",\n      borderEndWidth: \"borderInlineEndWidth\",\n      borderStartColor: \"borderInlineStartColor\",\n      borderStartStyle: \"borderInlineStartStyle\",\n      borderStartWidth: \"borderInlineStartWidth\",\n      end: \"insetInlineEnd\",\n      marginEnd: \"marginInlineEnd\",\n      marginHorizontal: \"marginInline\",\n      marginStart: \"marginInlineStart\",\n      marginVertical: \"marginBlock\",\n      paddingEnd: \"paddingInlineEnd\",\n      paddingHorizontal: \"paddingInline\",\n      paddingStart: \"paddingInlineStart\",\n      paddingVertical: \"paddingBlock\",\n      start: \"insetInlineStart\"\n    };\n    var ignoredProps = {\n      elevation: true,\n      overlayColor: true,\n      resizeMode: true,\n      tintColor: true\n    };\n    var preprocess = exports2.preprocess = /* @__PURE__ */ __name(function preprocess2(originalStyle, options) {\n      if (options === void 0) {\n        options = {};\n      }\n      var style = originalStyle || emptyObject;\n      var nextStyle = {};\n      if (options.shadow === true, style.shadowColor != null || style.shadowOffset != null || style.shadowOpacity != null || style.shadowRadius != null) {\n        (0, _warnOnce.warnOnce)(\"shadowStyles\", '\"shadow*\" style props are deprecated. Use \"boxShadow\".');\n        var boxShadowValue = createBoxShadowValue(style);\n        if (boxShadowValue != null && nextStyle.boxShadow == null) {\n          var boxShadow = style.boxShadow;\n          var value = boxShadow ? boxShadow + \", \" + boxShadowValue : boxShadowValue;\n          nextStyle.boxShadow = value;\n        }\n      }\n      if (options.textShadow === true, style.textShadowColor != null || style.textShadowOffset != null || style.textShadowRadius != null) {\n        (0, _warnOnce.warnOnce)(\"textShadowStyles\", '\"textShadow*\" style props are deprecated. Use \"textShadow\".');\n        var textShadowValue = createTextShadowValue(style);\n        if (textShadowValue != null && nextStyle.textShadow == null) {\n          var textShadow = style.textShadow;\n          var _value = textShadow ? textShadow + \", \" + textShadowValue : textShadowValue;\n          nextStyle.textShadow = _value;\n        }\n      }\n      for (var originalProp in style) {\n        if (\n          // Ignore some React Native styles\n          ignoredProps[originalProp] != null || originalProp === \"shadowColor\" || originalProp === \"shadowOffset\" || originalProp === \"shadowOpacity\" || originalProp === \"shadowRadius\" || originalProp === \"textShadowColor\" || originalProp === \"textShadowOffset\" || originalProp === \"textShadowRadius\"\n        ) {\n          continue;\n        }\n        var originalValue = style[originalProp];\n        var prop = PROPERTIES_STANDARD[originalProp] || originalProp;\n        var _value2 = originalValue;\n        if (!Object.prototype.hasOwnProperty.call(style, originalProp) || prop !== originalProp && style[prop] != null) {\n          continue;\n        }\n        if (prop === \"aspectRatio\" && typeof _value2 === \"number\") {\n          nextStyle[prop] = _value2.toString();\n        } else if (prop === \"fontVariant\") {\n          if (Array.isArray(_value2) && _value2.length > 0) {\n            _value2 = _value2.join(\" \");\n          }\n          nextStyle[prop] = _value2;\n        } else if (prop === \"textAlignVertical\") {\n          if (style.verticalAlign == null) {\n            nextStyle.verticalAlign = _value2 === \"center\" ? \"middle\" : _value2;\n          }\n        } else if (prop === \"transform\") {\n          if (Array.isArray(_value2)) {\n            _value2 = createTransformValue(_value2);\n          }\n          nextStyle.transform = _value2;\n        } else {\n          nextStyle[prop] = _value2;\n        }\n      }\n      return nextStyle;\n    }, \"preprocess\");\n    var _default = exports2.default = preprocess;\n  }\n});\n\n// node_modules/styleq/dist/styleq.js\nvar require_styleq = __commonJS({\n  \"node_modules/styleq/dist/styleq.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", {\n      value: true\n    });\n    exports2.styleq = void 0;\n    var cache3 = /* @__PURE__ */ new WeakMap();\n    var compiledKey = \"$$css\";\n    function createStyleq(options) {\n      var disableCache;\n      var disableMix;\n      var transform;\n      if (options != null) {\n        disableCache = options.disableCache === true;\n        disableMix = options.disableMix === true;\n        transform = options.transform;\n      }\n      return /* @__PURE__ */ __name(function styleq2() {\n        var definedProperties = [];\n        var className = \"\";\n        var inlineStyle = null;\n        var nextCache = disableCache ? null : cache3;\n        var styles = new Array(arguments.length);\n        for (var i = 0; i < arguments.length; i++) {\n          styles[i] = arguments[i];\n        }\n        while (styles.length > 0) {\n          var possibleStyle = styles.pop();\n          if (possibleStyle == null || possibleStyle === false) {\n            continue;\n          }\n          if (Array.isArray(possibleStyle)) {\n            for (var _i = 0; _i < possibleStyle.length; _i++) {\n              styles.push(possibleStyle[_i]);\n            }\n            continue;\n          }\n          var style = transform != null ? transform(possibleStyle) : possibleStyle;\n          if (style.$$css) {\n            var classNameChunk = \"\";\n            if (nextCache != null && nextCache.has(style)) {\n              var cacheEntry = nextCache.get(style);\n              if (cacheEntry != null) {\n                classNameChunk = cacheEntry[0];\n                definedProperties.push.apply(definedProperties, cacheEntry[1]);\n                nextCache = cacheEntry[2];\n              }\n            } else {\n              var definedPropertiesChunk = [];\n              for (var prop in style) {\n                var value = style[prop];\n                if (prop === compiledKey) continue;\n                if (typeof value === \"string\" || value === null) {\n                  if (!definedProperties.includes(prop)) {\n                    definedProperties.push(prop);\n                    if (nextCache != null) {\n                      definedPropertiesChunk.push(prop);\n                    }\n                    if (typeof value === \"string\") {\n                      classNameChunk += classNameChunk ? \" \" + value : value;\n                    }\n                  }\n                } else {\n                  console.error(\"styleq: \".concat(prop, \" typeof \").concat(String(value), ' is not \"string\" or \"null\".'));\n                }\n              }\n              if (nextCache != null) {\n                var weakMap = /* @__PURE__ */ new WeakMap();\n                nextCache.set(style, [classNameChunk, definedPropertiesChunk, weakMap]);\n                nextCache = weakMap;\n              }\n            }\n            if (classNameChunk) {\n              className = className ? classNameChunk + \" \" + className : classNameChunk;\n            }\n          } else {\n            if (disableMix) {\n              if (inlineStyle == null) {\n                inlineStyle = {};\n              }\n              inlineStyle = Object.assign({}, style, inlineStyle);\n            } else {\n              var subStyle = null;\n              for (var _prop in style) {\n                var _value = style[_prop];\n                if (_value !== void 0) {\n                  if (!definedProperties.includes(_prop)) {\n                    if (_value != null) {\n                      if (inlineStyle == null) {\n                        inlineStyle = {};\n                      }\n                      if (subStyle == null) {\n                        subStyle = {};\n                      }\n                      subStyle[_prop] = _value;\n                    }\n                    definedProperties.push(_prop);\n                    nextCache = null;\n                  }\n                }\n              }\n              if (subStyle != null) {\n                inlineStyle = Object.assign(subStyle, inlineStyle);\n              }\n            }\n          }\n        }\n        var styleProps = [className, inlineStyle];\n        return styleProps;\n      }, \"styleq\");\n    }\n    __name(createStyleq, \"createStyleq\");\n    var styleq = createStyleq();\n    exports2.styleq = styleq;\n    styleq.factory = createStyleq;\n  }\n});\n\n// node_modules/styleq/styleq.js\nvar require_styleq2 = __commonJS({\n  \"node_modules/styleq/styleq.js\"(exports2, module2) {\n    module2.exports = require_styleq();\n  }\n});\n\n// node_modules/postcss-value-parser/lib/parse.js\nvar require_parse = __commonJS({\n  \"node_modules/postcss-value-parser/lib/parse.js\"(exports2, module2) {\n    var openParentheses = \"(\".charCodeAt(0);\n    var closeParentheses = \")\".charCodeAt(0);\n    var singleQuote = \"'\".charCodeAt(0);\n    var doubleQuote = '\"'.charCodeAt(0);\n    var backslash = \"\\\\\".charCodeAt(0);\n    var slash = \"/\".charCodeAt(0);\n    var comma = \",\".charCodeAt(0);\n    var colon = \":\".charCodeAt(0);\n    var star = \"*\".charCodeAt(0);\n    var uLower = \"u\".charCodeAt(0);\n    var uUpper = \"U\".charCodeAt(0);\n    var plus = \"+\".charCodeAt(0);\n    var isUnicodeRange = /^[a-f0-9?-]+$/i;\n    module2.exports = function(input) {\n      var tokens = [];\n      var value = input;\n      var next, quote, prev, token, escape, escapePos, whitespacePos, parenthesesOpenPos;\n      var pos = 0;\n      var code = value.charCodeAt(pos);\n      var max2 = value.length;\n      var stack = [{ nodes: tokens }];\n      var balanced = 0;\n      var parent;\n      var name = \"\";\n      var before = \"\";\n      var after = \"\";\n      while (pos < max2) {\n        if (code <= 32) {\n          next = pos;\n          do {\n            next += 1;\n            code = value.charCodeAt(next);\n          } while (code <= 32);\n          token = value.slice(pos, next);\n          prev = tokens[tokens.length - 1];\n          if (code === closeParentheses && balanced) {\n            after = token;\n          } else if (prev && prev.type === \"div\") {\n            prev.after = token;\n            prev.sourceEndIndex += token.length;\n          } else if (code === comma || code === colon || code === slash && value.charCodeAt(next + 1) !== star && (!parent || parent && parent.type === \"function\" && parent.value !== \"calc\")) {\n            before = token;\n          } else {\n            tokens.push({\n              type: \"space\",\n              sourceIndex: pos,\n              sourceEndIndex: next,\n              value: token\n            });\n          }\n          pos = next;\n        } else if (code === singleQuote || code === doubleQuote) {\n          next = pos;\n          quote = code === singleQuote ? \"'\" : '\"';\n          token = {\n            type: \"string\",\n            sourceIndex: pos,\n            quote\n          };\n          do {\n            escape = false;\n            next = value.indexOf(quote, next + 1);\n            if (~next) {\n              escapePos = next;\n              while (value.charCodeAt(escapePos - 1) === backslash) {\n                escapePos -= 1;\n                escape = !escape;\n              }\n            } else {\n              value += quote;\n              next = value.length - 1;\n              token.unclosed = true;\n            }\n          } while (escape);\n          token.value = value.slice(pos + 1, next);\n          token.sourceEndIndex = token.unclosed ? next : next + 1;\n          tokens.push(token);\n          pos = next + 1;\n          code = value.charCodeAt(pos);\n        } else if (code === slash && value.charCodeAt(pos + 1) === star) {\n          next = value.indexOf(\"*/\", pos);\n          token = {\n            type: \"comment\",\n            sourceIndex: pos,\n            sourceEndIndex: next + 2\n          };\n          if (next === -1) {\n            token.unclosed = true;\n            next = value.length;\n            token.sourceEndIndex = next;\n          }\n          token.value = value.slice(pos + 2, next);\n          tokens.push(token);\n          pos = next + 2;\n          code = value.charCodeAt(pos);\n        } else if ((code === slash || code === star) && parent && parent.type === \"function\" && parent.value === \"calc\") {\n          token = value[pos];\n          tokens.push({\n            type: \"word\",\n            sourceIndex: pos - before.length,\n            sourceEndIndex: pos + token.length,\n            value: token\n          });\n          pos += 1;\n          code = value.charCodeAt(pos);\n        } else if (code === slash || code === comma || code === colon) {\n          token = value[pos];\n          tokens.push({\n            type: \"div\",\n            sourceIndex: pos - before.length,\n            sourceEndIndex: pos + token.length,\n            value: token,\n            before,\n            after: \"\"\n          });\n          before = \"\";\n          pos += 1;\n          code = value.charCodeAt(pos);\n        } else if (openParentheses === code) {\n          next = pos;\n          do {\n            next += 1;\n            code = value.charCodeAt(next);\n          } while (code <= 32);\n          parenthesesOpenPos = pos;\n          token = {\n            type: \"function\",\n            sourceIndex: pos - name.length,\n            value: name,\n            before: value.slice(parenthesesOpenPos + 1, next)\n          };\n          pos = next;\n          if (name === \"url\" && code !== singleQuote && code !== doubleQuote) {\n            next -= 1;\n            do {\n              escape = false;\n              next = value.indexOf(\")\", next + 1);\n              if (~next) {\n                escapePos = next;\n                while (value.charCodeAt(escapePos - 1) === backslash) {\n                  escapePos -= 1;\n                  escape = !escape;\n                }\n              } else {\n                value += \")\";\n                next = value.length - 1;\n                token.unclosed = true;\n              }\n            } while (escape);\n            whitespacePos = next;\n            do {\n              whitespacePos -= 1;\n              code = value.charCodeAt(whitespacePos);\n            } while (code <= 32);\n            if (parenthesesOpenPos < whitespacePos) {\n              if (pos !== whitespacePos + 1) {\n                token.nodes = [\n                  {\n                    type: \"word\",\n                    sourceIndex: pos,\n                    sourceEndIndex: whitespacePos + 1,\n                    value: value.slice(pos, whitespacePos + 1)\n                  }\n                ];\n              } else {\n                token.nodes = [];\n              }\n              if (token.unclosed && whitespacePos + 1 !== next) {\n                token.after = \"\";\n                token.nodes.push({\n                  type: \"space\",\n                  sourceIndex: whitespacePos + 1,\n                  sourceEndIndex: next,\n                  value: value.slice(whitespacePos + 1, next)\n                });\n              } else {\n                token.after = value.slice(whitespacePos + 1, next);\n                token.sourceEndIndex = next;\n              }\n            } else {\n              token.after = \"\";\n              token.nodes = [];\n            }\n            pos = next + 1;\n            token.sourceEndIndex = token.unclosed ? next : pos;\n            code = value.charCodeAt(pos);\n            tokens.push(token);\n          } else {\n            balanced += 1;\n            token.after = \"\";\n            token.sourceEndIndex = pos + 1;\n            tokens.push(token);\n            stack.push(token);\n            tokens = token.nodes = [];\n            parent = token;\n          }\n          name = \"\";\n        } else if (closeParentheses === code && balanced) {\n          pos += 1;\n          code = value.charCodeAt(pos);\n          parent.after = after;\n          parent.sourceEndIndex += after.length;\n          after = \"\";\n          balanced -= 1;\n          stack[stack.length - 1].sourceEndIndex = pos;\n          stack.pop();\n          parent = stack[balanced];\n          tokens = parent.nodes;\n        } else {\n          next = pos;\n          do {\n            if (code === backslash) {\n              next += 1;\n            }\n            next += 1;\n            code = value.charCodeAt(next);\n          } while (next < max2 && !(code <= 32 || code === singleQuote || code === doubleQuote || code === comma || code === colon || code === slash || code === openParentheses || code === star && parent && parent.type === \"function\" && parent.value === \"calc\" || code === slash && parent.type === \"function\" && parent.value === \"calc\" || code === closeParentheses && balanced));\n          token = value.slice(pos, next);\n          if (openParentheses === code) {\n            name = token;\n          } else if ((uLower === token.charCodeAt(0) || uUpper === token.charCodeAt(0)) && plus === token.charCodeAt(1) && isUnicodeRange.test(token.slice(2))) {\n            tokens.push({\n              type: \"unicode-range\",\n              sourceIndex: pos,\n              sourceEndIndex: next,\n              value: token\n            });\n          } else {\n            tokens.push({\n              type: \"word\",\n              sourceIndex: pos,\n              sourceEndIndex: next,\n              value: token\n            });\n          }\n          pos = next;\n        }\n      }\n      for (pos = stack.length - 1; pos; pos -= 1) {\n        stack[pos].unclosed = true;\n        stack[pos].sourceEndIndex = value.length;\n      }\n      return stack[0].nodes;\n    };\n  }\n});\n\n// node_modules/postcss-value-parser/lib/walk.js\nvar require_walk = __commonJS({\n  \"node_modules/postcss-value-parser/lib/walk.js\"(exports2, module2) {\n    module2.exports = /* @__PURE__ */ __name(function walk(nodes, cb, bubble) {\n      var i, max2, node, result;\n      for (i = 0, max2 = nodes.length; i < max2; i += 1) {\n        node = nodes[i];\n        if (!bubble) {\n          result = cb(node, i, nodes);\n        }\n        if (result !== false && node.type === \"function\" && Array.isArray(node.nodes)) {\n          walk(node.nodes, cb, bubble);\n        }\n        if (bubble) {\n          cb(node, i, nodes);\n        }\n      }\n    }, \"walk\");\n  }\n});\n\n// node_modules/postcss-value-parser/lib/stringify.js\nvar require_stringify = __commonJS({\n  \"node_modules/postcss-value-parser/lib/stringify.js\"(exports2, module2) {\n    function stringifyNode(node, custom) {\n      var type = node.type;\n      var value = node.value;\n      var buf;\n      var customResult;\n      if (custom && (customResult = custom(node)) !== void 0) {\n        return customResult;\n      } else if (type === \"word\" || type === \"space\") {\n        return value;\n      } else if (type === \"string\") {\n        buf = node.quote || \"\";\n        return buf + value + (node.unclosed ? \"\" : buf);\n      } else if (type === \"comment\") {\n        return \"/*\" + value + (node.unclosed ? \"\" : \"*/\");\n      } else if (type === \"div\") {\n        return (node.before || \"\") + value + (node.after || \"\");\n      } else if (Array.isArray(node.nodes)) {\n        buf = stringify(node.nodes, custom);\n        if (type !== \"function\") {\n          return buf;\n        }\n        return value + \"(\" + (node.before || \"\") + buf + (node.after || \"\") + (node.unclosed ? \"\" : \")\");\n      }\n      return value;\n    }\n    __name(stringifyNode, \"stringifyNode\");\n    function stringify(nodes, custom) {\n      var result, i;\n      if (Array.isArray(nodes)) {\n        result = \"\";\n        for (i = nodes.length - 1; ~i; i -= 1) {\n          result = stringifyNode(nodes[i], custom) + result;\n        }\n        return result;\n      }\n      return stringifyNode(nodes, custom);\n    }\n    __name(stringify, \"stringify\");\n    module2.exports = stringify;\n  }\n});\n\n// node_modules/postcss-value-parser/lib/unit.js\nvar require_unit = __commonJS({\n  \"node_modules/postcss-value-parser/lib/unit.js\"(exports2, module2) {\n    var minus = \"-\".charCodeAt(0);\n    var plus = \"+\".charCodeAt(0);\n    var dot = \".\".charCodeAt(0);\n    var exp = \"e\".charCodeAt(0);\n    var EXP = \"E\".charCodeAt(0);\n    function likeNumber(value) {\n      var code = value.charCodeAt(0);\n      var nextCode;\n      if (code === plus || code === minus) {\n        nextCode = value.charCodeAt(1);\n        if (nextCode >= 48 && nextCode <= 57) {\n          return true;\n        }\n        var nextNextCode = value.charCodeAt(2);\n        if (nextCode === dot && nextNextCode >= 48 && nextNextCode <= 57) {\n          return true;\n        }\n        return false;\n      }\n      if (code === dot) {\n        nextCode = value.charCodeAt(1);\n        if (nextCode >= 48 && nextCode <= 57) {\n          return true;\n        }\n        return false;\n      }\n      if (code >= 48 && code <= 57) {\n        return true;\n      }\n      return false;\n    }\n    __name(likeNumber, \"likeNumber\");\n    module2.exports = function(value) {\n      var pos = 0;\n      var length = value.length;\n      var code;\n      var nextCode;\n      var nextNextCode;\n      if (length === 0 || !likeNumber(value)) {\n        return false;\n      }\n      code = value.charCodeAt(pos);\n      if (code === plus || code === minus) {\n        pos++;\n      }\n      while (pos < length) {\n        code = value.charCodeAt(pos);\n        if (code < 48 || code > 57) {\n          break;\n        }\n        pos += 1;\n      }\n      code = value.charCodeAt(pos);\n      nextCode = value.charCodeAt(pos + 1);\n      if (code === dot && nextCode >= 48 && nextCode <= 57) {\n        pos += 2;\n        while (pos < length) {\n          code = value.charCodeAt(pos);\n          if (code < 48 || code > 57) {\n            break;\n          }\n          pos += 1;\n        }\n      }\n      code = value.charCodeAt(pos);\n      nextCode = value.charCodeAt(pos + 1);\n      nextNextCode = value.charCodeAt(pos + 2);\n      if ((code === exp || code === EXP) && (nextCode >= 48 && nextCode <= 57 || (nextCode === plus || nextCode === minus) && nextNextCode >= 48 && nextNextCode <= 57)) {\n        pos += nextCode === plus || nextCode === minus ? 3 : 2;\n        while (pos < length) {\n          code = value.charCodeAt(pos);\n          if (code < 48 || code > 57) {\n            break;\n          }\n          pos += 1;\n        }\n      }\n      return {\n        number: value.slice(0, pos),\n        unit: value.slice(pos)\n      };\n    };\n  }\n});\n\n// node_modules/postcss-value-parser/lib/index.js\nvar require_lib2 = __commonJS({\n  \"node_modules/postcss-value-parser/lib/index.js\"(exports2, module2) {\n    var parse = require_parse();\n    var walk = require_walk();\n    var stringify = require_stringify();\n    function ValueParser(value) {\n      if (this instanceof ValueParser) {\n        this.nodes = parse(value);\n        return this;\n      }\n      return new ValueParser(value);\n    }\n    __name(ValueParser, \"ValueParser\");\n    ValueParser.prototype.toString = function() {\n      return Array.isArray(this.nodes) ? stringify(this.nodes) : \"\";\n    };\n    ValueParser.prototype.walk = function(cb, bubble) {\n      walk(this.nodes, cb, bubble);\n      return this;\n    };\n    ValueParser.unit = require_unit();\n    ValueParser.walk = walk;\n    ValueParser.stringify = stringify;\n    module2.exports = ValueParser;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/StyleSheet/validate.js\nvar require_validate = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/StyleSheet/validate.js\"(exports2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.validate = validate;\n    var _postcssValueParser = _interopRequireDefault(require_lib2());\n    var invalidShortforms = {\n      background: true,\n      borderBottom: true,\n      borderLeft: true,\n      borderRight: true,\n      borderTop: true,\n      font: true,\n      grid: true,\n      outline: true,\n      textDecoration: true\n    };\n    var invalidMultiValueShortforms = {\n      flex: true,\n      margin: true,\n      padding: true,\n      borderColor: true,\n      borderRadius: true,\n      borderStyle: true,\n      borderWidth: true,\n      inset: true,\n      insetBlock: true,\n      insetInline: true,\n      marginBlock: true,\n      marginInline: true,\n      marginHorizontal: true,\n      marginVertical: true,\n      paddingBlock: true,\n      paddingInline: true,\n      paddingHorizontal: true,\n      paddingVertical: true,\n      overflow: true,\n      overscrollBehavior: true,\n      backgroundPosition: true\n    };\n    function error2(message) {\n      console.error(message);\n    }\n    __name(error2, \"error\");\n    function validate(obj) {\n      for (var k in obj) {\n        var prop = k.trim();\n        var value = obj[prop];\n        var isInvalid = false;\n        if (value === null) {\n          continue;\n        }\n        if (typeof value === \"string\" && value.indexOf(\"!important\") > -1) {\n          error2('Invalid style declaration \"' + prop + \":\" + value + '\". Values cannot include \"!important\"');\n          isInvalid = true;\n        } else {\n          var suggestion = \"\";\n          if (prop === \"animation\" || prop === \"animationName\") {\n            suggestion = 'Did you mean \"animationKeyframes\"?';\n            isInvalid = true;\n          } else if (prop === \"direction\") {\n            suggestion = 'Did you mean \"writingDirection\"?';\n            isInvalid = true;\n          } else if (invalidShortforms[prop]) {\n            suggestion = \"Please use long-form properties.\";\n            isInvalid = true;\n          } else if (invalidMultiValueShortforms[prop]) {\n            if (typeof value === \"string\" && (0, _postcssValueParser.default)(value).nodes.length > 1) {\n              suggestion = 'Value is \"' + value + '\" but only single values are supported.';\n              isInvalid = true;\n            }\n          }\n          if (suggestion !== \"\") {\n            error2('Invalid style property of \"' + prop + '\". ' + suggestion);\n          }\n        }\n        if (isInvalid) {\n          delete obj[k];\n        }\n      }\n    }\n    __name(validate, \"validate\");\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/StyleSheet/index.js\nvar require_StyleSheet = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/StyleSheet/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _objectSpread2 = _interopRequireDefault(require_objectSpread2());\n    var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());\n    var _compiler = require_compiler();\n    var _dom = require_dom();\n    var _transformLocalizeStyle = require_transform_localize_style2();\n    var _preprocess = require_preprocess();\n    var _styleq = require_styleq2();\n    var _validate = require_validate();\n    var _canUseDom = _interopRequireDefault(require_canUseDom());\n    var _excluded = [\"writingDirection\"];\n    var staticStyleMap = /* @__PURE__ */ new WeakMap();\n    var sheet = (0, _dom.createSheet)();\n    var defaultPreprocessOptions = {\n      shadow: true,\n      textShadow: true\n    };\n    function customStyleq(styles, options) {\n      if (options === void 0) {\n        options = {};\n      }\n      var _options = options, writingDirection = _options.writingDirection, preprocessOptions = (0, _objectWithoutPropertiesLoose2.default)(_options, _excluded);\n      var isRTL2 = writingDirection === \"rtl\";\n      return _styleq.styleq.factory({\n        transform(style) {\n          var compiledStyle = staticStyleMap.get(style);\n          if (compiledStyle != null) {\n            return (0, _transformLocalizeStyle.localizeStyle)(compiledStyle, isRTL2);\n          }\n          return (0, _preprocess.preprocess)(style, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, defaultPreprocessOptions), preprocessOptions));\n        }\n      })(styles);\n    }\n    __name(customStyleq, \"customStyleq\");\n    function insertRules(compiledOrderedRules) {\n      compiledOrderedRules.forEach((_ref) => {\n        var rules = _ref[0], order = _ref[1];\n        if (sheet != null) {\n          rules.forEach((rule) => {\n            sheet.insert(rule, order);\n          });\n        }\n      });\n    }\n    __name(insertRules, \"insertRules\");\n    function compileAndInsertAtomic(style) {\n      var _atomic = (0, _compiler.atomic)((0, _preprocess.preprocess)(style, defaultPreprocessOptions)), compiledStyle = _atomic[0], compiledOrderedRules = _atomic[1];\n      insertRules(compiledOrderedRules);\n      return compiledStyle;\n    }\n    __name(compileAndInsertAtomic, \"compileAndInsertAtomic\");\n    function compileAndInsertReset(style, key) {\n      var _classic = (0, _compiler.classic)(style, key), compiledStyle = _classic[0], compiledOrderedRules = _classic[1];\n      insertRules(compiledOrderedRules);\n      return compiledStyle;\n    }\n    __name(compileAndInsertReset, \"compileAndInsertReset\");\n    var absoluteFillObject = {\n      position: \"absolute\",\n      left: 0,\n      right: 0,\n      top: 0,\n      bottom: 0\n    };\n    var absoluteFill = create({\n      x: (0, _objectSpread2.default)({}, absoluteFillObject)\n    }).x;\n    function create(styles) {\n      Object.keys(styles).forEach((key) => {\n        var styleObj = styles[key];\n        if (styleObj != null && styleObj.$$css !== true) {\n          var compiledStyles;\n          if (key.indexOf(\"$raw\") > -1) {\n            compiledStyles = compileAndInsertReset(styleObj, key.split(\"$raw\")[0]);\n          } else {\n            if (process.env.NODE_ENV !== \"production\") {\n              (0, _validate.validate)(styleObj);\n              styles[key] = Object.freeze(styleObj);\n            }\n            compiledStyles = compileAndInsertAtomic(styleObj);\n          }\n          staticStyleMap.set(styleObj, compiledStyles);\n        }\n      });\n      return styles;\n    }\n    __name(create, \"create\");\n    function compose(style1, style2) {\n      if (process.env.NODE_ENV !== \"production\") {\n        var len = arguments.length;\n        if (len > 2) {\n          var readableStyles = [...arguments].map((a) => flatten(a));\n          throw new Error(\"StyleSheet.compose() only accepts 2 arguments, received \" + len + \": \" + JSON.stringify(readableStyles));\n        }\n      }\n      return [style1, style2];\n    }\n    __name(compose, \"compose\");\n    function flatten() {\n      for (var _len = arguments.length, styles = new Array(_len), _key = 0; _key < _len; _key++) {\n        styles[_key] = arguments[_key];\n      }\n      var flatArray = styles.flat(Infinity);\n      var result = {};\n      for (var i = 0; i < flatArray.length; i++) {\n        var style = flatArray[i];\n        if (style != null && typeof style === \"object\") {\n          Object.assign(result, style);\n        }\n      }\n      return result;\n    }\n    __name(flatten, \"flatten\");\n    function getSheet() {\n      return {\n        id: sheet.id,\n        textContent: sheet.getTextContent()\n      };\n    }\n    __name(getSheet, \"getSheet\");\n    function StyleSheet(styles, options) {\n      if (options === void 0) {\n        options = {};\n      }\n      var isRTL2 = options.writingDirection === \"rtl\";\n      var styleProps = customStyleq(styles, options);\n      if (Array.isArray(styleProps) && styleProps[1] != null) {\n        styleProps[1] = (0, _compiler.inline)(styleProps[1], isRTL2);\n      }\n      return styleProps;\n    }\n    __name(StyleSheet, \"StyleSheet\");\n    StyleSheet.absoluteFill = absoluteFill;\n    StyleSheet.absoluteFillObject = absoluteFillObject;\n    StyleSheet.create = create;\n    StyleSheet.compose = compose;\n    StyleSheet.flatten = flatten;\n    StyleSheet.getSheet = getSheet;\n    StyleSheet.hairlineWidth = 1;\n    if (_canUseDom.default && window.__REACT_DEVTOOLS_GLOBAL_HOOK__) {\n      window.__REACT_DEVTOOLS_GLOBAL_HOOK__.resolveRNStyle = StyleSheet.flatten;\n    }\n    var stylesheet = StyleSheet;\n    var _default = exports2.default = stylesheet;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/createDOMProps/index.js\nvar require_createDOMProps = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/createDOMProps/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _objectSpread2 = _interopRequireDefault(require_objectSpread2());\n    var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());\n    var _AccessibilityUtil = _interopRequireDefault(require_AccessibilityUtil());\n    var _StyleSheet2 = _interopRequireDefault(require_StyleSheet());\n    var _warnOnce = require_warnOnce();\n    var _excluded = [\"aria-activedescendant\", \"accessibilityActiveDescendant\", \"aria-atomic\", \"accessibilityAtomic\", \"aria-autocomplete\", \"accessibilityAutoComplete\", \"aria-busy\", \"accessibilityBusy\", \"aria-checked\", \"accessibilityChecked\", \"aria-colcount\", \"accessibilityColumnCount\", \"aria-colindex\", \"accessibilityColumnIndex\", \"aria-colspan\", \"accessibilityColumnSpan\", \"aria-controls\", \"accessibilityControls\", \"aria-current\", \"accessibilityCurrent\", \"aria-describedby\", \"accessibilityDescribedBy\", \"aria-details\", \"accessibilityDetails\", \"aria-disabled\", \"accessibilityDisabled\", \"aria-errormessage\", \"accessibilityErrorMessage\", \"aria-expanded\", \"accessibilityExpanded\", \"aria-flowto\", \"accessibilityFlowTo\", \"aria-haspopup\", \"accessibilityHasPopup\", \"aria-hidden\", \"accessibilityHidden\", \"aria-invalid\", \"accessibilityInvalid\", \"aria-keyshortcuts\", \"accessibilityKeyShortcuts\", \"aria-label\", \"accessibilityLabel\", \"aria-labelledby\", \"accessibilityLabelledBy\", \"aria-level\", \"accessibilityLevel\", \"aria-live\", \"accessibilityLiveRegion\", \"aria-modal\", \"accessibilityModal\", \"aria-multiline\", \"accessibilityMultiline\", \"aria-multiselectable\", \"accessibilityMultiSelectable\", \"aria-orientation\", \"accessibilityOrientation\", \"aria-owns\", \"accessibilityOwns\", \"aria-placeholder\", \"accessibilityPlaceholder\", \"aria-posinset\", \"accessibilityPosInSet\", \"aria-pressed\", \"accessibilityPressed\", \"aria-readonly\", \"accessibilityReadOnly\", \"aria-required\", \"accessibilityRequired\", \"role\", \"accessibilityRole\", \"aria-roledescription\", \"accessibilityRoleDescription\", \"aria-rowcount\", \"accessibilityRowCount\", \"aria-rowindex\", \"accessibilityRowIndex\", \"aria-rowspan\", \"accessibilityRowSpan\", \"aria-selected\", \"accessibilitySelected\", \"aria-setsize\", \"accessibilitySetSize\", \"aria-sort\", \"accessibilitySort\", \"aria-valuemax\", \"accessibilityValueMax\", \"aria-valuemin\", \"accessibilityValueMin\", \"aria-valuenow\", \"accessibilityValueNow\", \"aria-valuetext\", \"accessibilityValueText\", \"dataSet\", \"focusable\", \"id\", \"nativeID\", \"pointerEvents\", \"style\", \"tabIndex\", \"testID\"];\n    var emptyObject = {};\n    var hasOwnProperty = Object.prototype.hasOwnProperty;\n    var isArray = Array.isArray;\n    var uppercasePattern = /[A-Z]/g;\n    function toHyphenLower(match) {\n      return \"-\" + match.toLowerCase();\n    }\n    __name(toHyphenLower, \"toHyphenLower\");\n    function hyphenateString(str) {\n      return str.replace(uppercasePattern, toHyphenLower);\n    }\n    __name(hyphenateString, \"hyphenateString\");\n    function processIDRefList(idRefList) {\n      return isArray(idRefList) ? idRefList.join(\" \") : idRefList;\n    }\n    __name(processIDRefList, \"processIDRefList\");\n    var pointerEventsStyles = _StyleSheet2.default.create({\n      auto: {\n        pointerEvents: \"auto\"\n      },\n      \"box-none\": {\n        pointerEvents: \"box-none\"\n      },\n      \"box-only\": {\n        pointerEvents: \"box-only\"\n      },\n      none: {\n        pointerEvents: \"none\"\n      }\n    });\n    var createDOMProps = /* @__PURE__ */ __name((elementType, props, options) => {\n      if (!props) {\n        props = emptyObject;\n      }\n      var _props = props, ariaActiveDescendant = _props[\"aria-activedescendant\"], accessibilityActiveDescendant = _props.accessibilityActiveDescendant, ariaAtomic = _props[\"aria-atomic\"], accessibilityAtomic = _props.accessibilityAtomic, ariaAutoComplete = _props[\"aria-autocomplete\"], accessibilityAutoComplete = _props.accessibilityAutoComplete, ariaBusy = _props[\"aria-busy\"], accessibilityBusy = _props.accessibilityBusy, ariaChecked = _props[\"aria-checked\"], accessibilityChecked = _props.accessibilityChecked, ariaColumnCount = _props[\"aria-colcount\"], accessibilityColumnCount = _props.accessibilityColumnCount, ariaColumnIndex = _props[\"aria-colindex\"], accessibilityColumnIndex = _props.accessibilityColumnIndex, ariaColumnSpan = _props[\"aria-colspan\"], accessibilityColumnSpan = _props.accessibilityColumnSpan, ariaControls = _props[\"aria-controls\"], accessibilityControls = _props.accessibilityControls, ariaCurrent = _props[\"aria-current\"], accessibilityCurrent = _props.accessibilityCurrent, ariaDescribedBy = _props[\"aria-describedby\"], accessibilityDescribedBy = _props.accessibilityDescribedBy, ariaDetails = _props[\"aria-details\"], accessibilityDetails = _props.accessibilityDetails, ariaDisabled = _props[\"aria-disabled\"], accessibilityDisabled = _props.accessibilityDisabled, ariaErrorMessage = _props[\"aria-errormessage\"], accessibilityErrorMessage = _props.accessibilityErrorMessage, ariaExpanded = _props[\"aria-expanded\"], accessibilityExpanded = _props.accessibilityExpanded, ariaFlowTo = _props[\"aria-flowto\"], accessibilityFlowTo = _props.accessibilityFlowTo, ariaHasPopup = _props[\"aria-haspopup\"], accessibilityHasPopup = _props.accessibilityHasPopup, ariaHidden = _props[\"aria-hidden\"], accessibilityHidden = _props.accessibilityHidden, ariaInvalid = _props[\"aria-invalid\"], accessibilityInvalid = _props.accessibilityInvalid, ariaKeyShortcuts = _props[\"aria-keyshortcuts\"], accessibilityKeyShortcuts = _props.accessibilityKeyShortcuts, ariaLabel = _props[\"aria-label\"], accessibilityLabel = _props.accessibilityLabel, ariaLabelledBy = _props[\"aria-labelledby\"], accessibilityLabelledBy = _props.accessibilityLabelledBy, ariaLevel = _props[\"aria-level\"], accessibilityLevel = _props.accessibilityLevel, ariaLive = _props[\"aria-live\"], accessibilityLiveRegion = _props.accessibilityLiveRegion, ariaModal = _props[\"aria-modal\"], accessibilityModal = _props.accessibilityModal, ariaMultiline = _props[\"aria-multiline\"], accessibilityMultiline = _props.accessibilityMultiline, ariaMultiSelectable = _props[\"aria-multiselectable\"], accessibilityMultiSelectable = _props.accessibilityMultiSelectable, ariaOrientation = _props[\"aria-orientation\"], accessibilityOrientation = _props.accessibilityOrientation, ariaOwns = _props[\"aria-owns\"], accessibilityOwns = _props.accessibilityOwns, ariaPlaceholder = _props[\"aria-placeholder\"], accessibilityPlaceholder = _props.accessibilityPlaceholder, ariaPosInSet = _props[\"aria-posinset\"], accessibilityPosInSet = _props.accessibilityPosInSet, ariaPressed = _props[\"aria-pressed\"], accessibilityPressed = _props.accessibilityPressed, ariaReadOnly = _props[\"aria-readonly\"], accessibilityReadOnly = _props.accessibilityReadOnly, ariaRequired = _props[\"aria-required\"], accessibilityRequired = _props.accessibilityRequired, ariaRole = _props.role, accessibilityRole = _props.accessibilityRole, ariaRoleDescription = _props[\"aria-roledescription\"], accessibilityRoleDescription = _props.accessibilityRoleDescription, ariaRowCount = _props[\"aria-rowcount\"], accessibilityRowCount = _props.accessibilityRowCount, ariaRowIndex = _props[\"aria-rowindex\"], accessibilityRowIndex = _props.accessibilityRowIndex, ariaRowSpan = _props[\"aria-rowspan\"], accessibilityRowSpan = _props.accessibilityRowSpan, ariaSelected = _props[\"aria-selected\"], accessibilitySelected = _props.accessibilitySelected, ariaSetSize = _props[\"aria-setsize\"], accessibilitySetSize = _props.accessibilitySetSize, ariaSort = _props[\"aria-sort\"], accessibilitySort = _props.accessibilitySort, ariaValueMax = _props[\"aria-valuemax\"], accessibilityValueMax = _props.accessibilityValueMax, ariaValueMin = _props[\"aria-valuemin\"], accessibilityValueMin = _props.accessibilityValueMin, ariaValueNow = _props[\"aria-valuenow\"], accessibilityValueNow = _props.accessibilityValueNow, ariaValueText = _props[\"aria-valuetext\"], accessibilityValueText = _props.accessibilityValueText, dataSet = _props.dataSet, focusable = _props.focusable, id = _props.id, nativeID = _props.nativeID, pointerEvents = _props.pointerEvents, style = _props.style, tabIndex = _props.tabIndex, testID = _props.testID, domProps = (0, _objectWithoutPropertiesLoose2.default)(_props, _excluded);\n      var disabled = ariaDisabled || accessibilityDisabled;\n      var role = _AccessibilityUtil.default.propsToAriaRole(props);\n      var _ariaActiveDescendant = ariaActiveDescendant != null ? ariaActiveDescendant : accessibilityActiveDescendant;\n      if (_ariaActiveDescendant != null) {\n        domProps[\"aria-activedescendant\"] = _ariaActiveDescendant;\n      }\n      var _ariaAtomic = ariaAtomic != null ? ariaActiveDescendant : accessibilityAtomic;\n      if (_ariaAtomic != null) {\n        domProps[\"aria-atomic\"] = _ariaAtomic;\n      }\n      var _ariaAutoComplete = ariaAutoComplete != null ? ariaAutoComplete : accessibilityAutoComplete;\n      if (_ariaAutoComplete != null) {\n        domProps[\"aria-autocomplete\"] = _ariaAutoComplete;\n      }\n      var _ariaBusy = ariaBusy != null ? ariaBusy : accessibilityBusy;\n      if (_ariaBusy != null) {\n        domProps[\"aria-busy\"] = _ariaBusy;\n      }\n      var _ariaChecked = ariaChecked != null ? ariaChecked : accessibilityChecked;\n      if (_ariaChecked != null) {\n        domProps[\"aria-checked\"] = _ariaChecked;\n      }\n      var _ariaColumnCount = ariaColumnCount != null ? ariaColumnCount : accessibilityColumnCount;\n      if (_ariaColumnCount != null) {\n        domProps[\"aria-colcount\"] = _ariaColumnCount;\n      }\n      var _ariaColumnIndex = ariaColumnIndex != null ? ariaColumnIndex : accessibilityColumnIndex;\n      if (_ariaColumnIndex != null) {\n        domProps[\"aria-colindex\"] = _ariaColumnIndex;\n      }\n      var _ariaColumnSpan = ariaColumnSpan != null ? ariaColumnSpan : accessibilityColumnSpan;\n      if (_ariaColumnSpan != null) {\n        domProps[\"aria-colspan\"] = _ariaColumnSpan;\n      }\n      var _ariaControls = ariaControls != null ? ariaControls : accessibilityControls;\n      if (_ariaControls != null) {\n        domProps[\"aria-controls\"] = processIDRefList(_ariaControls);\n      }\n      var _ariaCurrent = ariaCurrent != null ? ariaCurrent : accessibilityCurrent;\n      if (_ariaCurrent != null) {\n        domProps[\"aria-current\"] = _ariaCurrent;\n      }\n      var _ariaDescribedBy = ariaDescribedBy != null ? ariaDescribedBy : accessibilityDescribedBy;\n      if (_ariaDescribedBy != null) {\n        domProps[\"aria-describedby\"] = processIDRefList(_ariaDescribedBy);\n      }\n      var _ariaDetails = ariaDetails != null ? ariaDetails : accessibilityDetails;\n      if (_ariaDetails != null) {\n        domProps[\"aria-details\"] = _ariaDetails;\n      }\n      if (disabled === true) {\n        domProps[\"aria-disabled\"] = true;\n        if (elementType === \"button\" || elementType === \"form\" || elementType === \"input\" || elementType === \"select\" || elementType === \"textarea\") {\n          domProps.disabled = true;\n        }\n      }\n      var _ariaErrorMessage = ariaErrorMessage != null ? ariaErrorMessage : accessibilityErrorMessage;\n      if (_ariaErrorMessage != null) {\n        domProps[\"aria-errormessage\"] = _ariaErrorMessage;\n      }\n      var _ariaExpanded = ariaExpanded != null ? ariaExpanded : accessibilityExpanded;\n      if (_ariaExpanded != null) {\n        domProps[\"aria-expanded\"] = _ariaExpanded;\n      }\n      var _ariaFlowTo = ariaFlowTo != null ? ariaFlowTo : accessibilityFlowTo;\n      if (_ariaFlowTo != null) {\n        domProps[\"aria-flowto\"] = processIDRefList(_ariaFlowTo);\n      }\n      var _ariaHasPopup = ariaHasPopup != null ? ariaHasPopup : accessibilityHasPopup;\n      if (_ariaHasPopup != null) {\n        domProps[\"aria-haspopup\"] = _ariaHasPopup;\n      }\n      var _ariaHidden = ariaHidden != null ? ariaHidden : accessibilityHidden;\n      if (_ariaHidden === true) {\n        domProps[\"aria-hidden\"] = _ariaHidden;\n      }\n      var _ariaInvalid = ariaInvalid != null ? ariaInvalid : accessibilityInvalid;\n      if (_ariaInvalid != null) {\n        domProps[\"aria-invalid\"] = _ariaInvalid;\n      }\n      var _ariaKeyShortcuts = ariaKeyShortcuts != null ? ariaKeyShortcuts : accessibilityKeyShortcuts;\n      if (_ariaKeyShortcuts != null) {\n        domProps[\"aria-keyshortcuts\"] = processIDRefList(_ariaKeyShortcuts);\n      }\n      var _ariaLabel = ariaLabel != null ? ariaLabel : accessibilityLabel;\n      if (_ariaLabel != null) {\n        domProps[\"aria-label\"] = _ariaLabel;\n      }\n      var _ariaLabelledBy = ariaLabelledBy != null ? ariaLabelledBy : accessibilityLabelledBy;\n      if (_ariaLabelledBy != null) {\n        domProps[\"aria-labelledby\"] = processIDRefList(_ariaLabelledBy);\n      }\n      var _ariaLevel = ariaLevel != null ? ariaLevel : accessibilityLevel;\n      if (_ariaLevel != null) {\n        domProps[\"aria-level\"] = _ariaLevel;\n      }\n      var _ariaLive = ariaLive != null ? ariaLive : accessibilityLiveRegion;\n      if (_ariaLive != null) {\n        domProps[\"aria-live\"] = _ariaLive === \"none\" ? \"off\" : _ariaLive;\n      }\n      var _ariaModal = ariaModal != null ? ariaModal : accessibilityModal;\n      if (_ariaModal != null) {\n        domProps[\"aria-modal\"] = _ariaModal;\n      }\n      var _ariaMultiline = ariaMultiline != null ? ariaMultiline : accessibilityMultiline;\n      if (_ariaMultiline != null) {\n        domProps[\"aria-multiline\"] = _ariaMultiline;\n      }\n      var _ariaMultiSelectable = ariaMultiSelectable != null ? ariaMultiSelectable : accessibilityMultiSelectable;\n      if (_ariaMultiSelectable != null) {\n        domProps[\"aria-multiselectable\"] = _ariaMultiSelectable;\n      }\n      var _ariaOrientation = ariaOrientation != null ? ariaOrientation : accessibilityOrientation;\n      if (_ariaOrientation != null) {\n        domProps[\"aria-orientation\"] = _ariaOrientation;\n      }\n      var _ariaOwns = ariaOwns != null ? ariaOwns : accessibilityOwns;\n      if (_ariaOwns != null) {\n        domProps[\"aria-owns\"] = processIDRefList(_ariaOwns);\n      }\n      var _ariaPlaceholder = ariaPlaceholder != null ? ariaPlaceholder : accessibilityPlaceholder;\n      if (_ariaPlaceholder != null) {\n        domProps[\"aria-placeholder\"] = _ariaPlaceholder;\n      }\n      var _ariaPosInSet = ariaPosInSet != null ? ariaPosInSet : accessibilityPosInSet;\n      if (_ariaPosInSet != null) {\n        domProps[\"aria-posinset\"] = _ariaPosInSet;\n      }\n      var _ariaPressed = ariaPressed != null ? ariaPressed : accessibilityPressed;\n      if (_ariaPressed != null) {\n        domProps[\"aria-pressed\"] = _ariaPressed;\n      }\n      var _ariaReadOnly = ariaReadOnly != null ? ariaReadOnly : accessibilityReadOnly;\n      if (_ariaReadOnly != null) {\n        domProps[\"aria-readonly\"] = _ariaReadOnly;\n        if (elementType === \"input\" || elementType === \"select\" || elementType === \"textarea\") {\n          domProps.readOnly = true;\n        }\n      }\n      var _ariaRequired = ariaRequired != null ? ariaRequired : accessibilityRequired;\n      if (_ariaRequired != null) {\n        domProps[\"aria-required\"] = _ariaRequired;\n        if (elementType === \"input\" || elementType === \"select\" || elementType === \"textarea\") {\n          domProps.required = accessibilityRequired;\n        }\n      }\n      if (role != null) {\n        domProps[\"role\"] = role === \"none\" ? \"presentation\" : role;\n      }\n      var _ariaRoleDescription = ariaRoleDescription != null ? ariaRoleDescription : accessibilityRoleDescription;\n      if (_ariaRoleDescription != null) {\n        domProps[\"aria-roledescription\"] = _ariaRoleDescription;\n      }\n      var _ariaRowCount = ariaRowCount != null ? ariaRowCount : accessibilityRowCount;\n      if (_ariaRowCount != null) {\n        domProps[\"aria-rowcount\"] = _ariaRowCount;\n      }\n      var _ariaRowIndex = ariaRowIndex != null ? ariaRowIndex : accessibilityRowIndex;\n      if (_ariaRowIndex != null) {\n        domProps[\"aria-rowindex\"] = _ariaRowIndex;\n      }\n      var _ariaRowSpan = ariaRowSpan != null ? ariaRowSpan : accessibilityRowSpan;\n      if (_ariaRowSpan != null) {\n        domProps[\"aria-rowspan\"] = _ariaRowSpan;\n      }\n      var _ariaSelected = ariaSelected != null ? ariaSelected : accessibilitySelected;\n      if (_ariaSelected != null) {\n        domProps[\"aria-selected\"] = _ariaSelected;\n      }\n      var _ariaSetSize = ariaSetSize != null ? ariaSetSize : accessibilitySetSize;\n      if (_ariaSetSize != null) {\n        domProps[\"aria-setsize\"] = _ariaSetSize;\n      }\n      var _ariaSort = ariaSort != null ? ariaSort : accessibilitySort;\n      if (_ariaSort != null) {\n        domProps[\"aria-sort\"] = _ariaSort;\n      }\n      var _ariaValueMax = ariaValueMax != null ? ariaValueMax : accessibilityValueMax;\n      if (_ariaValueMax != null) {\n        domProps[\"aria-valuemax\"] = _ariaValueMax;\n      }\n      var _ariaValueMin = ariaValueMin != null ? ariaValueMin : accessibilityValueMin;\n      if (_ariaValueMin != null) {\n        domProps[\"aria-valuemin\"] = _ariaValueMin;\n      }\n      var _ariaValueNow = ariaValueNow != null ? ariaValueNow : accessibilityValueNow;\n      if (_ariaValueNow != null) {\n        domProps[\"aria-valuenow\"] = _ariaValueNow;\n      }\n      var _ariaValueText = ariaValueText != null ? ariaValueText : accessibilityValueText;\n      if (_ariaValueText != null) {\n        domProps[\"aria-valuetext\"] = _ariaValueText;\n      }\n      if (dataSet != null) {\n        for (var dataProp in dataSet) {\n          if (hasOwnProperty.call(dataSet, dataProp)) {\n            var dataName = hyphenateString(dataProp);\n            var dataValue = dataSet[dataProp];\n            if (dataValue != null) {\n              domProps[\"data-\" + dataName] = dataValue;\n            }\n          }\n        }\n      }\n      if (tabIndex === 0 || tabIndex === \"0\" || tabIndex === -1 || tabIndex === \"-1\") {\n        domProps.tabIndex = tabIndex;\n      } else {\n        if (focusable === false) {\n          domProps.tabIndex = \"-1\";\n        }\n        if (\n          // These native elements are keyboard focusable by default\n          elementType === \"a\" || elementType === \"button\" || elementType === \"input\" || elementType === \"select\" || elementType === \"textarea\"\n        ) {\n          if (focusable === false || accessibilityDisabled === true) {\n            domProps.tabIndex = \"-1\";\n          }\n        } else if (\n          // These roles are made keyboard focusable by default\n          role === \"button\" || role === \"checkbox\" || role === \"link\" || role === \"radio\" || role === \"textbox\" || role === \"switch\"\n        ) {\n          if (focusable !== false) {\n            domProps.tabIndex = \"0\";\n          }\n        } else {\n          if (focusable === true) {\n            domProps.tabIndex = \"0\";\n          }\n        }\n      }\n      if (pointerEvents != null) {\n        (0, _warnOnce.warnOnce)(\"pointerEvents\", \"props.pointerEvents is deprecated. Use style.pointerEvents\");\n      }\n      var _StyleSheet = (0, _StyleSheet2.default)([style, pointerEvents && pointerEventsStyles[pointerEvents]], (0, _objectSpread2.default)({\n        writingDirection: \"ltr\"\n      }, options)), className = _StyleSheet[0], inlineStyle = _StyleSheet[1];\n      if (className) {\n        domProps.className = className;\n      }\n      if (inlineStyle) {\n        domProps.style = inlineStyle;\n      }\n      var _id = id != null ? id : nativeID;\n      if (_id != null) {\n        domProps.id = _id;\n      }\n      if (testID != null) {\n        domProps[\"data-testid\"] = testID;\n      }\n      if (domProps.type == null && elementType === \"button\") {\n        domProps.type = \"button\";\n      }\n      return domProps;\n    }, \"createDOMProps\");\n    var _default = exports2.default = createDOMProps;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/@babel/runtime/helpers/interopRequireWildcard.js\nvar require_interopRequireWildcard = __commonJS({\n  \"node_modules/@babel/runtime/helpers/interopRequireWildcard.js\"(exports2, module2) {\n    var _typeof = require_typeof()[\"default\"];\n    function _getRequireWildcardCache(e) {\n      if (\"function\" != typeof WeakMap) return null;\n      var r = /* @__PURE__ */ new WeakMap(), t = /* @__PURE__ */ new WeakMap();\n      return (_getRequireWildcardCache = /* @__PURE__ */ __name(function _getRequireWildcardCache2(e2) {\n        return e2 ? t : r;\n      }, \"_getRequireWildcardCache\"))(e);\n    }\n    __name(_getRequireWildcardCache, \"_getRequireWildcardCache\");\n    function _interopRequireWildcard(e, r) {\n      if (!r && e && e.__esModule) return e;\n      if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n        \"default\": e\n      };\n      var t = _getRequireWildcardCache(r);\n      if (t && t.has(e)) return t.get(e);\n      var n = {\n        __proto__: null\n      }, a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n      for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) {\n        var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n        i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n      }\n      return n[\"default\"] = e, t && t.set(e, n), n;\n    }\n    __name(_interopRequireWildcard, \"_interopRequireWildcard\");\n    module2.exports = _interopRequireWildcard, module2.exports.__esModule = true, module2.exports[\"default\"] = module2.exports;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/useLocale/isLocaleRTL.js\nvar require_isLocaleRTL = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/useLocale/isLocaleRTL.js\"(exports2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.isLocaleRTL = isLocaleRTL;\n    var rtlScripts = /* @__PURE__ */ new Set([\"Arab\", \"Syrc\", \"Samr\", \"Mand\", \"Thaa\", \"Mend\", \"Nkoo\", \"Adlm\", \"Rohg\", \"Hebr\"]);\n    var rtlLangs = /* @__PURE__ */ new Set([\n      \"ae\",\n      // Avestan\n      \"ar\",\n      // Arabic\n      \"arc\",\n      // Aramaic\n      \"bcc\",\n      // Southern Balochi\n      \"bqi\",\n      // Bakthiari\n      \"ckb\",\n      // Sorani\n      \"dv\",\n      // Dhivehi\n      \"fa\",\n      \"far\",\n      // Persian\n      \"glk\",\n      // Gilaki\n      \"he\",\n      \"iw\",\n      // Hebrew\n      \"khw\",\n      // Khowar\n      \"ks\",\n      // Kashmiri\n      \"ku\",\n      // Kurdish\n      \"mzn\",\n      // Mazanderani\n      \"nqo\",\n      // N'Ko\n      \"pnb\",\n      // Western Punjabi\n      \"ps\",\n      // Pashto\n      \"sd\",\n      // Sindhi\n      \"ug\",\n      // Uyghur\n      \"ur\",\n      // Urdu\n      \"yi\"\n      // Yiddish\n    ]);\n    var cache3 = /* @__PURE__ */ new Map();\n    function isLocaleRTL(locale) {\n      var cachedRTL = cache3.get(locale);\n      if (cachedRTL) {\n        return cachedRTL;\n      }\n      var isRTL2 = false;\n      if (Intl.Locale) {\n        try {\n          var script = new Intl.Locale(locale).maximize().script;\n          isRTL2 = rtlScripts.has(script);\n        } catch (_unused) {\n          var lang = locale.split(\"-\")[0];\n          isRTL2 = rtlLangs.has(lang);\n        }\n      } else {\n        var _lang = locale.split(\"-\")[0];\n        isRTL2 = rtlLangs.has(_lang);\n      }\n      cache3.set(locale, isRTL2);\n      return isRTL2;\n    }\n    __name(isLocaleRTL, \"isLocaleRTL\");\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/useLocale/index.js\nvar require_useLocale = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/useLocale/index.js\"(exports2) {\n    \"use strict\";\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.LocaleProvider = LocaleProvider;\n    exports2.getLocaleDirection = getLocaleDirection;\n    exports2.useLocaleContext = useLocaleContext;\n    var _react = _interopRequireWildcard(require(\"react\"));\n    var _isLocaleRTL = require_isLocaleRTL();\n    var defaultLocale = {\n      direction: \"ltr\",\n      locale: \"en-US\"\n    };\n    var LocaleContext = /* @__PURE__ */ (0, _react.createContext)(defaultLocale);\n    function getLocaleDirection(locale) {\n      return (0, _isLocaleRTL.isLocaleRTL)(locale) ? \"rtl\" : \"ltr\";\n    }\n    __name(getLocaleDirection, \"getLocaleDirection\");\n    function LocaleProvider(props) {\n      var direction = props.direction, locale = props.locale, children = props.children;\n      var needsContext = direction || locale;\n      return needsContext ? /* @__PURE__ */ _react.default.createElement(LocaleContext.Provider, {\n        children,\n        value: {\n          direction: locale ? getLocaleDirection(locale) : direction,\n          locale\n        }\n      }) : children;\n    }\n    __name(LocaleProvider, \"LocaleProvider\");\n    function useLocaleContext() {\n      return (0, _react.useContext)(LocaleContext);\n    }\n    __name(useLocaleContext, \"useLocaleContext\");\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/createElement/index.js\nvar require_createElement = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/createElement/index.js\"(exports2, module2) {\n    \"use strict\";\n    \"use client\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _AccessibilityUtil = _interopRequireDefault(require_AccessibilityUtil());\n    var _createDOMProps = _interopRequireDefault(require_createDOMProps());\n    var _react = _interopRequireDefault(require(\"react\"));\n    var _useLocale = require_useLocale();\n    var createElement = /* @__PURE__ */ __name((component, props, options) => {\n      var accessibilityComponent;\n      if (component && component.constructor === String) {\n        accessibilityComponent = _AccessibilityUtil.default.propsToAccessibilityComponent(props);\n      }\n      var Component = accessibilityComponent || component;\n      var domProps = (0, _createDOMProps.default)(Component, props, options);\n      var element = /* @__PURE__ */ _react.default.createElement(Component, domProps);\n      var elementWithLocaleProvider = domProps.dir ? /* @__PURE__ */ _react.default.createElement(_useLocale.LocaleProvider, {\n        children: element,\n        direction: domProps.dir,\n        locale: domProps.lang\n      }) : element;\n      return elementWithLocaleProvider;\n    }, \"createElement\");\n    var _default = exports2.default = createElement;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/findNodeHandle/index.js\nvar require_findNodeHandle = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/findNodeHandle/index.js\"(exports2, module2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _reactDom = require(\"react-dom\");\n    var findNodeHandle = /* @__PURE__ */ __name((component) => {\n      var node;\n      try {\n        node = (0, _reactDom.findDOMNode)(component);\n      } catch (e) {\n      }\n      return node;\n    }, \"findNodeHandle\");\n    var _default = exports2.default = findNodeHandle;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/unmountComponentAtNode/index.js\nvar require_unmountComponentAtNode = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/unmountComponentAtNode/index.js\"(exports2, module2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _reactDom = require(\"react-dom\");\n    var _default = exports2.default = _reactDom.unmountComponentAtNode;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/render/index.js\nvar require_render = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/render/index.js\"(exports2) {\n    \"use strict\";\n    \"use client\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = renderLegacy;\n    exports2.hydrate = hydrate;\n    exports2.hydrateLegacy = hydrateLegacy;\n    exports2.render = render;\n    var _reactDom = require(\"react-dom\");\n    var _client = require(\"react-dom/client\");\n    var _unmountComponentAtNode = _interopRequireDefault(require_unmountComponentAtNode());\n    var _dom = require_dom();\n    function hydrate(element, root) {\n      (0, _dom.createSheet)(root);\n      return (0, _client.hydrateRoot)(root, element);\n    }\n    __name(hydrate, \"hydrate\");\n    function render(element, root) {\n      (0, _dom.createSheet)(root);\n      var reactRoot = (0, _client.createRoot)(root);\n      reactRoot.render(element);\n      return reactRoot;\n    }\n    __name(render, \"render\");\n    function hydrateLegacy(element, root, callback) {\n      (0, _dom.createSheet)(root);\n      (0, _reactDom.hydrate)(element, root, callback);\n      return {\n        unmount: /* @__PURE__ */ __name(function unmount() {\n          return (0, _unmountComponentAtNode.default)(root);\n        }, \"unmount\")\n      };\n    }\n    __name(hydrateLegacy, \"hydrateLegacy\");\n    function renderLegacy(element, root, callback) {\n      (0, _dom.createSheet)(root);\n      (0, _reactDom.render)(element, root, callback);\n      return {\n        unmount: /* @__PURE__ */ __name(function unmount() {\n          return (0, _unmountComponentAtNode.default)(root);\n        }, \"unmount\")\n      };\n    }\n    __name(renderLegacy, \"renderLegacy\");\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/getBoundingClientRect/index.js\nvar require_getBoundingClientRect = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/getBoundingClientRect/index.js\"(exports2, module2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var getBoundingClientRect2 = /* @__PURE__ */ __name((node) => {\n      if (node != null) {\n        var isElement2 = node.nodeType === 1;\n        if (isElement2 && typeof node.getBoundingClientRect === \"function\") {\n          return node.getBoundingClientRect();\n        }\n      }\n    }, \"getBoundingClientRect\");\n    var _default = exports2.default = getBoundingClientRect2;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/unitlessNumbers/index.js\nvar require_unitlessNumbers2 = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/unitlessNumbers/index.js\"(exports2, module2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var unitlessNumbers = {\n      animationIterationCount: true,\n      aspectRatio: true,\n      borderImageOutset: true,\n      borderImageSlice: true,\n      borderImageWidth: true,\n      boxFlex: true,\n      boxFlexGroup: true,\n      boxOrdinalGroup: true,\n      columnCount: true,\n      flex: true,\n      flexGrow: true,\n      flexOrder: true,\n      flexPositive: true,\n      flexShrink: true,\n      flexNegative: true,\n      fontWeight: true,\n      gridRow: true,\n      gridRowEnd: true,\n      gridRowGap: true,\n      gridRowStart: true,\n      gridColumn: true,\n      gridColumnEnd: true,\n      gridColumnGap: true,\n      gridColumnStart: true,\n      lineClamp: true,\n      opacity: true,\n      order: true,\n      orphans: true,\n      tabSize: true,\n      widows: true,\n      zIndex: true,\n      zoom: true,\n      // SVG-related\n      fillOpacity: true,\n      floodOpacity: true,\n      stopOpacity: true,\n      strokeDasharray: true,\n      strokeDashoffset: true,\n      strokeMiterlimit: true,\n      strokeOpacity: true,\n      strokeWidth: true,\n      // transform types\n      scale: true,\n      scaleX: true,\n      scaleY: true,\n      scaleZ: true,\n      // RN properties\n      shadowOpacity: true\n    };\n    var prefixes = [\"ms\", \"Moz\", \"O\", \"Webkit\"];\n    var prefixKey = /* @__PURE__ */ __name((prefix, key) => {\n      return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n    }, \"prefixKey\");\n    Object.keys(unitlessNumbers).forEach((prop) => {\n      prefixes.forEach((prefix) => {\n        unitlessNumbers[prefixKey(prefix, prop)] = unitlessNumbers[prop];\n      });\n    });\n    var _default = exports2.default = unitlessNumbers;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/setValueForStyles/dangerousStyleValue.js\nvar require_dangerousStyleValue = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/setValueForStyles/dangerousStyleValue.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _unitlessNumbers = _interopRequireDefault(require_unitlessNumbers2());\n    function dangerousStyleValue(name, value, isCustomProperty) {\n      var isEmpty = value == null || typeof value === \"boolean\" || value === \"\";\n      if (isEmpty) {\n        return \"\";\n      }\n      if (!isCustomProperty && typeof value === \"number\" && value !== 0 && !(_unitlessNumbers.default.hasOwnProperty(name) && _unitlessNumbers.default[name])) {\n        return value + \"px\";\n      }\n      return (\"\" + value).trim();\n    }\n    __name(dangerousStyleValue, \"dangerousStyleValue\");\n    var _default = exports2.default = dangerousStyleValue;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/setValueForStyles/index.js\nvar require_setValueForStyles = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/setValueForStyles/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _dangerousStyleValue = _interopRequireDefault(require_dangerousStyleValue());\n    function setValueForStyles(node, styles) {\n      var style = node.style;\n      for (var styleName in styles) {\n        if (!styles.hasOwnProperty(styleName)) {\n          continue;\n        }\n        var isCustomProperty = styleName.indexOf(\"--\") === 0;\n        var styleValue = (0, _dangerousStyleValue.default)(styleName, styles[styleName], isCustomProperty);\n        if (styleName === \"float\") {\n          styleName = \"cssFloat\";\n        }\n        if (isCustomProperty) {\n          style.setProperty(styleName, styleValue);\n        } else {\n          style[styleName] = styleValue;\n        }\n      }\n    }\n    __name(setValueForStyles, \"setValueForStyles\");\n    var _default = exports2.default = setValueForStyles;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/UIManager/index.js\nvar require_UIManager = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/UIManager/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _getBoundingClientRect = _interopRequireDefault(require_getBoundingClientRect());\n    var _setValueForStyles = _interopRequireDefault(require_setValueForStyles());\n    var getRect = /* @__PURE__ */ __name((node) => {\n      var height = node.offsetHeight;\n      var width = node.offsetWidth;\n      var left = node.offsetLeft;\n      var top = node.offsetTop;\n      node = node.offsetParent;\n      while (node && node.nodeType === 1) {\n        left += node.offsetLeft + node.clientLeft - node.scrollLeft;\n        top += node.offsetTop + node.clientTop - node.scrollTop;\n        node = node.offsetParent;\n      }\n      top -= window.scrollY;\n      left -= window.scrollX;\n      return {\n        width,\n        height,\n        top,\n        left\n      };\n    }, \"getRect\");\n    var measureLayout = /* @__PURE__ */ __name((node, relativeToNativeNode, callback) => {\n      var relativeNode = relativeToNativeNode || node && node.parentNode;\n      if (node && relativeNode) {\n        setTimeout(() => {\n          if (node.isConnected && relativeNode.isConnected) {\n            var relativeRect = getRect(relativeNode);\n            var _getRect = getRect(node), height = _getRect.height, left = _getRect.left, top = _getRect.top, width = _getRect.width;\n            var x = left - relativeRect.left;\n            var y = top - relativeRect.top;\n            callback(x, y, width, height, left, top);\n          }\n        }, 0);\n      }\n    }, \"measureLayout\");\n    var elementsToIgnore = {\n      A: true,\n      BODY: true,\n      INPUT: true,\n      SELECT: true,\n      TEXTAREA: true\n    };\n    var UIManager = {\n      blur(node) {\n        try {\n          node.blur();\n        } catch (err) {\n        }\n      },\n      focus(node) {\n        try {\n          var name = node.nodeName;\n          if (node.getAttribute(\"tabIndex\") == null && node.isContentEditable !== true && elementsToIgnore[name] == null) {\n            node.setAttribute(\"tabIndex\", \"-1\");\n          }\n          node.focus();\n        } catch (err) {\n        }\n      },\n      measure(node, callback) {\n        measureLayout(node, null, callback);\n      },\n      measureInWindow(node, callback) {\n        if (node) {\n          setTimeout(() => {\n            var _getBoundingClientRec = (0, _getBoundingClientRect.default)(node), height = _getBoundingClientRec.height, left = _getBoundingClientRec.left, top = _getBoundingClientRec.top, width = _getBoundingClientRec.width;\n            callback(left, top, width, height);\n          }, 0);\n        }\n      },\n      measureLayout(node, relativeToNativeNode, onFail, onSuccess) {\n        measureLayout(node, relativeToNativeNode, onSuccess);\n      },\n      updateView(node, props) {\n        for (var prop in props) {\n          if (!Object.prototype.hasOwnProperty.call(props, prop)) {\n            continue;\n          }\n          var value = props[prop];\n          switch (prop) {\n            case \"style\": {\n              (0, _setValueForStyles.default)(node, value);\n              break;\n            }\n            case \"class\":\n            case \"className\": {\n              node.setAttribute(\"class\", value);\n              break;\n            }\n            case \"text\":\n            case \"value\":\n              node.value = value;\n              break;\n            default:\n              node.setAttribute(prop, value);\n          }\n        }\n      },\n      configureNextLayoutAnimation(config, onAnimationDidEnd) {\n        onAnimationDidEnd();\n      },\n      // mocks\n      setLayoutAnimationEnabledExperimental() {\n      }\n    };\n    var _default = exports2.default = UIManager;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/NativeModules/index.js\nvar require_NativeModules = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/NativeModules/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _UIManager = _interopRequireDefault(require_UIManager());\n    var NativeModules = {\n      UIManager: _UIManager.default\n    };\n    var _default = exports2.default = NativeModules;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/AccessibilityInfo/index.js\nvar require_AccessibilityInfo = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/AccessibilityInfo/index.js\"(exports2, module2) {\n    \"use strict\";\n    \"use client\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _canUseDom = _interopRequireDefault(require_canUseDom());\n    function isScreenReaderEnabled() {\n      return new Promise((resolve, reject) => {\n        resolve(true);\n      });\n    }\n    __name(isScreenReaderEnabled, \"isScreenReaderEnabled\");\n    var prefersReducedMotionMedia = _canUseDom.default && typeof window.matchMedia === \"function\" ? window.matchMedia(\"(prefers-reduced-motion: reduce)\") : null;\n    function isReduceMotionEnabled() {\n      return new Promise((resolve, reject) => {\n        resolve(prefersReducedMotionMedia ? prefersReducedMotionMedia.matches : true);\n      });\n    }\n    __name(isReduceMotionEnabled, \"isReduceMotionEnabled\");\n    function addChangeListener(fn) {\n      if (prefersReducedMotionMedia != null) {\n        prefersReducedMotionMedia.addEventListener != null ? prefersReducedMotionMedia.addEventListener(\"change\", fn) : prefersReducedMotionMedia.addListener(fn);\n      }\n    }\n    __name(addChangeListener, \"addChangeListener\");\n    function removeChangeListener(fn) {\n      if (prefersReducedMotionMedia != null) {\n        prefersReducedMotionMedia.removeEventListener != null ? prefersReducedMotionMedia.removeEventListener(\"change\", fn) : prefersReducedMotionMedia.removeListener(fn);\n      }\n    }\n    __name(removeChangeListener, \"removeChangeListener\");\n    var handlers = {};\n    var AccessibilityInfo = {\n      /**\n       * Query whether a screen reader is currently enabled.\n       *\n       * Returns a promise which resolves to a boolean.\n       * The result is `true` when a screen reader is enabled and `false` otherwise.\n       */\n      isScreenReaderEnabled,\n      /**\n       * Query whether the user prefers reduced motion.\n       *\n       * Returns a promise which resolves to a boolean.\n       * The result is `true` when a screen reader is enabled and `false` otherwise.\n       */\n      isReduceMotionEnabled,\n      /**\n       * Deprecated\n       */\n      fetch: isScreenReaderEnabled,\n      /**\n       * Add an event handler. Supported events: reduceMotionChanged\n       */\n      addEventListener: /* @__PURE__ */ __name(function addEventListener(eventName, handler) {\n        if (eventName === \"reduceMotionChanged\") {\n          if (!prefersReducedMotionMedia) {\n            return;\n          }\n          var listener = /* @__PURE__ */ __name((event) => {\n            handler(event.matches);\n          }, \"listener\");\n          addChangeListener(listener);\n          handlers[handler] = listener;\n        }\n        return {\n          remove: /* @__PURE__ */ __name(() => AccessibilityInfo.removeEventListener(eventName, handler), \"remove\")\n        };\n      }, \"addEventListener\"),\n      /**\n       * Set accessibility focus to a react component.\n       */\n      setAccessibilityFocus: /* @__PURE__ */ __name(function setAccessibilityFocus(reactTag) {\n      }, \"setAccessibilityFocus\"),\n      /**\n       * Post a string to be announced by the screen reader.\n       */\n      announceForAccessibility: /* @__PURE__ */ __name(function announceForAccessibility(announcement) {\n      }, \"announceForAccessibility\"),\n      /**\n       * Remove an event handler.\n       */\n      removeEventListener: /* @__PURE__ */ __name(function removeEventListener(eventName, handler) {\n        if (eventName === \"reduceMotionChanged\") {\n          var listener = handlers[handler];\n          if (!listener || !prefersReducedMotionMedia) {\n            return;\n          }\n          removeChangeListener(listener);\n        }\n        return;\n      }, \"removeEventListener\")\n    };\n    var _default = exports2.default = AccessibilityInfo;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/Alert/index.js\nvar require_Alert = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/Alert/index.js\"(exports2, module2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var Alert = class {\n      static {\n        __name(this, \"Alert\");\n      }\n      static alert() {\n      }\n    };\n    var _default = exports2.default = Alert;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/Platform/index.js\nvar require_Platform = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/Platform/index.js\"(exports2, module2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var Platform3 = {\n      OS: \"web\",\n      select: /* @__PURE__ */ __name((obj) => \"web\" in obj ? obj.web : obj.default, \"select\"),\n      get isTesting() {\n        if (process.env.NODE_ENV === \"test\") {\n          return true;\n        }\n        return false;\n      }\n    };\n    var _default = exports2.default = Platform3;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/@babel/runtime/helpers/extends.js\nvar require_extends = __commonJS({\n  \"node_modules/@babel/runtime/helpers/extends.js\"(exports2, module2) {\n    function _extends() {\n      return module2.exports = _extends = Object.assign ? Object.assign.bind() : function(n) {\n        for (var e = 1; e < arguments.length; e++) {\n          var t = arguments[e];\n          for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n        }\n        return n;\n      }, module2.exports.__esModule = true, module2.exports[\"default\"] = module2.exports, _extends.apply(null, arguments);\n    }\n    __name(_extends, \"_extends\");\n    module2.exports = _extends, module2.exports.__esModule = true, module2.exports[\"default\"] = module2.exports;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/forwardedProps/index.js\nvar require_forwardedProps = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/forwardedProps/index.js\"(exports2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.touchProps = exports2.styleProps = exports2.mouseProps = exports2.keyboardProps = exports2.focusProps = exports2.defaultProps = exports2.clickProps = exports2.accessibilityProps = void 0;\n    var defaultProps = exports2.defaultProps = {\n      children: true,\n      dataSet: true,\n      dir: true,\n      id: true,\n      ref: true,\n      suppressHydrationWarning: true,\n      tabIndex: true,\n      testID: true,\n      // @deprecated\n      focusable: true,\n      nativeID: true\n    };\n    var accessibilityProps = exports2.accessibilityProps = {\n      \"aria-activedescendant\": true,\n      \"aria-atomic\": true,\n      \"aria-autocomplete\": true,\n      \"aria-busy\": true,\n      \"aria-checked\": true,\n      \"aria-colcount\": true,\n      \"aria-colindex\": true,\n      \"aria-colspan\": true,\n      \"aria-controls\": true,\n      \"aria-current\": true,\n      \"aria-describedby\": true,\n      \"aria-details\": true,\n      \"aria-disabled\": true,\n      \"aria-errormessage\": true,\n      \"aria-expanded\": true,\n      \"aria-flowto\": true,\n      \"aria-haspopup\": true,\n      \"aria-hidden\": true,\n      \"aria-invalid\": true,\n      \"aria-keyshortcuts\": true,\n      \"aria-label\": true,\n      \"aria-labelledby\": true,\n      \"aria-level\": true,\n      \"aria-live\": true,\n      \"aria-modal\": true,\n      \"aria-multiline\": true,\n      \"aria-multiselectable\": true,\n      \"aria-orientation\": true,\n      \"aria-owns\": true,\n      \"aria-placeholder\": true,\n      \"aria-posinset\": true,\n      \"aria-pressed\": true,\n      \"aria-readonly\": true,\n      \"aria-required\": true,\n      role: true,\n      \"aria-roledescription\": true,\n      \"aria-rowcount\": true,\n      \"aria-rowindex\": true,\n      \"aria-rowspan\": true,\n      \"aria-selected\": true,\n      \"aria-setsize\": true,\n      \"aria-sort\": true,\n      \"aria-valuemax\": true,\n      \"aria-valuemin\": true,\n      \"aria-valuenow\": true,\n      \"aria-valuetext\": true,\n      // @deprecated\n      accessibilityActiveDescendant: true,\n      accessibilityAtomic: true,\n      accessibilityAutoComplete: true,\n      accessibilityBusy: true,\n      accessibilityChecked: true,\n      accessibilityColumnCount: true,\n      accessibilityColumnIndex: true,\n      accessibilityColumnSpan: true,\n      accessibilityControls: true,\n      accessibilityCurrent: true,\n      accessibilityDescribedBy: true,\n      accessibilityDetails: true,\n      accessibilityDisabled: true,\n      accessibilityErrorMessage: true,\n      accessibilityExpanded: true,\n      accessibilityFlowTo: true,\n      accessibilityHasPopup: true,\n      accessibilityHidden: true,\n      accessibilityInvalid: true,\n      accessibilityKeyShortcuts: true,\n      accessibilityLabel: true,\n      accessibilityLabelledBy: true,\n      accessibilityLevel: true,\n      accessibilityLiveRegion: true,\n      accessibilityModal: true,\n      accessibilityMultiline: true,\n      accessibilityMultiSelectable: true,\n      accessibilityOrientation: true,\n      accessibilityOwns: true,\n      accessibilityPlaceholder: true,\n      accessibilityPosInSet: true,\n      accessibilityPressed: true,\n      accessibilityReadOnly: true,\n      accessibilityRequired: true,\n      accessibilityRole: true,\n      accessibilityRoleDescription: true,\n      accessibilityRowCount: true,\n      accessibilityRowIndex: true,\n      accessibilityRowSpan: true,\n      accessibilitySelected: true,\n      accessibilitySetSize: true,\n      accessibilitySort: true,\n      accessibilityValueMax: true,\n      accessibilityValueMin: true,\n      accessibilityValueNow: true,\n      accessibilityValueText: true\n    };\n    var clickProps = exports2.clickProps = {\n      onClick: true,\n      onAuxClick: true,\n      onContextMenu: true,\n      onGotPointerCapture: true,\n      onLostPointerCapture: true,\n      onPointerCancel: true,\n      onPointerDown: true,\n      onPointerEnter: true,\n      onPointerMove: true,\n      onPointerLeave: true,\n      onPointerOut: true,\n      onPointerOver: true,\n      onPointerUp: true\n    };\n    var focusProps = exports2.focusProps = {\n      onBlur: true,\n      onFocus: true\n    };\n    var keyboardProps = exports2.keyboardProps = {\n      onKeyDown: true,\n      onKeyDownCapture: true,\n      onKeyUp: true,\n      onKeyUpCapture: true\n    };\n    var mouseProps = exports2.mouseProps = {\n      onMouseDown: true,\n      onMouseEnter: true,\n      onMouseLeave: true,\n      onMouseMove: true,\n      onMouseOver: true,\n      onMouseOut: true,\n      onMouseUp: true\n    };\n    var touchProps = exports2.touchProps = {\n      onTouchCancel: true,\n      onTouchCancelCapture: true,\n      onTouchEnd: true,\n      onTouchEndCapture: true,\n      onTouchMove: true,\n      onTouchMoveCapture: true,\n      onTouchStart: true,\n      onTouchStartCapture: true\n    };\n    var styleProps = exports2.styleProps = {\n      style: true\n    };\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/pick/index.js\nvar require_pick = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/pick/index.js\"(exports2, module2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.default = pick;\n    function pick(obj, list) {\n      var nextObj = {};\n      for (var key in obj) {\n        if (obj.hasOwnProperty(key)) {\n          if (list[key] === true) {\n            nextObj[key] = obj[key];\n          }\n        }\n      }\n      return nextObj;\n    }\n    __name(pick, \"pick\");\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/useLayoutEffect/index.js\nvar require_useLayoutEffect = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/useLayoutEffect/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _react = require(\"react\");\n    var _canUseDom = _interopRequireDefault(require_canUseDom());\n    var useLayoutEffectImpl = _canUseDom.default ? _react.useLayoutEffect : _react.useEffect;\n    var _default = exports2.default = useLayoutEffectImpl;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/useElementLayout/index.js\nvar require_useElementLayout = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/useElementLayout/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = useElementLayout;\n    var _useLayoutEffect = _interopRequireDefault(require_useLayoutEffect());\n    var _UIManager = _interopRequireDefault(require_UIManager());\n    var _canUseDom = _interopRequireDefault(require_canUseDom());\n    var DOM_LAYOUT_HANDLER_NAME = \"__reactLayoutHandler\";\n    var didWarn = !_canUseDom.default;\n    var resizeObserver = null;\n    function getResizeObserver() {\n      if (_canUseDom.default && typeof window.ResizeObserver !== \"undefined\") {\n        if (resizeObserver == null) {\n          resizeObserver = new window.ResizeObserver(function(entries) {\n            entries.forEach((entry) => {\n              var node = entry.target;\n              var onLayout = node[DOM_LAYOUT_HANDLER_NAME];\n              if (typeof onLayout === \"function\") {\n                _UIManager.default.measure(node, (x, y, width, height, left, top) => {\n                  var event = {\n                    // $FlowFixMe\n                    nativeEvent: {\n                      layout: {\n                        x,\n                        y,\n                        width,\n                        height,\n                        left,\n                        top\n                      }\n                    },\n                    timeStamp: Date.now()\n                  };\n                  Object.defineProperty(event.nativeEvent, \"target\", {\n                    enumerable: true,\n                    get: /* @__PURE__ */ __name(() => entry.target, \"get\")\n                  });\n                  onLayout(event);\n                });\n              }\n            });\n          });\n        }\n      } else if (!didWarn) {\n        if (process.env.NODE_ENV !== \"production\" && process.env.NODE_ENV !== \"test\") {\n          console.warn(\"onLayout relies on ResizeObserver which is not supported by your browser. Please include a polyfill, e.g., https://github.com/que-etc/resize-observer-polyfill.\");\n          didWarn = true;\n        }\n      }\n      return resizeObserver;\n    }\n    __name(getResizeObserver, \"getResizeObserver\");\n    function useElementLayout(ref, onLayout) {\n      var observer = getResizeObserver();\n      (0, _useLayoutEffect.default)(() => {\n        var node = ref.current;\n        if (node != null) {\n          node[DOM_LAYOUT_HANDLER_NAME] = onLayout;\n        }\n      }, [ref, onLayout]);\n      (0, _useLayoutEffect.default)(() => {\n        var node = ref.current;\n        if (node != null && observer != null) {\n          if (typeof node[DOM_LAYOUT_HANDLER_NAME] === \"function\") {\n            observer.observe(node);\n          } else {\n            observer.unobserve(node);\n          }\n        }\n        return () => {\n          if (node != null && observer != null) {\n            observer.unobserve(node);\n          }\n        };\n      }, [ref, observer]);\n    }\n    __name(useElementLayout, \"useElementLayout\");\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/mergeRefs/index.js\nvar require_mergeRefs = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/mergeRefs/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = mergeRefs;\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    function mergeRefs() {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n      return /* @__PURE__ */ __name(function forwardRef22(node) {\n        args.forEach((ref) => {\n          if (ref == null) {\n            return;\n          }\n          if (typeof ref === \"function\") {\n            ref(node);\n            return;\n          }\n          if (typeof ref === \"object\") {\n            ref.current = node;\n            return;\n          }\n          console.error(\"mergeRefs cannot handle Refs of type boolean, number or string, received ref \" + String(ref));\n        });\n      }, \"forwardRef\");\n    }\n    __name(mergeRefs, \"mergeRefs\");\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/useMergeRefs/index.js\nvar require_useMergeRefs = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/useMergeRefs/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = useMergeRefs;\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var _mergeRefs = _interopRequireDefault(require_mergeRefs());\n    function useMergeRefs() {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n      return React75.useMemo(\n        () => (0, _mergeRefs.default)(...args),\n        // eslint-disable-next-line\n        [...args]\n      );\n    }\n    __name(useMergeRefs, \"useMergeRefs\");\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/useStable/index.js\nvar require_useStable = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/useStable/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = useStable;\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var UNINITIALIZED = typeof Symbol === \"function\" && typeof Symbol() === \"symbol\" ? Symbol() : Object.freeze({});\n    function useStable(getInitialValue) {\n      var ref = React75.useRef(UNINITIALIZED);\n      if (ref.current === UNINITIALIZED) {\n        ref.current = getInitialValue();\n      }\n      return ref.current;\n    }\n    __name(useStable, \"useStable\");\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/usePlatformMethods/index.js\nvar require_usePlatformMethods = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/usePlatformMethods/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = usePlatformMethods;\n    var _UIManager = _interopRequireDefault(require_UIManager());\n    var _useStable = _interopRequireDefault(require_useStable());\n    function usePlatformMethods(_ref) {\n      var pointerEvents = _ref.pointerEvents, style = _ref.style;\n      var ref = (0, _useStable.default)(() => (hostNode) => {\n        if (hostNode != null) {\n          hostNode.measure = (callback) => _UIManager.default.measure(hostNode, callback);\n          hostNode.measureLayout = (relativeToNode, success, failure) => _UIManager.default.measureLayout(hostNode, relativeToNode, failure, success);\n          hostNode.measureInWindow = (callback) => _UIManager.default.measureInWindow(hostNode, callback);\n        }\n      });\n      return ref;\n    }\n    __name(usePlatformMethods, \"usePlatformMethods\");\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/useResponderEvents/createResponderEvent.js\nvar require_createResponderEvent = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/useResponderEvents/createResponderEvent.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = createResponderEvent;\n    var _getBoundingClientRect = _interopRequireDefault(require_getBoundingClientRect());\n    var emptyFunction = /* @__PURE__ */ __name(() => {\n    }, \"emptyFunction\");\n    var emptyObject = {};\n    var emptyArray = [];\n    function normalizeIdentifier(identifier) {\n      return identifier > 20 ? identifier % 20 : identifier;\n    }\n    __name(normalizeIdentifier, \"normalizeIdentifier\");\n    function createResponderEvent(domEvent, responderTouchHistoryStore) {\n      var rect;\n      var propagationWasStopped = false;\n      var changedTouches;\n      var touches;\n      var domEventChangedTouches = domEvent.changedTouches;\n      var domEventType = domEvent.type;\n      var metaKey = domEvent.metaKey === true;\n      var shiftKey = domEvent.shiftKey === true;\n      var force = domEventChangedTouches && domEventChangedTouches[0].force || 0;\n      var identifier = normalizeIdentifier(domEventChangedTouches && domEventChangedTouches[0].identifier || 0);\n      var clientX = domEventChangedTouches && domEventChangedTouches[0].clientX || domEvent.clientX;\n      var clientY = domEventChangedTouches && domEventChangedTouches[0].clientY || domEvent.clientY;\n      var pageX = domEventChangedTouches && domEventChangedTouches[0].pageX || domEvent.pageX;\n      var pageY = domEventChangedTouches && domEventChangedTouches[0].pageY || domEvent.pageY;\n      var preventDefault = typeof domEvent.preventDefault === \"function\" ? domEvent.preventDefault.bind(domEvent) : emptyFunction;\n      var timestamp = domEvent.timeStamp;\n      function normalizeTouches(touches2) {\n        return Array.prototype.slice.call(touches2).map((touch) => {\n          return {\n            force: touch.force,\n            identifier: normalizeIdentifier(touch.identifier),\n            get locationX() {\n              return locationX(touch.clientX);\n            },\n            get locationY() {\n              return locationY(touch.clientY);\n            },\n            pageX: touch.pageX,\n            pageY: touch.pageY,\n            target: touch.target,\n            timestamp\n          };\n        });\n      }\n      __name(normalizeTouches, \"normalizeTouches\");\n      if (domEventChangedTouches != null) {\n        changedTouches = normalizeTouches(domEventChangedTouches);\n        touches = normalizeTouches(domEvent.touches);\n      } else {\n        var emulatedTouches = [{\n          force,\n          identifier,\n          get locationX() {\n            return locationX(clientX);\n          },\n          get locationY() {\n            return locationY(clientY);\n          },\n          pageX,\n          pageY,\n          target: domEvent.target,\n          timestamp\n        }];\n        changedTouches = emulatedTouches;\n        touches = domEventType === \"mouseup\" || domEventType === \"dragstart\" ? emptyArray : emulatedTouches;\n      }\n      var responderEvent = {\n        bubbles: true,\n        cancelable: true,\n        // `currentTarget` is set before dispatch\n        currentTarget: null,\n        defaultPrevented: domEvent.defaultPrevented,\n        dispatchConfig: emptyObject,\n        eventPhase: domEvent.eventPhase,\n        isDefaultPrevented() {\n          return domEvent.defaultPrevented;\n        },\n        isPropagationStopped() {\n          return propagationWasStopped;\n        },\n        isTrusted: domEvent.isTrusted,\n        nativeEvent: {\n          altKey: false,\n          ctrlKey: false,\n          metaKey,\n          shiftKey,\n          changedTouches,\n          force,\n          identifier,\n          get locationX() {\n            return locationX(clientX);\n          },\n          get locationY() {\n            return locationY(clientY);\n          },\n          pageX,\n          pageY,\n          target: domEvent.target,\n          timestamp,\n          touches,\n          type: domEventType\n        },\n        persist: emptyFunction,\n        preventDefault,\n        stopPropagation() {\n          propagationWasStopped = true;\n        },\n        target: domEvent.target,\n        timeStamp: timestamp,\n        touchHistory: responderTouchHistoryStore.touchHistory\n      };\n      function locationX(x) {\n        rect = rect || (0, _getBoundingClientRect.default)(responderEvent.currentTarget);\n        if (rect) {\n          return x - rect.left;\n        }\n      }\n      __name(locationX, \"locationX\");\n      function locationY(y) {\n        rect = rect || (0, _getBoundingClientRect.default)(responderEvent.currentTarget);\n        if (rect) {\n          return y - rect.top;\n        }\n      }\n      __name(locationY, \"locationY\");\n      return responderEvent;\n    }\n    __name(createResponderEvent, \"createResponderEvent\");\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/useResponderEvents/ResponderEventTypes.js\nvar require_ResponderEventTypes = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/useResponderEvents/ResponderEventTypes.js\"(exports2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.TOUCH_START = exports2.TOUCH_MOVE = exports2.TOUCH_END = exports2.TOUCH_CANCEL = exports2.SELECTION_CHANGE = exports2.SELECT = exports2.SCROLL = exports2.MOUSE_UP = exports2.MOUSE_MOVE = exports2.MOUSE_DOWN = exports2.MOUSE_CANCEL = exports2.FOCUS_OUT = exports2.CONTEXT_MENU = exports2.BLUR = void 0;\n    exports2.isCancelish = isCancelish;\n    exports2.isEndish = isEndish;\n    exports2.isMoveish = isMoveish;\n    exports2.isScroll = isScroll;\n    exports2.isSelectionChange = isSelectionChange;\n    exports2.isStartish = isStartish;\n    var BLUR = exports2.BLUR = \"blur\";\n    var CONTEXT_MENU = exports2.CONTEXT_MENU = \"contextmenu\";\n    var FOCUS_OUT = exports2.FOCUS_OUT = \"focusout\";\n    var MOUSE_DOWN = exports2.MOUSE_DOWN = \"mousedown\";\n    var MOUSE_MOVE = exports2.MOUSE_MOVE = \"mousemove\";\n    var MOUSE_UP = exports2.MOUSE_UP = \"mouseup\";\n    var MOUSE_CANCEL = exports2.MOUSE_CANCEL = \"dragstart\";\n    var TOUCH_START = exports2.TOUCH_START = \"touchstart\";\n    var TOUCH_MOVE = exports2.TOUCH_MOVE = \"touchmove\";\n    var TOUCH_END = exports2.TOUCH_END = \"touchend\";\n    var TOUCH_CANCEL = exports2.TOUCH_CANCEL = \"touchcancel\";\n    var SCROLL = exports2.SCROLL = \"scroll\";\n    var SELECT = exports2.SELECT = \"select\";\n    var SELECTION_CHANGE = exports2.SELECTION_CHANGE = \"selectionchange\";\n    function isStartish(eventType) {\n      return eventType === TOUCH_START || eventType === MOUSE_DOWN;\n    }\n    __name(isStartish, \"isStartish\");\n    function isMoveish(eventType) {\n      return eventType === TOUCH_MOVE || eventType === MOUSE_MOVE;\n    }\n    __name(isMoveish, \"isMoveish\");\n    function isEndish(eventType) {\n      return eventType === TOUCH_END || eventType === MOUSE_UP || isCancelish(eventType);\n    }\n    __name(isEndish, \"isEndish\");\n    function isCancelish(eventType) {\n      return eventType === TOUCH_CANCEL || eventType === MOUSE_CANCEL;\n    }\n    __name(isCancelish, \"isCancelish\");\n    function isScroll(eventType) {\n      return eventType === SCROLL;\n    }\n    __name(isScroll, \"isScroll\");\n    function isSelectionChange(eventType) {\n      return eventType === SELECT || eventType === SELECTION_CHANGE;\n    }\n    __name(isSelectionChange, \"isSelectionChange\");\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/isSelectionValid/index.js\nvar require_isSelectionValid = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/isSelectionValid/index.js\"(exports2, module2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.default = isSelectionValid;\n    function isSelectionValid() {\n      var selection = window.getSelection();\n      var string = selection.toString();\n      var anchorNode = selection.anchorNode;\n      var focusNode = selection.focusNode;\n      var isTextNode = anchorNode && anchorNode.nodeType === window.Node.TEXT_NODE || focusNode && focusNode.nodeType === window.Node.TEXT_NODE;\n      return string.length >= 1 && string !== \"\\n\" && isTextNode;\n    }\n    __name(isSelectionValid, \"isSelectionValid\");\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/useResponderEvents/utils.js\nvar require_utils2 = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/useResponderEvents/utils.js\"(exports2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.getLowestCommonAncestor = getLowestCommonAncestor;\n    exports2.getResponderPaths = getResponderPaths;\n    exports2.hasTargetTouches = hasTargetTouches;\n    exports2.hasValidSelection = hasValidSelection;\n    exports2.isPrimaryPointerDown = isPrimaryPointerDown;\n    exports2.setResponderId = setResponderId;\n    var _isSelectionValid = _interopRequireDefault(require_isSelectionValid());\n    var keyName = \"__reactResponderId\";\n    function getEventPath(domEvent) {\n      if (domEvent.type === \"selectionchange\") {\n        var target = window.getSelection().anchorNode;\n        return composedPathFallback(target);\n      } else {\n        var path = domEvent.composedPath != null ? domEvent.composedPath() : composedPathFallback(domEvent.target);\n        return path;\n      }\n    }\n    __name(getEventPath, \"getEventPath\");\n    function composedPathFallback(target) {\n      var path = [];\n      while (target != null && target !== document.body) {\n        path.push(target);\n        target = target.parentNode;\n      }\n      return path;\n    }\n    __name(composedPathFallback, \"composedPathFallback\");\n    function getResponderId(node) {\n      if (node != null) {\n        return node[keyName];\n      }\n      return null;\n    }\n    __name(getResponderId, \"getResponderId\");\n    function setResponderId(node, id) {\n      if (node != null) {\n        node[keyName] = id;\n      }\n    }\n    __name(setResponderId, \"setResponderId\");\n    function getResponderPaths(domEvent) {\n      var idPath = [];\n      var nodePath = [];\n      var eventPath = getEventPath(domEvent);\n      for (var i = 0; i < eventPath.length; i++) {\n        var node = eventPath[i];\n        var id = getResponderId(node);\n        if (id != null) {\n          idPath.push(id);\n          nodePath.push(node);\n        }\n      }\n      return {\n        idPath,\n        nodePath\n      };\n    }\n    __name(getResponderPaths, \"getResponderPaths\");\n    function getLowestCommonAncestor(pathA, pathB) {\n      var pathALength = pathA.length;\n      var pathBLength = pathB.length;\n      if (\n        // If either path is empty\n        pathALength === 0 || pathBLength === 0 || // If the last elements aren't the same there can't be a common ancestor\n        // that is connected to the responder system\n        pathA[pathALength - 1] !== pathB[pathBLength - 1]\n      ) {\n        return null;\n      }\n      var itemA = pathA[0];\n      var indexA = 0;\n      var itemB = pathB[0];\n      var indexB = 0;\n      if (pathALength - pathBLength > 0) {\n        indexA = pathALength - pathBLength;\n        itemA = pathA[indexA];\n        pathALength = pathBLength;\n      }\n      if (pathBLength - pathALength > 0) {\n        indexB = pathBLength - pathALength;\n        itemB = pathB[indexB];\n        pathBLength = pathALength;\n      }\n      var depth = pathALength;\n      while (depth--) {\n        if (itemA === itemB) {\n          return itemA;\n        }\n        itemA = pathA[indexA++];\n        itemB = pathB[indexB++];\n      }\n      return null;\n    }\n    __name(getLowestCommonAncestor, \"getLowestCommonAncestor\");\n    function hasTargetTouches(target, touches) {\n      if (!touches || touches.length === 0) {\n        return false;\n      }\n      for (var i = 0; i < touches.length; i++) {\n        var node = touches[i].target;\n        if (node != null) {\n          if (target.contains(node)) {\n            return true;\n          }\n        }\n      }\n      return false;\n    }\n    __name(hasTargetTouches, \"hasTargetTouches\");\n    function hasValidSelection(domEvent) {\n      if (domEvent.type === \"selectionchange\") {\n        return (0, _isSelectionValid.default)();\n      }\n      return domEvent.type === \"select\";\n    }\n    __name(hasValidSelection, \"hasValidSelection\");\n    function isPrimaryPointerDown(domEvent) {\n      var altKey = domEvent.altKey, button = domEvent.button, buttons = domEvent.buttons, ctrlKey = domEvent.ctrlKey, type = domEvent.type;\n      var isTouch = type === \"touchstart\" || type === \"touchmove\";\n      var isPrimaryMouseDown = type === \"mousedown\" && (button === 0 || buttons === 1);\n      var isPrimaryMouseMove = type === \"mousemove\" && buttons === 1;\n      var noModifiers = altKey === false && ctrlKey === false;\n      if (isTouch || isPrimaryMouseDown && noModifiers || isPrimaryMouseMove && noModifiers) {\n        return true;\n      }\n      return false;\n    }\n    __name(isPrimaryPointerDown, \"isPrimaryPointerDown\");\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/useResponderEvents/ResponderTouchHistoryStore.js\nvar require_ResponderTouchHistoryStore = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/useResponderEvents/ResponderTouchHistoryStore.js\"(exports2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.ResponderTouchHistoryStore = void 0;\n    var _ResponderEventTypes = require_ResponderEventTypes();\n    var __DEV__ = process.env.NODE_ENV !== \"production\";\n    var MAX_TOUCH_BANK = 20;\n    function timestampForTouch(touch) {\n      return touch.timeStamp || touch.timestamp;\n    }\n    __name(timestampForTouch, \"timestampForTouch\");\n    function createTouchRecord(touch) {\n      return {\n        touchActive: true,\n        startPageX: touch.pageX,\n        startPageY: touch.pageY,\n        startTimeStamp: timestampForTouch(touch),\n        currentPageX: touch.pageX,\n        currentPageY: touch.pageY,\n        currentTimeStamp: timestampForTouch(touch),\n        previousPageX: touch.pageX,\n        previousPageY: touch.pageY,\n        previousTimeStamp: timestampForTouch(touch)\n      };\n    }\n    __name(createTouchRecord, \"createTouchRecord\");\n    function resetTouchRecord(touchRecord, touch) {\n      touchRecord.touchActive = true;\n      touchRecord.startPageX = touch.pageX;\n      touchRecord.startPageY = touch.pageY;\n      touchRecord.startTimeStamp = timestampForTouch(touch);\n      touchRecord.currentPageX = touch.pageX;\n      touchRecord.currentPageY = touch.pageY;\n      touchRecord.currentTimeStamp = timestampForTouch(touch);\n      touchRecord.previousPageX = touch.pageX;\n      touchRecord.previousPageY = touch.pageY;\n      touchRecord.previousTimeStamp = timestampForTouch(touch);\n    }\n    __name(resetTouchRecord, \"resetTouchRecord\");\n    function getTouchIdentifier(_ref) {\n      var identifier = _ref.identifier;\n      if (identifier == null) {\n        console.error(\"Touch object is missing identifier.\");\n      }\n      if (__DEV__) {\n        if (identifier > MAX_TOUCH_BANK) {\n          console.error(\"Touch identifier %s is greater than maximum supported %s which causes performance issues backfilling array locations for all of the indices.\", identifier, MAX_TOUCH_BANK);\n        }\n      }\n      return identifier;\n    }\n    __name(getTouchIdentifier, \"getTouchIdentifier\");\n    function recordTouchStart(touch, touchHistory) {\n      var identifier = getTouchIdentifier(touch);\n      var touchRecord = touchHistory.touchBank[identifier];\n      if (touchRecord) {\n        resetTouchRecord(touchRecord, touch);\n      } else {\n        touchHistory.touchBank[identifier] = createTouchRecord(touch);\n      }\n      touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n    }\n    __name(recordTouchStart, \"recordTouchStart\");\n    function recordTouchMove(touch, touchHistory) {\n      var touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];\n      if (touchRecord) {\n        touchRecord.touchActive = true;\n        touchRecord.previousPageX = touchRecord.currentPageX;\n        touchRecord.previousPageY = touchRecord.currentPageY;\n        touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;\n        touchRecord.currentPageX = touch.pageX;\n        touchRecord.currentPageY = touch.pageY;\n        touchRecord.currentTimeStamp = timestampForTouch(touch);\n        touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n      } else {\n        console.warn(\"Cannot record touch move without a touch start.\\n\", \"Touch Move: \" + printTouch(touch) + \"\\n\", \"Touch Bank: \" + printTouchBank(touchHistory));\n      }\n    }\n    __name(recordTouchMove, \"recordTouchMove\");\n    function recordTouchEnd(touch, touchHistory) {\n      var touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];\n      if (touchRecord) {\n        touchRecord.touchActive = false;\n        touchRecord.previousPageX = touchRecord.currentPageX;\n        touchRecord.previousPageY = touchRecord.currentPageY;\n        touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;\n        touchRecord.currentPageX = touch.pageX;\n        touchRecord.currentPageY = touch.pageY;\n        touchRecord.currentTimeStamp = timestampForTouch(touch);\n        touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n      } else {\n        console.warn(\"Cannot record touch end without a touch start.\\n\", \"Touch End: \" + printTouch(touch) + \"\\n\", \"Touch Bank: \" + printTouchBank(touchHistory));\n      }\n    }\n    __name(recordTouchEnd, \"recordTouchEnd\");\n    function printTouch(touch) {\n      return JSON.stringify({\n        identifier: touch.identifier,\n        pageX: touch.pageX,\n        pageY: touch.pageY,\n        timestamp: timestampForTouch(touch)\n      });\n    }\n    __name(printTouch, \"printTouch\");\n    function printTouchBank(touchHistory) {\n      var touchBank = touchHistory.touchBank;\n      var printed = JSON.stringify(touchBank.slice(0, MAX_TOUCH_BANK));\n      if (touchBank.length > MAX_TOUCH_BANK) {\n        printed += \" (original size: \" + touchBank.length + \")\";\n      }\n      return printed;\n    }\n    __name(printTouchBank, \"printTouchBank\");\n    var ResponderTouchHistoryStore = class {\n      static {\n        __name(this, \"ResponderTouchHistoryStore\");\n      }\n      constructor() {\n        this._touchHistory = {\n          touchBank: [],\n          //Array<TouchRecord>\n          numberActiveTouches: 0,\n          // If there is only one active touch, we remember its location. This prevents\n          // us having to loop through all of the touches all the time in the most\n          // common case.\n          indexOfSingleActiveTouch: -1,\n          mostRecentTimeStamp: 0\n        };\n      }\n      recordTouchTrack(topLevelType, nativeEvent) {\n        var touchHistory = this._touchHistory;\n        if ((0, _ResponderEventTypes.isMoveish)(topLevelType)) {\n          nativeEvent.changedTouches.forEach((touch) => recordTouchMove(touch, touchHistory));\n        } else if ((0, _ResponderEventTypes.isStartish)(topLevelType)) {\n          nativeEvent.changedTouches.forEach((touch) => recordTouchStart(touch, touchHistory));\n          touchHistory.numberActiveTouches = nativeEvent.touches.length;\n          if (touchHistory.numberActiveTouches === 1) {\n            touchHistory.indexOfSingleActiveTouch = nativeEvent.touches[0].identifier;\n          }\n        } else if ((0, _ResponderEventTypes.isEndish)(topLevelType)) {\n          nativeEvent.changedTouches.forEach((touch) => recordTouchEnd(touch, touchHistory));\n          touchHistory.numberActiveTouches = nativeEvent.touches.length;\n          if (touchHistory.numberActiveTouches === 1) {\n            var touchBank = touchHistory.touchBank;\n            for (var i = 0; i < touchBank.length; i++) {\n              var touchTrackToCheck = touchBank[i];\n              if (touchTrackToCheck != null && touchTrackToCheck.touchActive) {\n                touchHistory.indexOfSingleActiveTouch = i;\n                break;\n              }\n            }\n            if (__DEV__) {\n              var activeRecord = touchBank[touchHistory.indexOfSingleActiveTouch];\n              if (!(activeRecord != null && activeRecord.touchActive)) {\n                console.error(\"Cannot find single active touch.\");\n              }\n            }\n          }\n        }\n      }\n      get touchHistory() {\n        return this._touchHistory;\n      }\n    };\n    exports2.ResponderTouchHistoryStore = ResponderTouchHistoryStore;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/useResponderEvents/ResponderSystem.js\nvar require_ResponderSystem = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/useResponderEvents/ResponderSystem.js\"(exports2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.addNode = addNode;\n    exports2.attachListeners = attachListeners;\n    exports2.getResponderNode = getResponderNode;\n    exports2.removeNode = removeNode;\n    exports2.terminateResponder = terminateResponder;\n    var _createResponderEvent = _interopRequireDefault(require_createResponderEvent());\n    var _ResponderEventTypes = require_ResponderEventTypes();\n    var _utils = require_utils2();\n    var _ResponderTouchHistoryStore = require_ResponderTouchHistoryStore();\n    var _canUseDom = _interopRequireDefault(require_canUseDom());\n    var emptyObject = {};\n    var startRegistration = [\"onStartShouldSetResponderCapture\", \"onStartShouldSetResponder\", {\n      bubbles: true\n    }];\n    var moveRegistration = [\"onMoveShouldSetResponderCapture\", \"onMoveShouldSetResponder\", {\n      bubbles: true\n    }];\n    var scrollRegistration = [\"onScrollShouldSetResponderCapture\", \"onScrollShouldSetResponder\", {\n      bubbles: false\n    }];\n    var shouldSetResponderEvents = {\n      touchstart: startRegistration,\n      mousedown: startRegistration,\n      touchmove: moveRegistration,\n      mousemove: moveRegistration,\n      scroll: scrollRegistration\n    };\n    var emptyResponder = {\n      id: null,\n      idPath: null,\n      node: null\n    };\n    var responderListenersMap = /* @__PURE__ */ new Map();\n    var isEmulatingMouseEvents = false;\n    var trackedTouchCount = 0;\n    var currentResponder = {\n      id: null,\n      node: null,\n      idPath: null\n    };\n    var responderTouchHistoryStore = new _ResponderTouchHistoryStore.ResponderTouchHistoryStore();\n    function changeCurrentResponder(responder) {\n      currentResponder = responder;\n    }\n    __name(changeCurrentResponder, \"changeCurrentResponder\");\n    function getResponderConfig(id) {\n      var config = responderListenersMap.get(id);\n      return config != null ? config : emptyObject;\n    }\n    __name(getResponderConfig, \"getResponderConfig\");\n    function eventListener(domEvent) {\n      var eventType = domEvent.type;\n      var eventTarget = domEvent.target;\n      if (eventType === \"touchstart\") {\n        isEmulatingMouseEvents = true;\n      }\n      if (eventType === \"touchmove\" || trackedTouchCount > 1) {\n        isEmulatingMouseEvents = false;\n      }\n      if (\n        // Ignore browser emulated mouse events\n        eventType === \"mousedown\" && isEmulatingMouseEvents || eventType === \"mousemove\" && isEmulatingMouseEvents || // Ignore mousemove if a mousedown didn't occur first\n        eventType === \"mousemove\" && trackedTouchCount < 1\n      ) {\n        return;\n      }\n      if (isEmulatingMouseEvents && eventType === \"mouseup\") {\n        if (trackedTouchCount === 0) {\n          isEmulatingMouseEvents = false;\n        }\n        return;\n      }\n      var isStartEvent = (0, _ResponderEventTypes.isStartish)(eventType) && (0, _utils.isPrimaryPointerDown)(domEvent);\n      var isMoveEvent = (0, _ResponderEventTypes.isMoveish)(eventType);\n      var isEndEvent = (0, _ResponderEventTypes.isEndish)(eventType);\n      var isScrollEvent = (0, _ResponderEventTypes.isScroll)(eventType);\n      var isSelectionChangeEvent = (0, _ResponderEventTypes.isSelectionChange)(eventType);\n      var responderEvent = (0, _createResponderEvent.default)(domEvent, responderTouchHistoryStore);\n      if (isStartEvent || isMoveEvent || isEndEvent) {\n        if (domEvent.touches) {\n          trackedTouchCount = domEvent.touches.length;\n        } else {\n          if (isStartEvent) {\n            trackedTouchCount = 1;\n          } else if (isEndEvent) {\n            trackedTouchCount = 0;\n          }\n        }\n        responderTouchHistoryStore.recordTouchTrack(eventType, responderEvent.nativeEvent);\n      }\n      var eventPaths = (0, _utils.getResponderPaths)(domEvent);\n      var wasNegotiated = false;\n      var wantsResponder;\n      if (isStartEvent || isMoveEvent || isScrollEvent && trackedTouchCount > 0) {\n        var currentResponderIdPath = currentResponder.idPath;\n        var eventIdPath = eventPaths.idPath;\n        if (currentResponderIdPath != null && eventIdPath != null) {\n          var lowestCommonAncestor = (0, _utils.getLowestCommonAncestor)(currentResponderIdPath, eventIdPath);\n          if (lowestCommonAncestor != null) {\n            var indexOfLowestCommonAncestor = eventIdPath.indexOf(lowestCommonAncestor);\n            var index3 = indexOfLowestCommonAncestor + (lowestCommonAncestor === currentResponder.id ? 1 : 0);\n            eventPaths = {\n              idPath: eventIdPath.slice(index3),\n              nodePath: eventPaths.nodePath.slice(index3)\n            };\n          } else {\n            eventPaths = null;\n          }\n        }\n        if (eventPaths != null) {\n          wantsResponder = findWantsResponder(eventPaths, domEvent, responderEvent);\n          if (wantsResponder != null) {\n            attemptTransfer(responderEvent, wantsResponder);\n            wasNegotiated = true;\n          }\n        }\n      }\n      if (currentResponder.id != null && currentResponder.node != null) {\n        var _currentResponder = currentResponder, id = _currentResponder.id, node = _currentResponder.node;\n        var _getResponderConfig = getResponderConfig(id), onResponderStart = _getResponderConfig.onResponderStart, onResponderMove = _getResponderConfig.onResponderMove, onResponderEnd = _getResponderConfig.onResponderEnd, onResponderRelease = _getResponderConfig.onResponderRelease, onResponderTerminate = _getResponderConfig.onResponderTerminate, onResponderTerminationRequest = _getResponderConfig.onResponderTerminationRequest;\n        responderEvent.bubbles = false;\n        responderEvent.cancelable = false;\n        responderEvent.currentTarget = node;\n        if (isStartEvent) {\n          if (onResponderStart != null) {\n            responderEvent.dispatchConfig.registrationName = \"onResponderStart\";\n            onResponderStart(responderEvent);\n          }\n        } else if (isMoveEvent) {\n          if (onResponderMove != null) {\n            responderEvent.dispatchConfig.registrationName = \"onResponderMove\";\n            onResponderMove(responderEvent);\n          }\n        } else {\n          var isTerminateEvent = (0, _ResponderEventTypes.isCancelish)(eventType) || // native context menu\n          eventType === \"contextmenu\" || // window blur\n          eventType === \"blur\" && eventTarget === window || // responder (or ancestors) blur\n          eventType === \"blur\" && eventTarget.contains(node) && domEvent.relatedTarget !== node || // native scroll without using a pointer\n          isScrollEvent && trackedTouchCount === 0 || // native scroll on node that is parent of the responder (allow siblings to scroll)\n          isScrollEvent && eventTarget.contains(node) && eventTarget !== node || // native select/selectionchange on node\n          isSelectionChangeEvent && (0, _utils.hasValidSelection)(domEvent);\n          var isReleaseEvent = isEndEvent && !isTerminateEvent && !(0, _utils.hasTargetTouches)(node, domEvent.touches);\n          if (isEndEvent) {\n            if (onResponderEnd != null) {\n              responderEvent.dispatchConfig.registrationName = \"onResponderEnd\";\n              onResponderEnd(responderEvent);\n            }\n          }\n          if (isReleaseEvent) {\n            if (onResponderRelease != null) {\n              responderEvent.dispatchConfig.registrationName = \"onResponderRelease\";\n              onResponderRelease(responderEvent);\n            }\n            changeCurrentResponder(emptyResponder);\n          }\n          if (isTerminateEvent) {\n            var shouldTerminate = true;\n            if (eventType === \"contextmenu\" || eventType === \"scroll\" || eventType === \"selectionchange\") {\n              if (wasNegotiated) {\n                shouldTerminate = false;\n              } else if (onResponderTerminationRequest != null) {\n                responderEvent.dispatchConfig.registrationName = \"onResponderTerminationRequest\";\n                if (onResponderTerminationRequest(responderEvent) === false) {\n                  shouldTerminate = false;\n                }\n              }\n            }\n            if (shouldTerminate) {\n              if (onResponderTerminate != null) {\n                responderEvent.dispatchConfig.registrationName = \"onResponderTerminate\";\n                onResponderTerminate(responderEvent);\n              }\n              changeCurrentResponder(emptyResponder);\n              isEmulatingMouseEvents = false;\n              trackedTouchCount = 0;\n            }\n          }\n        }\n      }\n    }\n    __name(eventListener, \"eventListener\");\n    function findWantsResponder(eventPaths, domEvent, responderEvent) {\n      var shouldSetCallbacks = shouldSetResponderEvents[domEvent.type];\n      if (shouldSetCallbacks != null) {\n        var idPath = eventPaths.idPath, nodePath = eventPaths.nodePath;\n        var shouldSetCallbackCaptureName = shouldSetCallbacks[0];\n        var shouldSetCallbackBubbleName = shouldSetCallbacks[1];\n        var bubbles = shouldSetCallbacks[2].bubbles;\n        var check = /* @__PURE__ */ __name(function check2(id2, node2, callbackName) {\n          var config = getResponderConfig(id2);\n          var shouldSetCallback = config[callbackName];\n          if (shouldSetCallback != null) {\n            responderEvent.currentTarget = node2;\n            if (shouldSetCallback(responderEvent) === true) {\n              var prunedIdPath = idPath.slice(idPath.indexOf(id2));\n              return {\n                id: id2,\n                node: node2,\n                idPath: prunedIdPath\n              };\n            }\n          }\n        }, \"check\");\n        for (var i = idPath.length - 1; i >= 0; i--) {\n          var id = idPath[i];\n          var node = nodePath[i];\n          var result = check(id, node, shouldSetCallbackCaptureName);\n          if (result != null) {\n            return result;\n          }\n          if (responderEvent.isPropagationStopped() === true) {\n            return;\n          }\n        }\n        if (bubbles) {\n          for (var _i = 0; _i < idPath.length; _i++) {\n            var _id = idPath[_i];\n            var _node = nodePath[_i];\n            var _result = check(_id, _node, shouldSetCallbackBubbleName);\n            if (_result != null) {\n              return _result;\n            }\n            if (responderEvent.isPropagationStopped() === true) {\n              return;\n            }\n          }\n        } else {\n          var _id2 = idPath[0];\n          var _node2 = nodePath[0];\n          var target = domEvent.target;\n          if (target === _node2) {\n            return check(_id2, _node2, shouldSetCallbackBubbleName);\n          }\n        }\n      }\n    }\n    __name(findWantsResponder, \"findWantsResponder\");\n    function attemptTransfer(responderEvent, wantsResponder) {\n      var _currentResponder2 = currentResponder, currentId = _currentResponder2.id, currentNode = _currentResponder2.node;\n      var id = wantsResponder.id, node = wantsResponder.node;\n      var _getResponderConfig2 = getResponderConfig(id), onResponderGrant = _getResponderConfig2.onResponderGrant, onResponderReject = _getResponderConfig2.onResponderReject;\n      responderEvent.bubbles = false;\n      responderEvent.cancelable = false;\n      responderEvent.currentTarget = node;\n      if (currentId == null) {\n        if (onResponderGrant != null) {\n          responderEvent.currentTarget = node;\n          responderEvent.dispatchConfig.registrationName = \"onResponderGrant\";\n          onResponderGrant(responderEvent);\n        }\n        changeCurrentResponder(wantsResponder);\n      } else {\n        var _getResponderConfig3 = getResponderConfig(currentId), onResponderTerminate = _getResponderConfig3.onResponderTerminate, onResponderTerminationRequest = _getResponderConfig3.onResponderTerminationRequest;\n        var allowTransfer = true;\n        if (onResponderTerminationRequest != null) {\n          responderEvent.currentTarget = currentNode;\n          responderEvent.dispatchConfig.registrationName = \"onResponderTerminationRequest\";\n          if (onResponderTerminationRequest(responderEvent) === false) {\n            allowTransfer = false;\n          }\n        }\n        if (allowTransfer) {\n          if (onResponderTerminate != null) {\n            responderEvent.currentTarget = currentNode;\n            responderEvent.dispatchConfig.registrationName = \"onResponderTerminate\";\n            onResponderTerminate(responderEvent);\n          }\n          if (onResponderGrant != null) {\n            responderEvent.currentTarget = node;\n            responderEvent.dispatchConfig.registrationName = \"onResponderGrant\";\n            onResponderGrant(responderEvent);\n          }\n          changeCurrentResponder(wantsResponder);\n        } else {\n          if (onResponderReject != null) {\n            responderEvent.currentTarget = node;\n            responderEvent.dispatchConfig.registrationName = \"onResponderReject\";\n            onResponderReject(responderEvent);\n          }\n        }\n      }\n    }\n    __name(attemptTransfer, \"attemptTransfer\");\n    var documentEventsCapturePhase = [\"blur\", \"scroll\"];\n    var documentEventsBubblePhase = [\n      // mouse\n      \"mousedown\",\n      \"mousemove\",\n      \"mouseup\",\n      \"dragstart\",\n      // touch\n      \"touchstart\",\n      \"touchmove\",\n      \"touchend\",\n      \"touchcancel\",\n      // other\n      \"contextmenu\",\n      \"select\",\n      \"selectionchange\"\n    ];\n    function attachListeners() {\n      if (_canUseDom.default && window.__reactResponderSystemActive == null) {\n        window.addEventListener(\"blur\", eventListener);\n        documentEventsBubblePhase.forEach((eventType) => {\n          document.addEventListener(eventType, eventListener);\n        });\n        documentEventsCapturePhase.forEach((eventType) => {\n          document.addEventListener(eventType, eventListener, true);\n        });\n        window.__reactResponderSystemActive = true;\n      }\n    }\n    __name(attachListeners, \"attachListeners\");\n    function addNode(id, node, config) {\n      (0, _utils.setResponderId)(node, id);\n      responderListenersMap.set(id, config);\n    }\n    __name(addNode, \"addNode\");\n    function removeNode(id) {\n      if (currentResponder.id === id) {\n        terminateResponder();\n      }\n      if (responderListenersMap.has(id)) {\n        responderListenersMap.delete(id);\n      }\n    }\n    __name(removeNode, \"removeNode\");\n    function terminateResponder() {\n      var _currentResponder3 = currentResponder, id = _currentResponder3.id, node = _currentResponder3.node;\n      if (id != null && node != null) {\n        var _getResponderConfig4 = getResponderConfig(id), onResponderTerminate = _getResponderConfig4.onResponderTerminate;\n        if (onResponderTerminate != null) {\n          var event = (0, _createResponderEvent.default)({}, responderTouchHistoryStore);\n          event.currentTarget = node;\n          onResponderTerminate(event);\n        }\n        changeCurrentResponder(emptyResponder);\n      }\n      isEmulatingMouseEvents = false;\n      trackedTouchCount = 0;\n    }\n    __name(terminateResponder, \"terminateResponder\");\n    function getResponderNode() {\n      return currentResponder.node;\n    }\n    __name(getResponderNode, \"getResponderNode\");\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/useResponderEvents/index.js\nvar require_useResponderEvents = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/useResponderEvents/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = useResponderEvents;\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var ResponderSystem = _interopRequireWildcard(require_ResponderSystem());\n    var emptyObject = {};\n    var idCounter = 0;\n    function useStable(getInitialValue) {\n      var ref = React75.useRef(null);\n      if (ref.current == null) {\n        ref.current = getInitialValue();\n      }\n      return ref.current;\n    }\n    __name(useStable, \"useStable\");\n    function useResponderEvents(hostRef, config) {\n      if (config === void 0) {\n        config = emptyObject;\n      }\n      var id = useStable(() => idCounter++);\n      var isAttachedRef = React75.useRef(false);\n      React75.useEffect(() => {\n        ResponderSystem.attachListeners();\n        return () => {\n          ResponderSystem.removeNode(id);\n        };\n      }, [id]);\n      React75.useEffect(() => {\n        var _config = config, onMoveShouldSetResponder = _config.onMoveShouldSetResponder, onMoveShouldSetResponderCapture = _config.onMoveShouldSetResponderCapture, onScrollShouldSetResponder = _config.onScrollShouldSetResponder, onScrollShouldSetResponderCapture = _config.onScrollShouldSetResponderCapture, onSelectionChangeShouldSetResponder = _config.onSelectionChangeShouldSetResponder, onSelectionChangeShouldSetResponderCapture = _config.onSelectionChangeShouldSetResponderCapture, onStartShouldSetResponder = _config.onStartShouldSetResponder, onStartShouldSetResponderCapture = _config.onStartShouldSetResponderCapture;\n        var requiresResponderSystem = onMoveShouldSetResponder != null || onMoveShouldSetResponderCapture != null || onScrollShouldSetResponder != null || onScrollShouldSetResponderCapture != null || onSelectionChangeShouldSetResponder != null || onSelectionChangeShouldSetResponderCapture != null || onStartShouldSetResponder != null || onStartShouldSetResponderCapture != null;\n        var node = hostRef.current;\n        if (requiresResponderSystem) {\n          ResponderSystem.addNode(id, node, config);\n          isAttachedRef.current = true;\n        } else if (isAttachedRef.current) {\n          ResponderSystem.removeNode(id);\n          isAttachedRef.current = false;\n        }\n      }, [config, hostRef, id]);\n      React75.useDebugValue({\n        isResponder: hostRef.current === ResponderSystem.getResponderNode()\n      });\n      React75.useDebugValue(config);\n    }\n    __name(useResponderEvents, \"useResponderEvents\");\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/Text/TextAncestorContext.js\nvar require_TextAncestorContext = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/Text/TextAncestorContext.js\"(exports2, module2) {\n    \"use strict\";\n    \"use client\";\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _react = require(\"react\");\n    var TextAncestorContext = /* @__PURE__ */ (0, _react.createContext)(false);\n    var _default = exports2.default = TextAncestorContext;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/View/index.js\nvar require_View = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/View/index.js\"(exports2, module2) {\n    \"use strict\";\n    \"use client\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var _createElement = _interopRequireDefault(require_createElement());\n    var forwardedProps = _interopRequireWildcard(require_forwardedProps());\n    var _pick = _interopRequireDefault(require_pick());\n    var _useElementLayout = _interopRequireDefault(require_useElementLayout());\n    var _useMergeRefs = _interopRequireDefault(require_useMergeRefs());\n    var _usePlatformMethods = _interopRequireDefault(require_usePlatformMethods());\n    var _useResponderEvents = _interopRequireDefault(require_useResponderEvents());\n    var _StyleSheet = _interopRequireDefault(require_StyleSheet());\n    var _TextAncestorContext = _interopRequireDefault(require_TextAncestorContext());\n    var _useLocale = require_useLocale();\n    var _excluded = [\"hrefAttrs\", \"onLayout\", \"onMoveShouldSetResponder\", \"onMoveShouldSetResponderCapture\", \"onResponderEnd\", \"onResponderGrant\", \"onResponderMove\", \"onResponderReject\", \"onResponderRelease\", \"onResponderStart\", \"onResponderTerminate\", \"onResponderTerminationRequest\", \"onScrollShouldSetResponder\", \"onScrollShouldSetResponderCapture\", \"onSelectionChangeShouldSetResponder\", \"onSelectionChangeShouldSetResponderCapture\", \"onStartShouldSetResponder\", \"onStartShouldSetResponderCapture\"];\n    var forwardPropsList = Object.assign({}, forwardedProps.defaultProps, forwardedProps.accessibilityProps, forwardedProps.clickProps, forwardedProps.focusProps, forwardedProps.keyboardProps, forwardedProps.mouseProps, forwardedProps.touchProps, forwardedProps.styleProps, {\n      href: true,\n      lang: true,\n      onScroll: true,\n      onWheel: true,\n      pointerEvents: true\n    });\n    var pickProps = /* @__PURE__ */ __name((props) => (0, _pick.default)(props, forwardPropsList), \"pickProps\");\n    var View11 = /* @__PURE__ */ React75.forwardRef((props, forwardedRef) => {\n      var hrefAttrs = props.hrefAttrs, onLayout = props.onLayout, onMoveShouldSetResponder = props.onMoveShouldSetResponder, onMoveShouldSetResponderCapture = props.onMoveShouldSetResponderCapture, onResponderEnd = props.onResponderEnd, onResponderGrant = props.onResponderGrant, onResponderMove = props.onResponderMove, onResponderReject = props.onResponderReject, onResponderRelease = props.onResponderRelease, onResponderStart = props.onResponderStart, onResponderTerminate = props.onResponderTerminate, onResponderTerminationRequest = props.onResponderTerminationRequest, onScrollShouldSetResponder = props.onScrollShouldSetResponder, onScrollShouldSetResponderCapture = props.onScrollShouldSetResponderCapture, onSelectionChangeShouldSetResponder = props.onSelectionChangeShouldSetResponder, onSelectionChangeShouldSetResponderCapture = props.onSelectionChangeShouldSetResponderCapture, onStartShouldSetResponder = props.onStartShouldSetResponder, onStartShouldSetResponderCapture = props.onStartShouldSetResponderCapture, rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);\n      if (process.env.NODE_ENV !== \"production\") {\n        React75.Children.toArray(props.children).forEach((item) => {\n          if (typeof item === \"string\") {\n            console.error(\"Unexpected text node: \" + item + \". A text node cannot be a child of a <View>.\");\n          }\n        });\n      }\n      var hasTextAncestor = React75.useContext(_TextAncestorContext.default);\n      var hostRef = React75.useRef(null);\n      var _useLocaleContext = (0, _useLocale.useLocaleContext)(), contextDirection = _useLocaleContext.direction;\n      (0, _useElementLayout.default)(hostRef, onLayout);\n      (0, _useResponderEvents.default)(hostRef, {\n        onMoveShouldSetResponder,\n        onMoveShouldSetResponderCapture,\n        onResponderEnd,\n        onResponderGrant,\n        onResponderMove,\n        onResponderReject,\n        onResponderRelease,\n        onResponderStart,\n        onResponderTerminate,\n        onResponderTerminationRequest,\n        onScrollShouldSetResponder,\n        onScrollShouldSetResponderCapture,\n        onSelectionChangeShouldSetResponder,\n        onSelectionChangeShouldSetResponderCapture,\n        onStartShouldSetResponder,\n        onStartShouldSetResponderCapture\n      });\n      var component = \"div\";\n      var langDirection = props.lang != null ? (0, _useLocale.getLocaleDirection)(props.lang) : null;\n      var componentDirection = props.dir || langDirection;\n      var writingDirection = componentDirection || contextDirection;\n      var supportedProps = pickProps(rest);\n      supportedProps.dir = componentDirection;\n      supportedProps.style = [styles.view$raw, hasTextAncestor && styles.inline, props.style];\n      if (props.href != null) {\n        component = \"a\";\n        if (hrefAttrs != null) {\n          var download = hrefAttrs.download, rel = hrefAttrs.rel, target = hrefAttrs.target;\n          if (download != null) {\n            supportedProps.download = download;\n          }\n          if (rel != null) {\n            supportedProps.rel = rel;\n          }\n          if (typeof target === \"string\") {\n            supportedProps.target = target.charAt(0) !== \"_\" ? \"_\" + target : target;\n          }\n        }\n      }\n      var platformMethodsRef = (0, _usePlatformMethods.default)(supportedProps);\n      var setRef2 = (0, _useMergeRefs.default)(hostRef, platformMethodsRef, forwardedRef);\n      supportedProps.ref = setRef2;\n      return (0, _createElement.default)(component, supportedProps, {\n        writingDirection\n      });\n    });\n    View11.displayName = \"View\";\n    var styles = _StyleSheet.default.create({\n      view$raw: {\n        alignItems: \"stretch\",\n        backgroundColor: \"transparent\",\n        border: \"0 solid black\",\n        boxSizing: \"border-box\",\n        display: \"flex\",\n        flexBasis: \"auto\",\n        flexDirection: \"column\",\n        flexShrink: 0,\n        listStyle: \"none\",\n        margin: 0,\n        minHeight: 0,\n        minWidth: 0,\n        padding: 0,\n        position: \"relative\",\n        textDecoration: \"none\",\n        zIndex: 0\n      },\n      inline: {\n        display: \"inline-flex\"\n      }\n    });\n    var _default = exports2.default = View11;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/deepDiffer/index.js\nvar require_deepDiffer = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/deepDiffer/index.js\"(exports2, module2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var deepDiffer = /* @__PURE__ */ __name(function deepDiffer2(one, two, maxDepth) {\n      if (maxDepth === void 0) {\n        maxDepth = -1;\n      }\n      if (maxDepth === 0) {\n        return true;\n      }\n      if (one === two) {\n        return false;\n      }\n      if (typeof one === \"function\" && typeof two === \"function\") {\n        return false;\n      }\n      if (typeof one !== \"object\" || one === null) {\n        return one !== two;\n      }\n      if (typeof two !== \"object\" || two === null) {\n        return true;\n      }\n      if (one.constructor !== two.constructor) {\n        return true;\n      }\n      if (Array.isArray(one)) {\n        var len = one.length;\n        if (two.length !== len) {\n          return true;\n        }\n        for (var ii = 0; ii < len; ii++) {\n          if (deepDiffer2(one[ii], two[ii], maxDepth - 1)) {\n            return true;\n          }\n        }\n      } else {\n        for (var key in one) {\n          if (deepDiffer2(one[key], two[key], maxDepth - 1)) {\n            return true;\n          }\n        }\n        for (var twoKey in two) {\n          if (one[twoKey] === void 0 && two[twoKey] !== void 0) {\n            return true;\n          }\n        }\n      }\n      return false;\n    }, \"deepDiffer\");\n    var _default = exports2.default = deepDiffer;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/fbjs/lib/invariant.js\nvar require_invariant = __commonJS({\n  \"node_modules/fbjs/lib/invariant.js\"(exports2, module2) {\n    \"use strict\";\n    var validateFormat = process.env.NODE_ENV !== \"production\" ? function(format) {\n      if (format === void 0) {\n        throw new Error(\"invariant(...): Second argument must be a string.\");\n      }\n    } : function(format) {\n    };\n    function invariant(condition, format) {\n      for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n        args[_key - 2] = arguments[_key];\n      }\n      validateFormat(format);\n      if (!condition) {\n        var error2;\n        if (format === void 0) {\n          error2 = new Error(\"Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.\");\n        } else {\n          var argIndex = 0;\n          error2 = new Error(format.replace(/%s/g, function() {\n            return String(args[argIndex++]);\n          }));\n          error2.name = \"Invariant Violation\";\n        }\n        error2.framesToPop = 1;\n        throw error2;\n      }\n    }\n    __name(invariant, \"invariant\");\n    module2.exports = invariant;\n  }\n});\n\n// node_modules/@babel/runtime/helpers/arrayLikeToArray.js\nvar require_arrayLikeToArray = __commonJS({\n  \"node_modules/@babel/runtime/helpers/arrayLikeToArray.js\"(exports2, module2) {\n    function _arrayLikeToArray(r, a) {\n      (null == a || a > r.length) && (a = r.length);\n      for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n      return n;\n    }\n    __name(_arrayLikeToArray, \"_arrayLikeToArray\");\n    module2.exports = _arrayLikeToArray, module2.exports.__esModule = true, module2.exports[\"default\"] = module2.exports;\n  }\n});\n\n// node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js\nvar require_unsupportedIterableToArray = __commonJS({\n  \"node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js\"(exports2, module2) {\n    var arrayLikeToArray = require_arrayLikeToArray();\n    function _unsupportedIterableToArray(r, a) {\n      if (r) {\n        if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n        var t = {}.toString.call(r).slice(8, -1);\n        return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n      }\n    }\n    __name(_unsupportedIterableToArray, \"_unsupportedIterableToArray\");\n    module2.exports = _unsupportedIterableToArray, module2.exports.__esModule = true, module2.exports[\"default\"] = module2.exports;\n  }\n});\n\n// node_modules/@babel/runtime/helpers/createForOfIteratorHelperLoose.js\nvar require_createForOfIteratorHelperLoose = __commonJS({\n  \"node_modules/@babel/runtime/helpers/createForOfIteratorHelperLoose.js\"(exports2, module2) {\n    var unsupportedIterableToArray = require_unsupportedIterableToArray();\n    function _createForOfIteratorHelperLoose(r, e) {\n      var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n      if (t) return (t = t.call(r)).next.bind(t);\n      if (Array.isArray(r) || (t = unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) {\n        t && (r = t);\n        var o = 0;\n        return function() {\n          return o >= r.length ? {\n            done: true\n          } : {\n            done: false,\n            value: r[o++]\n          };\n        };\n      }\n      throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n    }\n    __name(_createForOfIteratorHelperLoose, \"_createForOfIteratorHelperLoose\");\n    module2.exports = _createForOfIteratorHelperLoose, module2.exports.__esModule = true, module2.exports[\"default\"] = module2.exports;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/RefreshControl/index.js\nvar require_RefreshControl = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/RefreshControl/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());\n    var _View = _interopRequireDefault(require_View());\n    var _react = _interopRequireDefault(require(\"react\"));\n    var _excluded = [\"colors\", \"enabled\", \"onRefresh\", \"progressBackgroundColor\", \"progressViewOffset\", \"refreshing\", \"size\", \"tintColor\", \"title\", \"titleColor\"];\n    function RefreshControl(props) {\n      var colors = props.colors, enabled = props.enabled, onRefresh = props.onRefresh, progressBackgroundColor = props.progressBackgroundColor, progressViewOffset = props.progressViewOffset, refreshing = props.refreshing, size4 = props.size, tintColor = props.tintColor, title = props.title, titleColor = props.titleColor, rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);\n      return /* @__PURE__ */ _react.default.createElement(_View.default, rest);\n    }\n    __name(RefreshControl, \"RefreshControl\");\n    var _default = exports2.default = RefreshControl;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/Dimensions/index.js\nvar require_Dimensions = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/Dimensions/index.js\"(exports2, module2) {\n    \"use strict\";\n    \"use client\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _invariant = _interopRequireDefault(require_invariant());\n    var _canUseDom = _interopRequireDefault(require_canUseDom());\n    var dimensions = {\n      window: {\n        fontScale: 1,\n        height: 0,\n        scale: 1,\n        width: 0\n      },\n      screen: {\n        fontScale: 1,\n        height: 0,\n        scale: 1,\n        width: 0\n      }\n    };\n    var listeners = {};\n    var shouldInit = _canUseDom.default;\n    function update() {\n      if (!_canUseDom.default) {\n        return;\n      }\n      var win = window;\n      var height;\n      var width;\n      if (win.visualViewport) {\n        var visualViewport = win.visualViewport;\n        height = Math.round(visualViewport.height * visualViewport.scale);\n        width = Math.round(visualViewport.width * visualViewport.scale);\n      } else {\n        var docEl = win.document.documentElement;\n        height = docEl.clientHeight;\n        width = docEl.clientWidth;\n      }\n      dimensions.window = {\n        fontScale: 1,\n        height,\n        scale: win.devicePixelRatio || 1,\n        width\n      };\n      dimensions.screen = {\n        fontScale: 1,\n        height: win.screen.height,\n        scale: win.devicePixelRatio || 1,\n        width: win.screen.width\n      };\n    }\n    __name(update, \"update\");\n    function handleResize() {\n      update();\n      if (Array.isArray(listeners[\"change\"])) {\n        listeners[\"change\"].forEach((handler) => handler(dimensions));\n      }\n    }\n    __name(handleResize, \"handleResize\");\n    var Dimensions3 = class {\n      static {\n        __name(this, \"Dimensions\");\n      }\n      static get(dimension) {\n        if (shouldInit) {\n          shouldInit = false;\n          update();\n        }\n        (0, _invariant.default)(dimensions[dimension], \"No dimension set for key \" + dimension);\n        return dimensions[dimension];\n      }\n      static set(initialDimensions) {\n        if (initialDimensions) {\n          if (_canUseDom.default) {\n            (0, _invariant.default)(false, \"Dimensions cannot be set in the browser\");\n          } else {\n            if (initialDimensions.screen != null) {\n              dimensions.screen = initialDimensions.screen;\n            }\n            if (initialDimensions.window != null) {\n              dimensions.window = initialDimensions.window;\n            }\n          }\n        }\n      }\n      static addEventListener(type, handler) {\n        listeners[type] = listeners[type] || [];\n        listeners[type].push(handler);\n        return {\n          remove: /* @__PURE__ */ __name(() => {\n            this.removeEventListener(type, handler);\n          }, \"remove\")\n        };\n      }\n      static removeEventListener(type, handler) {\n        if (Array.isArray(listeners[type])) {\n          listeners[type] = listeners[type].filter((_handler) => _handler !== handler);\n        }\n      }\n    };\n    exports2.default = Dimensions3;\n    if (_canUseDom.default) {\n      if (window.visualViewport) {\n        window.visualViewport.addEventListener(\"resize\", handleResize, false);\n      } else {\n        window.addEventListener(\"resize\", handleResize, false);\n      }\n    }\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/TextInputState/index.js\nvar require_TextInputState = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/TextInputState/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _UIManager = _interopRequireDefault(require_UIManager());\n    var TextInputState = {\n      /**\n       * Internal state\n       */\n      _currentlyFocusedNode: null,\n      /**\n       * Returns the ID of the currently focused text field, if one exists\n       * If no text field is focused it returns null\n       */\n      currentlyFocusedField() {\n        if (document.activeElement !== this._currentlyFocusedNode) {\n          this._currentlyFocusedNode = null;\n        }\n        return this._currentlyFocusedNode;\n      },\n      /**\n       * @param {Object} TextInputID id of the text field to focus\n       * Focuses the specified text field\n       * noop if the text field was already focused\n       */\n      focusTextInput(textFieldNode) {\n        if (textFieldNode !== null) {\n          this._currentlyFocusedNode = textFieldNode;\n          if (document.activeElement !== textFieldNode) {\n            _UIManager.default.focus(textFieldNode);\n          }\n        }\n      },\n      /**\n       * @param {Object} textFieldNode id of the text field to focus\n       * Unfocuses the specified text field\n       * noop if it wasn't focused\n       */\n      blurTextInput(textFieldNode) {\n        if (textFieldNode !== null) {\n          this._currentlyFocusedNode = null;\n          if (document.activeElement === textFieldNode) {\n            _UIManager.default.blur(textFieldNode);\n          }\n        }\n      }\n    };\n    var _default = exports2.default = TextInputState;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/dismissKeyboard/index.js\nvar require_dismissKeyboard = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/dismissKeyboard/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _TextInputState = _interopRequireDefault(require_TextInputState());\n    var dismissKeyboard = /* @__PURE__ */ __name(() => {\n      _TextInputState.default.blurTextInput(_TextInputState.default.currentlyFocusedField());\n    }, \"dismissKeyboard\");\n    var _default = exports2.default = dismissKeyboard;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/ScrollView/ScrollViewBase.js\nvar require_ScrollViewBase = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/ScrollView/ScrollViewBase.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _extends2 = _interopRequireDefault(require_extends());\n    var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var _StyleSheet = _interopRequireDefault(require_StyleSheet());\n    var _View = _interopRequireDefault(require_View());\n    var _useMergeRefs = _interopRequireDefault(require_useMergeRefs());\n    var _excluded = [\"onScroll\", \"onTouchMove\", \"onWheel\", \"scrollEnabled\", \"scrollEventThrottle\", \"showsHorizontalScrollIndicator\", \"showsVerticalScrollIndicator\", \"style\"];\n    function normalizeScrollEvent(e) {\n      return {\n        nativeEvent: {\n          contentOffset: {\n            get x() {\n              return e.target.scrollLeft;\n            },\n            get y() {\n              return e.target.scrollTop;\n            }\n          },\n          contentSize: {\n            get height() {\n              return e.target.scrollHeight;\n            },\n            get width() {\n              return e.target.scrollWidth;\n            }\n          },\n          layoutMeasurement: {\n            get height() {\n              return e.target.offsetHeight;\n            },\n            get width() {\n              return e.target.offsetWidth;\n            }\n          }\n        },\n        timeStamp: Date.now()\n      };\n    }\n    __name(normalizeScrollEvent, \"normalizeScrollEvent\");\n    function shouldEmitScrollEvent(lastTick, eventThrottle) {\n      var timeSinceLastTick = Date.now() - lastTick;\n      return eventThrottle > 0 && timeSinceLastTick >= eventThrottle;\n    }\n    __name(shouldEmitScrollEvent, \"shouldEmitScrollEvent\");\n    var ScrollViewBase = /* @__PURE__ */ React75.forwardRef((props, forwardedRef) => {\n      var onScroll = props.onScroll, onTouchMove = props.onTouchMove, onWheel = props.onWheel, _props$scrollEnabled = props.scrollEnabled, scrollEnabled = _props$scrollEnabled === void 0 ? true : _props$scrollEnabled, _props$scrollEventThr = props.scrollEventThrottle, scrollEventThrottle = _props$scrollEventThr === void 0 ? 0 : _props$scrollEventThr, showsHorizontalScrollIndicator = props.showsHorizontalScrollIndicator, showsVerticalScrollIndicator = props.showsVerticalScrollIndicator, style = props.style, rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);\n      var scrollState = React75.useRef({\n        isScrolling: false,\n        scrollLastTick: 0\n      });\n      var scrollTimeout = React75.useRef(null);\n      var scrollRef = React75.useRef(null);\n      function createPreventableScrollHandler(handler) {\n        return (e) => {\n          if (scrollEnabled) {\n            if (handler) {\n              handler(e);\n            }\n          }\n        };\n      }\n      __name(createPreventableScrollHandler, \"createPreventableScrollHandler\");\n      function handleScroll(e) {\n        e.stopPropagation();\n        if (e.target === scrollRef.current) {\n          e.persist();\n          if (scrollTimeout.current != null) {\n            clearTimeout(scrollTimeout.current);\n          }\n          scrollTimeout.current = setTimeout(() => {\n            handleScrollEnd(e);\n          }, 100);\n          if (scrollState.current.isScrolling) {\n            if (shouldEmitScrollEvent(scrollState.current.scrollLastTick, scrollEventThrottle)) {\n              handleScrollTick(e);\n            }\n          } else {\n            handleScrollStart(e);\n          }\n        }\n      }\n      __name(handleScroll, \"handleScroll\");\n      function handleScrollStart(e) {\n        scrollState.current.isScrolling = true;\n        handleScrollTick(e);\n      }\n      __name(handleScrollStart, \"handleScrollStart\");\n      function handleScrollTick(e) {\n        scrollState.current.scrollLastTick = Date.now();\n        if (onScroll) {\n          onScroll(normalizeScrollEvent(e));\n        }\n      }\n      __name(handleScrollTick, \"handleScrollTick\");\n      function handleScrollEnd(e) {\n        scrollState.current.isScrolling = false;\n        if (onScroll) {\n          onScroll(normalizeScrollEvent(e));\n        }\n      }\n      __name(handleScrollEnd, \"handleScrollEnd\");\n      var hideScrollbar = showsHorizontalScrollIndicator === false || showsVerticalScrollIndicator === false;\n      return /* @__PURE__ */ React75.createElement(_View.default, (0, _extends2.default)({}, rest, {\n        onScroll: handleScroll,\n        onTouchMove: createPreventableScrollHandler(onTouchMove),\n        onWheel: createPreventableScrollHandler(onWheel),\n        ref: (0, _useMergeRefs.default)(scrollRef, forwardedRef),\n        style: [style, !scrollEnabled && styles.scrollDisabled, hideScrollbar && styles.hideScrollbar]\n      }));\n    });\n    var styles = _StyleSheet.default.create({\n      scrollDisabled: {\n        overflowX: \"hidden\",\n        overflowY: \"hidden\",\n        touchAction: \"none\"\n      },\n      hideScrollbar: {\n        scrollbarWidth: \"none\"\n      }\n    });\n    var _default = exports2.default = ScrollViewBase;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/fbjs/lib/emptyFunction.js\nvar require_emptyFunction = __commonJS({\n  \"node_modules/fbjs/lib/emptyFunction.js\"(exports2, module2) {\n    \"use strict\";\n    function makeEmptyFunction(arg) {\n      return function() {\n        return arg;\n      };\n    }\n    __name(makeEmptyFunction, \"makeEmptyFunction\");\n    var emptyFunction = /* @__PURE__ */ __name(function emptyFunction2() {\n    }, \"emptyFunction\");\n    emptyFunction.thatReturns = makeEmptyFunction;\n    emptyFunction.thatReturnsFalse = makeEmptyFunction(false);\n    emptyFunction.thatReturnsTrue = makeEmptyFunction(true);\n    emptyFunction.thatReturnsNull = makeEmptyFunction(null);\n    emptyFunction.thatReturnsThis = function() {\n      return this;\n    };\n    emptyFunction.thatReturnsArgument = function(arg) {\n      return arg;\n    };\n    module2.exports = emptyFunction;\n  }\n});\n\n// node_modules/fbjs/lib/warning.js\nvar require_warning = __commonJS({\n  \"node_modules/fbjs/lib/warning.js\"(exports2, module2) {\n    \"use strict\";\n    var emptyFunction = require_emptyFunction();\n    function printWarning(format) {\n      for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n      var argIndex = 0;\n      var message = \"Warning: \" + format.replace(/%s/g, function() {\n        return args[argIndex++];\n      });\n      if (typeof console !== \"undefined\") {\n        console.error(message);\n      }\n      try {\n        throw new Error(message);\n      } catch (x) {\n      }\n    }\n    __name(printWarning, \"printWarning\");\n    var warning = process.env.NODE_ENV !== \"production\" ? function(condition, format) {\n      if (format === void 0) {\n        throw new Error(\"`warning(condition, format, ...args)` requires a warning message argument\");\n      }\n      if (!condition) {\n        for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n          args[_key2 - 2] = arguments[_key2];\n        }\n        printWarning.apply(void 0, [format].concat(args));\n      }\n    } : emptyFunction;\n    module2.exports = warning;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/ScrollView/index.js\nvar require_ScrollView = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/ScrollView/index.js\"(exports2, module2) {\n    \"use strict\";\n    \"use client\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _objectSpread2 = _interopRequireDefault(require_objectSpread2());\n    var _extends2 = _interopRequireDefault(require_extends());\n    var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());\n    var _Dimensions = _interopRequireDefault(require_Dimensions());\n    var _dismissKeyboard = _interopRequireDefault(require_dismissKeyboard());\n    var _invariant = _interopRequireDefault(require_invariant());\n    var _mergeRefs = _interopRequireDefault(require_mergeRefs());\n    var _Platform = _interopRequireDefault(require_Platform());\n    var _ScrollViewBase = _interopRequireDefault(require_ScrollViewBase());\n    var _StyleSheet = _interopRequireDefault(require_StyleSheet());\n    var _TextInputState = _interopRequireDefault(require_TextInputState());\n    var _UIManager = _interopRequireDefault(require_UIManager());\n    var _View = _interopRequireDefault(require_View());\n    var _react = _interopRequireDefault(require(\"react\"));\n    var _warning = _interopRequireDefault(require_warning());\n    var _excluded = [\"contentContainerStyle\", \"horizontal\", \"onContentSizeChange\", \"refreshControl\", \"stickyHeaderIndices\", \"pagingEnabled\", \"forwardedRef\", \"keyboardDismissMode\", \"onScroll\", \"centerContent\"];\n    var emptyObject = {};\n    var IS_ANIMATING_TOUCH_START_THRESHOLD_MS = 16;\n    var ScrollView4 = class extends _react.default.Component {\n      static {\n        __name(this, \"ScrollView\");\n      }\n      constructor() {\n        super(...arguments);\n        this._scrollNodeRef = null;\n        this._innerViewRef = null;\n        this.isTouching = false;\n        this.lastMomentumScrollBeginTime = 0;\n        this.lastMomentumScrollEndTime = 0;\n        this.observedScrollSinceBecomingResponder = false;\n        this.becameResponderWhileAnimating = false;\n        this.scrollResponderHandleScrollShouldSetResponder = () => {\n          return this.isTouching;\n        };\n        this.scrollResponderHandleStartShouldSetResponderCapture = (e) => {\n          return this.scrollResponderIsAnimating();\n        };\n        this.scrollResponderHandleTerminationRequest = () => {\n          return !this.observedScrollSinceBecomingResponder;\n        };\n        this.scrollResponderHandleTouchEnd = (e) => {\n          var nativeEvent = e.nativeEvent;\n          this.isTouching = nativeEvent.touches.length !== 0;\n          this.props.onTouchEnd && this.props.onTouchEnd(e);\n        };\n        this.scrollResponderHandleResponderRelease = (e) => {\n          this.props.onResponderRelease && this.props.onResponderRelease(e);\n          var currentlyFocusedTextInput = _TextInputState.default.currentlyFocusedField();\n          if (!this.props.keyboardShouldPersistTaps && currentlyFocusedTextInput != null && e.target !== currentlyFocusedTextInput && !this.observedScrollSinceBecomingResponder && !this.becameResponderWhileAnimating) {\n            this.props.onScrollResponderKeyboardDismissed && this.props.onScrollResponderKeyboardDismissed(e);\n            _TextInputState.default.blurTextInput(currentlyFocusedTextInput);\n          }\n        };\n        this.scrollResponderHandleScroll = (e) => {\n          this.observedScrollSinceBecomingResponder = true;\n          this.props.onScroll && this.props.onScroll(e);\n        };\n        this.scrollResponderHandleResponderGrant = (e) => {\n          this.observedScrollSinceBecomingResponder = false;\n          this.props.onResponderGrant && this.props.onResponderGrant(e);\n          this.becameResponderWhileAnimating = this.scrollResponderIsAnimating();\n        };\n        this.scrollResponderHandleScrollBeginDrag = (e) => {\n          this.props.onScrollBeginDrag && this.props.onScrollBeginDrag(e);\n        };\n        this.scrollResponderHandleScrollEndDrag = (e) => {\n          this.props.onScrollEndDrag && this.props.onScrollEndDrag(e);\n        };\n        this.scrollResponderHandleMomentumScrollBegin = (e) => {\n          this.lastMomentumScrollBeginTime = Date.now();\n          this.props.onMomentumScrollBegin && this.props.onMomentumScrollBegin(e);\n        };\n        this.scrollResponderHandleMomentumScrollEnd = (e) => {\n          this.lastMomentumScrollEndTime = Date.now();\n          this.props.onMomentumScrollEnd && this.props.onMomentumScrollEnd(e);\n        };\n        this.scrollResponderHandleTouchStart = (e) => {\n          this.isTouching = true;\n          this.props.onTouchStart && this.props.onTouchStart(e);\n        };\n        this.scrollResponderHandleTouchMove = (e) => {\n          this.props.onTouchMove && this.props.onTouchMove(e);\n        };\n        this.scrollResponderIsAnimating = () => {\n          var now = Date.now();\n          var timeSinceLastMomentumScrollEnd = now - this.lastMomentumScrollEndTime;\n          var isAnimating = timeSinceLastMomentumScrollEnd < IS_ANIMATING_TOUCH_START_THRESHOLD_MS || this.lastMomentumScrollEndTime < this.lastMomentumScrollBeginTime;\n          return isAnimating;\n        };\n        this.scrollResponderScrollTo = (x, y, animated) => {\n          if (typeof x === \"number\") {\n            console.warn(\"`scrollResponderScrollTo(x, y, animated)` is deprecated. Use `scrollResponderScrollTo({x: 5, y: 5, animated: true})` instead.\");\n          } else {\n            var _ref = x || emptyObject;\n            x = _ref.x;\n            y = _ref.y;\n            animated = _ref.animated;\n          }\n          var node = this.getScrollableNode();\n          var left = x || 0;\n          var top = y || 0;\n          if (node != null) {\n            if (typeof node.scroll === \"function\") {\n              node.scroll({\n                top,\n                left,\n                behavior: !animated ? \"auto\" : \"smooth\"\n              });\n            } else {\n              node.scrollLeft = left;\n              node.scrollTop = top;\n            }\n          }\n        };\n        this.scrollResponderZoomTo = (rect, animated) => {\n          if (_Platform.default.OS !== \"ios\") {\n            (0, _invariant.default)(\"zoomToRect is not implemented\");\n          }\n        };\n        this.scrollResponderScrollNativeHandleToKeyboard = (nodeHandle, additionalOffset, preventNegativeScrollOffset) => {\n          this.additionalScrollOffset = additionalOffset || 0;\n          this.preventNegativeScrollOffset = !!preventNegativeScrollOffset;\n          _UIManager.default.measureLayout(nodeHandle, this.getInnerViewNode(), this.scrollResponderTextInputFocusError, this.scrollResponderInputMeasureAndScrollToKeyboard);\n        };\n        this.scrollResponderInputMeasureAndScrollToKeyboard = (left, top, width, height) => {\n          var keyboardScreenY = _Dimensions.default.get(\"window\").height;\n          if (this.keyboardWillOpenTo) {\n            keyboardScreenY = this.keyboardWillOpenTo.endCoordinates.screenY;\n          }\n          var scrollOffsetY = top - keyboardScreenY + height + this.additionalScrollOffset;\n          if (this.preventNegativeScrollOffset) {\n            scrollOffsetY = Math.max(0, scrollOffsetY);\n          }\n          this.scrollResponderScrollTo({\n            x: 0,\n            y: scrollOffsetY,\n            animated: true\n          });\n          this.additionalOffset = 0;\n          this.preventNegativeScrollOffset = false;\n        };\n        this.scrollResponderKeyboardWillShow = (e) => {\n          this.keyboardWillOpenTo = e;\n          this.props.onKeyboardWillShow && this.props.onKeyboardWillShow(e);\n        };\n        this.scrollResponderKeyboardWillHide = (e) => {\n          this.keyboardWillOpenTo = null;\n          this.props.onKeyboardWillHide && this.props.onKeyboardWillHide(e);\n        };\n        this.scrollResponderKeyboardDidShow = (e) => {\n          if (e) {\n            this.keyboardWillOpenTo = e;\n          }\n          this.props.onKeyboardDidShow && this.props.onKeyboardDidShow(e);\n        };\n        this.scrollResponderKeyboardDidHide = (e) => {\n          this.keyboardWillOpenTo = null;\n          this.props.onKeyboardDidHide && this.props.onKeyboardDidHide(e);\n        };\n        this.flashScrollIndicators = () => {\n          this.scrollResponderFlashScrollIndicators();\n        };\n        this.getScrollResponder = () => {\n          return this;\n        };\n        this.getScrollableNode = () => {\n          return this._scrollNodeRef;\n        };\n        this.getInnerViewRef = () => {\n          return this._innerViewRef;\n        };\n        this.getInnerViewNode = () => {\n          return this._innerViewRef;\n        };\n        this.getNativeScrollRef = () => {\n          return this._scrollNodeRef;\n        };\n        this.scrollTo = (y, x, animated) => {\n          if (typeof y === \"number\") {\n            console.warn(\"`scrollTo(y, x, animated)` is deprecated. Use `scrollTo({x: 5, y: 5, animated: true})` instead.\");\n          } else {\n            var _ref2 = y || emptyObject;\n            x = _ref2.x;\n            y = _ref2.y;\n            animated = _ref2.animated;\n          }\n          this.scrollResponderScrollTo({\n            x: x || 0,\n            y: y || 0,\n            animated: animated !== false\n          });\n        };\n        this.scrollToEnd = (options) => {\n          var animated = (options && options.animated) !== false;\n          var horizontal = this.props.horizontal;\n          var scrollResponderNode = this.getScrollableNode();\n          var x = horizontal ? scrollResponderNode.scrollWidth : 0;\n          var y = horizontal ? 0 : scrollResponderNode.scrollHeight;\n          this.scrollResponderScrollTo({\n            x,\n            y,\n            animated\n          });\n        };\n        this._handleContentOnLayout = (e) => {\n          var _e$nativeEvent$layout = e.nativeEvent.layout, width = _e$nativeEvent$layout.width, height = _e$nativeEvent$layout.height;\n          this.props.onContentSizeChange(width, height);\n        };\n        this._handleScroll = (e) => {\n          if (process.env.NODE_ENV !== \"production\") {\n            if (this.props.onScroll && this.props.scrollEventThrottle == null) {\n              console.log(\"You specified `onScroll` on a <ScrollView> but not `scrollEventThrottle`. You will only receive one event. Using `16` you get all the events but be aware that it may cause frame drops, use a bigger number if you don't need as much precision.\");\n            }\n          }\n          if (this.props.keyboardDismissMode === \"on-drag\") {\n            (0, _dismissKeyboard.default)();\n          }\n          this.scrollResponderHandleScroll(e);\n        };\n        this._setInnerViewRef = (node) => {\n          this._innerViewRef = node;\n        };\n        this._setScrollNodeRef = (node) => {\n          this._scrollNodeRef = node;\n          if (node != null) {\n            node.getScrollResponder = this.getScrollResponder;\n            node.getInnerViewNode = this.getInnerViewNode;\n            node.getInnerViewRef = this.getInnerViewRef;\n            node.getNativeScrollRef = this.getNativeScrollRef;\n            node.getScrollableNode = this.getScrollableNode;\n            node.scrollTo = this.scrollTo;\n            node.scrollToEnd = this.scrollToEnd;\n            node.flashScrollIndicators = this.flashScrollIndicators;\n            node.scrollResponderZoomTo = this.scrollResponderZoomTo;\n            node.scrollResponderScrollNativeHandleToKeyboard = this.scrollResponderScrollNativeHandleToKeyboard;\n          }\n          var ref = (0, _mergeRefs.default)(this.props.forwardedRef);\n          ref(node);\n        };\n      }\n      /**\n       * ------------------------------------------------------\n       * START SCROLLRESPONDER\n       * ------------------------------------------------------\n       */\n      // Reset to false every time becomes responder. This is used to:\n      // - Determine if the scroll view has been scrolled and therefore should\n      // refuse to give up its responder lock.\n      // - Determine if releasing should dismiss the keyboard when we are in\n      // tap-to-dismiss mode (!this.props.keyboardShouldPersistTaps).\n      /**\n       * Invoke this from an `onScroll` event.\n       */\n      /**\n       * Merely touch starting is not sufficient for a scroll view to become the\n       * responder. Being the \"responder\" means that the very next touch move/end\n       * event will result in an action/movement.\n       *\n       * Invoke this from an `onStartShouldSetResponder` event.\n       *\n       * `onStartShouldSetResponder` is used when the next move/end will trigger\n       * some UI movement/action, but when you want to yield priority to views\n       * nested inside of the view.\n       *\n       * There may be some cases where scroll views actually should return `true`\n       * from `onStartShouldSetResponder`: Any time we are detecting a standard tap\n       * that gives priority to nested views.\n       *\n       * - If a single tap on the scroll view triggers an action such as\n       *   recentering a map style view yet wants to give priority to interaction\n       *   views inside (such as dropped pins or labels), then we would return true\n       *   from this method when there is a single touch.\n       *\n       * - Similar to the previous case, if a two finger \"tap\" should trigger a\n       *   zoom, we would check the `touches` count, and if `>= 2`, we would return\n       *   true.\n       *\n       */\n      scrollResponderHandleStartShouldSetResponder() {\n        return false;\n      }\n      /**\n       * There are times when the scroll view wants to become the responder\n       * (meaning respond to the next immediate `touchStart/touchEnd`), in a way\n       * that *doesn't* give priority to nested views (hence the capture phase):\n       *\n       * - Currently animating.\n       * - Tapping anywhere that is not the focused input, while the keyboard is\n       *   up (which should dismiss the keyboard).\n       *\n       * Invoke this from an `onStartShouldSetResponderCapture` event.\n       */\n      /**\n       * Invoke this from an `onResponderReject` event.\n       *\n       * Some other element is not yielding its role as responder. Normally, we'd\n       * just disable the `UIScrollView`, but a touch has already began on it, the\n       * `UIScrollView` will not accept being disabled after that. The easiest\n       * solution for now is to accept the limitation of disallowing this\n       * altogether. To improve this, find a way to disable the `UIScrollView` after\n       * a touch has already started.\n       */\n      scrollResponderHandleResponderReject() {\n        (0, _warning.default)(false, \"ScrollView doesn't take rejection well - scrolls anyway\");\n      }\n      /**\n       * We will allow the scroll view to give up its lock iff it acquired the lock\n       * during an animation. This is a very useful default that happens to satisfy\n       * many common user experiences.\n       *\n       * - Stop a scroll on the left edge, then turn that into an outer view's\n       *   backswipe.\n       * - Stop a scroll mid-bounce at the top, continue pulling to have the outer\n       *   view dismiss.\n       * - However, without catching the scroll view mid-bounce (while it is\n       *   motionless), if you drag far enough for the scroll view to become\n       *   responder (and therefore drag the scroll view a bit), any backswipe\n       *   navigation of a swipe gesture higher in the view hierarchy, should be\n       *   rejected.\n       */\n      /**\n       * Invoke this from an `onTouchEnd` event.\n       *\n       * @param {SyntheticEvent} e Event.\n       */\n      /**\n       * Invoke this from an `onResponderRelease` event.\n       */\n      /**\n       * Invoke this from an `onResponderGrant` event.\n       */\n      /**\n       * Unfortunately, `onScrollBeginDrag` also fires when *stopping* the scroll\n       * animation, and there's not an easy way to distinguish a drag vs. stopping\n       * momentum.\n       *\n       * Invoke this from an `onScrollBeginDrag` event.\n       */\n      /**\n       * Invoke this from an `onScrollEndDrag` event.\n       */\n      /**\n       * Invoke this from an `onMomentumScrollBegin` event.\n       */\n      /**\n       * Invoke this from an `onMomentumScrollEnd` event.\n       */\n      /**\n       * Invoke this from an `onTouchStart` event.\n       *\n       * Since we know that the `SimpleEventPlugin` occurs later in the plugin\n       * order, after `ResponderEventPlugin`, we can detect that we were *not*\n       * permitted to be the responder (presumably because a contained view became\n       * responder). The `onResponderReject` won't fire in that case - it only\n       * fires when a *current* responder rejects our request.\n       *\n       * @param {SyntheticEvent} e Touch Start event.\n       */\n      /**\n       * Invoke this from an `onTouchMove` event.\n       *\n       * Since we know that the `SimpleEventPlugin` occurs later in the plugin\n       * order, after `ResponderEventPlugin`, we can detect that we were *not*\n       * permitted to be the responder (presumably because a contained view became\n       * responder). The `onResponderReject` won't fire in that case - it only\n       * fires when a *current* responder rejects our request.\n       *\n       * @param {SyntheticEvent} e Touch Start event.\n       */\n      /**\n       * A helper function for this class that lets us quickly determine if the\n       * view is currently animating. This is particularly useful to know when\n       * a touch has just started or ended.\n       */\n      /**\n       * A helper function to scroll to a specific point in the scrollview.\n       * This is currently used to help focus on child textviews, but can also\n       * be used to quickly scroll to any element we want to focus. Syntax:\n       *\n       * scrollResponderScrollTo(options: {x: number = 0; y: number = 0; animated: boolean = true})\n       *\n       * Note: The weird argument signature is due to the fact that, for historical reasons,\n       * the function also accepts separate arguments as as alternative to the options object.\n       * This is deprecated due to ambiguity (y before x), and SHOULD NOT BE USED.\n       */\n      /**\n       * A helper function to zoom to a specific rect in the scrollview. The argument has the shape\n       * {x: number; y: number; width: number; height: number; animated: boolean = true}\n       *\n       * @platform ios\n       */\n      /**\n       * Displays the scroll indicators momentarily.\n       */\n      scrollResponderFlashScrollIndicators() {\n      }\n      /**\n       * This method should be used as the callback to onFocus in a TextInputs'\n       * parent view. Note that any module using this mixin needs to return\n       * the parent view's ref in getScrollViewRef() in order to use this method.\n       * @param {any} nodeHandle The TextInput node handle\n       * @param {number} additionalOffset The scroll view's top \"contentInset\".\n       *        Default is 0.\n       * @param {bool} preventNegativeScrolling Whether to allow pulling the content\n       *        down to make it meet the keyboard's top. Default is false.\n       */\n      /**\n       * The calculations performed here assume the scroll view takes up the entire\n       * screen - even if has some content inset. We then measure the offsets of the\n       * keyboard, and compensate both for the scroll view's \"contentInset\".\n       *\n       * @param {number} left Position of input w.r.t. table view.\n       * @param {number} top Position of input w.r.t. table view.\n       * @param {number} width Width of the text input.\n       * @param {number} height Height of the text input.\n       */\n      scrollResponderTextInputFocusError(e) {\n        console.error(\"Error measuring text field: \", e);\n      }\n      /**\n       * Warning, this may be called several times for a single keyboard opening.\n       * It's best to store the information in this method and then take any action\n       * at a later point (either in `keyboardDidShow` or other).\n       *\n       * Here's the order that events occur in:\n       * - focus\n       * - willShow {startCoordinates, endCoordinates} several times\n       * - didShow several times\n       * - blur\n       * - willHide {startCoordinates, endCoordinates} several times\n       * - didHide several times\n       *\n       * The `ScrollResponder` providesModule callbacks for each of these events.\n       * Even though any user could have easily listened to keyboard events\n       * themselves, using these `props` callbacks ensures that ordering of events\n       * is consistent - and not dependent on the order that the keyboard events are\n       * subscribed to. This matters when telling the scroll view to scroll to where\n       * the keyboard is headed - the scroll responder better have been notified of\n       * the keyboard destination before being instructed to scroll to where the\n       * keyboard will be. Stick to the `ScrollResponder` callbacks, and everything\n       * will work.\n       *\n       * WARNING: These callbacks will fire even if a keyboard is displayed in a\n       * different navigation pane. Filter out the events to determine if they are\n       * relevant to you. (For example, only if you receive these callbacks after\n       * you had explicitly focused a node etc).\n       */\n      /**\n       * ------------------------------------------------------\n       * END SCROLLRESPONDER\n       * ------------------------------------------------------\n       */\n      /**\n       * Returns a reference to the underlying scroll responder, which supports\n       * operations like `scrollTo`. All ScrollView-like components should\n       * implement this method so that they can be composed while providing access\n       * to the underlying scroll responder's methods.\n       */\n      /**\n       * Scrolls to a given x, y offset, either immediately or with a smooth animation.\n       * Syntax:\n       *\n       * scrollTo(options: {x: number = 0; y: number = 0; animated: boolean = true})\n       *\n       * Note: The weird argument signature is due to the fact that, for historical reasons,\n       * the function also accepts separate arguments as as alternative to the options object.\n       * This is deprecated due to ambiguity (y before x), and SHOULD NOT BE USED.\n       */\n      /**\n       * If this is a vertical ScrollView scrolls to the bottom.\n       * If this is a horizontal ScrollView scrolls to the right.\n       *\n       * Use `scrollToEnd({ animated: true })` for smooth animated scrolling,\n       * `scrollToEnd({ animated: false })` for immediate scrolling.\n       * If no options are passed, `animated` defaults to true.\n       */\n      render() {\n        var _this$props = this.props, contentContainerStyle = _this$props.contentContainerStyle, horizontal = _this$props.horizontal, onContentSizeChange = _this$props.onContentSizeChange, refreshControl = _this$props.refreshControl, stickyHeaderIndices = _this$props.stickyHeaderIndices, pagingEnabled = _this$props.pagingEnabled, forwardedRef = _this$props.forwardedRef, keyboardDismissMode = _this$props.keyboardDismissMode, onScroll = _this$props.onScroll, centerContent = _this$props.centerContent, other = (0, _objectWithoutPropertiesLoose2.default)(_this$props, _excluded);\n        if (process.env.NODE_ENV !== \"production\" && this.props.style) {\n          var style = _StyleSheet.default.flatten(this.props.style);\n          var childLayoutProps = [\"alignItems\", \"justifyContent\"].filter((prop) => style && style[prop] !== void 0);\n          (0, _invariant.default)(childLayoutProps.length === 0, \"ScrollView child layout (\" + JSON.stringify(childLayoutProps) + \") must be applied through the contentContainerStyle prop.\");\n        }\n        var contentSizeChangeProps = {};\n        if (onContentSizeChange) {\n          contentSizeChangeProps = {\n            onLayout: this._handleContentOnLayout\n          };\n        }\n        var hasStickyHeaderIndices = !horizontal && Array.isArray(stickyHeaderIndices);\n        var children = hasStickyHeaderIndices || pagingEnabled ? _react.default.Children.map(this.props.children, (child, i) => {\n          var isSticky = hasStickyHeaderIndices && stickyHeaderIndices.indexOf(i) > -1;\n          if (child != null && (isSticky || pagingEnabled)) {\n            return /* @__PURE__ */ _react.default.createElement(_View.default, {\n              style: [isSticky && styles.stickyHeader, pagingEnabled && styles.pagingEnabledChild]\n            }, child);\n          } else {\n            return child;\n          }\n        }) : this.props.children;\n        var contentContainer = /* @__PURE__ */ _react.default.createElement(_View.default, (0, _extends2.default)({}, contentSizeChangeProps, {\n          children,\n          collapsable: false,\n          ref: this._setInnerViewRef,\n          style: [horizontal && styles.contentContainerHorizontal, centerContent && styles.contentContainerCenterContent, contentContainerStyle]\n        }));\n        var baseStyle = horizontal ? styles.baseHorizontal : styles.baseVertical;\n        var pagingEnabledStyle = horizontal ? styles.pagingEnabledHorizontal : styles.pagingEnabledVertical;\n        var props = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, other), {}, {\n          style: [baseStyle, pagingEnabled && pagingEnabledStyle, this.props.style],\n          onTouchStart: this.scrollResponderHandleTouchStart,\n          onTouchMove: this.scrollResponderHandleTouchMove,\n          onTouchEnd: this.scrollResponderHandleTouchEnd,\n          onScrollBeginDrag: this.scrollResponderHandleScrollBeginDrag,\n          onScrollEndDrag: this.scrollResponderHandleScrollEndDrag,\n          onMomentumScrollBegin: this.scrollResponderHandleMomentumScrollBegin,\n          onMomentumScrollEnd: this.scrollResponderHandleMomentumScrollEnd,\n          onStartShouldSetResponder: this.scrollResponderHandleStartShouldSetResponder,\n          onStartShouldSetResponderCapture: this.scrollResponderHandleStartShouldSetResponderCapture,\n          onScrollShouldSetResponder: this.scrollResponderHandleScrollShouldSetResponder,\n          onScroll: this._handleScroll,\n          onResponderGrant: this.scrollResponderHandleResponderGrant,\n          onResponderTerminationRequest: this.scrollResponderHandleTerminationRequest,\n          onResponderTerminate: this.scrollResponderHandleTerminate,\n          onResponderRelease: this.scrollResponderHandleResponderRelease,\n          onResponderReject: this.scrollResponderHandleResponderReject\n        });\n        var ScrollViewClass = _ScrollViewBase.default;\n        (0, _invariant.default)(ScrollViewClass !== void 0, \"ScrollViewClass must not be undefined\");\n        var scrollView = /* @__PURE__ */ _react.default.createElement(ScrollViewClass, (0, _extends2.default)({}, props, {\n          ref: this._setScrollNodeRef\n        }), contentContainer);\n        if (refreshControl) {\n          return /* @__PURE__ */ _react.default.cloneElement(refreshControl, {\n            style: props.style\n          }, scrollView);\n        }\n        return scrollView;\n      }\n    };\n    var commonStyle = {\n      flexGrow: 1,\n      flexShrink: 1,\n      // Enable hardware compositing in modern browsers.\n      // Creates a new layer with its own backing surface that can significantly\n      // improve scroll performance.\n      transform: \"translateZ(0)\",\n      // iOS native scrolling\n      WebkitOverflowScrolling: \"touch\"\n    };\n    var styles = _StyleSheet.default.create({\n      baseVertical: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, commonStyle), {}, {\n        flexDirection: \"column\",\n        overflowX: \"hidden\",\n        overflowY: \"auto\"\n      }),\n      baseHorizontal: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, commonStyle), {}, {\n        flexDirection: \"row\",\n        overflowX: \"auto\",\n        overflowY: \"hidden\"\n      }),\n      contentContainerHorizontal: {\n        flexDirection: \"row\"\n      },\n      contentContainerCenterContent: {\n        justifyContent: \"center\",\n        flexGrow: 1\n      },\n      stickyHeader: {\n        position: \"sticky\",\n        top: 0,\n        zIndex: 10\n      },\n      pagingEnabledHorizontal: {\n        scrollSnapType: \"x mandatory\"\n      },\n      pagingEnabledVertical: {\n        scrollSnapType: \"y mandatory\"\n      },\n      pagingEnabledChild: {\n        scrollSnapAlign: \"start\"\n      }\n    });\n    var ForwardedScrollView = /* @__PURE__ */ _react.default.forwardRef((props, forwardedRef) => {\n      return /* @__PURE__ */ _react.default.createElement(ScrollView4, (0, _extends2.default)({}, props, {\n        forwardedRef\n      }));\n    });\n    ForwardedScrollView.displayName = \"ScrollView\";\n    var _default = exports2.default = ForwardedScrollView;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/InteractionManager/TaskQueue.js\nvar require_TaskQueue = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/InteractionManager/TaskQueue.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _objectSpread2 = _interopRequireDefault(require_objectSpread2());\n    var _invariant = _interopRequireDefault(require_invariant());\n    var TaskQueue = class {\n      static {\n        __name(this, \"TaskQueue\");\n      }\n      constructor(_ref) {\n        var onMoreTasks = _ref.onMoreTasks;\n        this._onMoreTasks = onMoreTasks;\n        this._queueStack = [{\n          tasks: [],\n          popable: true\n        }];\n      }\n      enqueue(task) {\n        this._getCurrentQueue().push(task);\n      }\n      enqueueTasks(tasks) {\n        tasks.forEach((task) => this.enqueue(task));\n      }\n      cancelTasks(tasksToCancel) {\n        this._queueStack = this._queueStack.map((queue) => (0, _objectSpread2.default)((0, _objectSpread2.default)({}, queue), {}, {\n          tasks: queue.tasks.filter((task) => tasksToCancel.indexOf(task) === -1)\n        })).filter((queue, idx) => queue.tasks.length > 0 || idx === 0);\n      }\n      hasTasksToProcess() {\n        return this._getCurrentQueue().length > 0;\n      }\n      /**\n       * Executes the next task in the queue.\n       */\n      processNext() {\n        var queue = this._getCurrentQueue();\n        if (queue.length) {\n          var task = queue.shift();\n          try {\n            if (typeof task === \"object\" && task.gen) {\n              this._genPromise(task);\n            } else if (typeof task === \"object\" && task.run) {\n              task.run();\n            } else {\n              (0, _invariant.default)(typeof task === \"function\", \"Expected Function, SimpleTask, or PromiseTask, but got:\\n\" + JSON.stringify(task, null, 2));\n              task();\n            }\n          } catch (e) {\n            e.message = \"TaskQueue: Error with task \" + (task.name || \"\") + \": \" + e.message;\n            throw e;\n          }\n        }\n      }\n      _getCurrentQueue() {\n        var stackIdx = this._queueStack.length - 1;\n        var queue = this._queueStack[stackIdx];\n        if (queue.popable && queue.tasks.length === 0 && stackIdx > 0) {\n          this._queueStack.pop();\n          return this._getCurrentQueue();\n        } else {\n          return queue.tasks;\n        }\n      }\n      _genPromise(task) {\n        var length = this._queueStack.push({\n          tasks: [],\n          popable: false\n        });\n        var stackIdx = length - 1;\n        var stackItem = this._queueStack[stackIdx];\n        task.gen().then(() => {\n          stackItem.popable = true;\n          this.hasTasksToProcess() && this._onMoreTasks();\n        }).catch((ex) => {\n          setTimeout(() => {\n            ex.message = \"TaskQueue: Error resolving Promise in task \" + task.name + \": \" + ex.message;\n            throw ex;\n          }, 0);\n        });\n      }\n    };\n    var _default = exports2.default = TaskQueue;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/vendor/emitter/EventEmitter.js\nvar require_EventEmitter = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/vendor/emitter/EventEmitter.js\"(exports2, module2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var EventEmitter = class {\n      static {\n        __name(this, \"EventEmitter\");\n      }\n      constructor() {\n        this._registry = {};\n      }\n      /**\n       * Registers a listener that is called when the supplied event is emitted.\n       * Returns a subscription that has a `remove` method to undo registration.\n       */\n      addListener(eventType, listener, context2) {\n        var registrations = allocate(this._registry, eventType);\n        var registration = {\n          context: context2,\n          listener,\n          remove() {\n            registrations.delete(registration);\n          }\n        };\n        registrations.add(registration);\n        return registration;\n      }\n      /**\n       * Emits the supplied event. Additional arguments supplied to `emit` will be\n       * passed through to each of the registered listeners.\n       *\n       * If a listener modifies the listeners registered for the same event, those\n       * changes will not be reflected in the current invocation of `emit`.\n       */\n      emit(eventType) {\n        var registrations = this._registry[eventType];\n        if (registrations != null) {\n          for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n            args[_key - 1] = arguments[_key];\n          }\n          for (var _i = 0, _arr = [...registrations]; _i < _arr.length; _i++) {\n            var registration = _arr[_i];\n            registration.listener.apply(registration.context, args);\n          }\n        }\n      }\n      /**\n       * Removes all registered listeners.\n       */\n      removeAllListeners(eventType) {\n        if (eventType == null) {\n          this._registry = {};\n        } else {\n          delete this._registry[eventType];\n        }\n      }\n      /**\n       * Returns the number of registered listeners for the supplied event.\n       */\n      listenerCount(eventType) {\n        var registrations = this._registry[eventType];\n        return registrations == null ? 0 : registrations.size;\n      }\n    };\n    exports2.default = EventEmitter;\n    function allocate(registry, eventType) {\n      var registrations = registry[eventType];\n      if (registrations == null) {\n        registrations = /* @__PURE__ */ new Set();\n        registry[eventType] = registrations;\n      }\n      return registrations;\n    }\n    __name(allocate, \"allocate\");\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/requestIdleCallback/index.js\nvar require_requestIdleCallback = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/requestIdleCallback/index.js\"(exports2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = exports2.cancelIdleCallback = void 0;\n    var _canUseDom = _interopRequireDefault(require_canUseDom());\n    var _requestIdleCallback = /* @__PURE__ */ __name(function _requestIdleCallback2(cb, options) {\n      return setTimeout(() => {\n        var start = Date.now();\n        cb({\n          didTimeout: false,\n          timeRemaining() {\n            return Math.max(0, 50 - (Date.now() - start));\n          }\n        });\n      }, 1);\n    }, \"_requestIdleCallback\");\n    var _cancelIdleCallback = /* @__PURE__ */ __name(function _cancelIdleCallback2(id) {\n      clearTimeout(id);\n    }, \"_cancelIdleCallback\");\n    var isSupported = _canUseDom.default && typeof window.requestIdleCallback !== \"undefined\";\n    var requestIdleCallback = isSupported ? window.requestIdleCallback : _requestIdleCallback;\n    var cancelIdleCallback = exports2.cancelIdleCallback = isSupported ? window.cancelIdleCallback : _cancelIdleCallback;\n    var _default = exports2.default = requestIdleCallback;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/InteractionManager/index.js\nvar require_InteractionManager = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/InteractionManager/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _invariant = _interopRequireDefault(require_invariant());\n    var _TaskQueue = _interopRequireDefault(require_TaskQueue());\n    var _EventEmitter = _interopRequireDefault(require_EventEmitter());\n    var _requestIdleCallback = _interopRequireDefault(require_requestIdleCallback());\n    var _emitter = new _EventEmitter.default();\n    var InteractionManager = {\n      Events: {\n        interactionStart: \"interactionStart\",\n        interactionComplete: \"interactionComplete\"\n      },\n      /**\n       * Schedule a function to run after all interactions have completed.\n       */\n      runAfterInteractions(task) {\n        var tasks = [];\n        var promise = new Promise((resolve) => {\n          _scheduleUpdate();\n          if (task) {\n            tasks.push(task);\n          }\n          tasks.push({\n            run: resolve,\n            name: \"resolve \" + (task && task.name || \"?\")\n          });\n          _taskQueue.enqueueTasks(tasks);\n        });\n        return {\n          then: promise.then.bind(promise),\n          done: promise.then.bind(promise),\n          cancel: /* @__PURE__ */ __name(() => {\n            _taskQueue.cancelTasks(tasks);\n          }, \"cancel\")\n        };\n      },\n      /**\n       * Notify manager that an interaction has started.\n       */\n      createInteractionHandle() {\n        _scheduleUpdate();\n        var handle = ++_inc;\n        _addInteractionSet.add(handle);\n        return handle;\n      },\n      /**\n       * Notify manager that an interaction has completed.\n       */\n      clearInteractionHandle(handle) {\n        (0, _invariant.default)(!!handle, \"Must provide a handle to clear.\");\n        _scheduleUpdate();\n        _addInteractionSet.delete(handle);\n        _deleteInteractionSet.add(handle);\n      },\n      addListener: _emitter.addListener.bind(_emitter),\n      /**\n       *\n       * @param deadline\n       */\n      setDeadline(deadline) {\n        _deadline = deadline;\n      }\n    };\n    var _interactionSet = /* @__PURE__ */ new Set();\n    var _addInteractionSet = /* @__PURE__ */ new Set();\n    var _deleteInteractionSet = /* @__PURE__ */ new Set();\n    var _taskQueue = new _TaskQueue.default({\n      onMoreTasks: _scheduleUpdate\n    });\n    var _nextUpdateHandle = 0;\n    var _inc = 0;\n    var _deadline = -1;\n    function _scheduleUpdate() {\n      if (!_nextUpdateHandle) {\n        if (_deadline > 0) {\n          _nextUpdateHandle = setTimeout(_processUpdate);\n        } else {\n          _nextUpdateHandle = (0, _requestIdleCallback.default)(_processUpdate);\n        }\n      }\n    }\n    __name(_scheduleUpdate, \"_scheduleUpdate\");\n    function _processUpdate() {\n      _nextUpdateHandle = 0;\n      var interactionCount = _interactionSet.size;\n      _addInteractionSet.forEach((handle) => _interactionSet.add(handle));\n      _deleteInteractionSet.forEach((handle) => _interactionSet.delete(handle));\n      var nextInteractionCount = _interactionSet.size;\n      if (interactionCount !== 0 && nextInteractionCount === 0) {\n        _emitter.emit(InteractionManager.Events.interactionComplete);\n      } else if (interactionCount === 0 && nextInteractionCount !== 0) {\n        _emitter.emit(InteractionManager.Events.interactionStart);\n      }\n      if (nextInteractionCount === 0) {\n        var begin = Date.now();\n        while (_taskQueue.hasTasksToProcess()) {\n          _taskQueue.processNext();\n          if (_deadline > 0 && Date.now() - begin >= _deadline) {\n            _scheduleUpdate();\n            break;\n          }\n        }\n      }\n      _addInteractionSet.clear();\n      _deleteInteractionSet.clear();\n    }\n    __name(_processUpdate, \"_processUpdate\");\n    var _default = exports2.default = InteractionManager;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Batchinator/index.js\nvar require_Batchinator = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Batchinator/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _InteractionManager = _interopRequireDefault(require_InteractionManager());\n    var Batchinator = class {\n      static {\n        __name(this, \"Batchinator\");\n      }\n      constructor(callback, delayMS) {\n        this._delay = delayMS;\n        this._callback = callback;\n      }\n      /*\n       * Cleanup any pending tasks.\n       *\n       * By default, if there is a pending task the callback is run immediately. Set the option abort to\n       * true to not call the callback if it was pending.\n       */\n      dispose(options) {\n        if (options === void 0) {\n          options = {\n            abort: false\n          };\n        }\n        if (this._taskHandle) {\n          this._taskHandle.cancel();\n          if (!options.abort) {\n            this._callback();\n          }\n          this._taskHandle = null;\n        }\n      }\n      schedule() {\n        if (this._taskHandle) {\n          return;\n        }\n        var timeoutHandle = setTimeout(() => {\n          this._taskHandle = _InteractionManager.default.runAfterInteractions(() => {\n            this._taskHandle = null;\n            this._callback();\n          });\n        }, this._delay);\n        this._taskHandle = {\n          cancel: /* @__PURE__ */ __name(() => clearTimeout(timeoutHandle), \"cancel\")\n        };\n      }\n    };\n    var _default = exports2.default = Batchinator;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Utilities/clamp.js\nvar require_clamp2 = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Utilities/clamp.js\"(exports2, module2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    function clamp3(min2, value, max2) {\n      if (value < min2) {\n        return min2;\n      }\n      if (value > max2) {\n        return max2;\n      }\n      return value;\n    }\n    __name(clamp3, \"clamp\");\n    var _default = exports2.default = clamp3;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/infoLog/index.js\nvar require_infoLog = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/infoLog/index.js\"(exports2, module2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    function infoLog() {\n      return console.log(...arguments);\n    }\n    __name(infoLog, \"infoLog\");\n    var _default = exports2.default = infoLog;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/VirtualizedList/CellRenderMask.js\nvar require_CellRenderMask = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/VirtualizedList/CellRenderMask.js\"(exports2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.CellRenderMask = void 0;\n    var _objectSpread2 = _interopRequireDefault(require_objectSpread2());\n    var _invariant = _interopRequireDefault(require_invariant());\n    var CellRenderMask = class {\n      static {\n        __name(this, \"CellRenderMask\");\n      }\n      constructor(numCells) {\n        (0, _invariant.default)(numCells >= 0, \"CellRenderMask must contain a non-negative number os cells\");\n        this._numCells = numCells;\n        if (numCells === 0) {\n          this._regions = [];\n        } else {\n          this._regions = [{\n            first: 0,\n            last: numCells - 1,\n            isSpacer: true\n          }];\n        }\n      }\n      enumerateRegions() {\n        return this._regions;\n      }\n      addCells(cells) {\n        (0, _invariant.default)(cells.first >= 0 && cells.first < this._numCells && cells.last >= -1 && cells.last < this._numCells && cells.last >= cells.first - 1, \"CellRenderMask.addCells called with invalid cell range\");\n        if (cells.last < cells.first) {\n          return;\n        }\n        var _this$_findRegion = this._findRegion(cells.first), firstIntersect = _this$_findRegion[0], firstIntersectIdx = _this$_findRegion[1];\n        var _this$_findRegion2 = this._findRegion(cells.last), lastIntersect = _this$_findRegion2[0], lastIntersectIdx = _this$_findRegion2[1];\n        if (firstIntersectIdx === lastIntersectIdx && !firstIntersect.isSpacer) {\n          return;\n        }\n        var newLeadRegion = [];\n        var newTailRegion = [];\n        var newMainRegion = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, cells), {}, {\n          isSpacer: false\n        });\n        if (firstIntersect.first < newMainRegion.first) {\n          if (firstIntersect.isSpacer) {\n            newLeadRegion.push({\n              first: firstIntersect.first,\n              last: newMainRegion.first - 1,\n              isSpacer: true\n            });\n          } else {\n            newMainRegion.first = firstIntersect.first;\n          }\n        }\n        if (lastIntersect.last > newMainRegion.last) {\n          if (lastIntersect.isSpacer) {\n            newTailRegion.push({\n              first: newMainRegion.last + 1,\n              last: lastIntersect.last,\n              isSpacer: true\n            });\n          } else {\n            newMainRegion.last = lastIntersect.last;\n          }\n        }\n        var replacementRegions = [...newLeadRegion, newMainRegion, ...newTailRegion];\n        var numRegionsToDelete = lastIntersectIdx - firstIntersectIdx + 1;\n        this._regions.splice(firstIntersectIdx, numRegionsToDelete, ...replacementRegions);\n      }\n      numCells() {\n        return this._numCells;\n      }\n      equals(other) {\n        return this._numCells === other._numCells && this._regions.length === other._regions.length && this._regions.every((region, i) => region.first === other._regions[i].first && region.last === other._regions[i].last && region.isSpacer === other._regions[i].isSpacer);\n      }\n      _findRegion(cellIdx) {\n        var firstIdx = 0;\n        var lastIdx = this._regions.length - 1;\n        while (firstIdx <= lastIdx) {\n          var middleIdx = Math.floor((firstIdx + lastIdx) / 2);\n          var middleRegion = this._regions[middleIdx];\n          if (cellIdx >= middleRegion.first && cellIdx <= middleRegion.last) {\n            return [middleRegion, middleIdx];\n          } else if (cellIdx < middleRegion.first) {\n            lastIdx = middleIdx - 1;\n          } else if (cellIdx > middleRegion.last) {\n            firstIdx = middleIdx + 1;\n          }\n        }\n        (0, _invariant.default)(false, \"A region was not found containing cellIdx \" + cellIdx);\n      }\n    };\n    exports2.CellRenderMask = CellRenderMask;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/VirtualizedList/ChildListCollection.js\nvar require_ChildListCollection = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/VirtualizedList/ChildListCollection.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _createForOfIteratorHelperLoose2 = _interopRequireDefault(require_createForOfIteratorHelperLoose());\n    var _invariant = _interopRequireDefault(require_invariant());\n    var ChildListCollection = class {\n      static {\n        __name(this, \"ChildListCollection\");\n      }\n      constructor() {\n        this._cellKeyToChildren = /* @__PURE__ */ new Map();\n        this._childrenToCellKey = /* @__PURE__ */ new Map();\n      }\n      add(list, cellKey) {\n        var _this$_cellKeyToChild;\n        (0, _invariant.default)(!this._childrenToCellKey.has(list), \"Trying to add already present child list\");\n        var cellLists = (_this$_cellKeyToChild = this._cellKeyToChildren.get(cellKey)) !== null && _this$_cellKeyToChild !== void 0 ? _this$_cellKeyToChild : /* @__PURE__ */ new Set();\n        cellLists.add(list);\n        this._cellKeyToChildren.set(cellKey, cellLists);\n        this._childrenToCellKey.set(list, cellKey);\n      }\n      remove(list) {\n        var cellKey = this._childrenToCellKey.get(list);\n        (0, _invariant.default)(cellKey != null, \"Trying to remove non-present child list\");\n        this._childrenToCellKey.delete(list);\n        var cellLists = this._cellKeyToChildren.get(cellKey);\n        (0, _invariant.default)(cellLists, \"_cellKeyToChildren should contain cellKey\");\n        cellLists.delete(list);\n        if (cellLists.size === 0) {\n          this._cellKeyToChildren.delete(cellKey);\n        }\n      }\n      forEach(fn) {\n        for (var _iterator = (0, _createForOfIteratorHelperLoose2.default)(this._cellKeyToChildren.values()), _step; !(_step = _iterator()).done; ) {\n          var listSet = _step.value;\n          for (var _iterator2 = (0, _createForOfIteratorHelperLoose2.default)(listSet), _step2; !(_step2 = _iterator2()).done; ) {\n            var list = _step2.value;\n            fn(list);\n          }\n        }\n      }\n      forEachInCell(cellKey, fn) {\n        var _this$_cellKeyToChild2;\n        var listSet = (_this$_cellKeyToChild2 = this._cellKeyToChildren.get(cellKey)) !== null && _this$_cellKeyToChild2 !== void 0 ? _this$_cellKeyToChild2 : [];\n        for (var _iterator3 = (0, _createForOfIteratorHelperLoose2.default)(listSet), _step3; !(_step3 = _iterator3()).done; ) {\n          var list = _step3.value;\n          fn(list);\n        }\n      }\n      anyInCell(cellKey, fn) {\n        var _this$_cellKeyToChild3;\n        var listSet = (_this$_cellKeyToChild3 = this._cellKeyToChildren.get(cellKey)) !== null && _this$_cellKeyToChild3 !== void 0 ? _this$_cellKeyToChild3 : [];\n        for (var _iterator4 = (0, _createForOfIteratorHelperLoose2.default)(listSet), _step4; !(_step4 = _iterator4()).done; ) {\n          var list = _step4.value;\n          if (fn(list)) {\n            return true;\n          }\n        }\n        return false;\n      }\n      size() {\n        return this._childrenToCellKey.size;\n      }\n    };\n    exports2.default = ChildListCollection;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/FillRateHelper/index.js\nvar require_FillRateHelper = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/FillRateHelper/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _objectSpread2 = _interopRequireDefault(require_objectSpread2());\n    var Info = class {\n      static {\n        __name(this, \"Info\");\n      }\n      constructor() {\n        this.any_blank_count = 0;\n        this.any_blank_ms = 0;\n        this.any_blank_speed_sum = 0;\n        this.mostly_blank_count = 0;\n        this.mostly_blank_ms = 0;\n        this.pixels_blank = 0;\n        this.pixels_sampled = 0;\n        this.pixels_scrolled = 0;\n        this.total_time_spent = 0;\n        this.sample_count = 0;\n      }\n    };\n    var DEBUG = false;\n    var _listeners = [];\n    var _minSampleCount = 10;\n    var _sampleRate = DEBUG ? 1 : null;\n    var FillRateHelper = class {\n      static {\n        __name(this, \"FillRateHelper\");\n      }\n      static addListener(callback) {\n        if (_sampleRate === null) {\n          console.warn(\"Call `FillRateHelper.setSampleRate` before `addListener`.\");\n        }\n        _listeners.push(callback);\n        return {\n          remove: /* @__PURE__ */ __name(() => {\n            _listeners = _listeners.filter((listener) => callback !== listener);\n          }, \"remove\")\n        };\n      }\n      static setSampleRate(sampleRate) {\n        _sampleRate = sampleRate;\n      }\n      static setMinSampleCount(minSampleCount) {\n        _minSampleCount = minSampleCount;\n      }\n      constructor(getFrameMetrics) {\n        this._anyBlankStartTime = null;\n        this._enabled = false;\n        this._info = new Info();\n        this._mostlyBlankStartTime = null;\n        this._samplesStartTime = null;\n        this._getFrameMetrics = getFrameMetrics;\n        this._enabled = (_sampleRate || 0) > Math.random();\n        this._resetData();\n      }\n      activate() {\n        if (this._enabled && this._samplesStartTime == null) {\n          DEBUG && console.debug(\"FillRateHelper: activate\");\n          this._samplesStartTime = global.performance.now();\n        }\n      }\n      deactivateAndFlush() {\n        if (!this._enabled) {\n          return;\n        }\n        var start = this._samplesStartTime;\n        if (start == null) {\n          DEBUG && console.debug(\"FillRateHelper: bail on deactivate with no start time\");\n          return;\n        }\n        if (this._info.sample_count < _minSampleCount) {\n          this._resetData();\n          return;\n        }\n        var total_time_spent = global.performance.now() - start;\n        var info = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, this._info), {}, {\n          total_time_spent\n        });\n        if (DEBUG) {\n          var derived = {\n            avg_blankness: this._info.pixels_blank / this._info.pixels_sampled,\n            avg_speed: this._info.pixels_scrolled / (total_time_spent / 1e3),\n            avg_speed_when_any_blank: this._info.any_blank_speed_sum / this._info.any_blank_count,\n            any_blank_per_min: this._info.any_blank_count / (total_time_spent / 1e3 / 60),\n            any_blank_time_frac: this._info.any_blank_ms / total_time_spent,\n            mostly_blank_per_min: this._info.mostly_blank_count / (total_time_spent / 1e3 / 60),\n            mostly_blank_time_frac: this._info.mostly_blank_ms / total_time_spent\n          };\n          for (var key in derived) {\n            derived[key] = Math.round(1e3 * derived[key]) / 1e3;\n          }\n          console.debug(\"FillRateHelper deactivateAndFlush: \", {\n            derived,\n            info\n          });\n        }\n        _listeners.forEach((listener) => listener(info));\n        this._resetData();\n      }\n      computeBlankness(props, cellsAroundViewport, scrollMetrics) {\n        if (!this._enabled || props.getItemCount(props.data) === 0 || cellsAroundViewport.last < cellsAroundViewport.first || this._samplesStartTime == null) {\n          return 0;\n        }\n        var dOffset = scrollMetrics.dOffset, offset4 = scrollMetrics.offset, velocity = scrollMetrics.velocity, visibleLength = scrollMetrics.visibleLength;\n        this._info.sample_count++;\n        this._info.pixels_sampled += Math.round(visibleLength);\n        this._info.pixels_scrolled += Math.round(Math.abs(dOffset));\n        var scrollSpeed = Math.round(Math.abs(velocity) * 1e3);\n        var now = global.performance.now();\n        if (this._anyBlankStartTime != null) {\n          this._info.any_blank_ms += now - this._anyBlankStartTime;\n        }\n        this._anyBlankStartTime = null;\n        if (this._mostlyBlankStartTime != null) {\n          this._info.mostly_blank_ms += now - this._mostlyBlankStartTime;\n        }\n        this._mostlyBlankStartTime = null;\n        var blankTop = 0;\n        var first = cellsAroundViewport.first;\n        var firstFrame = this._getFrameMetrics(first, props);\n        while (first <= cellsAroundViewport.last && (!firstFrame || !firstFrame.inLayout)) {\n          firstFrame = this._getFrameMetrics(first, props);\n          first++;\n        }\n        if (firstFrame && first > 0) {\n          blankTop = Math.min(visibleLength, Math.max(0, firstFrame.offset - offset4));\n        }\n        var blankBottom = 0;\n        var last = cellsAroundViewport.last;\n        var lastFrame = this._getFrameMetrics(last, props);\n        while (last >= cellsAroundViewport.first && (!lastFrame || !lastFrame.inLayout)) {\n          lastFrame = this._getFrameMetrics(last, props);\n          last--;\n        }\n        if (lastFrame && last < props.getItemCount(props.data) - 1) {\n          var bottomEdge = lastFrame.offset + lastFrame.length;\n          blankBottom = Math.min(visibleLength, Math.max(0, offset4 + visibleLength - bottomEdge));\n        }\n        var pixels_blank = Math.round(blankTop + blankBottom);\n        var blankness = pixels_blank / visibleLength;\n        if (blankness > 0) {\n          this._anyBlankStartTime = now;\n          this._info.any_blank_speed_sum += scrollSpeed;\n          this._info.any_blank_count++;\n          this._info.pixels_blank += pixels_blank;\n          if (blankness > 0.5) {\n            this._mostlyBlankStartTime = now;\n            this._info.mostly_blank_count++;\n          }\n        } else if (scrollSpeed < 0.01 || Math.abs(dOffset) < 1) {\n          this.deactivateAndFlush();\n        }\n        return blankness;\n      }\n      enabled() {\n        return this._enabled;\n      }\n      _resetData() {\n        this._anyBlankStartTime = null;\n        this._info = new Info();\n        this._mostlyBlankStartTime = null;\n        this._samplesStartTime = null;\n      }\n    };\n    var _default = exports2.default = FillRateHelper;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/VirtualizedList/StateSafePureComponent.js\nvar require_StateSafePureComponent = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/VirtualizedList/StateSafePureComponent.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _invariant = _interopRequireDefault(require_invariant());\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var StateSafePureComponent = class extends React75.PureComponent {\n      static {\n        __name(this, \"StateSafePureComponent\");\n      }\n      constructor(props) {\n        super(props);\n        this._inAsyncStateUpdate = false;\n        this._installSetStateHooks();\n      }\n      setState(partialState, callback) {\n        if (typeof partialState === \"function\") {\n          super.setState((state, props) => {\n            this._inAsyncStateUpdate = true;\n            var ret;\n            try {\n              ret = partialState(state, props);\n            } catch (err) {\n              throw err;\n            } finally {\n              this._inAsyncStateUpdate = false;\n            }\n            return ret;\n          }, callback);\n        } else {\n          super.setState(partialState, callback);\n        }\n      }\n      _installSetStateHooks() {\n        var that = this;\n        var props = this.props, state = this.state;\n        Object.defineProperty(this, \"props\", {\n          get() {\n            (0, _invariant.default)(!that._inAsyncStateUpdate, '\"this.props\" should not be accessed during state updates');\n            return props;\n          },\n          set(newProps) {\n            props = newProps;\n          }\n        });\n        Object.defineProperty(this, \"state\", {\n          get() {\n            (0, _invariant.default)(!that._inAsyncStateUpdate, '\"this.state\" should not be acceessed during state updates');\n            return state;\n          },\n          set(newState) {\n            state = newState;\n          }\n        });\n      }\n    };\n    exports2.default = StateSafePureComponent;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/ViewabilityHelper/index.js\nvar require_ViewabilityHelper = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/ViewabilityHelper/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _objectSpread2 = _interopRequireDefault(require_objectSpread2());\n    var _createForOfIteratorHelperLoose2 = _interopRequireDefault(require_createForOfIteratorHelperLoose());\n    var _invariant = _interopRequireDefault(require_invariant());\n    var ViewabilityHelper = class {\n      static {\n        __name(this, \"ViewabilityHelper\");\n      }\n      constructor(config) {\n        if (config === void 0) {\n          config = {\n            viewAreaCoveragePercentThreshold: 0\n          };\n        }\n        this._hasInteracted = false;\n        this._timers = /* @__PURE__ */ new Set();\n        this._viewableIndices = [];\n        this._viewableItems = /* @__PURE__ */ new Map();\n        this._config = config;\n      }\n      /**\n       * Cleanup, e.g. on unmount. Clears any pending timers.\n       */\n      dispose() {\n        this._timers.forEach(clearTimeout);\n      }\n      /**\n       * Determines which items are viewable based on the current metrics and config.\n       */\n      computeViewableItems(props, scrollOffset, viewportHeight, getFrameMetrics, renderRange) {\n        var itemCount = props.getItemCount(props.data);\n        var _this$_config = this._config, itemVisiblePercentThreshold = _this$_config.itemVisiblePercentThreshold, viewAreaCoveragePercentThreshold = _this$_config.viewAreaCoveragePercentThreshold;\n        var viewAreaMode = viewAreaCoveragePercentThreshold != null;\n        var viewablePercentThreshold = viewAreaMode ? viewAreaCoveragePercentThreshold : itemVisiblePercentThreshold;\n        (0, _invariant.default)(viewablePercentThreshold != null && itemVisiblePercentThreshold != null !== (viewAreaCoveragePercentThreshold != null), \"Must set exactly one of itemVisiblePercentThreshold or viewAreaCoveragePercentThreshold\");\n        var viewableIndices = [];\n        if (itemCount === 0) {\n          return viewableIndices;\n        }\n        var firstVisible = -1;\n        var _ref = renderRange || {\n          first: 0,\n          last: itemCount - 1\n        }, first = _ref.first, last = _ref.last;\n        if (last >= itemCount) {\n          console.warn(\"Invalid render range computing viewability \" + JSON.stringify({\n            renderRange,\n            itemCount\n          }));\n          return [];\n        }\n        for (var idx = first; idx <= last; idx++) {\n          var metrics = getFrameMetrics(idx, props);\n          if (!metrics) {\n            continue;\n          }\n          var top = metrics.offset - scrollOffset;\n          var bottom = top + metrics.length;\n          if (top < viewportHeight && bottom > 0) {\n            firstVisible = idx;\n            if (_isViewable(viewAreaMode, viewablePercentThreshold, top, bottom, viewportHeight, metrics.length)) {\n              viewableIndices.push(idx);\n            }\n          } else if (firstVisible >= 0) {\n            break;\n          }\n        }\n        return viewableIndices;\n      }\n      /**\n       * Figures out which items are viewable and how that has changed from before and calls\n       * `onViewableItemsChanged` as appropriate.\n       */\n      onUpdate(props, scrollOffset, viewportHeight, getFrameMetrics, createViewToken, onViewableItemsChanged, renderRange) {\n        var itemCount = props.getItemCount(props.data);\n        if (this._config.waitForInteraction && !this._hasInteracted || itemCount === 0 || !getFrameMetrics(0, props)) {\n          return;\n        }\n        var viewableIndices = [];\n        if (itemCount) {\n          viewableIndices = this.computeViewableItems(props, scrollOffset, viewportHeight, getFrameMetrics, renderRange);\n        }\n        if (this._viewableIndices.length === viewableIndices.length && this._viewableIndices.every((v, ii) => v === viewableIndices[ii])) {\n          return;\n        }\n        this._viewableIndices = viewableIndices;\n        if (this._config.minimumViewTime) {\n          var handle = setTimeout(() => {\n            this._timers.delete(handle);\n            this._onUpdateSync(props, viewableIndices, onViewableItemsChanged, createViewToken);\n          }, this._config.minimumViewTime);\n          this._timers.add(handle);\n        } else {\n          this._onUpdateSync(props, viewableIndices, onViewableItemsChanged, createViewToken);\n        }\n      }\n      /**\n       * clean-up cached _viewableIndices to evaluate changed items on next update\n       */\n      resetViewableIndices() {\n        this._viewableIndices = [];\n      }\n      /**\n       * Records that an interaction has happened even if there has been no scroll.\n       */\n      recordInteraction() {\n        this._hasInteracted = true;\n      }\n      _onUpdateSync(props, viewableIndicesToCheck, onViewableItemsChanged, createViewToken) {\n        viewableIndicesToCheck = viewableIndicesToCheck.filter((ii) => this._viewableIndices.includes(ii));\n        var prevItems = this._viewableItems;\n        var nextItems = new Map(viewableIndicesToCheck.map((ii) => {\n          var viewable2 = createViewToken(ii, true, props);\n          return [viewable2.key, viewable2];\n        }));\n        var changed = [];\n        for (var _iterator = (0, _createForOfIteratorHelperLoose2.default)(nextItems), _step; !(_step = _iterator()).done; ) {\n          var _step$value = _step.value, key = _step$value[0], viewable = _step$value[1];\n          if (!prevItems.has(key)) {\n            changed.push(viewable);\n          }\n        }\n        for (var _iterator2 = (0, _createForOfIteratorHelperLoose2.default)(prevItems), _step2; !(_step2 = _iterator2()).done; ) {\n          var _step2$value = _step2.value, _key = _step2$value[0], _viewable = _step2$value[1];\n          if (!nextItems.has(_key)) {\n            changed.push((0, _objectSpread2.default)((0, _objectSpread2.default)({}, _viewable), {}, {\n              isViewable: false\n            }));\n          }\n        }\n        if (changed.length > 0) {\n          this._viewableItems = nextItems;\n          onViewableItemsChanged({\n            viewableItems: Array.from(nextItems.values()),\n            changed,\n            viewabilityConfig: this._config\n          });\n        }\n      }\n    };\n    function _isViewable(viewAreaMode, viewablePercentThreshold, top, bottom, viewportHeight, itemLength) {\n      if (_isEntirelyVisible(top, bottom, viewportHeight)) {\n        return true;\n      } else {\n        var pixels = _getPixelsVisible(top, bottom, viewportHeight);\n        var percent = 100 * (viewAreaMode ? pixels / viewportHeight : pixels / itemLength);\n        return percent >= viewablePercentThreshold;\n      }\n    }\n    __name(_isViewable, \"_isViewable\");\n    function _getPixelsVisible(top, bottom, viewportHeight) {\n      var visibleHeight = Math.min(bottom, viewportHeight) - Math.max(top, 0);\n      return Math.max(0, visibleHeight);\n    }\n    __name(_getPixelsVisible, \"_getPixelsVisible\");\n    function _isEntirelyVisible(top, bottom, viewportHeight) {\n      return top >= 0 && bottom <= viewportHeight && bottom > top;\n    }\n    __name(_isEntirelyVisible, \"_isEntirelyVisible\");\n    var _default = exports2.default = ViewabilityHelper;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListContext.js\nvar require_VirtualizedListContext = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListContext.js\"(exports2) {\n    \"use strict\";\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.VirtualizedListCellContextProvider = VirtualizedListCellContextProvider;\n    exports2.VirtualizedListContext = void 0;\n    exports2.VirtualizedListContextProvider = VirtualizedListContextProvider;\n    exports2.VirtualizedListContextResetter = VirtualizedListContextResetter;\n    var _objectSpread2 = _interopRequireDefault(require_objectSpread2());\n    var _react = _interopRequireWildcard(require(\"react\"));\n    var React75 = _react;\n    var __DEV__ = process.env.NODE_ENV !== \"production\";\n    var VirtualizedListContext = exports2.VirtualizedListContext = /* @__PURE__ */ React75.createContext(null);\n    if (__DEV__) {\n      VirtualizedListContext.displayName = \"VirtualizedListContext\";\n    }\n    function VirtualizedListContextResetter(_ref) {\n      var children = _ref.children;\n      return /* @__PURE__ */ React75.createElement(VirtualizedListContext.Provider, {\n        value: null\n      }, children);\n    }\n    __name(VirtualizedListContextResetter, \"VirtualizedListContextResetter\");\n    function VirtualizedListContextProvider(_ref2) {\n      var children = _ref2.children, value = _ref2.value;\n      var context2 = (0, _react.useMemo)(() => ({\n        cellKey: null,\n        getScrollMetrics: value.getScrollMetrics,\n        horizontal: value.horizontal,\n        getOutermostParentListRef: value.getOutermostParentListRef,\n        registerAsNestedChild: value.registerAsNestedChild,\n        unregisterAsNestedChild: value.unregisterAsNestedChild\n      }), [value.getScrollMetrics, value.horizontal, value.getOutermostParentListRef, value.registerAsNestedChild, value.unregisterAsNestedChild]);\n      return /* @__PURE__ */ React75.createElement(VirtualizedListContext.Provider, {\n        value: context2\n      }, children);\n    }\n    __name(VirtualizedListContextProvider, \"VirtualizedListContextProvider\");\n    function VirtualizedListCellContextProvider(_ref3) {\n      var cellKey = _ref3.cellKey, children = _ref3.children;\n      var currContext = (0, _react.useContext)(VirtualizedListContext);\n      var context2 = (0, _react.useMemo)(() => currContext == null ? null : (0, _objectSpread2.default)((0, _objectSpread2.default)({}, currContext), {}, {\n        cellKey\n      }), [currContext, cellKey]);\n      return /* @__PURE__ */ React75.createElement(VirtualizedListContext.Provider, {\n        value: context2\n      }, children);\n    }\n    __name(VirtualizedListCellContextProvider, \"VirtualizedListCellContextProvider\");\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListCellRenderer.js\nvar require_VirtualizedListCellRenderer = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListCellRenderer.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _extends2 = _interopRequireDefault(require_extends());\n    var _objectSpread2 = _interopRequireDefault(require_objectSpread2());\n    var _View = _interopRequireDefault(require_View());\n    var _StyleSheet = _interopRequireDefault(require_StyleSheet());\n    var _VirtualizedListContext = require_VirtualizedListContext();\n    var _invariant = _interopRequireDefault(require_invariant());\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var CellRenderer = class extends React75.Component {\n      static {\n        __name(this, \"CellRenderer\");\n      }\n      constructor() {\n        super(...arguments);\n        this.state = {\n          separatorProps: {\n            highlighted: false,\n            leadingItem: this.props.item\n          }\n        };\n        this._separators = {\n          highlight: /* @__PURE__ */ __name(() => {\n            var _this$props = this.props, cellKey = _this$props.cellKey, prevCellKey = _this$props.prevCellKey;\n            this.props.onUpdateSeparators([cellKey, prevCellKey], {\n              highlighted: true\n            });\n          }, \"highlight\"),\n          unhighlight: /* @__PURE__ */ __name(() => {\n            var _this$props2 = this.props, cellKey = _this$props2.cellKey, prevCellKey = _this$props2.prevCellKey;\n            this.props.onUpdateSeparators([cellKey, prevCellKey], {\n              highlighted: false\n            });\n          }, \"unhighlight\"),\n          updateProps: /* @__PURE__ */ __name((select, newProps) => {\n            var _this$props3 = this.props, cellKey = _this$props3.cellKey, prevCellKey = _this$props3.prevCellKey;\n            this.props.onUpdateSeparators([select === \"leading\" ? prevCellKey : cellKey], newProps);\n          }, \"updateProps\")\n        };\n        this._onLayout = (nativeEvent) => {\n          this.props.onCellLayout && this.props.onCellLayout(nativeEvent, this.props.cellKey, this.props.index);\n        };\n      }\n      static getDerivedStateFromProps(props, prevState) {\n        return {\n          separatorProps: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, prevState.separatorProps), {}, {\n            leadingItem: props.item\n          })\n        };\n      }\n      // TODO: consider factoring separator stuff out of VirtualizedList into FlatList since it's not\n      // reused by SectionList and we can keep VirtualizedList simpler.\n      // $FlowFixMe[missing-local-annot]\n      updateSeparatorProps(newProps) {\n        this.setState((state) => ({\n          separatorProps: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state.separatorProps), newProps)\n        }));\n      }\n      componentWillUnmount() {\n        this.props.onUnmount(this.props.cellKey);\n      }\n      _renderElement(renderItem, ListItemComponent2, item, index3) {\n        if (renderItem && ListItemComponent2) {\n          console.warn(\"VirtualizedList: Both ListItemComponent and renderItem props are present. ListItemComponent will take precedence over renderItem.\");\n        }\n        if (ListItemComponent2) {\n          return /* @__PURE__ */ React75.createElement(ListItemComponent2, {\n            item,\n            index: index3,\n            separators: this._separators\n          });\n        }\n        if (renderItem) {\n          return renderItem({\n            item,\n            index: index3,\n            separators: this._separators\n          });\n        }\n        (0, _invariant.default)(false, \"VirtualizedList: Either ListItemComponent or renderItem props are required but none were found.\");\n      }\n      render() {\n        var _this$props4 = this.props, CellRendererComponent = _this$props4.CellRendererComponent, ItemSeparatorComponent = _this$props4.ItemSeparatorComponent, ListItemComponent2 = _this$props4.ListItemComponent, cellKey = _this$props4.cellKey, horizontal = _this$props4.horizontal, item = _this$props4.item, index3 = _this$props4.index, inversionStyle = _this$props4.inversionStyle, onCellFocusCapture = _this$props4.onCellFocusCapture, onCellLayout = _this$props4.onCellLayout, renderItem = _this$props4.renderItem;\n        var element = this._renderElement(renderItem, ListItemComponent2, item, index3);\n        var itemSeparator = /* @__PURE__ */ React75.isValidElement(ItemSeparatorComponent) ? (\n          // $FlowFixMe[incompatible-type]\n          ItemSeparatorComponent\n        ) : (\n          // $FlowFixMe[incompatible-type]\n          ItemSeparatorComponent && /* @__PURE__ */ React75.createElement(ItemSeparatorComponent, this.state.separatorProps)\n        );\n        var cellStyle = inversionStyle ? horizontal ? [styles.rowReverse, inversionStyle] : [styles.columnReverse, inversionStyle] : horizontal ? [styles.row, inversionStyle] : inversionStyle;\n        var result = !CellRendererComponent ? /* @__PURE__ */ React75.createElement(_View.default, (0, _extends2.default)({\n          style: cellStyle,\n          onFocusCapture: onCellFocusCapture\n        }, onCellLayout && {\n          onLayout: this._onLayout\n        }), element, itemSeparator) : /* @__PURE__ */ React75.createElement(CellRendererComponent, (0, _extends2.default)({\n          cellKey,\n          index: index3,\n          item,\n          style: cellStyle,\n          onFocusCapture: onCellFocusCapture\n        }, onCellLayout && {\n          onLayout: this._onLayout\n        }), element, itemSeparator);\n        return /* @__PURE__ */ React75.createElement(_VirtualizedListContext.VirtualizedListCellContextProvider, {\n          cellKey: this.props.cellKey\n        }, result);\n      }\n    };\n    exports2.default = CellRenderer;\n    var styles = _StyleSheet.default.create({\n      row: {\n        flexDirection: \"row\"\n      },\n      rowReverse: {\n        flexDirection: \"row-reverse\"\n      },\n      columnReverse: {\n        flexDirection: \"column-reverse\"\n      }\n    });\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/VirtualizeUtils/index.js\nvar require_VirtualizeUtils = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/VirtualizeUtils/index.js\"(exports2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.computeWindowedRenderLimits = computeWindowedRenderLimits;\n    exports2.elementsThatOverlapOffsets = elementsThatOverlapOffsets;\n    exports2.keyExtractor = keyExtractor;\n    exports2.newRangeCount = newRangeCount;\n    function elementsThatOverlapOffsets(offsets, props, getFrameMetrics, zoomScale) {\n      if (zoomScale === void 0) {\n        zoomScale = 1;\n      }\n      var itemCount = props.getItemCount(props.data);\n      var result = [];\n      for (var offsetIndex = 0; offsetIndex < offsets.length; offsetIndex++) {\n        var currentOffset = offsets[offsetIndex];\n        var left = 0;\n        var right = itemCount - 1;\n        while (left <= right) {\n          var mid = left + (right - left >>> 1);\n          var frame = getFrameMetrics(mid, props);\n          var scaledOffsetStart = frame.offset * zoomScale;\n          var scaledOffsetEnd = (frame.offset + frame.length) * zoomScale;\n          if (mid === 0 && currentOffset < scaledOffsetStart || mid !== 0 && currentOffset <= scaledOffsetStart) {\n            right = mid - 1;\n          } else if (currentOffset > scaledOffsetEnd) {\n            left = mid + 1;\n          } else {\n            result[offsetIndex] = mid;\n            break;\n          }\n        }\n      }\n      return result;\n    }\n    __name(elementsThatOverlapOffsets, \"elementsThatOverlapOffsets\");\n    function newRangeCount(prev, next) {\n      return next.last - next.first + 1 - Math.max(0, 1 + Math.min(next.last, prev.last) - Math.max(next.first, prev.first));\n    }\n    __name(newRangeCount, \"newRangeCount\");\n    function computeWindowedRenderLimits(props, maxToRenderPerBatch, windowSize, prev, getFrameMetricsApprox, scrollMetrics) {\n      var itemCount = props.getItemCount(props.data);\n      if (itemCount === 0) {\n        return {\n          first: 0,\n          last: -1\n        };\n      }\n      var offset4 = scrollMetrics.offset, velocity = scrollMetrics.velocity, visibleLength = scrollMetrics.visibleLength, _scrollMetrics$zoomSc = scrollMetrics.zoomScale, zoomScale = _scrollMetrics$zoomSc === void 0 ? 1 : _scrollMetrics$zoomSc;\n      var visibleBegin = Math.max(0, offset4);\n      var visibleEnd = visibleBegin + visibleLength;\n      var overscanLength = (windowSize - 1) * visibleLength;\n      var leadFactor = 0.5;\n      var fillPreference = velocity > 1 ? \"after\" : velocity < -1 ? \"before\" : \"none\";\n      var overscanBegin = Math.max(0, visibleBegin - (1 - leadFactor) * overscanLength);\n      var overscanEnd = Math.max(0, visibleEnd + leadFactor * overscanLength);\n      var lastItemOffset = getFrameMetricsApprox(itemCount - 1, props).offset * zoomScale;\n      if (lastItemOffset < overscanBegin) {\n        return {\n          first: Math.max(0, itemCount - 1 - maxToRenderPerBatch),\n          last: itemCount - 1\n        };\n      }\n      var _elementsThatOverlapO = elementsThatOverlapOffsets([overscanBegin, visibleBegin, visibleEnd, overscanEnd], props, getFrameMetricsApprox, zoomScale), overscanFirst = _elementsThatOverlapO[0], first = _elementsThatOverlapO[1], last = _elementsThatOverlapO[2], overscanLast = _elementsThatOverlapO[3];\n      overscanFirst = overscanFirst == null ? 0 : overscanFirst;\n      first = first == null ? Math.max(0, overscanFirst) : first;\n      overscanLast = overscanLast == null ? itemCount - 1 : overscanLast;\n      last = last == null ? Math.min(overscanLast, first + maxToRenderPerBatch - 1) : last;\n      var visible = {\n        first,\n        last\n      };\n      var newCellCount = newRangeCount(prev, visible);\n      while (true) {\n        if (first <= overscanFirst && last >= overscanLast) {\n          break;\n        }\n        var maxNewCells = newCellCount >= maxToRenderPerBatch;\n        var firstWillAddMore = first <= prev.first || first > prev.last;\n        var firstShouldIncrement = first > overscanFirst && (!maxNewCells || !firstWillAddMore);\n        var lastWillAddMore = last >= prev.last || last < prev.first;\n        var lastShouldIncrement = last < overscanLast && (!maxNewCells || !lastWillAddMore);\n        if (maxNewCells && !firstShouldIncrement && !lastShouldIncrement) {\n          break;\n        }\n        if (firstShouldIncrement && !(fillPreference === \"after\" && lastShouldIncrement && lastWillAddMore)) {\n          if (firstWillAddMore) {\n            newCellCount++;\n          }\n          first--;\n        }\n        if (lastShouldIncrement && !(fillPreference === \"before\" && firstShouldIncrement && firstWillAddMore)) {\n          if (lastWillAddMore) {\n            newCellCount++;\n          }\n          last++;\n        }\n      }\n      if (!(last >= first && first >= 0 && last < itemCount && first >= overscanFirst && last <= overscanLast && first <= visible.first && last >= visible.last)) {\n        throw new Error(\"Bad window calculation \" + JSON.stringify({\n          first,\n          last,\n          itemCount,\n          overscanFirst,\n          overscanLast,\n          visible\n        }));\n      }\n      return {\n        first,\n        last\n      };\n    }\n    __name(computeWindowedRenderLimits, \"computeWindowedRenderLimits\");\n    function keyExtractor(item, index3) {\n      if (typeof item === \"object\" && (item == null ? void 0 : item.key) != null) {\n        return item.key;\n      }\n      if (typeof item === \"object\" && (item == null ? void 0 : item.id) != null) {\n        return item.id;\n      }\n      return String(index3);\n    }\n    __name(keyExtractor, \"keyExtractor\");\n  }\n});\n\n// node_modules/nullthrows/nullthrows.js\nvar require_nullthrows = __commonJS({\n  \"node_modules/nullthrows/nullthrows.js\"(exports2, module2) {\n    \"use strict\";\n    function nullthrows(x, message) {\n      if (x != null) {\n        return x;\n      }\n      var error2 = new Error(message !== void 0 ? message : \"Got unexpected \" + x);\n      error2.framesToPop = 1;\n      throw error2;\n    }\n    __name(nullthrows, \"nullthrows\");\n    module2.exports = nullthrows;\n    module2.exports.default = nullthrows;\n    Object.defineProperty(module2.exports, \"__esModule\", { value: true });\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/VirtualizedList/index.js\nvar require_VirtualizedList = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/VirtualizedList/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _createForOfIteratorHelperLoose2 = _interopRequireDefault(require_createForOfIteratorHelperLoose());\n    var _extends2 = _interopRequireDefault(require_extends());\n    var _objectSpread2 = _interopRequireDefault(require_objectSpread2());\n    var _RefreshControl = _interopRequireDefault(require_RefreshControl());\n    var _ScrollView = _interopRequireDefault(require_ScrollView());\n    var _View = _interopRequireDefault(require_View());\n    var _StyleSheet = _interopRequireDefault(require_StyleSheet());\n    var _findNodeHandle = _interopRequireDefault(require_findNodeHandle());\n    var _Batchinator = _interopRequireDefault(require_Batchinator());\n    var _clamp = _interopRequireDefault(require_clamp2());\n    var _infoLog = _interopRequireDefault(require_infoLog());\n    var _CellRenderMask = require_CellRenderMask();\n    var _ChildListCollection = _interopRequireDefault(require_ChildListCollection());\n    var _FillRateHelper = _interopRequireDefault(require_FillRateHelper());\n    var _StateSafePureComponent = _interopRequireDefault(require_StateSafePureComponent());\n    var _ViewabilityHelper = _interopRequireDefault(require_ViewabilityHelper());\n    var _VirtualizedListCellRenderer = _interopRequireDefault(require_VirtualizedListCellRenderer());\n    var _VirtualizedListContext = require_VirtualizedListContext();\n    var _VirtualizeUtils = require_VirtualizeUtils();\n    var _invariant = _interopRequireDefault(require_invariant());\n    var _nullthrows = _interopRequireDefault(require_nullthrows());\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var __DEV__ = process.env.NODE_ENV !== \"production\";\n    var ON_EDGE_REACHED_EPSILON = 1e-3;\n    var _usedIndexForKey = false;\n    var _keylessItemComponentName = \"\";\n    function horizontalOrDefault(horizontal) {\n      return horizontal !== null && horizontal !== void 0 ? horizontal : false;\n    }\n    __name(horizontalOrDefault, \"horizontalOrDefault\");\n    function initialNumToRenderOrDefault(initialNumToRender) {\n      return initialNumToRender !== null && initialNumToRender !== void 0 ? initialNumToRender : 10;\n    }\n    __name(initialNumToRenderOrDefault, \"initialNumToRenderOrDefault\");\n    function maxToRenderPerBatchOrDefault(maxToRenderPerBatch) {\n      return maxToRenderPerBatch !== null && maxToRenderPerBatch !== void 0 ? maxToRenderPerBatch : 10;\n    }\n    __name(maxToRenderPerBatchOrDefault, \"maxToRenderPerBatchOrDefault\");\n    function onStartReachedThresholdOrDefault(onStartReachedThreshold) {\n      return onStartReachedThreshold !== null && onStartReachedThreshold !== void 0 ? onStartReachedThreshold : 2;\n    }\n    __name(onStartReachedThresholdOrDefault, \"onStartReachedThresholdOrDefault\");\n    function onEndReachedThresholdOrDefault(onEndReachedThreshold) {\n      return onEndReachedThreshold !== null && onEndReachedThreshold !== void 0 ? onEndReachedThreshold : 2;\n    }\n    __name(onEndReachedThresholdOrDefault, \"onEndReachedThresholdOrDefault\");\n    function getScrollingThreshold(threshold, visibleLength) {\n      return threshold * visibleLength / 2;\n    }\n    __name(getScrollingThreshold, \"getScrollingThreshold\");\n    function scrollEventThrottleOrDefault(scrollEventThrottle) {\n      return scrollEventThrottle !== null && scrollEventThrottle !== void 0 ? scrollEventThrottle : 50;\n    }\n    __name(scrollEventThrottleOrDefault, \"scrollEventThrottleOrDefault\");\n    function windowSizeOrDefault(windowSize) {\n      return windowSize !== null && windowSize !== void 0 ? windowSize : 21;\n    }\n    __name(windowSizeOrDefault, \"windowSizeOrDefault\");\n    function findLastWhere(arr, predicate) {\n      for (var i = arr.length - 1; i >= 0; i--) {\n        if (predicate(arr[i])) {\n          return arr[i];\n        }\n      }\n      return null;\n    }\n    __name(findLastWhere, \"findLastWhere\");\n    var VirtualizedList = class _VirtualizedList extends _StateSafePureComponent.default {\n      static {\n        __name(this, \"VirtualizedList\");\n      }\n      // scrollToEnd may be janky without getItemLayout prop\n      scrollToEnd(params) {\n        var animated = params ? params.animated : true;\n        var veryLast = this.props.getItemCount(this.props.data) - 1;\n        if (veryLast < 0) {\n          return;\n        }\n        var frame = this.__getFrameMetricsApprox(veryLast, this.props);\n        var offset4 = Math.max(0, frame.offset + frame.length + this._footerLength - this._scrollMetrics.visibleLength);\n        if (this._scrollRef == null) {\n          return;\n        }\n        if (this._scrollRef.scrollTo == null) {\n          console.warn(\"No scrollTo method provided. This may be because you have two nested VirtualizedLists with the same orientation, or because you are using a custom component that does not implement scrollTo.\");\n          return;\n        }\n        this._scrollRef.scrollTo(horizontalOrDefault(this.props.horizontal) ? {\n          x: offset4,\n          animated\n        } : {\n          y: offset4,\n          animated\n        });\n      }\n      // scrollToIndex may be janky without getItemLayout prop\n      scrollToIndex(params) {\n        var _this$props = this.props, data = _this$props.data, horizontal = _this$props.horizontal, getItemCount = _this$props.getItemCount, getItemLayout = _this$props.getItemLayout, onScrollToIndexFailed = _this$props.onScrollToIndexFailed;\n        var animated = params.animated, index3 = params.index, viewOffset = params.viewOffset, viewPosition = params.viewPosition;\n        (0, _invariant.default)(index3 >= 0, \"scrollToIndex out of range: requested index \" + index3 + \" but minimum is 0\");\n        (0, _invariant.default)(getItemCount(data) >= 1, \"scrollToIndex out of range: item length \" + getItemCount(data) + \" but minimum is 1\");\n        (0, _invariant.default)(index3 < getItemCount(data), \"scrollToIndex out of range: requested index \" + index3 + \" is out of 0 to \" + (getItemCount(data) - 1));\n        if (!getItemLayout && index3 > this._highestMeasuredFrameIndex) {\n          (0, _invariant.default)(!!onScrollToIndexFailed, \"scrollToIndex should be used in conjunction with getItemLayout or onScrollToIndexFailed, otherwise there is no way to know the location of offscreen indices or handle failures.\");\n          onScrollToIndexFailed({\n            averageItemLength: this._averageCellLength,\n            highestMeasuredFrameIndex: this._highestMeasuredFrameIndex,\n            index: index3\n          });\n          return;\n        }\n        var frame = this.__getFrameMetricsApprox(Math.floor(index3), this.props);\n        var offset4 = Math.max(0, this._getOffsetApprox(index3, this.props) - (viewPosition || 0) * (this._scrollMetrics.visibleLength - frame.length)) - (viewOffset || 0);\n        if (this._scrollRef == null) {\n          return;\n        }\n        if (this._scrollRef.scrollTo == null) {\n          console.warn(\"No scrollTo method provided. This may be because you have two nested VirtualizedLists with the same orientation, or because you are using a custom component that does not implement scrollTo.\");\n          return;\n        }\n        this._scrollRef.scrollTo(horizontal ? {\n          x: offset4,\n          animated\n        } : {\n          y: offset4,\n          animated\n        });\n      }\n      // scrollToItem may be janky without getItemLayout prop. Required linear scan through items -\n      // use scrollToIndex instead if possible.\n      scrollToItem(params) {\n        var item = params.item;\n        var _this$props2 = this.props, data = _this$props2.data, getItem = _this$props2.getItem, getItemCount = _this$props2.getItemCount;\n        var itemCount = getItemCount(data);\n        for (var _index = 0; _index < itemCount; _index++) {\n          if (getItem(data, _index) === item) {\n            this.scrollToIndex((0, _objectSpread2.default)((0, _objectSpread2.default)({}, params), {}, {\n              index: _index\n            }));\n            break;\n          }\n        }\n      }\n      /**\n       * Scroll to a specific content pixel offset in the list.\n       *\n       * Param `offset` expects the offset to scroll to.\n       * In case of `horizontal` is true, the offset is the x-value,\n       * in any other case the offset is the y-value.\n       *\n       * Param `animated` (`true` by default) defines whether the list\n       * should do an animation while scrolling.\n       */\n      scrollToOffset(params) {\n        var animated = params.animated, offset4 = params.offset;\n        if (this._scrollRef == null) {\n          return;\n        }\n        if (this._scrollRef.scrollTo == null) {\n          console.warn(\"No scrollTo method provided. This may be because you have two nested VirtualizedLists with the same orientation, or because you are using a custom component that does not implement scrollTo.\");\n          return;\n        }\n        this._scrollRef.scrollTo(horizontalOrDefault(this.props.horizontal) ? {\n          x: offset4,\n          animated\n        } : {\n          y: offset4,\n          animated\n        });\n      }\n      recordInteraction() {\n        this._nestedChildLists.forEach((childList) => {\n          childList.recordInteraction();\n        });\n        this._viewabilityTuples.forEach((t) => {\n          t.viewabilityHelper.recordInteraction();\n        });\n        this._updateViewableItems(this.props, this.state.cellsAroundViewport);\n      }\n      flashScrollIndicators() {\n        if (this._scrollRef == null) {\n          return;\n        }\n        this._scrollRef.flashScrollIndicators();\n      }\n      /**\n       * Provides a handle to the underlying scroll responder.\n       * Note that `this._scrollRef` might not be a `ScrollView`, so we\n       * need to check that it responds to `getScrollResponder` before calling it.\n       */\n      getScrollResponder() {\n        if (this._scrollRef && this._scrollRef.getScrollResponder) {\n          return this._scrollRef.getScrollResponder();\n        }\n      }\n      getScrollableNode() {\n        if (this._scrollRef && this._scrollRef.getScrollableNode) {\n          return this._scrollRef.getScrollableNode();\n        } else {\n          return this._scrollRef;\n        }\n      }\n      getScrollRef() {\n        if (this._scrollRef && this._scrollRef.getScrollRef) {\n          return this._scrollRef.getScrollRef();\n        } else {\n          return this._scrollRef;\n        }\n      }\n      _getCellKey() {\n        var _this$context;\n        return ((_this$context = this.context) == null ? void 0 : _this$context.cellKey) || \"rootList\";\n      }\n      // $FlowFixMe[missing-local-annot]\n      hasMore() {\n        return this._hasMore;\n      }\n      // $FlowFixMe[missing-local-annot]\n      // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n      constructor(_props) {\n        var _this$props$updateCel;\n        super(_props);\n        this._getScrollMetrics = () => {\n          return this._scrollMetrics;\n        };\n        this._getOutermostParentListRef = () => {\n          if (this._isNestedWithSameOrientation()) {\n            return this.context.getOutermostParentListRef();\n          } else {\n            return this;\n          }\n        };\n        this._registerAsNestedChild = (childList) => {\n          this._nestedChildLists.add(childList.ref, childList.cellKey);\n          if (this._hasInteracted) {\n            childList.ref.recordInteraction();\n          }\n        };\n        this._unregisterAsNestedChild = (childList) => {\n          this._nestedChildLists.remove(childList.ref);\n        };\n        this._onUpdateSeparators = (keys, newProps) => {\n          keys.forEach((key) => {\n            var ref = key != null && this._cellRefs[key];\n            ref && ref.updateSeparatorProps(newProps);\n          });\n        };\n        this._getSpacerKey = (isVertical) => isVertical ? \"height\" : \"width\";\n        this._averageCellLength = 0;\n        this._cellRefs = {};\n        this._frames = {};\n        this._footerLength = 0;\n        this._hasTriggeredInitialScrollToIndex = false;\n        this._hasInteracted = false;\n        this._hasMore = false;\n        this._hasWarned = {};\n        this._headerLength = 0;\n        this._hiPriInProgress = false;\n        this._highestMeasuredFrameIndex = 0;\n        this._indicesToKeys = /* @__PURE__ */ new Map();\n        this._lastFocusedCellKey = null;\n        this._nestedChildLists = new _ChildListCollection.default();\n        this._offsetFromParentVirtualizedList = 0;\n        this._prevParentOffset = 0;\n        this._scrollMetrics = {\n          contentLength: 0,\n          dOffset: 0,\n          dt: 10,\n          offset: 0,\n          timestamp: 0,\n          velocity: 0,\n          visibleLength: 0,\n          zoomScale: 1\n        };\n        this._scrollRef = null;\n        this._sentStartForContentLength = 0;\n        this._sentEndForContentLength = 0;\n        this._totalCellLength = 0;\n        this._totalCellsMeasured = 0;\n        this._viewabilityTuples = [];\n        this._captureScrollRef = (ref) => {\n          this._scrollRef = ref;\n        };\n        this._defaultRenderScrollComponent = (props) => {\n          var onRefresh = props.onRefresh;\n          if (this._isNestedWithSameOrientation()) {\n            return /* @__PURE__ */ React75.createElement(_View.default, props);\n          } else if (onRefresh) {\n            var _props$refreshing;\n            (0, _invariant.default)(typeof props.refreshing === \"boolean\", \"`refreshing` prop must be set as a boolean in order to use `onRefresh`, but got `\" + JSON.stringify((_props$refreshing = props.refreshing) !== null && _props$refreshing !== void 0 ? _props$refreshing : \"undefined\") + \"`\");\n            return (\n              // $FlowFixMe[prop-missing] Invalid prop usage\n              // $FlowFixMe[incompatible-use]\n              /* @__PURE__ */ React75.createElement(_ScrollView.default, (0, _extends2.default)({}, props, {\n                refreshControl: props.refreshControl == null ? /* @__PURE__ */ React75.createElement(\n                  _RefreshControl.default,\n                  {\n                    refreshing: props.refreshing,\n                    onRefresh,\n                    progressViewOffset: props.progressViewOffset\n                  }\n                ) : props.refreshControl\n              }))\n            );\n          } else {\n            return /* @__PURE__ */ React75.createElement(_ScrollView.default, props);\n          }\n        };\n        this._onCellLayout = (e, cellKey, index3) => {\n          var layout = e.nativeEvent.layout;\n          var next = {\n            offset: this._selectOffset(layout),\n            length: this._selectLength(layout),\n            index: index3,\n            inLayout: true\n          };\n          var curr = this._frames[cellKey];\n          if (!curr || next.offset !== curr.offset || next.length !== curr.length || index3 !== curr.index) {\n            this._totalCellLength += next.length - (curr ? curr.length : 0);\n            this._totalCellsMeasured += curr ? 0 : 1;\n            this._averageCellLength = this._totalCellLength / this._totalCellsMeasured;\n            this._frames[cellKey] = next;\n            this._highestMeasuredFrameIndex = Math.max(this._highestMeasuredFrameIndex, index3);\n            this._scheduleCellsToRenderUpdate();\n          } else {\n            this._frames[cellKey].inLayout = true;\n          }\n          this._triggerRemeasureForChildListsInCell(cellKey);\n          this._computeBlankness();\n          this._updateViewableItems(this.props, this.state.cellsAroundViewport);\n        };\n        this._onCellUnmount = (cellKey) => {\n          delete this._cellRefs[cellKey];\n          var curr = this._frames[cellKey];\n          if (curr) {\n            this._frames[cellKey] = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, curr), {}, {\n              inLayout: false\n            });\n          }\n        };\n        this._onLayout = (e) => {\n          if (this._isNestedWithSameOrientation()) {\n            this.measureLayoutRelativeToContainingList();\n          } else {\n            this._scrollMetrics.visibleLength = this._selectLength(e.nativeEvent.layout);\n          }\n          this.props.onLayout && this.props.onLayout(e);\n          this._scheduleCellsToRenderUpdate();\n          this._maybeCallOnEdgeReached();\n        };\n        this._onLayoutEmpty = (e) => {\n          this.props.onLayout && this.props.onLayout(e);\n        };\n        this._onLayoutFooter = (e) => {\n          this._triggerRemeasureForChildListsInCell(this._getFooterCellKey());\n          this._footerLength = this._selectLength(e.nativeEvent.layout);\n        };\n        this._onLayoutHeader = (e) => {\n          this._headerLength = this._selectLength(e.nativeEvent.layout);\n        };\n        this._onContentSizeChange = (width, height) => {\n          if (width > 0 && height > 0 && this.props.initialScrollIndex != null && this.props.initialScrollIndex > 0 && !this._hasTriggeredInitialScrollToIndex) {\n            if (this.props.contentOffset == null) {\n              if (this.props.initialScrollIndex < this.props.getItemCount(this.props.data)) {\n                this.scrollToIndex({\n                  animated: false,\n                  index: (0, _nullthrows.default)(this.props.initialScrollIndex)\n                });\n              } else {\n                this.scrollToEnd({\n                  animated: false\n                });\n              }\n            }\n            this._hasTriggeredInitialScrollToIndex = true;\n          }\n          if (this.props.onContentSizeChange) {\n            this.props.onContentSizeChange(width, height);\n          }\n          this._scrollMetrics.contentLength = this._selectLength({\n            height,\n            width\n          });\n          this._scheduleCellsToRenderUpdate();\n          this._maybeCallOnEdgeReached();\n        };\n        this._convertParentScrollMetrics = (metrics) => {\n          var offset4 = metrics.offset - this._offsetFromParentVirtualizedList;\n          var visibleLength = metrics.visibleLength;\n          var dOffset = offset4 - this._scrollMetrics.offset;\n          var contentLength = this._scrollMetrics.contentLength;\n          return {\n            visibleLength,\n            contentLength,\n            offset: offset4,\n            dOffset\n          };\n        };\n        this._onScroll = (e) => {\n          this._nestedChildLists.forEach((childList) => {\n            childList._onScroll(e);\n          });\n          if (this.props.onScroll) {\n            this.props.onScroll(e);\n          }\n          var timestamp = e.timeStamp;\n          var visibleLength = this._selectLength(e.nativeEvent.layoutMeasurement);\n          var contentLength = this._selectLength(e.nativeEvent.contentSize);\n          var offset4 = this._selectOffset(e.nativeEvent.contentOffset);\n          var dOffset = offset4 - this._scrollMetrics.offset;\n          if (this._isNestedWithSameOrientation()) {\n            if (this._scrollMetrics.contentLength === 0) {\n              return;\n            }\n            var _this$_convertParentS = this._convertParentScrollMetrics({\n              visibleLength,\n              offset: offset4\n            });\n            visibleLength = _this$_convertParentS.visibleLength;\n            contentLength = _this$_convertParentS.contentLength;\n            offset4 = _this$_convertParentS.offset;\n            dOffset = _this$_convertParentS.dOffset;\n          }\n          var dt = this._scrollMetrics.timestamp ? Math.max(1, timestamp - this._scrollMetrics.timestamp) : 1;\n          var velocity = dOffset / dt;\n          if (dt > 500 && this._scrollMetrics.dt > 500 && contentLength > 5 * visibleLength && !this._hasWarned.perf) {\n            (0, _infoLog.default)(\"VirtualizedList: You have a large list that is slow to update - make sure your renderItem function renders components that follow React performance best practices like PureComponent, shouldComponentUpdate, etc.\", {\n              dt,\n              prevDt: this._scrollMetrics.dt,\n              contentLength\n            });\n            this._hasWarned.perf = true;\n          }\n          var zoomScale = e.nativeEvent.zoomScale < 0 ? 1 : e.nativeEvent.zoomScale;\n          this._scrollMetrics = {\n            contentLength,\n            dt,\n            dOffset,\n            offset: offset4,\n            timestamp,\n            velocity,\n            visibleLength,\n            zoomScale\n          };\n          this._updateViewableItems(this.props, this.state.cellsAroundViewport);\n          if (!this.props) {\n            return;\n          }\n          this._maybeCallOnEdgeReached();\n          if (velocity !== 0) {\n            this._fillRateHelper.activate();\n          }\n          this._computeBlankness();\n          this._scheduleCellsToRenderUpdate();\n        };\n        this._onScrollBeginDrag = (e) => {\n          this._nestedChildLists.forEach((childList) => {\n            childList._onScrollBeginDrag(e);\n          });\n          this._viewabilityTuples.forEach((tuple) => {\n            tuple.viewabilityHelper.recordInteraction();\n          });\n          this._hasInteracted = true;\n          this.props.onScrollBeginDrag && this.props.onScrollBeginDrag(e);\n        };\n        this._onScrollEndDrag = (e) => {\n          this._nestedChildLists.forEach((childList) => {\n            childList._onScrollEndDrag(e);\n          });\n          var velocity = e.nativeEvent.velocity;\n          if (velocity) {\n            this._scrollMetrics.velocity = this._selectOffset(velocity);\n          }\n          this._computeBlankness();\n          this.props.onScrollEndDrag && this.props.onScrollEndDrag(e);\n        };\n        this._onMomentumScrollBegin = (e) => {\n          this._nestedChildLists.forEach((childList) => {\n            childList._onMomentumScrollBegin(e);\n          });\n          this.props.onMomentumScrollBegin && this.props.onMomentumScrollBegin(e);\n        };\n        this._onMomentumScrollEnd = (e) => {\n          this._nestedChildLists.forEach((childList) => {\n            childList._onMomentumScrollEnd(e);\n          });\n          this._scrollMetrics.velocity = 0;\n          this._computeBlankness();\n          this.props.onMomentumScrollEnd && this.props.onMomentumScrollEnd(e);\n        };\n        this._updateCellsToRender = () => {\n          this._updateViewableItems(this.props, this.state.cellsAroundViewport);\n          this.setState((state, props) => {\n            var cellsAroundViewport = this._adjustCellsAroundViewport(props, state.cellsAroundViewport);\n            var renderMask = _VirtualizedList._createRenderMask(props, cellsAroundViewport, this._getNonViewportRenderRegions(props));\n            if (cellsAroundViewport.first === state.cellsAroundViewport.first && cellsAroundViewport.last === state.cellsAroundViewport.last && renderMask.equals(state.renderMask)) {\n              return null;\n            }\n            return {\n              cellsAroundViewport,\n              renderMask\n            };\n          });\n        };\n        this._createViewToken = (index3, isViewable, props) => {\n          var data = props.data, getItem = props.getItem;\n          var item = getItem(data, index3);\n          return {\n            index: index3,\n            item,\n            key: this._keyExtractor(item, index3, props),\n            isViewable\n          };\n        };\n        this._getOffsetApprox = (index3, props) => {\n          if (Number.isInteger(index3)) {\n            return this.__getFrameMetricsApprox(index3, props).offset;\n          } else {\n            var frameMetrics = this.__getFrameMetricsApprox(Math.floor(index3), props);\n            var remainder = index3 - Math.floor(index3);\n            return frameMetrics.offset + remainder * frameMetrics.length;\n          }\n        };\n        this.__getFrameMetricsApprox = (index3, props) => {\n          var frame = this._getFrameMetrics(index3, props);\n          if (frame && frame.index === index3) {\n            return frame;\n          } else {\n            var data = props.data, getItemCount = props.getItemCount, getItemLayout = props.getItemLayout;\n            (0, _invariant.default)(index3 >= 0 && index3 < getItemCount(data), \"Tried to get frame for out of range index \" + index3);\n            (0, _invariant.default)(!getItemLayout, \"Should not have to estimate frames when a measurement metrics function is provided\");\n            return {\n              length: this._averageCellLength,\n              offset: this._averageCellLength * index3\n            };\n          }\n        };\n        this._getFrameMetrics = (index3, props) => {\n          var data = props.data, getItem = props.getItem, getItemCount = props.getItemCount, getItemLayout = props.getItemLayout;\n          (0, _invariant.default)(index3 >= 0 && index3 < getItemCount(data), \"Tried to get frame for out of range index \" + index3);\n          var item = getItem(data, index3);\n          var frame = this._frames[this._keyExtractor(item, index3, props)];\n          if (!frame || frame.index !== index3) {\n            if (getItemLayout) {\n              return getItemLayout(data, index3);\n            }\n          }\n          return frame;\n        };\n        this._getNonViewportRenderRegions = (props) => {\n          if (!(this._lastFocusedCellKey && this._cellRefs[this._lastFocusedCellKey])) {\n            return [];\n          }\n          var lastFocusedCellRenderer = this._cellRefs[this._lastFocusedCellKey];\n          var focusedCellIndex = lastFocusedCellRenderer.props.index;\n          var itemCount = props.getItemCount(props.data);\n          if (focusedCellIndex >= itemCount || this._keyExtractor(props.getItem(props.data, focusedCellIndex), focusedCellIndex, props) !== this._lastFocusedCellKey) {\n            return [];\n          }\n          var first = focusedCellIndex;\n          var heightOfCellsBeforeFocused = 0;\n          for (var i = first - 1; i >= 0 && heightOfCellsBeforeFocused < this._scrollMetrics.visibleLength; i--) {\n            first--;\n            heightOfCellsBeforeFocused += this.__getFrameMetricsApprox(i, props).length;\n          }\n          var last = focusedCellIndex;\n          var heightOfCellsAfterFocused = 0;\n          for (var _i = last + 1; _i < itemCount && heightOfCellsAfterFocused < this._scrollMetrics.visibleLength; _i++) {\n            last++;\n            heightOfCellsAfterFocused += this.__getFrameMetricsApprox(_i, props).length;\n          }\n          return [{\n            first,\n            last\n          }];\n        };\n        this._checkProps(_props);\n        this._fillRateHelper = new _FillRateHelper.default(this._getFrameMetrics);\n        this._updateCellsToRenderBatcher = new _Batchinator.default(this._updateCellsToRender, (_this$props$updateCel = this.props.updateCellsBatchingPeriod) !== null && _this$props$updateCel !== void 0 ? _this$props$updateCel : 50);\n        if (this.props.viewabilityConfigCallbackPairs) {\n          this._viewabilityTuples = this.props.viewabilityConfigCallbackPairs.map((pair) => ({\n            viewabilityHelper: new _ViewabilityHelper.default(pair.viewabilityConfig),\n            onViewableItemsChanged: pair.onViewableItemsChanged\n          }));\n        } else {\n          var _this$props3 = this.props, onViewableItemsChanged = _this$props3.onViewableItemsChanged, viewabilityConfig = _this$props3.viewabilityConfig;\n          if (onViewableItemsChanged) {\n            this._viewabilityTuples.push({\n              viewabilityHelper: new _ViewabilityHelper.default(viewabilityConfig),\n              onViewableItemsChanged\n            });\n          }\n        }\n        var initialRenderRegion = _VirtualizedList._initialRenderRegion(_props);\n        this.state = {\n          cellsAroundViewport: initialRenderRegion,\n          renderMask: _VirtualizedList._createRenderMask(_props, initialRenderRegion)\n        };\n        this.invertedWheelEventHandler = (ev) => {\n          var scrollOffset = this.props.horizontal ? ev.target.scrollLeft : ev.target.scrollTop;\n          var scrollLength = this.props.horizontal ? ev.target.scrollWidth : ev.target.scrollHeight;\n          var clientLength = this.props.horizontal ? ev.target.clientWidth : ev.target.clientHeight;\n          var isEventTargetScrollable = scrollLength > clientLength;\n          var delta = this.props.horizontal ? ev.deltaX || ev.wheelDeltaX : ev.deltaY || ev.wheelDeltaY;\n          var leftoverDelta = delta;\n          if (isEventTargetScrollable) {\n            leftoverDelta = delta < 0 ? Math.min(delta + scrollOffset, 0) : Math.max(delta - (scrollLength - clientLength - scrollOffset), 0);\n          }\n          var targetDelta = delta - leftoverDelta;\n          if (this.props.inverted && this._scrollRef && this._scrollRef.getScrollableNode) {\n            var node = this._scrollRef.getScrollableNode();\n            if (this.props.horizontal) {\n              ev.target.scrollLeft += targetDelta;\n              var nextScrollLeft = node.scrollLeft - leftoverDelta;\n              node.scrollLeft = !this.props.getItemLayout ? Math.min(nextScrollLeft, this._totalCellLength) : nextScrollLeft;\n            } else {\n              ev.target.scrollTop += targetDelta;\n              var nextScrollTop = node.scrollTop - leftoverDelta;\n              node.scrollTop = !this.props.getItemLayout ? Math.min(nextScrollTop, this._totalCellLength) : nextScrollTop;\n            }\n            ev.preventDefault();\n          }\n        };\n      }\n      _checkProps(props) {\n        var onScroll = props.onScroll, windowSize = props.windowSize, getItemCount = props.getItemCount, data = props.data, initialScrollIndex = props.initialScrollIndex;\n        (0, _invariant.default)(\n          // $FlowFixMe[prop-missing]\n          !onScroll || !onScroll.__isNative,\n          \"Components based on VirtualizedList must be wrapped with Animated.createAnimatedComponent to support native onScroll events with useNativeDriver\"\n        );\n        (0, _invariant.default)(windowSizeOrDefault(windowSize) > 0, \"VirtualizedList: The windowSize prop must be present and set to a value greater than 0.\");\n        (0, _invariant.default)(getItemCount, 'VirtualizedList: The \"getItemCount\" prop must be provided');\n        var itemCount = getItemCount(data);\n        if (initialScrollIndex != null && !this._hasTriggeredInitialScrollToIndex && (initialScrollIndex < 0 || itemCount > 0 && initialScrollIndex >= itemCount) && !this._hasWarned.initialScrollIndex) {\n          console.warn('initialScrollIndex \"' + initialScrollIndex + '\" is not valid (list has ' + itemCount + \" items)\");\n          this._hasWarned.initialScrollIndex = true;\n        }\n        if (__DEV__ && !this._hasWarned.flexWrap) {\n          var flatStyles = _StyleSheet.default.flatten(this.props.contentContainerStyle);\n          if (flatStyles != null && flatStyles.flexWrap === \"wrap\") {\n            console.warn(\"`flexWrap: `wrap`` is not supported with the `VirtualizedList` components.Consider using `numColumns` with `FlatList` instead.\");\n            this._hasWarned.flexWrap = true;\n          }\n        }\n      }\n      static _createRenderMask(props, cellsAroundViewport, additionalRegions) {\n        var itemCount = props.getItemCount(props.data);\n        (0, _invariant.default)(cellsAroundViewport.first >= 0 && cellsAroundViewport.last >= cellsAroundViewport.first - 1 && cellsAroundViewport.last < itemCount, 'Invalid cells around viewport \"[' + cellsAroundViewport.first + \", \" + cellsAroundViewport.last + ']\" was passed to VirtualizedList._createRenderMask');\n        var renderMask = new _CellRenderMask.CellRenderMask(itemCount);\n        if (itemCount > 0) {\n          var allRegions = [cellsAroundViewport, ...additionalRegions !== null && additionalRegions !== void 0 ? additionalRegions : []];\n          for (var _i2 = 0, _allRegions = allRegions; _i2 < _allRegions.length; _i2++) {\n            var region = _allRegions[_i2];\n            renderMask.addCells(region);\n          }\n          if (props.initialScrollIndex == null || props.initialScrollIndex <= 0) {\n            var initialRegion = _VirtualizedList._initialRenderRegion(props);\n            renderMask.addCells(initialRegion);\n          }\n          var stickyIndicesSet = new Set(props.stickyHeaderIndices);\n          _VirtualizedList._ensureClosestStickyHeader(props, stickyIndicesSet, renderMask, cellsAroundViewport.first);\n        }\n        return renderMask;\n      }\n      static _initialRenderRegion(props) {\n        var _props$initialScrollI;\n        var itemCount = props.getItemCount(props.data);\n        var firstCellIndex = Math.max(0, Math.min(itemCount - 1, Math.floor((_props$initialScrollI = props.initialScrollIndex) !== null && _props$initialScrollI !== void 0 ? _props$initialScrollI : 0)));\n        var lastCellIndex = Math.min(itemCount, firstCellIndex + initialNumToRenderOrDefault(props.initialNumToRender)) - 1;\n        return {\n          first: firstCellIndex,\n          last: lastCellIndex\n        };\n      }\n      static _ensureClosestStickyHeader(props, stickyIndicesSet, renderMask, cellIdx) {\n        var stickyOffset = props.ListHeaderComponent ? 1 : 0;\n        for (var itemIdx = cellIdx - 1; itemIdx >= 0; itemIdx--) {\n          if (stickyIndicesSet.has(itemIdx + stickyOffset)) {\n            renderMask.addCells({\n              first: itemIdx,\n              last: itemIdx\n            });\n            break;\n          }\n        }\n      }\n      _adjustCellsAroundViewport(props, cellsAroundViewport) {\n        var data = props.data, getItemCount = props.getItemCount;\n        var onEndReachedThreshold = onEndReachedThresholdOrDefault(props.onEndReachedThreshold);\n        var _this$_scrollMetrics = this._scrollMetrics, contentLength = _this$_scrollMetrics.contentLength, offset4 = _this$_scrollMetrics.offset, visibleLength = _this$_scrollMetrics.visibleLength;\n        var distanceFromEnd = contentLength - visibleLength - offset4;\n        if (visibleLength <= 0 || contentLength <= 0) {\n          return cellsAroundViewport.last >= getItemCount(data) ? _VirtualizedList._constrainToItemCount(cellsAroundViewport, props) : cellsAroundViewport;\n        }\n        var newCellsAroundViewport;\n        if (props.disableVirtualization) {\n          var renderAhead = distanceFromEnd < onEndReachedThreshold * visibleLength ? maxToRenderPerBatchOrDefault(props.maxToRenderPerBatch) : 0;\n          newCellsAroundViewport = {\n            first: 0,\n            last: Math.min(cellsAroundViewport.last + renderAhead, getItemCount(data) - 1)\n          };\n        } else {\n          if (props.initialScrollIndex && !this._scrollMetrics.offset && Math.abs(distanceFromEnd) >= Number.EPSILON) {\n            return cellsAroundViewport.last >= getItemCount(data) ? _VirtualizedList._constrainToItemCount(cellsAroundViewport, props) : cellsAroundViewport;\n          }\n          newCellsAroundViewport = (0, _VirtualizeUtils.computeWindowedRenderLimits)(props, maxToRenderPerBatchOrDefault(props.maxToRenderPerBatch), windowSizeOrDefault(props.windowSize), cellsAroundViewport, this.__getFrameMetricsApprox, this._scrollMetrics);\n          (0, _invariant.default)(newCellsAroundViewport.last < getItemCount(data), \"computeWindowedRenderLimits() should return range in-bounds\");\n        }\n        if (this._nestedChildLists.size() > 0) {\n          var childIdx = this._findFirstChildWithMore(newCellsAroundViewport.first, newCellsAroundViewport.last);\n          newCellsAroundViewport.last = childIdx !== null && childIdx !== void 0 ? childIdx : newCellsAroundViewport.last;\n        }\n        return newCellsAroundViewport;\n      }\n      _findFirstChildWithMore(first, last) {\n        for (var ii = first; ii <= last; ii++) {\n          var cellKeyForIndex = this._indicesToKeys.get(ii);\n          if (cellKeyForIndex != null && this._nestedChildLists.anyInCell(cellKeyForIndex, (childList) => childList.hasMore())) {\n            return ii;\n          }\n        }\n        return null;\n      }\n      componentDidMount() {\n        if (this._isNestedWithSameOrientation()) {\n          this.context.registerAsNestedChild({\n            ref: this,\n            cellKey: this.context.cellKey\n          });\n        }\n        this.setupWebWheelHandler();\n      }\n      componentWillUnmount() {\n        if (this._isNestedWithSameOrientation()) {\n          this.context.unregisterAsNestedChild({\n            ref: this\n          });\n        }\n        this._updateCellsToRenderBatcher.dispose({\n          abort: true\n        });\n        this._viewabilityTuples.forEach((tuple) => {\n          tuple.viewabilityHelper.dispose();\n        });\n        this._fillRateHelper.deactivateAndFlush();\n        this.teardownWebWheelHandler();\n      }\n      // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n      setupWebWheelHandler() {\n        if (this._scrollRef && this._scrollRef.getScrollableNode) {\n          this._scrollRef.getScrollableNode().addEventListener(\"wheel\", this.invertedWheelEventHandler);\n        } else {\n          setTimeout(() => this.setupWebWheelHandler(), 50);\n          return;\n        }\n      }\n      // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n      teardownWebWheelHandler() {\n        if (this._scrollRef && this._scrollRef.getScrollableNode) {\n          this._scrollRef.getScrollableNode().removeEventListener(\"wheel\", this.invertedWheelEventHandler);\n        }\n      }\n      static getDerivedStateFromProps(newProps, prevState) {\n        var itemCount = newProps.getItemCount(newProps.data);\n        if (itemCount === prevState.renderMask.numCells()) {\n          return prevState;\n        }\n        var constrainedCells = _VirtualizedList._constrainToItemCount(prevState.cellsAroundViewport, newProps);\n        return {\n          cellsAroundViewport: constrainedCells,\n          renderMask: _VirtualizedList._createRenderMask(newProps, constrainedCells)\n        };\n      }\n      _pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, first, last, inversionStyle) {\n        var _this = this;\n        var _this$props4 = this.props, CellRendererComponent = _this$props4.CellRendererComponent, ItemSeparatorComponent = _this$props4.ItemSeparatorComponent, ListHeaderComponent = _this$props4.ListHeaderComponent, ListItemComponent2 = _this$props4.ListItemComponent, data = _this$props4.data, debug = _this$props4.debug, getItem = _this$props4.getItem, getItemCount = _this$props4.getItemCount, getItemLayout = _this$props4.getItemLayout, horizontal = _this$props4.horizontal, renderItem = _this$props4.renderItem;\n        var stickyOffset = ListHeaderComponent ? 1 : 0;\n        var end = getItemCount(data) - 1;\n        var prevCellKey;\n        last = Math.min(end, last);\n        var _loop = /* @__PURE__ */ __name(function _loop2() {\n          var item = getItem(data, ii);\n          var key = _this._keyExtractor(item, ii, _this.props);\n          _this._indicesToKeys.set(ii, key);\n          if (stickyIndicesFromProps.has(ii + stickyOffset)) {\n            stickyHeaderIndices.push(cells.length);\n          }\n          var shouldListenForLayout = getItemLayout == null || debug || _this._fillRateHelper.enabled();\n          cells.push(/* @__PURE__ */ React75.createElement(_VirtualizedListCellRenderer.default, (0, _extends2.default)({\n            CellRendererComponent,\n            ItemSeparatorComponent: ii < end ? ItemSeparatorComponent : void 0,\n            ListItemComponent: ListItemComponent2,\n            cellKey: key,\n            horizontal,\n            index: ii,\n            inversionStyle,\n            item,\n            key,\n            prevCellKey,\n            onUpdateSeparators: _this._onUpdateSeparators,\n            onCellFocusCapture: /* @__PURE__ */ __name((e) => _this._onCellFocusCapture(key), \"onCellFocusCapture\"),\n            onUnmount: _this._onCellUnmount,\n            ref: /* @__PURE__ */ __name((_ref) => {\n              _this._cellRefs[key] = _ref;\n            }, \"ref\"),\n            renderItem\n          }, shouldListenForLayout && {\n            onCellLayout: _this._onCellLayout\n          })));\n          prevCellKey = key;\n        }, \"_loop\");\n        for (var ii = first; ii <= last; ii++) {\n          _loop();\n        }\n      }\n      static _constrainToItemCount(cells, props) {\n        var itemCount = props.getItemCount(props.data);\n        var last = Math.min(itemCount - 1, cells.last);\n        var maxToRenderPerBatch = maxToRenderPerBatchOrDefault(props.maxToRenderPerBatch);\n        return {\n          first: (0, _clamp.default)(0, itemCount - 1 - maxToRenderPerBatch, cells.first),\n          last\n        };\n      }\n      _isNestedWithSameOrientation() {\n        var nestedContext = this.context;\n        return !!(nestedContext && !!nestedContext.horizontal === horizontalOrDefault(this.props.horizontal));\n      }\n      _keyExtractor(item, index3, props) {\n        if (props.keyExtractor != null) {\n          return props.keyExtractor(item, index3);\n        }\n        var key = (0, _VirtualizeUtils.keyExtractor)(item, index3);\n        if (key === String(index3)) {\n          _usedIndexForKey = true;\n          if (item.type && item.type.displayName) {\n            _keylessItemComponentName = item.type.displayName;\n          }\n        }\n        return key;\n      }\n      render() {\n        this._checkProps(this.props);\n        var _this$props5 = this.props, ListEmptyComponent = _this$props5.ListEmptyComponent, ListFooterComponent = _this$props5.ListFooterComponent, ListHeaderComponent = _this$props5.ListHeaderComponent;\n        var _this$props6 = this.props, data = _this$props6.data, horizontal = _this$props6.horizontal;\n        var inversionStyle = this.props.inverted ? horizontalOrDefault(this.props.horizontal) ? styles.horizontallyInverted : styles.verticallyInverted : null;\n        var cells = [];\n        var stickyIndicesFromProps = new Set(this.props.stickyHeaderIndices);\n        var stickyHeaderIndices = [];\n        if (ListHeaderComponent) {\n          if (stickyIndicesFromProps.has(0)) {\n            stickyHeaderIndices.push(0);\n          }\n          var _element = /* @__PURE__ */ React75.isValidElement(ListHeaderComponent) ? ListHeaderComponent : (\n            // $FlowFixMe[not-a-component]\n            // $FlowFixMe[incompatible-type-arg]\n            /* @__PURE__ */ React75.createElement(ListHeaderComponent, null)\n          );\n          cells.push(/* @__PURE__ */ React75.createElement(_VirtualizedListContext.VirtualizedListCellContextProvider, {\n            cellKey: this._getCellKey() + \"-header\",\n            key: \"$header\"\n          }, /* @__PURE__ */ React75.createElement(\n            _View.default,\n            {\n              onLayout: this._onLayoutHeader,\n              style: [inversionStyle, this.props.ListHeaderComponentStyle]\n            },\n            // $FlowFixMe[incompatible-type] - Typing ReactNativeComponent revealed errors\n            _element\n          )));\n        }\n        var itemCount = this.props.getItemCount(data);\n        if (itemCount === 0 && ListEmptyComponent) {\n          var _element2 = /* @__PURE__ */ React75.isValidElement(ListEmptyComponent) ? ListEmptyComponent : (\n            // $FlowFixMe[not-a-component]\n            // $FlowFixMe[incompatible-type-arg]\n            /* @__PURE__ */ React75.createElement(ListEmptyComponent, null)\n          );\n          cells.push(/* @__PURE__ */ React75.createElement(_VirtualizedListContext.VirtualizedListCellContextProvider, {\n            cellKey: this._getCellKey() + \"-empty\",\n            key: \"$empty\"\n          }, /* @__PURE__ */ React75.cloneElement(_element2, {\n            onLayout: /* @__PURE__ */ __name((event) => {\n              this._onLayoutEmpty(event);\n              if (_element2.props.onLayout) {\n                _element2.props.onLayout(event);\n              }\n            }, \"onLayout\"),\n            style: [inversionStyle, _element2.props.style]\n          })));\n        }\n        if (itemCount > 0) {\n          _usedIndexForKey = false;\n          _keylessItemComponentName = \"\";\n          var spacerKey = this._getSpacerKey(!horizontal);\n          var renderRegions = this.state.renderMask.enumerateRegions();\n          var lastSpacer = findLastWhere(renderRegions, (r) => r.isSpacer);\n          for (var _iterator = (0, _createForOfIteratorHelperLoose2.default)(renderRegions), _step; !(_step = _iterator()).done; ) {\n            var section = _step.value;\n            if (section.isSpacer) {\n              if (this.props.disableVirtualization) {\n                continue;\n              }\n              var isLastSpacer = section === lastSpacer;\n              var constrainToMeasured = isLastSpacer && !this.props.getItemLayout;\n              var last = constrainToMeasured ? (0, _clamp.default)(section.first - 1, section.last, this._highestMeasuredFrameIndex) : section.last;\n              var firstMetrics = this.__getFrameMetricsApprox(section.first, this.props);\n              var lastMetrics = this.__getFrameMetricsApprox(last, this.props);\n              var spacerSize = lastMetrics.offset + lastMetrics.length - firstMetrics.offset;\n              cells.push(/* @__PURE__ */ React75.createElement(_View.default, {\n                key: \"$spacer-\" + section.first,\n                style: {\n                  [spacerKey]: spacerSize\n                }\n              }));\n            } else {\n              this._pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, section.first, section.last, inversionStyle);\n            }\n          }\n          if (!this._hasWarned.keys && _usedIndexForKey) {\n            console.warn(\"VirtualizedList: missing keys for items, make sure to specify a key or id property on each item or provide a custom keyExtractor.\", _keylessItemComponentName);\n            this._hasWarned.keys = true;\n          }\n        }\n        if (ListFooterComponent) {\n          var _element3 = /* @__PURE__ */ React75.isValidElement(ListFooterComponent) ? ListFooterComponent : (\n            // $FlowFixMe[not-a-component]\n            // $FlowFixMe[incompatible-type-arg]\n            /* @__PURE__ */ React75.createElement(ListFooterComponent, null)\n          );\n          cells.push(/* @__PURE__ */ React75.createElement(_VirtualizedListContext.VirtualizedListCellContextProvider, {\n            cellKey: this._getFooterCellKey(),\n            key: \"$footer\"\n          }, /* @__PURE__ */ React75.createElement(\n            _View.default,\n            {\n              onLayout: this._onLayoutFooter,\n              style: [inversionStyle, this.props.ListFooterComponentStyle]\n            },\n            // $FlowFixMe[incompatible-type] - Typing ReactNativeComponent revealed errors\n            _element3\n          )));\n        }\n        var scrollProps = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, this.props), {}, {\n          onContentSizeChange: this._onContentSizeChange,\n          onLayout: this._onLayout,\n          onScroll: this._onScroll,\n          onScrollBeginDrag: this._onScrollBeginDrag,\n          onScrollEndDrag: this._onScrollEndDrag,\n          onMomentumScrollBegin: this._onMomentumScrollBegin,\n          onMomentumScrollEnd: this._onMomentumScrollEnd,\n          scrollEventThrottle: scrollEventThrottleOrDefault(this.props.scrollEventThrottle),\n          // TODO: Android support\n          invertStickyHeaders: this.props.invertStickyHeaders !== void 0 ? this.props.invertStickyHeaders : this.props.inverted,\n          stickyHeaderIndices,\n          style: inversionStyle ? [inversionStyle, this.props.style] : this.props.style\n        });\n        this._hasMore = this.state.cellsAroundViewport.last < itemCount - 1;\n        var innerRet = /* @__PURE__ */ React75.createElement(_VirtualizedListContext.VirtualizedListContextProvider, {\n          value: {\n            cellKey: null,\n            getScrollMetrics: this._getScrollMetrics,\n            horizontal: horizontalOrDefault(this.props.horizontal),\n            getOutermostParentListRef: this._getOutermostParentListRef,\n            registerAsNestedChild: this._registerAsNestedChild,\n            unregisterAsNestedChild: this._unregisterAsNestedChild\n          }\n        }, /* @__PURE__ */ React75.cloneElement((this.props.renderScrollComponent || this._defaultRenderScrollComponent)(scrollProps), {\n          ref: this._captureScrollRef\n        }, cells));\n        var ret = innerRet;\n        if (this.props.debug) {\n          return /* @__PURE__ */ React75.createElement(_View.default, {\n            style: styles.debug\n          }, ret, this._renderDebugOverlay());\n        } else {\n          return ret;\n        }\n      }\n      componentDidUpdate(prevProps) {\n        var _this$props7 = this.props, data = _this$props7.data, extraData = _this$props7.extraData;\n        if (data !== prevProps.data || extraData !== prevProps.extraData) {\n          this._viewabilityTuples.forEach((tuple) => {\n            tuple.viewabilityHelper.resetViewableIndices();\n          });\n        }\n        var hiPriInProgress = this._hiPriInProgress;\n        this._scheduleCellsToRenderUpdate();\n        if (hiPriInProgress) {\n          this._hiPriInProgress = false;\n        }\n      }\n      // Used for preventing scrollToIndex from being called multiple times for initialScrollIndex\n      // flag to prevent infinite hiPri cell limit update\n      // $FlowFixMe[missing-local-annot]\n      /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n       * LTI update could not be added via codemod */\n      _computeBlankness() {\n        this._fillRateHelper.computeBlankness(this.props, this.state.cellsAroundViewport, this._scrollMetrics);\n      }\n      /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n       * LTI update could not be added via codemod */\n      _onCellFocusCapture(cellKey) {\n        this._lastFocusedCellKey = cellKey;\n        this._updateCellsToRender();\n      }\n      _triggerRemeasureForChildListsInCell(cellKey) {\n        this._nestedChildLists.forEachInCell(cellKey, (childList) => {\n          childList.measureLayoutRelativeToContainingList();\n        });\n      }\n      measureLayoutRelativeToContainingList() {\n        try {\n          if (!this._scrollRef) {\n            return;\n          }\n          this._scrollRef.measureLayout(this.context.getOutermostParentListRef().getScrollRef(), (x, y, width, height) => {\n            this._offsetFromParentVirtualizedList = this._selectOffset({\n              x,\n              y\n            });\n            this._scrollMetrics.contentLength = this._selectLength({\n              width,\n              height\n            });\n            var scrollMetrics = this._convertParentScrollMetrics(this.context.getScrollMetrics());\n            var metricsChanged = this._scrollMetrics.visibleLength !== scrollMetrics.visibleLength || this._scrollMetrics.offset !== scrollMetrics.offset;\n            if (metricsChanged) {\n              this._scrollMetrics.visibleLength = scrollMetrics.visibleLength;\n              this._scrollMetrics.offset = scrollMetrics.offset;\n              this._nestedChildLists.forEach((childList) => {\n                childList.measureLayoutRelativeToContainingList();\n              });\n            }\n          }, (error2) => {\n            console.warn(\"VirtualizedList: Encountered an error while measuring a list's offset from its containing VirtualizedList.\");\n          });\n        } catch (error2) {\n          console.warn(\"measureLayoutRelativeToContainingList threw an error\", error2.stack);\n        }\n      }\n      _getFooterCellKey() {\n        return this._getCellKey() + \"-footer\";\n      }\n      // $FlowFixMe[missing-local-annot]\n      _renderDebugOverlay() {\n        var normalize = this._scrollMetrics.visibleLength / (this._scrollMetrics.contentLength || 1);\n        var framesInLayout = [];\n        var itemCount = this.props.getItemCount(this.props.data);\n        for (var ii = 0; ii < itemCount; ii++) {\n          var frame = this.__getFrameMetricsApprox(ii, this.props);\n          if (frame.inLayout) {\n            framesInLayout.push(frame);\n          }\n        }\n        var windowTop = this.__getFrameMetricsApprox(this.state.cellsAroundViewport.first, this.props).offset;\n        var frameLast = this.__getFrameMetricsApprox(this.state.cellsAroundViewport.last, this.props);\n        var windowLen = frameLast.offset + frameLast.length - windowTop;\n        var visTop = this._scrollMetrics.offset;\n        var visLen = this._scrollMetrics.visibleLength;\n        return /* @__PURE__ */ React75.createElement(_View.default, {\n          style: [styles.debugOverlayBase, styles.debugOverlay]\n        }, framesInLayout.map((f, ii2) => /* @__PURE__ */ React75.createElement(_View.default, {\n          key: \"f\" + ii2,\n          style: [styles.debugOverlayBase, styles.debugOverlayFrame, {\n            top: f.offset * normalize,\n            height: f.length * normalize\n          }]\n        })), /* @__PURE__ */ React75.createElement(_View.default, {\n          style: [styles.debugOverlayBase, styles.debugOverlayFrameLast, {\n            top: windowTop * normalize,\n            height: windowLen * normalize\n          }]\n        }), /* @__PURE__ */ React75.createElement(_View.default, {\n          style: [styles.debugOverlayBase, styles.debugOverlayFrameVis, {\n            top: visTop * normalize,\n            height: visLen * normalize\n          }]\n        }));\n      }\n      _selectLength(metrics) {\n        return !horizontalOrDefault(this.props.horizontal) ? metrics.height : metrics.width;\n      }\n      _selectOffset(metrics) {\n        return !horizontalOrDefault(this.props.horizontal) ? metrics.y : metrics.x;\n      }\n      _maybeCallOnEdgeReached() {\n        var _this$props8 = this.props, data = _this$props8.data, getItemCount = _this$props8.getItemCount, onStartReached = _this$props8.onStartReached, onStartReachedThreshold = _this$props8.onStartReachedThreshold, onEndReached = _this$props8.onEndReached, onEndReachedThreshold = _this$props8.onEndReachedThreshold, initialScrollIndex = _this$props8.initialScrollIndex;\n        var _this$_scrollMetrics2 = this._scrollMetrics, contentLength = _this$_scrollMetrics2.contentLength, visibleLength = _this$_scrollMetrics2.visibleLength, offset4 = _this$_scrollMetrics2.offset;\n        var distanceFromStart = offset4;\n        var distanceFromEnd = contentLength - visibleLength - offset4;\n        if (distanceFromStart < ON_EDGE_REACHED_EPSILON) {\n          distanceFromStart = 0;\n        }\n        if (distanceFromEnd < ON_EDGE_REACHED_EPSILON) {\n          distanceFromEnd = 0;\n        }\n        var DEFAULT_THRESHOLD_PX = 2;\n        var startThreshold = onStartReachedThreshold != null ? onStartReachedThreshold * visibleLength : DEFAULT_THRESHOLD_PX;\n        var endThreshold = onEndReachedThreshold != null ? onEndReachedThreshold * visibleLength : DEFAULT_THRESHOLD_PX;\n        var isWithinStartThreshold = distanceFromStart <= startThreshold;\n        var isWithinEndThreshold = distanceFromEnd <= endThreshold;\n        if (onEndReached && this.state.cellsAroundViewport.last === getItemCount(data) - 1 && isWithinEndThreshold && this._scrollMetrics.contentLength !== this._sentEndForContentLength) {\n          this._sentEndForContentLength = this._scrollMetrics.contentLength;\n          onEndReached({\n            distanceFromEnd\n          });\n        } else if (onStartReached != null && this.state.cellsAroundViewport.first === 0 && isWithinStartThreshold && this._scrollMetrics.contentLength !== this._sentStartForContentLength) {\n          if (!initialScrollIndex || this._scrollMetrics.timestamp !== 0) {\n            this._sentStartForContentLength = this._scrollMetrics.contentLength;\n            onStartReached({\n              distanceFromStart\n            });\n          }\n        } else {\n          this._sentStartForContentLength = isWithinStartThreshold ? this._sentStartForContentLength : 0;\n          this._sentEndForContentLength = isWithinEndThreshold ? this._sentEndForContentLength : 0;\n        }\n      }\n      /* Translates metrics from a scroll event in a parent VirtualizedList into\n       * coordinates relative to the child list.\n       */\n      _scheduleCellsToRenderUpdate() {\n        var _this$state$cellsArou = this.state.cellsAroundViewport, first = _this$state$cellsArou.first, last = _this$state$cellsArou.last;\n        var _this$_scrollMetrics3 = this._scrollMetrics, offset4 = _this$_scrollMetrics3.offset, visibleLength = _this$_scrollMetrics3.visibleLength, velocity = _this$_scrollMetrics3.velocity;\n        var itemCount = this.props.getItemCount(this.props.data);\n        var hiPri = false;\n        var onStartReachedThreshold = onStartReachedThresholdOrDefault(this.props.onStartReachedThreshold);\n        var onEndReachedThreshold = onEndReachedThresholdOrDefault(this.props.onEndReachedThreshold);\n        if (first > 0) {\n          var distTop = offset4 - this.__getFrameMetricsApprox(first, this.props).offset;\n          hiPri = distTop < 0 || velocity < -2 && distTop < getScrollingThreshold(onStartReachedThreshold, visibleLength);\n        }\n        if (!hiPri && last >= 0 && last < itemCount - 1) {\n          var distBottom = this.__getFrameMetricsApprox(last, this.props).offset - (offset4 + visibleLength);\n          hiPri = distBottom < 0 || velocity > 2 && distBottom < getScrollingThreshold(onEndReachedThreshold, visibleLength);\n        }\n        if (hiPri && (this._averageCellLength || this.props.getItemLayout) && !this._hiPriInProgress) {\n          this._hiPriInProgress = true;\n          this._updateCellsToRenderBatcher.dispose({\n            abort: true\n          });\n          this._updateCellsToRender();\n          return;\n        } else {\n          this._updateCellsToRenderBatcher.schedule();\n        }\n      }\n      /**\n       * Gets an approximate offset to an item at a given index. Supports\n       * fractional indices.\n       */\n      _updateViewableItems(props, cellsAroundViewport) {\n        this._viewabilityTuples.forEach((tuple) => {\n          tuple.viewabilityHelper.onUpdate(props, this._scrollMetrics.offset, this._scrollMetrics.visibleLength, this._getFrameMetrics, this._createViewToken, tuple.onViewableItemsChanged, cellsAroundViewport);\n        });\n      }\n    };\n    VirtualizedList.contextType = _VirtualizedListContext.VirtualizedListContext;\n    var styles = _StyleSheet.default.create({\n      verticallyInverted: {\n        transform: \"scaleY(-1)\"\n      },\n      horizontallyInverted: {\n        transform: \"scaleX(-1)\"\n      },\n      debug: {\n        flex: 1\n      },\n      debugOverlayBase: {\n        position: \"absolute\",\n        top: 0,\n        right: 0\n      },\n      debugOverlay: {\n        bottom: 0,\n        width: 20,\n        borderColor: \"blue\",\n        borderWidth: 1\n      },\n      debugOverlayFrame: {\n        left: 0,\n        backgroundColor: \"orange\"\n      },\n      debugOverlayFrameLast: {\n        left: 0,\n        borderColor: \"green\",\n        borderWidth: 2\n      },\n      debugOverlayFrameVis: {\n        left: 0,\n        borderColor: \"red\",\n        borderWidth: 2\n      }\n    });\n    var _default = exports2.default = VirtualizedList;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/node_modules/memoize-one/dist/memoize-one.cjs.js\nvar require_memoize_one_cjs = __commonJS({\n  \"node_modules/react-native-web/node_modules/memoize-one/dist/memoize-one.cjs.js\"(exports2, module2) {\n    \"use strict\";\n    var safeIsNaN = Number.isNaN || /* @__PURE__ */ __name(function ponyfill(value) {\n      return typeof value === \"number\" && value !== value;\n    }, \"ponyfill\");\n    function isEqual(first, second) {\n      if (first === second) {\n        return true;\n      }\n      if (safeIsNaN(first) && safeIsNaN(second)) {\n        return true;\n      }\n      return false;\n    }\n    __name(isEqual, \"isEqual\");\n    function areInputsEqual(newInputs, lastInputs) {\n      if (newInputs.length !== lastInputs.length) {\n        return false;\n      }\n      for (var i = 0; i < newInputs.length; i++) {\n        if (!isEqual(newInputs[i], lastInputs[i])) {\n          return false;\n        }\n      }\n      return true;\n    }\n    __name(areInputsEqual, \"areInputsEqual\");\n    function memoizeOne(resultFn, isEqual2) {\n      if (isEqual2 === void 0) {\n        isEqual2 = areInputsEqual;\n      }\n      var cache3 = null;\n      function memoized() {\n        var newArgs = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n          newArgs[_i] = arguments[_i];\n        }\n        if (cache3 && cache3.lastThis === this && isEqual2(newArgs, cache3.lastArgs)) {\n          return cache3.lastResult;\n        }\n        var lastResult = resultFn.apply(this, newArgs);\n        cache3 = {\n          lastResult,\n          lastArgs: newArgs,\n          lastThis: this\n        };\n        return lastResult;\n      }\n      __name(memoized, \"memoized\");\n      memoized.clear = /* @__PURE__ */ __name(function clear() {\n        cache3 = null;\n      }, \"clear\");\n      return memoized;\n    }\n    __name(memoizeOne, \"memoizeOne\");\n    module2.exports = memoizeOne;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/FlatList/index.js\nvar require_FlatList = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/FlatList/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _extends2 = _interopRequireDefault(require_extends());\n    var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());\n    var _objectSpread2 = _interopRequireDefault(require_objectSpread2());\n    var _View = _interopRequireDefault(require_View());\n    var _StyleSheet = _interopRequireDefault(require_StyleSheet());\n    var _deepDiffer = _interopRequireDefault(require_deepDiffer());\n    var _Platform = _interopRequireDefault(require_Platform());\n    var _invariant = _interopRequireDefault(require_invariant());\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var _VirtualizedList = _interopRequireDefault(require_VirtualizedList());\n    var _VirtualizeUtils = require_VirtualizeUtils();\n    var _memoizeOne = _interopRequireDefault(require_memoize_one_cjs());\n    var _excluded = [\"numColumns\", \"columnWrapperStyle\", \"removeClippedSubviews\", \"strictMode\"];\n    function removeClippedSubviewsOrDefault(removeClippedSubviews) {\n      return removeClippedSubviews !== null && removeClippedSubviews !== void 0 ? removeClippedSubviews : _Platform.default.OS === \"android\";\n    }\n    __name(removeClippedSubviewsOrDefault, \"removeClippedSubviewsOrDefault\");\n    function numColumnsOrDefault(numColumns) {\n      return numColumns !== null && numColumns !== void 0 ? numColumns : 1;\n    }\n    __name(numColumnsOrDefault, \"numColumnsOrDefault\");\n    function isArrayLike(data) {\n      return typeof Object(data).length === \"number\";\n    }\n    __name(isArrayLike, \"isArrayLike\");\n    var FlatList = class extends React75.PureComponent {\n      static {\n        __name(this, \"FlatList\");\n      }\n      /**\n       * Scrolls to the end of the content. May be janky without `getItemLayout` prop.\n       */\n      scrollToEnd(params) {\n        if (this._listRef) {\n          this._listRef.scrollToEnd(params);\n        }\n      }\n      /**\n       * Scrolls to the item at the specified index such that it is positioned in the viewable area\n       * such that `viewPosition` 0 places it at the top, 1 at the bottom, and 0.5 centered in the\n       * middle. `viewOffset` is a fixed number of pixels to offset the final target position.\n       *\n       * Note: cannot scroll to locations outside the render window without specifying the\n       * `getItemLayout` prop.\n       */\n      scrollToIndex(params) {\n        if (this._listRef) {\n          this._listRef.scrollToIndex(params);\n        }\n      }\n      /**\n       * Requires linear scan through data - use `scrollToIndex` instead if possible.\n       *\n       * Note: cannot scroll to locations outside the render window without specifying the\n       * `getItemLayout` prop.\n       */\n      scrollToItem(params) {\n        if (this._listRef) {\n          this._listRef.scrollToItem(params);\n        }\n      }\n      /**\n       * Scroll to a specific content pixel offset in the list.\n       *\n       * Check out [scrollToOffset](docs/virtualizedlist.html#scrolltooffset) of VirtualizedList\n       */\n      scrollToOffset(params) {\n        if (this._listRef) {\n          this._listRef.scrollToOffset(params);\n        }\n      }\n      /**\n       * Tells the list an interaction has occurred, which should trigger viewability calculations, e.g.\n       * if `waitForInteractions` is true and the user has not scrolled. This is typically called by\n       * taps on items or by navigation actions.\n       */\n      recordInteraction() {\n        if (this._listRef) {\n          this._listRef.recordInteraction();\n        }\n      }\n      /**\n       * Displays the scroll indicators momentarily.\n       *\n       * @platform ios\n       */\n      flashScrollIndicators() {\n        if (this._listRef) {\n          this._listRef.flashScrollIndicators();\n        }\n      }\n      /**\n       * Provides a handle to the underlying scroll responder.\n       */\n      getScrollResponder() {\n        if (this._listRef) {\n          return this._listRef.getScrollResponder();\n        }\n      }\n      /**\n       * Provides a reference to the underlying host component\n       */\n      getNativeScrollRef() {\n        if (this._listRef) {\n          return this._listRef.getScrollRef();\n        }\n      }\n      getScrollableNode() {\n        if (this._listRef) {\n          return this._listRef.getScrollableNode();\n        }\n      }\n      constructor(_props) {\n        super(_props);\n        this._virtualizedListPairs = [];\n        this._captureRef = (ref) => {\n          this._listRef = ref;\n        };\n        this._getItem = (data, index3) => {\n          var numColumns = numColumnsOrDefault(this.props.numColumns);\n          if (numColumns > 1) {\n            var ret = [];\n            for (var kk = 0; kk < numColumns; kk++) {\n              var itemIndex = index3 * numColumns + kk;\n              if (itemIndex < data.length) {\n                var _item = data[itemIndex];\n                ret.push(_item);\n              }\n            }\n            return ret;\n          } else {\n            return data[index3];\n          }\n        };\n        this._getItemCount = (data) => {\n          if (data != null && isArrayLike(data)) {\n            var numColumns = numColumnsOrDefault(this.props.numColumns);\n            return numColumns > 1 ? Math.ceil(data.length / numColumns) : data.length;\n          } else {\n            return 0;\n          }\n        };\n        this._keyExtractor = (items, index3) => {\n          var _this$props$keyExtrac;\n          var numColumns = numColumnsOrDefault(this.props.numColumns);\n          var keyExtractor = (_this$props$keyExtrac = this.props.keyExtractor) !== null && _this$props$keyExtrac !== void 0 ? _this$props$keyExtrac : _VirtualizeUtils.keyExtractor;\n          if (numColumns > 1) {\n            (0, _invariant.default)(Array.isArray(items), \"FlatList: Encountered internal consistency error, expected each item to consist of an array with 1-%s columns; instead, received a single item.\", numColumns);\n            return items.map((item, kk) => keyExtractor(item, index3 * numColumns + kk)).join(\":\");\n          }\n          return keyExtractor(items, index3);\n        };\n        this._renderer = (ListItemComponent2, renderItem, columnWrapperStyle, numColumns, extraData) => {\n          var cols = numColumnsOrDefault(numColumns);\n          var render = /* @__PURE__ */ __name((props) => {\n            if (ListItemComponent2) {\n              return /* @__PURE__ */ React75.createElement(ListItemComponent2, props);\n            } else if (renderItem) {\n              return renderItem(props);\n            } else {\n              return null;\n            }\n          }, \"render\");\n          var renderProp = /* @__PURE__ */ __name((info) => {\n            if (cols > 1) {\n              var _item2 = info.item, _index = info.index;\n              (0, _invariant.default)(Array.isArray(_item2), \"Expected array of items with numColumns > 1\");\n              return /* @__PURE__ */ React75.createElement(_View.default, {\n                style: [styles.row, columnWrapperStyle]\n              }, _item2.map((it, kk) => {\n                var element = render({\n                  // $FlowFixMe[incompatible-call]\n                  item: it,\n                  index: _index * cols + kk,\n                  separators: info.separators\n                });\n                return element != null ? /* @__PURE__ */ React75.createElement(React75.Fragment, {\n                  key: kk\n                }, element) : null;\n              }));\n            } else {\n              return render(info);\n            }\n          }, \"renderProp\");\n          return ListItemComponent2 ? {\n            ListItemComponent: renderProp\n          } : {\n            renderItem: renderProp\n          };\n        };\n        this._memoizedRenderer = (0, _memoizeOne.default)(this._renderer);\n        this._checkProps(this.props);\n        if (this.props.viewabilityConfigCallbackPairs) {\n          this._virtualizedListPairs = this.props.viewabilityConfigCallbackPairs.map((pair) => ({\n            viewabilityConfig: pair.viewabilityConfig,\n            onViewableItemsChanged: this._createOnViewableItemsChanged(pair.onViewableItemsChanged)\n          }));\n        } else if (this.props.onViewableItemsChanged) {\n          this._virtualizedListPairs.push({\n            /* $FlowFixMe[incompatible-call] (>=0.63.0 site=react_native_fb) This\n             * comment suppresses an error found when Flow v0.63 was deployed. To\n             * see the error delete this comment and run Flow. */\n            viewabilityConfig: this.props.viewabilityConfig,\n            onViewableItemsChanged: this._createOnViewableItemsChanged(this.props.onViewableItemsChanged)\n          });\n        }\n      }\n      // $FlowFixMe[missing-local-annot]\n      componentDidUpdate(prevProps) {\n        (0, _invariant.default)(prevProps.numColumns === this.props.numColumns, \"Changing numColumns on the fly is not supported. Change the key prop on FlatList when changing the number of columns to force a fresh render of the component.\");\n        (0, _invariant.default)(prevProps.onViewableItemsChanged === this.props.onViewableItemsChanged, \"Changing onViewableItemsChanged on the fly is not supported\");\n        (0, _invariant.default)(!(0, _deepDiffer.default)(prevProps.viewabilityConfig, this.props.viewabilityConfig), \"Changing viewabilityConfig on the fly is not supported\");\n        (0, _invariant.default)(prevProps.viewabilityConfigCallbackPairs === this.props.viewabilityConfigCallbackPairs, \"Changing viewabilityConfigCallbackPairs on the fly is not supported\");\n        this._checkProps(this.props);\n      }\n      // $FlowFixMe[missing-local-annot]\n      _checkProps(props) {\n        var getItem = props.getItem, getItemCount = props.getItemCount, horizontal = props.horizontal, columnWrapperStyle = props.columnWrapperStyle, onViewableItemsChanged = props.onViewableItemsChanged, viewabilityConfigCallbackPairs = props.viewabilityConfigCallbackPairs;\n        var numColumns = numColumnsOrDefault(this.props.numColumns);\n        (0, _invariant.default)(!getItem && !getItemCount, \"FlatList does not support custom data formats.\");\n        if (numColumns > 1) {\n          (0, _invariant.default)(!horizontal, \"numColumns does not support horizontal.\");\n        } else {\n          (0, _invariant.default)(!columnWrapperStyle, \"columnWrapperStyle not supported for single column lists\");\n        }\n        (0, _invariant.default)(!(onViewableItemsChanged && viewabilityConfigCallbackPairs), \"FlatList does not support setting both onViewableItemsChanged and viewabilityConfigCallbackPairs.\");\n      }\n      _pushMultiColumnViewable(arr, v) {\n        var _this$props$keyExtrac2;\n        var numColumns = numColumnsOrDefault(this.props.numColumns);\n        var keyExtractor = (_this$props$keyExtrac2 = this.props.keyExtractor) !== null && _this$props$keyExtrac2 !== void 0 ? _this$props$keyExtrac2 : _VirtualizeUtils.keyExtractor;\n        v.item.forEach((item, ii) => {\n          (0, _invariant.default)(v.index != null, \"Missing index!\");\n          var index3 = v.index * numColumns + ii;\n          arr.push((0, _objectSpread2.default)((0, _objectSpread2.default)({}, v), {}, {\n            item,\n            key: keyExtractor(item, index3),\n            index: index3\n          }));\n        });\n      }\n      _createOnViewableItemsChanged(onViewableItemsChanged) {\n        return (info) => {\n          var numColumns = numColumnsOrDefault(this.props.numColumns);\n          if (onViewableItemsChanged) {\n            if (numColumns > 1) {\n              var changed = [];\n              var viewableItems = [];\n              info.viewableItems.forEach((v) => this._pushMultiColumnViewable(viewableItems, v));\n              info.changed.forEach((v) => this._pushMultiColumnViewable(changed, v));\n              onViewableItemsChanged({\n                viewableItems,\n                changed\n              });\n            } else {\n              onViewableItemsChanged(info);\n            }\n          }\n        };\n      }\n      // $FlowFixMe[missing-local-annot]\n      render() {\n        var _this$props = this.props, numColumns = _this$props.numColumns, columnWrapperStyle = _this$props.columnWrapperStyle, _removeClippedSubviews = _this$props.removeClippedSubviews, _this$props$strictMod = _this$props.strictMode, strictMode = _this$props$strictMod === void 0 ? false : _this$props$strictMod, restProps = (0, _objectWithoutPropertiesLoose2.default)(_this$props, _excluded);\n        var renderer = strictMode ? this._memoizedRenderer : this._renderer;\n        return (\n          // $FlowFixMe[incompatible-exact] - `restProps` (`Props`) is inexact.\n          /* @__PURE__ */ React75.createElement(_VirtualizedList.default, (0, _extends2.default)({}, restProps, {\n            getItem: this._getItem,\n            getItemCount: this._getItemCount,\n            keyExtractor: this._keyExtractor,\n            ref: this._captureRef,\n            viewabilityConfigCallbackPairs: this._virtualizedListPairs,\n            removeClippedSubviews: removeClippedSubviewsOrDefault(_removeClippedSubviews)\n          }, renderer(this.props.ListItemComponent, this.props.renderItem, columnWrapperStyle, numColumns, this.props.extraData)))\n        );\n      }\n    };\n    var styles = _StyleSheet.default.create({\n      row: {\n        flexDirection: \"row\"\n      }\n    });\n    var _default = exports2.default = FlatList;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/FlatList/index.js\nvar require_FlatList2 = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/FlatList/index.js\"(exports2, module2) {\n    \"use strict\";\n    \"use client\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _FlatList = _interopRequireDefault(require_FlatList());\n    var _default = exports2.default = _FlatList.default;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/TurboModule/TurboModuleRegistry.js\nvar require_TurboModuleRegistry = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/TurboModule/TurboModuleRegistry.js\"(exports2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.get = get;\n    exports2.getEnforcing = getEnforcing;\n    var _invariant = _interopRequireDefault(require_invariant());\n    function get(name) {\n      return null;\n    }\n    __name(get, \"get\");\n    function getEnforcing(name) {\n      var module3 = get(name);\n      (0, _invariant.default)(module3 != null, \"TurboModuleRegistry.getEnforcing(...): '\" + name + \"' could not be found. Verify that a module by this name is registered in the native binary.\");\n      return module3;\n    }\n    __name(getEnforcing, \"getEnforcing\");\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/NativeAnimatedModule.js\nvar require_NativeAnimatedModule = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/NativeAnimatedModule.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var TurboModuleRegistry = _interopRequireWildcard(require_TurboModuleRegistry());\n    var _default = exports2.default = TurboModuleRegistry.get(\"NativeAnimatedModule\");\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/NativeAnimatedTurboModule.js\nvar require_NativeAnimatedTurboModule = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/NativeAnimatedTurboModule.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var TurboModuleRegistry = _interopRequireWildcard(require_TurboModuleRegistry());\n    var _default = exports2.default = TurboModuleRegistry.get(\"NativeAnimatedTurboModule\");\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/EventEmitter/RCTDeviceEventEmitter.js\nvar require_RCTDeviceEventEmitter = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/EventEmitter/RCTDeviceEventEmitter.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _EventEmitter = _interopRequireDefault(require_EventEmitter());\n    var _default = exports2.default = new _EventEmitter.default();\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/EventEmitter/NativeEventEmitter.js\nvar require_NativeEventEmitter = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/EventEmitter/NativeEventEmitter.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _Platform = _interopRequireDefault(require_Platform());\n    var _RCTDeviceEventEmitter = _interopRequireDefault(require_RCTDeviceEventEmitter());\n    var _invariant = _interopRequireDefault(require_invariant());\n    var NativeEventEmitter = class {\n      static {\n        __name(this, \"NativeEventEmitter\");\n      }\n      constructor(nativeModule) {\n        if (_Platform.default.OS === \"ios\") {\n          (0, _invariant.default)(nativeModule != null, \"`new NativeEventEmitter()` requires a non-null argument.\");\n          this._nativeModule = nativeModule;\n        }\n      }\n      addListener(eventType, listener, context2) {\n        var _this$_nativeModule;\n        (_this$_nativeModule = this._nativeModule) == null ? void 0 : _this$_nativeModule.addListener(eventType);\n        var subscription = _RCTDeviceEventEmitter.default.addListener(eventType, listener, context2);\n        return {\n          remove: /* @__PURE__ */ __name(() => {\n            if (subscription != null) {\n              var _this$_nativeModule2;\n              (_this$_nativeModule2 = this._nativeModule) == null ? void 0 : _this$_nativeModule2.removeListeners(1);\n              subscription.remove();\n              subscription = null;\n            }\n          }, \"remove\")\n        };\n      }\n      /**\n       * @deprecated Use `remove` on the EventSubscription from `addListener`.\n       */\n      removeListener(eventType, listener) {\n        var _this$_nativeModule3;\n        (_this$_nativeModule3 = this._nativeModule) == null ? void 0 : _this$_nativeModule3.removeListeners(1);\n        _RCTDeviceEventEmitter.default.removeListener(eventType, listener);\n      }\n      emit(eventType) {\n        for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n          args[_key - 1] = arguments[_key];\n        }\n        _RCTDeviceEventEmitter.default.emit(eventType, ...args);\n      }\n      removeAllListeners(eventType) {\n        var _this$_nativeModule4;\n        (0, _invariant.default)(eventType != null, \"`NativeEventEmitter.removeAllListener()` requires a non-null argument.\");\n        (_this$_nativeModule4 = this._nativeModule) == null ? void 0 : _this$_nativeModule4.removeListeners(this.listenerCount(eventType));\n        _RCTDeviceEventEmitter.default.removeAllListeners(eventType);\n      }\n      listenerCount(eventType) {\n        return _RCTDeviceEventEmitter.default.listenerCount(eventType);\n      }\n    };\n    exports2.default = NativeEventEmitter;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Utilities/Platform.js\nvar require_Platform2 = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Utilities/Platform.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _Platform = _interopRequireDefault(require_Platform());\n    var _default = exports2.default = _Platform.default;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/ReactNative/ReactNativeFeatureFlags.js\nvar require_ReactNativeFeatureFlags = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/ReactNative/ReactNativeFeatureFlags.js\"(exports2, module2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var ReactNativeFeatureFlags = {\n      isLayoutAnimationEnabled: /* @__PURE__ */ __name(() => true, \"isLayoutAnimationEnabled\"),\n      shouldEmitW3CPointerEvents: /* @__PURE__ */ __name(() => false, \"shouldEmitW3CPointerEvents\"),\n      shouldPressibilityUseW3CPointerEventsForHover: /* @__PURE__ */ __name(() => false, \"shouldPressibilityUseW3CPointerEventsForHover\"),\n      animatedShouldDebounceQueueFlush: /* @__PURE__ */ __name(() => false, \"animatedShouldDebounceQueueFlush\"),\n      animatedShouldUseSingleOp: /* @__PURE__ */ __name(() => false, \"animatedShouldUseSingleOp\")\n    };\n    var _default = exports2.default = ReactNativeFeatureFlags;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/NativeAnimatedHelper.js\nvar require_NativeAnimatedHelper = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/NativeAnimatedHelper.js\"(exports2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.API = void 0;\n    exports2.addWhitelistedInterpolationParam = addWhitelistedInterpolationParam;\n    exports2.addWhitelistedStyleProp = addWhitelistedStyleProp;\n    exports2.addWhitelistedTransformProp = addWhitelistedTransformProp;\n    exports2.assertNativeAnimatedModule = assertNativeAnimatedModule;\n    exports2.default = void 0;\n    exports2.generateNewAnimationId = generateNewAnimationId;\n    exports2.generateNewNodeTag = generateNewNodeTag;\n    exports2.isSupportedColorStyleProp = isSupportedColorStyleProp;\n    exports2.isSupportedInterpolationParam = isSupportedInterpolationParam;\n    exports2.isSupportedStyleProp = isSupportedStyleProp;\n    exports2.isSupportedTransformProp = isSupportedTransformProp;\n    exports2.shouldUseNativeDriver = shouldUseNativeDriver;\n    exports2.transformDataType = transformDataType;\n    exports2.validateInterpolation = validateInterpolation;\n    exports2.validateStyles = validateStyles;\n    exports2.validateTransform = validateTransform;\n    var _objectSpread2 = _interopRequireDefault(require_objectSpread2());\n    var _NativeAnimatedModule = _interopRequireDefault(require_NativeAnimatedModule());\n    var _NativeAnimatedTurboModule = _interopRequireDefault(require_NativeAnimatedTurboModule());\n    var _NativeEventEmitter = _interopRequireDefault(require_NativeEventEmitter());\n    var _Platform = _interopRequireDefault(require_Platform2());\n    var _ReactNativeFeatureFlags = _interopRequireDefault(require_ReactNativeFeatureFlags());\n    var _invariant = _interopRequireDefault(require_invariant());\n    var _RCTDeviceEventEmitter = _interopRequireDefault(require_RCTDeviceEventEmitter());\n    var NativeAnimatedModule = _Platform.default.OS === \"ios\" && global.RN$Bridgeless === true ? _NativeAnimatedTurboModule.default : _NativeAnimatedModule.default;\n    var __nativeAnimatedNodeTagCount = 1;\n    var __nativeAnimationIdCount = 1;\n    var nativeEventEmitter;\n    var waitingForQueuedOperations = /* @__PURE__ */ new Set();\n    var queueOperations = false;\n    var queue = [];\n    var singleOpQueue = [];\n    var useSingleOpBatching = false;\n    _Platform.default.OS === \"android\" && !!(NativeAnimatedModule != null && NativeAnimatedModule.queueAndExecuteBatchedOperations) && _ReactNativeFeatureFlags.default.animatedShouldUseSingleOp();\n    var flushQueueTimeout = null;\n    var eventListenerGetValueCallbacks = {};\n    var eventListenerAnimationFinishedCallbacks = {};\n    var nativeOps = useSingleOpBatching ? function() {\n      var apis = [\n        \"createAnimatedNode\",\n        // 1\n        \"updateAnimatedNodeConfig\",\n        // 2\n        \"getValue\",\n        // 3\n        \"startListeningToAnimatedNodeValue\",\n        // 4\n        \"stopListeningToAnimatedNodeValue\",\n        // 5\n        \"connectAnimatedNodes\",\n        // 6\n        \"disconnectAnimatedNodes\",\n        // 7\n        \"startAnimatingNode\",\n        // 8\n        \"stopAnimation\",\n        // 9\n        \"setAnimatedNodeValue\",\n        // 10\n        \"setAnimatedNodeOffset\",\n        // 11\n        \"flattenAnimatedNodeOffset\",\n        // 12\n        \"extractAnimatedNodeOffset\",\n        // 13\n        \"connectAnimatedNodeToView\",\n        // 14\n        \"disconnectAnimatedNodeFromView\",\n        // 15\n        \"restoreDefaultValues\",\n        // 16\n        \"dropAnimatedNode\",\n        // 17\n        \"addAnimatedEventToView\",\n        // 18\n        \"removeAnimatedEventFromView\",\n        // 19\n        \"addListener\",\n        // 20\n        \"removeListener\"\n        // 21\n      ];\n      return apis.reduce((acc, functionName, i) => {\n        acc[functionName] = i + 1;\n        return acc;\n      }, {});\n    }() : NativeAnimatedModule;\n    var API = exports2.API = {\n      getValue: /* @__PURE__ */ __name(function getValue(tag, saveValueCallback) {\n        (0, _invariant.default)(nativeOps, \"Native animated module is not available\");\n        if (useSingleOpBatching) {\n          if (saveValueCallback) {\n            eventListenerGetValueCallbacks[tag] = saveValueCallback;\n          }\n          API.queueOperation(nativeOps.getValue, tag);\n        } else {\n          API.queueOperation(nativeOps.getValue, tag, saveValueCallback);\n        }\n      }, \"getValue\"),\n      setWaitingForIdentifier: /* @__PURE__ */ __name(function setWaitingForIdentifier(id) {\n        waitingForQueuedOperations.add(id);\n        queueOperations = true;\n        if (_ReactNativeFeatureFlags.default.animatedShouldDebounceQueueFlush() && flushQueueTimeout) {\n          clearTimeout(flushQueueTimeout);\n        }\n      }, \"setWaitingForIdentifier\"),\n      unsetWaitingForIdentifier: /* @__PURE__ */ __name(function unsetWaitingForIdentifier(id) {\n        waitingForQueuedOperations.delete(id);\n        if (waitingForQueuedOperations.size === 0) {\n          queueOperations = false;\n          API.disableQueue();\n        }\n      }, \"unsetWaitingForIdentifier\"),\n      disableQueue: /* @__PURE__ */ __name(function disableQueue() {\n        (0, _invariant.default)(nativeOps, \"Native animated module is not available\");\n        if (_ReactNativeFeatureFlags.default.animatedShouldDebounceQueueFlush()) {\n          var prevTimeout = flushQueueTimeout;\n          clearImmediate(prevTimeout);\n          flushQueueTimeout = setImmediate(API.flushQueue);\n        } else {\n          API.flushQueue();\n        }\n      }, \"disableQueue\"),\n      flushQueue: /* @__PURE__ */ __name(function flushQueue() {\n      }, \"flushQueue\"),\n      queueOperation: /* @__PURE__ */ __name(function queueOperation(fn) {\n        for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n          args[_key - 1] = arguments[_key];\n        }\n        if (useSingleOpBatching) {\n          singleOpQueue.push(fn, ...args);\n          return;\n        }\n        if (queueOperations || queue.length !== 0) {\n          queue.push(() => fn(...args));\n        } else {\n          fn(...args);\n        }\n      }, \"queueOperation\"),\n      createAnimatedNode: /* @__PURE__ */ __name(function createAnimatedNode(tag, config) {\n        (0, _invariant.default)(nativeOps, \"Native animated module is not available\");\n        API.queueOperation(nativeOps.createAnimatedNode, tag, config);\n      }, \"createAnimatedNode\"),\n      updateAnimatedNodeConfig: /* @__PURE__ */ __name(function updateAnimatedNodeConfig(tag, config) {\n        (0, _invariant.default)(nativeOps, \"Native animated module is not available\");\n      }, \"updateAnimatedNodeConfig\"),\n      startListeningToAnimatedNodeValue: /* @__PURE__ */ __name(function startListeningToAnimatedNodeValue(tag) {\n        (0, _invariant.default)(nativeOps, \"Native animated module is not available\");\n        API.queueOperation(nativeOps.startListeningToAnimatedNodeValue, tag);\n      }, \"startListeningToAnimatedNodeValue\"),\n      stopListeningToAnimatedNodeValue: /* @__PURE__ */ __name(function stopListeningToAnimatedNodeValue(tag) {\n        (0, _invariant.default)(nativeOps, \"Native animated module is not available\");\n        API.queueOperation(nativeOps.stopListeningToAnimatedNodeValue, tag);\n      }, \"stopListeningToAnimatedNodeValue\"),\n      connectAnimatedNodes: /* @__PURE__ */ __name(function connectAnimatedNodes(parentTag, childTag) {\n        (0, _invariant.default)(nativeOps, \"Native animated module is not available\");\n        API.queueOperation(nativeOps.connectAnimatedNodes, parentTag, childTag);\n      }, \"connectAnimatedNodes\"),\n      disconnectAnimatedNodes: /* @__PURE__ */ __name(function disconnectAnimatedNodes(parentTag, childTag) {\n        (0, _invariant.default)(nativeOps, \"Native animated module is not available\");\n        API.queueOperation(nativeOps.disconnectAnimatedNodes, parentTag, childTag);\n      }, \"disconnectAnimatedNodes\"),\n      startAnimatingNode: /* @__PURE__ */ __name(function startAnimatingNode(animationId, nodeTag, config, endCallback) {\n        (0, _invariant.default)(nativeOps, \"Native animated module is not available\");\n        if (useSingleOpBatching) {\n          if (endCallback) {\n            eventListenerAnimationFinishedCallbacks[animationId] = endCallback;\n          }\n          API.queueOperation(nativeOps.startAnimatingNode, animationId, nodeTag, config);\n        } else {\n          API.queueOperation(nativeOps.startAnimatingNode, animationId, nodeTag, config, endCallback);\n        }\n      }, \"startAnimatingNode\"),\n      stopAnimation: /* @__PURE__ */ __name(function stopAnimation(animationId) {\n        (0, _invariant.default)(nativeOps, \"Native animated module is not available\");\n        API.queueOperation(nativeOps.stopAnimation, animationId);\n      }, \"stopAnimation\"),\n      setAnimatedNodeValue: /* @__PURE__ */ __name(function setAnimatedNodeValue(nodeTag, value) {\n        (0, _invariant.default)(nativeOps, \"Native animated module is not available\");\n        API.queueOperation(nativeOps.setAnimatedNodeValue, nodeTag, value);\n      }, \"setAnimatedNodeValue\"),\n      setAnimatedNodeOffset: /* @__PURE__ */ __name(function setAnimatedNodeOffset(nodeTag, offset4) {\n        (0, _invariant.default)(nativeOps, \"Native animated module is not available\");\n        API.queueOperation(nativeOps.setAnimatedNodeOffset, nodeTag, offset4);\n      }, \"setAnimatedNodeOffset\"),\n      flattenAnimatedNodeOffset: /* @__PURE__ */ __name(function flattenAnimatedNodeOffset(nodeTag) {\n        (0, _invariant.default)(nativeOps, \"Native animated module is not available\");\n        API.queueOperation(nativeOps.flattenAnimatedNodeOffset, nodeTag);\n      }, \"flattenAnimatedNodeOffset\"),\n      extractAnimatedNodeOffset: /* @__PURE__ */ __name(function extractAnimatedNodeOffset(nodeTag) {\n        (0, _invariant.default)(nativeOps, \"Native animated module is not available\");\n        API.queueOperation(nativeOps.extractAnimatedNodeOffset, nodeTag);\n      }, \"extractAnimatedNodeOffset\"),\n      connectAnimatedNodeToView: /* @__PURE__ */ __name(function connectAnimatedNodeToView(nodeTag, viewTag) {\n        (0, _invariant.default)(nativeOps, \"Native animated module is not available\");\n        API.queueOperation(nativeOps.connectAnimatedNodeToView, nodeTag, viewTag);\n      }, \"connectAnimatedNodeToView\"),\n      disconnectAnimatedNodeFromView: /* @__PURE__ */ __name(function disconnectAnimatedNodeFromView(nodeTag, viewTag) {\n        (0, _invariant.default)(nativeOps, \"Native animated module is not available\");\n        API.queueOperation(nativeOps.disconnectAnimatedNodeFromView, nodeTag, viewTag);\n      }, \"disconnectAnimatedNodeFromView\"),\n      restoreDefaultValues: /* @__PURE__ */ __name(function restoreDefaultValues(nodeTag) {\n        (0, _invariant.default)(nativeOps, \"Native animated module is not available\");\n        if (nativeOps.restoreDefaultValues != null) {\n          API.queueOperation(nativeOps.restoreDefaultValues, nodeTag);\n        }\n      }, \"restoreDefaultValues\"),\n      dropAnimatedNode: /* @__PURE__ */ __name(function dropAnimatedNode(tag) {\n        (0, _invariant.default)(nativeOps, \"Native animated module is not available\");\n        API.queueOperation(nativeOps.dropAnimatedNode, tag);\n      }, \"dropAnimatedNode\"),\n      addAnimatedEventToView: /* @__PURE__ */ __name(function addAnimatedEventToView(viewTag, eventName, eventMapping) {\n        (0, _invariant.default)(nativeOps, \"Native animated module is not available\");\n        API.queueOperation(nativeOps.addAnimatedEventToView, viewTag, eventName, eventMapping);\n      }, \"addAnimatedEventToView\"),\n      removeAnimatedEventFromView(viewTag, eventName, animatedNodeTag) {\n        (0, _invariant.default)(nativeOps, \"Native animated module is not available\");\n        API.queueOperation(nativeOps.removeAnimatedEventFromView, viewTag, eventName, animatedNodeTag);\n      }\n    };\n    var SUPPORTED_COLOR_STYLES = {\n      backgroundColor: true,\n      borderBottomColor: true,\n      borderColor: true,\n      borderEndColor: true,\n      borderLeftColor: true,\n      borderRightColor: true,\n      borderStartColor: true,\n      borderTopColor: true,\n      color: true,\n      tintColor: true\n    };\n    var SUPPORTED_STYLES = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, SUPPORTED_COLOR_STYLES), {}, {\n      borderBottomEndRadius: true,\n      borderBottomLeftRadius: true,\n      borderBottomRightRadius: true,\n      borderBottomStartRadius: true,\n      borderRadius: true,\n      borderTopEndRadius: true,\n      borderTopLeftRadius: true,\n      borderTopRightRadius: true,\n      borderTopStartRadius: true,\n      elevation: true,\n      opacity: true,\n      transform: true,\n      zIndex: true,\n      /* ios styles */\n      shadowOpacity: true,\n      shadowRadius: true,\n      /* legacy android transform properties */\n      scaleX: true,\n      scaleY: true,\n      translateX: true,\n      translateY: true\n    });\n    var SUPPORTED_TRANSFORMS = {\n      translateX: true,\n      translateY: true,\n      scale: true,\n      scaleX: true,\n      scaleY: true,\n      rotate: true,\n      rotateX: true,\n      rotateY: true,\n      rotateZ: true,\n      perspective: true\n    };\n    var SUPPORTED_INTERPOLATION_PARAMS = {\n      inputRange: true,\n      outputRange: true,\n      extrapolate: true,\n      extrapolateRight: true,\n      extrapolateLeft: true\n    };\n    function addWhitelistedStyleProp(prop) {\n      SUPPORTED_STYLES[prop] = true;\n    }\n    __name(addWhitelistedStyleProp, \"addWhitelistedStyleProp\");\n    function addWhitelistedTransformProp(prop) {\n      SUPPORTED_TRANSFORMS[prop] = true;\n    }\n    __name(addWhitelistedTransformProp, \"addWhitelistedTransformProp\");\n    function addWhitelistedInterpolationParam(param) {\n      SUPPORTED_INTERPOLATION_PARAMS[param] = true;\n    }\n    __name(addWhitelistedInterpolationParam, \"addWhitelistedInterpolationParam\");\n    function isSupportedColorStyleProp(prop) {\n      return SUPPORTED_COLOR_STYLES.hasOwnProperty(prop);\n    }\n    __name(isSupportedColorStyleProp, \"isSupportedColorStyleProp\");\n    function isSupportedStyleProp(prop) {\n      return SUPPORTED_STYLES.hasOwnProperty(prop);\n    }\n    __name(isSupportedStyleProp, \"isSupportedStyleProp\");\n    function isSupportedTransformProp(prop) {\n      return SUPPORTED_TRANSFORMS.hasOwnProperty(prop);\n    }\n    __name(isSupportedTransformProp, \"isSupportedTransformProp\");\n    function isSupportedInterpolationParam(param) {\n      return SUPPORTED_INTERPOLATION_PARAMS.hasOwnProperty(param);\n    }\n    __name(isSupportedInterpolationParam, \"isSupportedInterpolationParam\");\n    function validateTransform(configs) {\n      configs.forEach((config) => {\n        if (!isSupportedTransformProp(config.property)) {\n          throw new Error(\"Property '\" + config.property + \"' is not supported by native animated module\");\n        }\n      });\n    }\n    __name(validateTransform, \"validateTransform\");\n    function validateStyles(styles) {\n      for (var _key2 in styles) {\n        if (!isSupportedStyleProp(_key2)) {\n          throw new Error(\"Style property '\" + _key2 + \"' is not supported by native animated module\");\n        }\n      }\n    }\n    __name(validateStyles, \"validateStyles\");\n    function validateInterpolation(config) {\n      for (var _key3 in config) {\n        if (!isSupportedInterpolationParam(_key3)) {\n          throw new Error(\"Interpolation property '\" + _key3 + \"' is not supported by native animated module\");\n        }\n      }\n    }\n    __name(validateInterpolation, \"validateInterpolation\");\n    function generateNewNodeTag() {\n      return __nativeAnimatedNodeTagCount++;\n    }\n    __name(generateNewNodeTag, \"generateNewNodeTag\");\n    function generateNewAnimationId() {\n      return __nativeAnimationIdCount++;\n    }\n    __name(generateNewAnimationId, \"generateNewAnimationId\");\n    function assertNativeAnimatedModule() {\n      (0, _invariant.default)(NativeAnimatedModule, \"Native animated module is not available\");\n    }\n    __name(assertNativeAnimatedModule, \"assertNativeAnimatedModule\");\n    var _warnedMissingNativeAnimated = false;\n    function shouldUseNativeDriver(config) {\n      if (config.useNativeDriver == null) {\n        console.warn(\"Animated: `useNativeDriver` was not specified. This is a required option and must be explicitly set to `true` or `false`\");\n      }\n      if (config.useNativeDriver === true && !NativeAnimatedModule) {\n        if (!_warnedMissingNativeAnimated) {\n          console.warn(\"Animated: `useNativeDriver` is not supported because the native animated module is missing. Falling back to JS-based animation. To resolve this, add `RCTAnimation` module to this app, or remove `useNativeDriver`. Make sure to run `bundle exec pod install` first. Read more about autolinking: https://github.com/react-native-community/cli/blob/master/docs/autolinking.md\");\n          _warnedMissingNativeAnimated = true;\n        }\n        return false;\n      }\n      return config.useNativeDriver || false;\n    }\n    __name(shouldUseNativeDriver, \"shouldUseNativeDriver\");\n    function transformDataType(value) {\n      if (typeof value !== \"string\") {\n        return value;\n      }\n      if (/deg$/.test(value)) {\n        var degrees = parseFloat(value) || 0;\n        var radians = degrees * Math.PI / 180;\n        return radians;\n      } else {\n        return value;\n      }\n    }\n    __name(transformDataType, \"transformDataType\");\n    var _default = exports2.default = {\n      API,\n      isSupportedColorStyleProp,\n      isSupportedStyleProp,\n      isSupportedTransformProp,\n      isSupportedInterpolationParam,\n      addWhitelistedStyleProp,\n      addWhitelistedTransformProp,\n      addWhitelistedInterpolationParam,\n      validateStyles,\n      validateTransform,\n      validateInterpolation,\n      generateNewNodeTag,\n      generateNewAnimationId,\n      assertNativeAnimatedModule,\n      shouldUseNativeDriver,\n      transformDataType,\n      // $FlowExpectedError[unsafe-getters-setters] - unsafe getter lint suppresion\n      // $FlowExpectedError[missing-type-arg] - unsafe getter lint suppresion\n      get nativeEventEmitter() {\n        if (!nativeEventEmitter) {\n          nativeEventEmitter = new _NativeEventEmitter.default(\n            // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n            // If you want to use the native module on other platforms, please remove this condition and test its behavior\n            _Platform.default.OS !== \"ios\" ? null : NativeAnimatedModule\n          );\n        }\n        return nativeEventEmitter;\n      }\n    };\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedNode.js\nvar require_AnimatedNode = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedNode.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _NativeAnimatedHelper = _interopRequireDefault(require_NativeAnimatedHelper());\n    var _invariant = _interopRequireDefault(require_invariant());\n    var NativeAnimatedAPI = _NativeAnimatedHelper.default.API;\n    var _uniqueId = 1;\n    var AnimatedNode = class {\n      static {\n        __name(this, \"AnimatedNode\");\n      }\n      __attach() {\n      }\n      __detach() {\n        if (this.__isNative && this.__nativeTag != null) {\n          _NativeAnimatedHelper.default.API.dropAnimatedNode(this.__nativeTag);\n          this.__nativeTag = void 0;\n        }\n      }\n      __getValue() {\n      }\n      __getAnimatedValue() {\n        return this.__getValue();\n      }\n      __addChild(child) {\n      }\n      __removeChild(child) {\n      }\n      __getChildren() {\n        return [];\n      }\n      /* Methods and props used by native Animated impl */\n      constructor() {\n        this._listeners = {};\n      }\n      __makeNative(platformConfig) {\n        if (!this.__isNative) {\n          throw new Error('This node cannot be made a \"native\" animated node');\n        }\n        this._platformConfig = platformConfig;\n        if (this.hasListeners()) {\n          this._startListeningToNativeValueUpdates();\n        }\n      }\n      /**\n       * Adds an asynchronous listener to the value so you can observe updates from\n       * animations.  This is useful because there is no way to\n       * synchronously read the value because it might be driven natively.\n       *\n       * See https://reactnative.dev/docs/animatedvalue#addlistener\n       */\n      addListener(callback) {\n        var id = String(_uniqueId++);\n        this._listeners[id] = callback;\n        if (this.__isNative) {\n          this._startListeningToNativeValueUpdates();\n        }\n        return id;\n      }\n      /**\n       * Unregister a listener. The `id` param shall match the identifier\n       * previously returned by `addListener()`.\n       *\n       * See https://reactnative.dev/docs/animatedvalue#removelistener\n       */\n      removeListener(id) {\n        delete this._listeners[id];\n        if (this.__isNative && !this.hasListeners()) {\n          this._stopListeningForNativeValueUpdates();\n        }\n      }\n      /**\n       * Remove all registered listeners.\n       *\n       * See https://reactnative.dev/docs/animatedvalue#removealllisteners\n       */\n      removeAllListeners() {\n        this._listeners = {};\n        if (this.__isNative) {\n          this._stopListeningForNativeValueUpdates();\n        }\n      }\n      hasListeners() {\n        return !!Object.keys(this._listeners).length;\n      }\n      _startListeningToNativeValueUpdates() {\n        if (this.__nativeAnimatedValueListener && !this.__shouldUpdateListenersForNewNativeTag) {\n          return;\n        }\n        if (this.__shouldUpdateListenersForNewNativeTag) {\n          this.__shouldUpdateListenersForNewNativeTag = false;\n          this._stopListeningForNativeValueUpdates();\n        }\n        NativeAnimatedAPI.startListeningToAnimatedNodeValue(this.__getNativeTag());\n        this.__nativeAnimatedValueListener = _NativeAnimatedHelper.default.nativeEventEmitter.addListener(\"onAnimatedValueUpdate\", (data) => {\n          if (data.tag !== this.__getNativeTag()) {\n            return;\n          }\n          this.__onAnimatedValueUpdateReceived(data.value);\n        });\n      }\n      __onAnimatedValueUpdateReceived(value) {\n        this.__callListeners(value);\n      }\n      __callListeners(value) {\n        for (var _key in this._listeners) {\n          this._listeners[_key]({\n            value\n          });\n        }\n      }\n      _stopListeningForNativeValueUpdates() {\n        if (!this.__nativeAnimatedValueListener) {\n          return;\n        }\n        this.__nativeAnimatedValueListener.remove();\n        this.__nativeAnimatedValueListener = null;\n        NativeAnimatedAPI.stopListeningToAnimatedNodeValue(this.__getNativeTag());\n      }\n      __getNativeTag() {\n        var _this$__nativeTag;\n        _NativeAnimatedHelper.default.assertNativeAnimatedModule();\n        (0, _invariant.default)(this.__isNative, 'Attempt to get native tag from node not marked as \"native\"');\n        var nativeTag = (_this$__nativeTag = this.__nativeTag) !== null && _this$__nativeTag !== void 0 ? _this$__nativeTag : _NativeAnimatedHelper.default.generateNewNodeTag();\n        if (this.__nativeTag == null) {\n          this.__nativeTag = nativeTag;\n          var config = this.__getNativeConfig();\n          if (this._platformConfig) {\n            config.platformConfig = this._platformConfig;\n          }\n          _NativeAnimatedHelper.default.API.createAnimatedNode(nativeTag, config);\n          this.__shouldUpdateListenersForNewNativeTag = true;\n        }\n        return nativeTag;\n      }\n      __getNativeConfig() {\n        throw new Error(\"This JS animated node type cannot be used as native animated node\");\n      }\n      toJSON() {\n        return this.__getValue();\n      }\n      __getPlatformConfig() {\n        return this._platformConfig;\n      }\n      __setPlatformConfig(platformConfig) {\n        this._platformConfig = platformConfig;\n      }\n    };\n    var _default = exports2.default = AnimatedNode;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedWithChildren.js\nvar require_AnimatedWithChildren = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedWithChildren.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _createForOfIteratorHelperLoose2 = _interopRequireDefault(require_createForOfIteratorHelperLoose());\n    var _AnimatedNode = _interopRequireDefault(require_AnimatedNode());\n    var _NativeAnimatedHelper = _interopRequireDefault(require_NativeAnimatedHelper());\n    var AnimatedWithChildren = class extends _AnimatedNode.default {\n      static {\n        __name(this, \"AnimatedWithChildren\");\n      }\n      constructor() {\n        super();\n        this._children = [];\n      }\n      __makeNative(platformConfig) {\n        if (!this.__isNative) {\n          this.__isNative = true;\n          for (var _iterator = (0, _createForOfIteratorHelperLoose2.default)(this._children), _step; !(_step = _iterator()).done; ) {\n            var child = _step.value;\n            child.__makeNative(platformConfig);\n            _NativeAnimatedHelper.default.API.connectAnimatedNodes(this.__getNativeTag(), child.__getNativeTag());\n          }\n        }\n        super.__makeNative(platformConfig);\n      }\n      __addChild(child) {\n        if (this._children.length === 0) {\n          this.__attach();\n        }\n        this._children.push(child);\n        if (this.__isNative) {\n          child.__makeNative(this.__getPlatformConfig());\n          _NativeAnimatedHelper.default.API.connectAnimatedNodes(this.__getNativeTag(), child.__getNativeTag());\n        }\n      }\n      __removeChild(child) {\n        var index3 = this._children.indexOf(child);\n        if (index3 === -1) {\n          console.warn(\"Trying to remove a child that doesn't exist\");\n          return;\n        }\n        if (this.__isNative && child.__isNative) {\n          _NativeAnimatedHelper.default.API.disconnectAnimatedNodes(this.__getNativeTag(), child.__getNativeTag());\n        }\n        this._children.splice(index3, 1);\n        if (this._children.length === 0) {\n          this.__detach();\n        }\n      }\n      __getChildren() {\n        return this._children;\n      }\n      __callListeners(value) {\n        super.__callListeners(value);\n        if (!this.__isNative) {\n          for (var _iterator2 = (0, _createForOfIteratorHelperLoose2.default)(this._children), _step2; !(_step2 = _iterator2()).done; ) {\n            var child = _step2.value;\n            if (child.__getValue) {\n              child.__callListeners(child.__getValue());\n            }\n          }\n        }\n      }\n    };\n    var _default = exports2.default = AnimatedWithChildren;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedInterpolation.js\nvar require_AnimatedInterpolation = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedInterpolation.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _objectSpread2 = _interopRequireDefault(require_objectSpread2());\n    var _AnimatedWithChildren = _interopRequireDefault(require_AnimatedWithChildren());\n    var _NativeAnimatedHelper = _interopRequireDefault(require_NativeAnimatedHelper());\n    var _invariant = _interopRequireDefault(require_invariant());\n    var _normalizeColors = _interopRequireDefault(require_normalize_colors());\n    var __DEV__ = process.env.NODE_ENV !== \"production\";\n    var linear = /* @__PURE__ */ __name((t) => t, \"linear\");\n    function createInterpolation(config) {\n      if (config.outputRange && typeof config.outputRange[0] === \"string\") {\n        return createInterpolationFromStringOutputRange(config);\n      }\n      var outputRange = config.outputRange;\n      var inputRange = config.inputRange;\n      if (__DEV__) {\n        checkInfiniteRange(\"outputRange\", outputRange);\n        checkInfiniteRange(\"inputRange\", inputRange);\n        checkValidInputRange(inputRange);\n        (0, _invariant.default)(inputRange.length === outputRange.length, \"inputRange (\" + inputRange.length + \") and outputRange (\" + outputRange.length + \") must have the same length\");\n      }\n      var easing = config.easing || linear;\n      var extrapolateLeft = \"extend\";\n      if (config.extrapolateLeft !== void 0) {\n        extrapolateLeft = config.extrapolateLeft;\n      } else if (config.extrapolate !== void 0) {\n        extrapolateLeft = config.extrapolate;\n      }\n      var extrapolateRight = \"extend\";\n      if (config.extrapolateRight !== void 0) {\n        extrapolateRight = config.extrapolateRight;\n      } else if (config.extrapolate !== void 0) {\n        extrapolateRight = config.extrapolate;\n      }\n      return (input) => {\n        (0, _invariant.default)(typeof input === \"number\", \"Cannot interpolation an input which is not a number\");\n        var range = findRange(input, inputRange);\n        return interpolate(input, inputRange[range], inputRange[range + 1], outputRange[range], outputRange[range + 1], easing, extrapolateLeft, extrapolateRight);\n      };\n    }\n    __name(createInterpolation, \"createInterpolation\");\n    function interpolate(input, inputMin, inputMax, outputMin, outputMax, easing, extrapolateLeft, extrapolateRight) {\n      var result = input;\n      if (result < inputMin) {\n        if (extrapolateLeft === \"identity\") {\n          return result;\n        } else if (extrapolateLeft === \"clamp\") {\n          result = inputMin;\n        } else if (extrapolateLeft === \"extend\") {\n        }\n      }\n      if (result > inputMax) {\n        if (extrapolateRight === \"identity\") {\n          return result;\n        } else if (extrapolateRight === \"clamp\") {\n          result = inputMax;\n        } else if (extrapolateRight === \"extend\") {\n        }\n      }\n      if (outputMin === outputMax) {\n        return outputMin;\n      }\n      if (inputMin === inputMax) {\n        if (input <= inputMin) {\n          return outputMin;\n        }\n        return outputMax;\n      }\n      if (inputMin === -Infinity) {\n        result = -result;\n      } else if (inputMax === Infinity) {\n        result = result - inputMin;\n      } else {\n        result = (result - inputMin) / (inputMax - inputMin);\n      }\n      result = easing(result);\n      if (outputMin === -Infinity) {\n        result = -result;\n      } else if (outputMax === Infinity) {\n        result = result + outputMin;\n      } else {\n        result = result * (outputMax - outputMin) + outputMin;\n      }\n      return result;\n    }\n    __name(interpolate, \"interpolate\");\n    function colorToRgba(input) {\n      var normalizedColor = (0, _normalizeColors.default)(input);\n      if (normalizedColor === null || typeof normalizedColor !== \"number\") {\n        return input;\n      }\n      normalizedColor = normalizedColor || 0;\n      var r = (normalizedColor & 4278190080) >>> 24;\n      var g = (normalizedColor & 16711680) >>> 16;\n      var b = (normalizedColor & 65280) >>> 8;\n      var a = (normalizedColor & 255) / 255;\n      return \"rgba(\" + r + \", \" + g + \", \" + b + \", \" + a + \")\";\n    }\n    __name(colorToRgba, \"colorToRgba\");\n    var stringShapeRegex = /[+-]?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][+-]?\\d+)?/g;\n    function createInterpolationFromStringOutputRange(config) {\n      var outputRange = config.outputRange;\n      (0, _invariant.default)(outputRange.length >= 2, \"Bad output range\");\n      outputRange = outputRange.map(colorToRgba);\n      checkPattern(outputRange);\n      var outputRanges = outputRange[0].match(stringShapeRegex).map(() => []);\n      outputRange.forEach((value) => {\n        value.match(stringShapeRegex).forEach((number, i) => {\n          outputRanges[i].push(+number);\n        });\n      });\n      var interpolations = outputRange[0].match(stringShapeRegex).map((value, i) => {\n        return createInterpolation((0, _objectSpread2.default)((0, _objectSpread2.default)({}, config), {}, {\n          outputRange: outputRanges[i]\n        }));\n      });\n      var shouldRound = isRgbOrRgba(outputRange[0]);\n      return (input) => {\n        var i = 0;\n        return outputRange[0].replace(stringShapeRegex, () => {\n          var val = +interpolations[i++](input);\n          if (shouldRound) {\n            val = i < 4 ? Math.round(val) : Math.round(val * 1e3) / 1e3;\n          }\n          return String(val);\n        });\n      };\n    }\n    __name(createInterpolationFromStringOutputRange, \"createInterpolationFromStringOutputRange\");\n    function isRgbOrRgba(range) {\n      return typeof range === \"string\" && range.startsWith(\"rgb\");\n    }\n    __name(isRgbOrRgba, \"isRgbOrRgba\");\n    function checkPattern(arr) {\n      var pattern = arr[0].replace(stringShapeRegex, \"\");\n      for (var i = 1; i < arr.length; ++i) {\n        (0, _invariant.default)(pattern === arr[i].replace(stringShapeRegex, \"\"), \"invalid pattern \" + arr[0] + \" and \" + arr[i]);\n      }\n    }\n    __name(checkPattern, \"checkPattern\");\n    function findRange(input, inputRange) {\n      var i;\n      for (i = 1; i < inputRange.length - 1; ++i) {\n        if (inputRange[i] >= input) {\n          break;\n        }\n      }\n      return i - 1;\n    }\n    __name(findRange, \"findRange\");\n    function checkValidInputRange(arr) {\n      (0, _invariant.default)(arr.length >= 2, \"inputRange must have at least 2 elements\");\n      var message = \"inputRange must be monotonically non-decreasing \" + String(arr);\n      for (var i = 1; i < arr.length; ++i) {\n        (0, _invariant.default)(arr[i] >= arr[i - 1], message);\n      }\n    }\n    __name(checkValidInputRange, \"checkValidInputRange\");\n    function checkInfiniteRange(name, arr) {\n      (0, _invariant.default)(arr.length >= 2, name + \" must have at least 2 elements\");\n      (0, _invariant.default)(\n        arr.length !== 2 || arr[0] !== -Infinity || arr[1] !== Infinity,\n        /* $FlowFixMe[incompatible-type] (>=0.13.0) - In the addition expression\n         * below this comment, one or both of the operands may be something that\n         * doesn't cleanly convert to a string, like undefined, null, and object,\n         * etc. If you really mean this implicit string conversion, you can do\n         * something like String(myThing) */\n        name + \"cannot be ]-infinity;+infinity[ \" + arr\n      );\n    }\n    __name(checkInfiniteRange, \"checkInfiniteRange\");\n    var AnimatedInterpolation = class _AnimatedInterpolation extends _AnimatedWithChildren.default {\n      static {\n        __name(this, \"AnimatedInterpolation\");\n      }\n      // Export for testing.\n      constructor(parent, config) {\n        super();\n        this._parent = parent;\n        this._config = config;\n        this._interpolation = createInterpolation(config);\n      }\n      __makeNative(platformConfig) {\n        this._parent.__makeNative(platformConfig);\n        super.__makeNative(platformConfig);\n      }\n      __getValue() {\n        var parentValue = this._parent.__getValue();\n        (0, _invariant.default)(typeof parentValue === \"number\", \"Cannot interpolate an input which is not a number.\");\n        return this._interpolation(parentValue);\n      }\n      interpolate(config) {\n        return new _AnimatedInterpolation(this, config);\n      }\n      __attach() {\n        this._parent.__addChild(this);\n      }\n      __detach() {\n        this._parent.__removeChild(this);\n        super.__detach();\n      }\n      __transformDataType(range) {\n        return range.map(_NativeAnimatedHelper.default.transformDataType);\n      }\n      __getNativeConfig() {\n        if (__DEV__) {\n          _NativeAnimatedHelper.default.validateInterpolation(this._config);\n        }\n        return {\n          inputRange: this._config.inputRange,\n          // Only the `outputRange` can contain strings so we don't need to transform `inputRange` here\n          outputRange: this.__transformDataType(this._config.outputRange),\n          extrapolateLeft: this._config.extrapolateLeft || this._config.extrapolate || \"extend\",\n          extrapolateRight: this._config.extrapolateRight || this._config.extrapolate || \"extend\",\n          type: \"interpolation\"\n        };\n      }\n    };\n    AnimatedInterpolation.__createInterpolation = createInterpolation;\n    var _default = exports2.default = AnimatedInterpolation;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedValue.js\nvar require_AnimatedValue = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedValue.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _AnimatedInterpolation = _interopRequireDefault(require_AnimatedInterpolation());\n    var _AnimatedWithChildren = _interopRequireDefault(require_AnimatedWithChildren());\n    var _InteractionManager = _interopRequireDefault(require_InteractionManager());\n    var _NativeAnimatedHelper = _interopRequireDefault(require_NativeAnimatedHelper());\n    var NativeAnimatedAPI = _NativeAnimatedHelper.default.API;\n    function _flush(rootNode) {\n      var animatedStyles = /* @__PURE__ */ new Set();\n      function findAnimatedStyles(node) {\n        if (typeof node.update === \"function\") {\n          animatedStyles.add(node);\n        } else {\n          node.__getChildren().forEach(findAnimatedStyles);\n        }\n      }\n      __name(findAnimatedStyles, \"findAnimatedStyles\");\n      findAnimatedStyles(rootNode);\n      animatedStyles.forEach((animatedStyle) => animatedStyle.update());\n    }\n    __name(_flush, \"_flush\");\n    function _executeAsAnimatedBatch(id, operation) {\n      NativeAnimatedAPI.setWaitingForIdentifier(id);\n      operation();\n      NativeAnimatedAPI.unsetWaitingForIdentifier(id);\n    }\n    __name(_executeAsAnimatedBatch, \"_executeAsAnimatedBatch\");\n    var AnimatedValue = class extends _AnimatedWithChildren.default {\n      static {\n        __name(this, \"AnimatedValue\");\n      }\n      constructor(value, config) {\n        super();\n        if (typeof value !== \"number\") {\n          throw new Error(\"AnimatedValue: Attempting to set value to undefined\");\n        }\n        this._startingValue = this._value = value;\n        this._offset = 0;\n        this._animation = null;\n        if (config && config.useNativeDriver) {\n          this.__makeNative();\n        }\n      }\n      __detach() {\n        if (this.__isNative) {\n          NativeAnimatedAPI.getValue(this.__getNativeTag(), (value) => {\n            this._value = value - this._offset;\n          });\n        }\n        this.stopAnimation();\n        super.__detach();\n      }\n      __getValue() {\n        return this._value + this._offset;\n      }\n      /**\n       * Directly set the value.  This will stop any animations running on the value\n       * and update all the bound properties.\n       *\n       * See https://reactnative.dev/docs/animatedvalue#setvalue\n       */\n      setValue(value) {\n        if (this._animation) {\n          this._animation.stop();\n          this._animation = null;\n        }\n        this._updateValue(\n          value,\n          !this.__isNative\n          /* don't perform a flush for natively driven values */\n        );\n        if (this.__isNative) {\n          _executeAsAnimatedBatch(this.__getNativeTag().toString(), () => NativeAnimatedAPI.setAnimatedNodeValue(this.__getNativeTag(), value));\n        }\n      }\n      /**\n       * Sets an offset that is applied on top of whatever value is set, whether via\n       * `setValue`, an animation, or `Animated.event`.  Useful for compensating\n       * things like the start of a pan gesture.\n       *\n       * See https://reactnative.dev/docs/animatedvalue#setoffset\n       */\n      setOffset(offset4) {\n        this._offset = offset4;\n        if (this.__isNative) {\n          NativeAnimatedAPI.setAnimatedNodeOffset(this.__getNativeTag(), offset4);\n        }\n      }\n      /**\n       * Merges the offset value into the base value and resets the offset to zero.\n       * The final output of the value is unchanged.\n       *\n       * See https://reactnative.dev/docs/animatedvalue#flattenoffset\n       */\n      flattenOffset() {\n        this._value += this._offset;\n        this._offset = 0;\n        if (this.__isNative) {\n          NativeAnimatedAPI.flattenAnimatedNodeOffset(this.__getNativeTag());\n        }\n      }\n      /**\n       * Sets the offset value to the base value, and resets the base value to zero.\n       * The final output of the value is unchanged.\n       *\n       * See https://reactnative.dev/docs/animatedvalue#extractoffset\n       */\n      extractOffset() {\n        this._offset += this._value;\n        this._value = 0;\n        if (this.__isNative) {\n          NativeAnimatedAPI.extractAnimatedNodeOffset(this.__getNativeTag());\n        }\n      }\n      /**\n       * Stops any running animation or tracking. `callback` is invoked with the\n       * final value after stopping the animation, which is useful for updating\n       * state to match the animation position with layout.\n       *\n       * See https://reactnative.dev/docs/animatedvalue#stopanimation\n       */\n      stopAnimation(callback) {\n        this.stopTracking();\n        this._animation && this._animation.stop();\n        this._animation = null;\n        if (callback) {\n          if (this.__isNative) {\n            NativeAnimatedAPI.getValue(this.__getNativeTag(), callback);\n          } else {\n            callback(this.__getValue());\n          }\n        }\n      }\n      /**\n       * Stops any animation and resets the value to its original.\n       *\n       * See https://reactnative.dev/docs/animatedvalue#resetanimation\n       */\n      resetAnimation(callback) {\n        this.stopAnimation(callback);\n        this._value = this._startingValue;\n        if (this.__isNative) {\n          NativeAnimatedAPI.setAnimatedNodeValue(this.__getNativeTag(), this._startingValue);\n        }\n      }\n      __onAnimatedValueUpdateReceived(value) {\n        this._updateValue(\n          value,\n          false\n          /*flush*/\n        );\n      }\n      /**\n       * Interpolates the value before updating the property, e.g. mapping 0-1 to\n       * 0-10.\n       */\n      interpolate(config) {\n        return new _AnimatedInterpolation.default(this, config);\n      }\n      /**\n       * Typically only used internally, but could be used by a custom Animation\n       * class.\n       *\n       * See https://reactnative.dev/docs/animatedvalue#animate\n       */\n      animate(animation, callback) {\n        var handle = null;\n        if (animation.__isInteraction) {\n          handle = _InteractionManager.default.createInteractionHandle();\n        }\n        var previousAnimation = this._animation;\n        this._animation && this._animation.stop();\n        this._animation = animation;\n        animation.start(this._value, (value) => {\n          this._updateValue(\n            value,\n            true\n            /* flush */\n          );\n        }, (result) => {\n          this._animation = null;\n          if (handle !== null) {\n            _InteractionManager.default.clearInteractionHandle(handle);\n          }\n          callback && callback(result);\n        }, previousAnimation, this);\n      }\n      /**\n       * Typically only used internally.\n       */\n      stopTracking() {\n        this._tracking && this._tracking.__detach();\n        this._tracking = null;\n      }\n      /**\n       * Typically only used internally.\n       */\n      track(tracking) {\n        this.stopTracking();\n        this._tracking = tracking;\n        this._tracking && this._tracking.update();\n      }\n      _updateValue(value, flush) {\n        if (value === void 0) {\n          throw new Error(\"AnimatedValue: Attempting to set value to undefined\");\n        }\n        this._value = value;\n        if (flush) {\n          _flush(this);\n        }\n        super.__callListeners(this.__getValue());\n      }\n      __getNativeConfig() {\n        return {\n          type: \"value\",\n          value: this._value,\n          offset: this._offset\n        };\n      }\n    };\n    var _default = exports2.default = AnimatedValue;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/AnimatedEvent.js\nvar require_AnimatedEvent = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/AnimatedEvent.js\"(exports2) {\n    \"use strict\";\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.AnimatedEvent = void 0;\n    exports2.attachNativeEvent = attachNativeEvent;\n    var _AnimatedValue = _interopRequireDefault(require_AnimatedValue());\n    var _NativeAnimatedHelper = _interopRequireWildcard(require_NativeAnimatedHelper());\n    var _invariant = _interopRequireDefault(require_invariant());\n    var __DEV__ = process.env.NODE_ENV !== \"production\";\n    function attachNativeEvent(viewRef, eventName, argMapping) {\n      var eventMappings = [];\n      var traverse = /* @__PURE__ */ __name((value, path) => {\n        if (value instanceof _AnimatedValue.default) {\n          value.__makeNative();\n          eventMappings.push({\n            nativeEventPath: path,\n            animatedValueTag: value.__getNativeTag()\n          });\n        } else if (typeof value === \"object\") {\n          for (var _key in value) {\n            traverse(value[_key], path.concat(_key));\n          }\n        }\n      }, \"traverse\");\n      (0, _invariant.default)(argMapping[0] && argMapping[0].nativeEvent, \"Native driven events only support animated values contained inside `nativeEvent`.\");\n      traverse(argMapping[0].nativeEvent, []);\n      if (viewRef != null) {\n        eventMappings.forEach((mapping) => {\n          _NativeAnimatedHelper.default.API.addAnimatedEventToView(viewRef, eventName, mapping);\n        });\n      }\n      return {\n        detach() {\n          if (viewRef != null) {\n            eventMappings.forEach((mapping) => {\n              _NativeAnimatedHelper.default.API.removeAnimatedEventFromView(\n                viewRef,\n                eventName,\n                // $FlowFixMe[incompatible-call]\n                mapping.animatedValueTag\n              );\n            });\n          }\n        }\n      };\n    }\n    __name(attachNativeEvent, \"attachNativeEvent\");\n    function validateMapping(argMapping, args) {\n      var validate = /* @__PURE__ */ __name((recMapping, recEvt, key) => {\n        if (recMapping instanceof _AnimatedValue.default) {\n          (0, _invariant.default)(typeof recEvt === \"number\", \"Bad mapping of event key \" + key + \", should be number but got \" + typeof recEvt);\n          return;\n        }\n        if (typeof recEvt === \"number\") {\n          (0, _invariant.default)(recMapping instanceof _AnimatedValue.default, \"Bad mapping of type \" + typeof recMapping + \" for key \" + key + \", event value must map to AnimatedValue\");\n          return;\n        }\n        (0, _invariant.default)(typeof recMapping === \"object\", \"Bad mapping of type \" + typeof recMapping + \" for key \" + key);\n        (0, _invariant.default)(typeof recEvt === \"object\", \"Bad event of type \" + typeof recEvt + \" for key \" + key);\n        for (var mappingKey in recMapping) {\n          validate(recMapping[mappingKey], recEvt[mappingKey], mappingKey);\n        }\n      }, \"validate\");\n      (0, _invariant.default)(args.length >= argMapping.length, \"Event has less arguments than mapping\");\n      argMapping.forEach((mapping, idx) => {\n        validate(mapping, args[idx], \"arg\" + idx);\n      });\n    }\n    __name(validateMapping, \"validateMapping\");\n    var AnimatedEvent = class {\n      static {\n        __name(this, \"AnimatedEvent\");\n      }\n      constructor(argMapping, config) {\n        this._listeners = [];\n        this._argMapping = argMapping;\n        if (config == null) {\n          console.warn(\"Animated.event now requires a second argument for options\");\n          config = {\n            useNativeDriver: false\n          };\n        }\n        if (config.listener) {\n          this.__addListener(config.listener);\n        }\n        this._callListeners = this._callListeners.bind(this);\n        this._attachedEvent = null;\n        this.__isNative = (0, _NativeAnimatedHelper.shouldUseNativeDriver)(config);\n      }\n      __addListener(callback) {\n        this._listeners.push(callback);\n      }\n      __removeListener(callback) {\n        this._listeners = this._listeners.filter((listener) => listener !== callback);\n      }\n      __attach(viewRef, eventName) {\n        (0, _invariant.default)(this.__isNative, \"Only native driven events need to be attached.\");\n        this._attachedEvent = attachNativeEvent(viewRef, eventName, this._argMapping);\n      }\n      __detach(viewTag, eventName) {\n        (0, _invariant.default)(this.__isNative, \"Only native driven events need to be detached.\");\n        this._attachedEvent && this._attachedEvent.detach();\n      }\n      __getHandler() {\n        var _this = this;\n        if (this.__isNative) {\n          if (__DEV__) {\n            var _validatedMapping = false;\n            return function() {\n              for (var _len = arguments.length, args = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {\n                args[_key2] = arguments[_key2];\n              }\n              if (!_validatedMapping) {\n                validateMapping(_this._argMapping, args);\n                _validatedMapping = true;\n              }\n              _this._callListeners(...args);\n            };\n          } else {\n            return this._callListeners;\n          }\n        }\n        var validatedMapping = false;\n        return function() {\n          for (var _len2 = arguments.length, args = new Array(_len2), _key3 = 0; _key3 < _len2; _key3++) {\n            args[_key3] = arguments[_key3];\n          }\n          if (__DEV__ && !validatedMapping) {\n            validateMapping(_this._argMapping, args);\n            validatedMapping = true;\n          }\n          var traverse = /* @__PURE__ */ __name((recMapping, recEvt, key) => {\n            if (recMapping instanceof _AnimatedValue.default) {\n              if (typeof recEvt === \"number\") {\n                recMapping.setValue(recEvt);\n              }\n            } else if (typeof recMapping === \"object\") {\n              for (var mappingKey in recMapping) {\n                traverse(recMapping[mappingKey], recEvt[mappingKey], mappingKey);\n              }\n            }\n          }, \"traverse\");\n          _this._argMapping.forEach((mapping, idx) => {\n            traverse(mapping, args[idx], \"arg\" + idx);\n          });\n          _this._callListeners(...args);\n        };\n      }\n      _callListeners() {\n        for (var _len3 = arguments.length, args = new Array(_len3), _key4 = 0; _key4 < _len3; _key4++) {\n          args[_key4] = arguments[_key4];\n        }\n        this._listeners.forEach((listener) => listener(...args));\n      }\n    };\n    exports2.AnimatedEvent = AnimatedEvent;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedTransform.js\nvar require_AnimatedTransform = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedTransform.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _AnimatedNode = _interopRequireDefault(require_AnimatedNode());\n    var _AnimatedWithChildren = _interopRequireDefault(require_AnimatedWithChildren());\n    var _NativeAnimatedHelper = _interopRequireDefault(require_NativeAnimatedHelper());\n    var AnimatedTransform = class extends _AnimatedWithChildren.default {\n      static {\n        __name(this, \"AnimatedTransform\");\n      }\n      constructor(transforms) {\n        super();\n        this._transforms = transforms;\n      }\n      __makeNative() {\n        this._transforms.forEach((transform) => {\n          for (var key in transform) {\n            var value = transform[key];\n            if (value instanceof _AnimatedNode.default) {\n              value.__makeNative();\n            }\n          }\n        });\n        super.__makeNative();\n      }\n      __getValue() {\n        return this._transforms.map((transform) => {\n          var result = {};\n          for (var key in transform) {\n            var value = transform[key];\n            if (value instanceof _AnimatedNode.default) {\n              result[key] = value.__getValue();\n            } else {\n              result[key] = value;\n            }\n          }\n          return result;\n        });\n      }\n      __getAnimatedValue() {\n        return this._transforms.map((transform) => {\n          var result = {};\n          for (var key in transform) {\n            var value = transform[key];\n            if (value instanceof _AnimatedNode.default) {\n              result[key] = value.__getAnimatedValue();\n            } else {\n              result[key] = value;\n            }\n          }\n          return result;\n        });\n      }\n      __attach() {\n        this._transforms.forEach((transform) => {\n          for (var key in transform) {\n            var value = transform[key];\n            if (value instanceof _AnimatedNode.default) {\n              value.__addChild(this);\n            }\n          }\n        });\n      }\n      __detach() {\n        this._transforms.forEach((transform) => {\n          for (var key in transform) {\n            var value = transform[key];\n            if (value instanceof _AnimatedNode.default) {\n              value.__removeChild(this);\n            }\n          }\n        });\n        super.__detach();\n      }\n      __getNativeConfig() {\n        var transConfigs = [];\n        this._transforms.forEach((transform) => {\n          for (var key in transform) {\n            var value = transform[key];\n            if (value instanceof _AnimatedNode.default) {\n              transConfigs.push({\n                type: \"animated\",\n                property: key,\n                nodeTag: value.__getNativeTag()\n              });\n            } else {\n              transConfigs.push({\n                type: \"static\",\n                property: key,\n                value: _NativeAnimatedHelper.default.transformDataType(value)\n              });\n            }\n          }\n        });\n        _NativeAnimatedHelper.default.validateTransform(transConfigs);\n        return {\n          type: \"transform\",\n          transforms: transConfigs\n        };\n      }\n    };\n    var _default = exports2.default = AnimatedTransform;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedStyle.js\nvar require_AnimatedStyle = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedStyle.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _AnimatedNode = _interopRequireDefault(require_AnimatedNode());\n    var _AnimatedTransform = _interopRequireDefault(require_AnimatedTransform());\n    var _AnimatedWithChildren = _interopRequireDefault(require_AnimatedWithChildren());\n    var _NativeAnimatedHelper = _interopRequireDefault(require_NativeAnimatedHelper());\n    var _StyleSheet = _interopRequireDefault(require_StyleSheet());\n    var flattenStyle = _StyleSheet.default.flatten;\n    function createAnimatedStyle(inputStyle) {\n      var style = flattenStyle(inputStyle);\n      var animatedStyles = {};\n      for (var key in style) {\n        var value = style[key];\n        if (key === \"transform\" && Array.isArray(value)) {\n          animatedStyles[key] = new _AnimatedTransform.default(value);\n        } else if (value instanceof _AnimatedNode.default) {\n          animatedStyles[key] = value;\n        } else if (value && !Array.isArray(value) && typeof value === \"object\") {\n          animatedStyles[key] = createAnimatedStyle(value);\n        }\n      }\n      return animatedStyles;\n    }\n    __name(createAnimatedStyle, \"createAnimatedStyle\");\n    var AnimatedStyle = class extends _AnimatedWithChildren.default {\n      static {\n        __name(this, \"AnimatedStyle\");\n      }\n      constructor(style) {\n        super();\n        this._inputStyle = style;\n        this._style = createAnimatedStyle(style);\n      }\n      // Recursively get values for nested styles (like iOS's shadowOffset)\n      _walkStyleAndGetValues(style) {\n        var updatedStyle = {};\n        for (var key in style) {\n          var value = style[key];\n          if (value instanceof _AnimatedNode.default) {\n            if (!value.__isNative) {\n              updatedStyle[key] = value.__getValue();\n            }\n          } else if (value && !Array.isArray(value) && typeof value === \"object\") {\n            updatedStyle[key] = this._walkStyleAndGetValues(value);\n          } else {\n            updatedStyle[key] = value;\n          }\n        }\n        return updatedStyle;\n      }\n      __getValue() {\n        return [this._inputStyle, this._walkStyleAndGetValues(this._style)];\n      }\n      // Recursively get animated values for nested styles (like iOS's shadowOffset)\n      _walkStyleAndGetAnimatedValues(style) {\n        var updatedStyle = {};\n        for (var key in style) {\n          var value = style[key];\n          if (value instanceof _AnimatedNode.default) {\n            updatedStyle[key] = value.__getAnimatedValue();\n          } else if (value && !Array.isArray(value) && typeof value === \"object\") {\n            updatedStyle[key] = this._walkStyleAndGetAnimatedValues(value);\n          }\n        }\n        return updatedStyle;\n      }\n      __getAnimatedValue() {\n        return this._walkStyleAndGetAnimatedValues(this._style);\n      }\n      __attach() {\n        for (var key in this._style) {\n          var value = this._style[key];\n          if (value instanceof _AnimatedNode.default) {\n            value.__addChild(this);\n          }\n        }\n      }\n      __detach() {\n        for (var key in this._style) {\n          var value = this._style[key];\n          if (value instanceof _AnimatedNode.default) {\n            value.__removeChild(this);\n          }\n        }\n        super.__detach();\n      }\n      __makeNative() {\n        for (var key in this._style) {\n          var value = this._style[key];\n          if (value instanceof _AnimatedNode.default) {\n            value.__makeNative();\n          }\n        }\n        super.__makeNative();\n      }\n      __getNativeConfig() {\n        var styleConfig = {};\n        for (var styleKey in this._style) {\n          if (this._style[styleKey] instanceof _AnimatedNode.default) {\n            var style = this._style[styleKey];\n            style.__makeNative();\n            styleConfig[styleKey] = style.__getNativeTag();\n          }\n        }\n        _NativeAnimatedHelper.default.validateStyles(styleConfig);\n        return {\n          type: \"style\",\n          style: styleConfig\n        };\n      }\n    };\n    var _default = exports2.default = AnimatedStyle;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedProps.js\nvar require_AnimatedProps = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedProps.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _objectSpread2 = _interopRequireDefault(require_objectSpread2());\n    var _AnimatedEvent = require_AnimatedEvent();\n    var _AnimatedNode = _interopRequireDefault(require_AnimatedNode());\n    var _AnimatedStyle = _interopRequireDefault(require_AnimatedStyle());\n    var _NativeAnimatedHelper = _interopRequireDefault(require_NativeAnimatedHelper());\n    var _invariant = _interopRequireDefault(require_invariant());\n    var AnimatedProps = class extends _AnimatedNode.default {\n      static {\n        __name(this, \"AnimatedProps\");\n      }\n      constructor(props, callback) {\n        super();\n        if (props.style) {\n          props = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {\n            style: new _AnimatedStyle.default(props.style)\n          });\n        }\n        this._props = props;\n        this._callback = callback;\n        this.__attach();\n      }\n      __getValue() {\n        var props = {};\n        for (var key in this._props) {\n          var value = this._props[key];\n          if (value instanceof _AnimatedNode.default) {\n            if (!value.__isNative || value instanceof _AnimatedStyle.default) {\n              props[key] = value.__getValue();\n            }\n          } else if (value instanceof _AnimatedEvent.AnimatedEvent) {\n            props[key] = value.__getHandler();\n          } else {\n            props[key] = value;\n          }\n        }\n        return props;\n      }\n      __getAnimatedValue() {\n        var props = {};\n        for (var key in this._props) {\n          var value = this._props[key];\n          if (value instanceof _AnimatedNode.default) {\n            props[key] = value.__getAnimatedValue();\n          }\n        }\n        return props;\n      }\n      __attach() {\n        for (var key in this._props) {\n          var value = this._props[key];\n          if (value instanceof _AnimatedNode.default) {\n            value.__addChild(this);\n          }\n        }\n      }\n      __detach() {\n        if (this.__isNative && this._animatedView) {\n          this.__disconnectAnimatedView();\n        }\n        for (var key in this._props) {\n          var value = this._props[key];\n          if (value instanceof _AnimatedNode.default) {\n            value.__removeChild(this);\n          }\n        }\n        super.__detach();\n      }\n      update() {\n        this._callback();\n      }\n      __makeNative() {\n        if (!this.__isNative) {\n          this.__isNative = true;\n          for (var key in this._props) {\n            var value = this._props[key];\n            if (value instanceof _AnimatedNode.default) {\n              value.__makeNative();\n            }\n          }\n          if (this._animatedView) {\n            this.__connectAnimatedView();\n          }\n        }\n      }\n      setNativeView(animatedView) {\n        if (this._animatedView === animatedView) {\n          return;\n        }\n        this._animatedView = animatedView;\n        if (this.__isNative) {\n          this.__connectAnimatedView();\n        }\n      }\n      __connectAnimatedView() {\n        (0, _invariant.default)(this.__isNative, 'Expected node to be marked as \"native\"');\n        var nativeViewTag = this._animatedView;\n        (0, _invariant.default)(nativeViewTag != null, \"Unable to locate attached view in the native tree\");\n        _NativeAnimatedHelper.default.API.connectAnimatedNodeToView(this.__getNativeTag(), nativeViewTag);\n      }\n      __disconnectAnimatedView() {\n        (0, _invariant.default)(this.__isNative, 'Expected node to be marked as \"native\"');\n        var nativeViewTag = this._animatedView;\n        (0, _invariant.default)(nativeViewTag != null, \"Unable to locate attached view in the native tree\");\n        _NativeAnimatedHelper.default.API.disconnectAnimatedNodeFromView(this.__getNativeTag(), nativeViewTag);\n      }\n      __restoreDefaultValues() {\n        if (this.__isNative) {\n          _NativeAnimatedHelper.default.API.restoreDefaultValues(this.__getNativeTag());\n        }\n      }\n      __getNativeConfig() {\n        var propsConfig = {};\n        for (var propKey in this._props) {\n          var value = this._props[propKey];\n          if (value instanceof _AnimatedNode.default) {\n            value.__makeNative();\n            propsConfig[propKey] = value.__getNativeTag();\n          }\n        }\n        return {\n          type: \"props\",\n          props: propsConfig\n        };\n      }\n    };\n    var _default = exports2.default = AnimatedProps;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Utilities/useRefEffect.js\nvar require_useRefEffect = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Utilities/useRefEffect.js\"(exports2, module2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.default = useRefEffect;\n    var _react = require(\"react\");\n    function useRefEffect(effect) {\n      var cleanupRef = (0, _react.useRef)(void 0);\n      return (0, _react.useCallback)((instance) => {\n        if (cleanupRef.current) {\n          cleanupRef.current();\n          cleanupRef.current = void 0;\n        }\n        if (instance != null) {\n          cleanupRef.current = effect(instance);\n        }\n      }, [effect]);\n    }\n    __name(useRefEffect, \"useRefEffect\");\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/useAnimatedProps.js\nvar require_useAnimatedProps = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/useAnimatedProps.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = useAnimatedProps;\n    var _objectSpread2 = _interopRequireDefault(require_objectSpread2());\n    var _AnimatedProps = _interopRequireDefault(require_AnimatedProps());\n    var _AnimatedEvent = require_AnimatedEvent();\n    var _useRefEffect = _interopRequireDefault(require_useRefEffect());\n    var _NativeAnimatedHelper = _interopRequireDefault(require_NativeAnimatedHelper());\n    var _react = require(\"react\");\n    var _useLayoutEffect = _interopRequireDefault(require_useLayoutEffect());\n    function useAnimatedProps(props) {\n      var _useReducer = (0, _react.useReducer)((count2) => count2 + 1, 0), scheduleUpdate = _useReducer[1];\n      var onUpdateRef = (0, _react.useRef)(null);\n      var node = (0, _react.useMemo)(() => new _AnimatedProps.default(props, () => onUpdateRef.current == null ? void 0 : onUpdateRef.current()), [props]);\n      useAnimatedPropsLifecycle(node);\n      var refEffect = (0, _react.useCallback)((instance) => {\n        node.setNativeView(instance);\n        onUpdateRef.current = () => {\n          scheduleUpdate();\n        };\n        var target = getEventTarget(instance);\n        var events = [];\n        for (var propName in props) {\n          var propValue = props[propName];\n          if (propValue instanceof _AnimatedEvent.AnimatedEvent && propValue.__isNative) {\n            propValue.__attach(target, propName);\n            events.push([propName, propValue]);\n          }\n        }\n        return () => {\n          onUpdateRef.current = null;\n          for (var _i = 0, _events = events; _i < _events.length; _i++) {\n            var _events$_i = _events[_i], _propName = _events$_i[0], _propValue = _events$_i[1];\n            _propValue.__detach(target, _propName);\n          }\n        };\n      }, [props, node]);\n      var callbackRef = (0, _useRefEffect.default)(refEffect);\n      return [reduceAnimatedProps(node), callbackRef];\n    }\n    __name(useAnimatedProps, \"useAnimatedProps\");\n    function reduceAnimatedProps(node) {\n      return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, node.__getValue()), {}, {\n        collapsable: false\n      });\n    }\n    __name(reduceAnimatedProps, \"reduceAnimatedProps\");\n    function useAnimatedPropsLifecycle(node) {\n      var prevNodeRef = (0, _react.useRef)(null);\n      var isUnmountingRef = (0, _react.useRef)(false);\n      (0, _react.useEffect)(() => {\n        _NativeAnimatedHelper.default.API.flushQueue();\n      });\n      (0, _useLayoutEffect.default)(() => {\n        isUnmountingRef.current = false;\n        return () => {\n          isUnmountingRef.current = true;\n        };\n      }, []);\n      (0, _useLayoutEffect.default)(() => {\n        node.__attach();\n        if (prevNodeRef.current != null) {\n          var prevNode = prevNodeRef.current;\n          prevNode.__restoreDefaultValues();\n          prevNode.__detach();\n          prevNodeRef.current = null;\n        }\n        return () => {\n          if (isUnmountingRef.current) {\n            node.__detach();\n          } else {\n            prevNodeRef.current = node;\n          }\n        };\n      }, [node]);\n    }\n    __name(useAnimatedPropsLifecycle, \"useAnimatedPropsLifecycle\");\n    function getEventTarget(instance) {\n      return typeof instance === \"object\" && typeof (instance == null ? void 0 : instance.getScrollableNode) === \"function\" ? (\n        // $FlowFixMe[incompatible-use] - Legacy instance assumptions.\n        instance.getScrollableNode()\n      ) : instance;\n    }\n    __name(getEventTarget, \"getEventTarget\");\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Utilities/useMergeRefs.js\nvar require_useMergeRefs2 = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Utilities/useMergeRefs.js\"(exports2, module2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.default = useMergeRefs;\n    var _react = require(\"react\");\n    function useMergeRefs() {\n      for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n        refs[_key] = arguments[_key];\n      }\n      return (0, _react.useCallback)(\n        (current) => {\n          for (var _i = 0, _refs = refs; _i < _refs.length; _i++) {\n            var ref = _refs[_i];\n            if (ref != null) {\n              if (typeof ref === \"function\") {\n                ref(current);\n              } else {\n                ref.current = current;\n              }\n            }\n          }\n        },\n        [...refs]\n        // eslint-disable-line react-hooks/exhaustive-deps\n      );\n    }\n    __name(useMergeRefs, \"useMergeRefs\");\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/createAnimatedComponent.js\nvar require_createAnimatedComponent = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/createAnimatedComponent.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = createAnimatedComponent;\n    var _extends2 = _interopRequireDefault(require_extends());\n    var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());\n    var _useAnimatedProps2 = _interopRequireDefault(require_useAnimatedProps());\n    var _useMergeRefs = _interopRequireDefault(require_useMergeRefs2());\n    var _StyleSheet = _interopRequireDefault(require_StyleSheet());\n    var _View = _interopRequireDefault(require_View());\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var _excluded = [\"style\"];\n    function createAnimatedComponent(Component) {\n      return /* @__PURE__ */ React75.forwardRef((props, forwardedRef) => {\n        var _useAnimatedProps = (0, _useAnimatedProps2.default)(props), reducedProps = _useAnimatedProps[0], callbackRef = _useAnimatedProps[1];\n        var ref = (0, _useMergeRefs.default)(callbackRef, forwardedRef);\n        var passthroughAnimatedPropExplicitValues = reducedProps.passthroughAnimatedPropExplicitValues, style = reducedProps.style;\n        var _ref = passthroughAnimatedPropExplicitValues !== null && passthroughAnimatedPropExplicitValues !== void 0 ? passthroughAnimatedPropExplicitValues : {}, passthroughStyle = _ref.style, passthroughProps = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);\n        var mergedStyle = [style, passthroughStyle];\n        return /* @__PURE__ */ React75.createElement(Component, (0, _extends2.default)({}, reducedProps, passthroughProps, {\n          style: mergedStyle,\n          ref\n        }));\n      });\n    }\n    __name(createAnimatedComponent, \"createAnimatedComponent\");\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/components/AnimatedFlatList.js\nvar require_AnimatedFlatList = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/components/AnimatedFlatList.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _extends2 = _interopRequireDefault(require_extends());\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var _FlatList = _interopRequireDefault(require_FlatList2());\n    var _createAnimatedComponent = _interopRequireDefault(require_createAnimatedComponent());\n    var FlatListWithEventThrottle = /* @__PURE__ */ React75.forwardRef((props, ref) => /* @__PURE__ */ React75.createElement(_FlatList.default, (0, _extends2.default)({\n      scrollEventThrottle: 1e-4\n    }, props, {\n      ref\n    })));\n    var _default = exports2.default = (0, _createAnimatedComponent.default)(FlatListWithEventThrottle);\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/AssetRegistry/index.js\nvar require_AssetRegistry = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/AssetRegistry/index.js\"(exports2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.getAssetByID = getAssetByID;\n    exports2.registerAsset = registerAsset;\n    var assets = [];\n    function registerAsset(asset) {\n      return assets.push(asset);\n    }\n    __name(registerAsset, \"registerAsset\");\n    function getAssetByID(assetId) {\n      return assets[assetId - 1];\n    }\n    __name(getAssetByID, \"getAssetByID\");\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/ImageLoader/index.js\nvar require_ImageLoader = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/ImageLoader/index.js\"(exports2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.default = exports2.ImageUriCache = void 0;\n    var dataUriPattern = /^data:/;\n    var ImageUriCache = class _ImageUriCache {\n      static {\n        __name(this, \"ImageUriCache\");\n      }\n      static has(uri) {\n        var entries = _ImageUriCache._entries;\n        var isDataUri = dataUriPattern.test(uri);\n        return isDataUri || Boolean(entries[uri]);\n      }\n      static add(uri) {\n        var entries = _ImageUriCache._entries;\n        var lastUsedTimestamp = Date.now();\n        if (entries[uri]) {\n          entries[uri].lastUsedTimestamp = lastUsedTimestamp;\n          entries[uri].refCount += 1;\n        } else {\n          entries[uri] = {\n            lastUsedTimestamp,\n            refCount: 1\n          };\n        }\n      }\n      static remove(uri) {\n        var entries = _ImageUriCache._entries;\n        if (entries[uri]) {\n          entries[uri].refCount -= 1;\n        }\n        _ImageUriCache._cleanUpIfNeeded();\n      }\n      static _cleanUpIfNeeded() {\n        var entries = _ImageUriCache._entries;\n        var imageUris = Object.keys(entries);\n        if (imageUris.length + 1 > _ImageUriCache._maximumEntries) {\n          var leastRecentlyUsedKey;\n          var leastRecentlyUsedEntry;\n          imageUris.forEach((uri) => {\n            var entry = entries[uri];\n            if ((!leastRecentlyUsedEntry || entry.lastUsedTimestamp < leastRecentlyUsedEntry.lastUsedTimestamp) && entry.refCount === 0) {\n              leastRecentlyUsedKey = uri;\n              leastRecentlyUsedEntry = entry;\n            }\n          });\n          if (leastRecentlyUsedKey) {\n            delete entries[leastRecentlyUsedKey];\n          }\n        }\n      }\n    };\n    exports2.ImageUriCache = ImageUriCache;\n    ImageUriCache._maximumEntries = 256;\n    ImageUriCache._entries = {};\n    var id = 0;\n    var requests = {};\n    var ImageLoader = {\n      abort(requestId) {\n        var image = requests[\"\" + requestId];\n        if (image) {\n          image.onerror = null;\n          image.onload = null;\n          image = null;\n          delete requests[\"\" + requestId];\n        }\n      },\n      getSize(uri, success, failure) {\n        var complete = false;\n        var interval = setInterval(callback, 16);\n        var requestId = ImageLoader.load(uri, callback, errorCallback);\n        function callback() {\n          var image = requests[\"\" + requestId];\n          if (image) {\n            var naturalHeight = image.naturalHeight, naturalWidth = image.naturalWidth;\n            if (naturalHeight && naturalWidth) {\n              success(naturalWidth, naturalHeight);\n              complete = true;\n            }\n          }\n          if (complete) {\n            ImageLoader.abort(requestId);\n            clearInterval(interval);\n          }\n        }\n        __name(callback, \"callback\");\n        function errorCallback() {\n          if (typeof failure === \"function\") {\n            failure();\n          }\n          ImageLoader.abort(requestId);\n          clearInterval(interval);\n        }\n        __name(errorCallback, \"errorCallback\");\n      },\n      has(uri) {\n        return ImageUriCache.has(uri);\n      },\n      load(uri, onLoad, onError) {\n        id += 1;\n        var image = new window.Image();\n        image.onerror = onError;\n        image.onload = (e) => {\n          var onDecode = /* @__PURE__ */ __name(() => onLoad({\n            nativeEvent: e\n          }), \"onDecode\");\n          if (typeof image.decode === \"function\") {\n            image.decode().then(onDecode, onDecode);\n          } else {\n            setTimeout(onDecode, 0);\n          }\n        };\n        image.src = uri;\n        requests[\"\" + id] = image;\n        return id;\n      },\n      prefetch(uri) {\n        return new Promise((resolve, reject) => {\n          ImageLoader.load(uri, () => {\n            ImageUriCache.add(uri);\n            ImageUriCache.remove(uri);\n            resolve();\n          }, reject);\n        });\n      },\n      queryCache(uris) {\n        var result = {};\n        uris.forEach((u) => {\n          if (ImageUriCache.has(u)) {\n            result[u] = \"disk/memory\";\n          }\n        });\n        return Promise.resolve(result);\n      }\n    };\n    var _default = exports2.default = ImageLoader;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/PixelRatio/index.js\nvar require_PixelRatio = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/PixelRatio/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _Dimensions = _interopRequireDefault(require_Dimensions());\n    var PixelRatio = class _PixelRatio {\n      static {\n        __name(this, \"PixelRatio\");\n      }\n      /**\n       * Returns the device pixel density.\n       */\n      static get() {\n        return _Dimensions.default.get(\"window\").scale;\n      }\n      /**\n       * No equivalent for Web\n       */\n      static getFontScale() {\n        return _Dimensions.default.get(\"window\").fontScale || _PixelRatio.get();\n      }\n      /**\n       * Converts a layout size (dp) to pixel size (px).\n       * Guaranteed to return an integer number.\n       */\n      static getPixelSizeForLayoutSize(layoutSize) {\n        return Math.round(layoutSize * _PixelRatio.get());\n      }\n      /**\n       * Rounds a layout size (dp) to the nearest layout size that corresponds to\n       * an integer number of pixels. For example, on a device with a PixelRatio\n       * of 3, `PixelRatio.roundToNearestPixel(8.4) = 8.33`, which corresponds to\n       * exactly (8.33 * 3) = 25 pixels.\n       */\n      static roundToNearestPixel(layoutSize) {\n        var ratio = _PixelRatio.get();\n        return Math.round(layoutSize * ratio) / ratio;\n      }\n    };\n    exports2.default = PixelRatio;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/Image/index.js\nvar require_Image = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/Image/index.js\"(exports2, module2) {\n    \"use strict\";\n    \"use client\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _objectSpread2 = _interopRequireDefault(require_objectSpread2());\n    var _extends2 = _interopRequireDefault(require_extends());\n    var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var _createElement = _interopRequireDefault(require_createElement());\n    var _AssetRegistry = require_AssetRegistry();\n    var _preprocess = require_preprocess();\n    var _ImageLoader = _interopRequireDefault(require_ImageLoader());\n    var _PixelRatio = _interopRequireDefault(require_PixelRatio());\n    var _StyleSheet = _interopRequireDefault(require_StyleSheet());\n    var _TextAncestorContext = _interopRequireDefault(require_TextAncestorContext());\n    var _View = _interopRequireDefault(require_View());\n    var _warnOnce = require_warnOnce();\n    var _excluded = [\"aria-label\", \"accessibilityLabel\", \"blurRadius\", \"defaultSource\", \"draggable\", \"onError\", \"onLayout\", \"onLoad\", \"onLoadEnd\", \"onLoadStart\", \"pointerEvents\", \"source\", \"style\"];\n    var ERRORED = \"ERRORED\";\n    var LOADED = \"LOADED\";\n    var LOADING = \"LOADING\";\n    var IDLE = \"IDLE\";\n    var _filterId = 0;\n    var svgDataUriPattern = /^(data:image\\/svg\\+xml;utf8,)(.*)/;\n    function createTintColorSVG(tintColor, id) {\n      return tintColor && id != null ? /* @__PURE__ */ React75.createElement(\"svg\", {\n        style: {\n          position: \"absolute\",\n          height: 0,\n          visibility: \"hidden\",\n          width: 0\n        }\n      }, /* @__PURE__ */ React75.createElement(\"defs\", null, /* @__PURE__ */ React75.createElement(\"filter\", {\n        id: \"tint-\" + id,\n        suppressHydrationWarning: true\n      }, /* @__PURE__ */ React75.createElement(\"feFlood\", {\n        floodColor: \"\" + tintColor,\n        key: tintColor\n      }), /* @__PURE__ */ React75.createElement(\"feComposite\", {\n        in2: \"SourceAlpha\",\n        operator: \"in\"\n      })))) : null;\n    }\n    __name(createTintColorSVG, \"createTintColorSVG\");\n    function extractNonStandardStyleProps(style, blurRadius, filterId, tintColorProp) {\n      var flatStyle = _StyleSheet.default.flatten(style);\n      var filter = flatStyle.filter, resizeMode = flatStyle.resizeMode, shadowOffset = flatStyle.shadowOffset, tintColor = flatStyle.tintColor;\n      if (flatStyle.resizeMode) {\n        (0, _warnOnce.warnOnce)(\"Image.style.resizeMode\", \"Image: style.resizeMode is deprecated. Please use props.resizeMode.\");\n      }\n      if (flatStyle.tintColor) {\n        (0, _warnOnce.warnOnce)(\"Image.style.tintColor\", \"Image: style.tintColor is deprecated. Please use props.tintColor.\");\n      }\n      var filters = [];\n      var _filter = null;\n      if (filter) {\n        filters.push(filter);\n      }\n      if (blurRadius) {\n        filters.push(\"blur(\" + blurRadius + \"px)\");\n      }\n      if (shadowOffset) {\n        var shadowString = (0, _preprocess.createBoxShadowValue)(flatStyle);\n        if (shadowString) {\n          filters.push(\"drop-shadow(\" + shadowString + \")\");\n        }\n      }\n      if ((tintColorProp || tintColor) && filterId != null) {\n        filters.push(\"url(#tint-\" + filterId + \")\");\n      }\n      if (filters.length > 0) {\n        _filter = filters.join(\" \");\n      }\n      return [resizeMode, _filter, tintColor];\n    }\n    __name(extractNonStandardStyleProps, \"extractNonStandardStyleProps\");\n    function resolveAssetDimensions(source) {\n      if (typeof source === \"number\") {\n        var _getAssetByID = (0, _AssetRegistry.getAssetByID)(source), _height = _getAssetByID.height, _width = _getAssetByID.width;\n        return {\n          height: _height,\n          width: _width\n        };\n      } else if (source != null && !Array.isArray(source) && typeof source === \"object\") {\n        var _height2 = source.height, _width2 = source.width;\n        return {\n          height: _height2,\n          width: _width2\n        };\n      }\n    }\n    __name(resolveAssetDimensions, \"resolveAssetDimensions\");\n    function resolveAssetUri(source) {\n      var uri = null;\n      if (typeof source === \"number\") {\n        var asset = (0, _AssetRegistry.getAssetByID)(source);\n        if (asset == null) {\n          throw new Error('Image: asset with ID \"' + source + '\" could not be found. Please check the image source or packager.');\n        }\n        var scale = asset.scales[0];\n        if (asset.scales.length > 1) {\n          var preferredScale = _PixelRatio.default.get();\n          scale = asset.scales.reduce((prev, curr) => Math.abs(curr - preferredScale) < Math.abs(prev - preferredScale) ? curr : prev);\n        }\n        var scaleSuffix = scale !== 1 ? \"@\" + scale + \"x\" : \"\";\n        uri = asset ? asset.httpServerLocation + \"/\" + asset.name + scaleSuffix + \".\" + asset.type : \"\";\n      } else if (typeof source === \"string\") {\n        uri = source;\n      } else if (source && typeof source.uri === \"string\") {\n        uri = source.uri;\n      }\n      if (uri) {\n        var match = uri.match(svgDataUriPattern);\n        if (match) {\n          var prefix = match[1], svg = match[2];\n          var encodedSvg = encodeURIComponent(svg);\n          return \"\" + prefix + encodedSvg;\n        }\n      }\n      return uri;\n    }\n    __name(resolveAssetUri, \"resolveAssetUri\");\n    var Image2 = /* @__PURE__ */ React75.forwardRef((props, ref) => {\n      var _ariaLabel = props[\"aria-label\"], accessibilityLabel = props.accessibilityLabel, blurRadius = props.blurRadius, defaultSource = props.defaultSource, draggable = props.draggable, onError = props.onError, onLayout = props.onLayout, onLoad = props.onLoad, onLoadEnd = props.onLoadEnd, onLoadStart = props.onLoadStart, pointerEvents = props.pointerEvents, source = props.source, style = props.style, rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);\n      var ariaLabel = _ariaLabel || accessibilityLabel;\n      if (process.env.NODE_ENV !== \"production\") {\n        if (props.children) {\n          throw new Error(\"The <Image> component cannot contain children. If you want to render content on top of the image, consider using the <ImageBackground> component or absolute positioning.\");\n        }\n      }\n      var _React$useState = React75.useState(() => {\n        var uri2 = resolveAssetUri(source);\n        if (uri2 != null) {\n          var isLoaded = _ImageLoader.default.has(uri2);\n          if (isLoaded) {\n            return LOADED;\n          }\n        }\n        return IDLE;\n      }), state = _React$useState[0], updateState = _React$useState[1];\n      var _React$useState2 = React75.useState({}), layout = _React$useState2[0], updateLayout = _React$useState2[1];\n      var hasTextAncestor = React75.useContext(_TextAncestorContext.default);\n      var hiddenImageRef = React75.useRef(null);\n      var filterRef = React75.useRef(_filterId++);\n      var requestRef = React75.useRef(null);\n      var shouldDisplaySource = state === LOADED || state === LOADING && defaultSource == null;\n      var _extractNonStandardSt = extractNonStandardStyleProps(style, blurRadius, filterRef.current, props.tintColor), _resizeMode = _extractNonStandardSt[0], filter = _extractNonStandardSt[1], _tintColor = _extractNonStandardSt[2];\n      var resizeMode = props.resizeMode || _resizeMode || \"cover\";\n      var tintColor = props.tintColor || _tintColor;\n      var selectedSource = shouldDisplaySource ? source : defaultSource;\n      var displayImageUri = resolveAssetUri(selectedSource);\n      var imageSizeStyle = resolveAssetDimensions(selectedSource);\n      var backgroundImage = displayImageUri ? 'url(\"' + displayImageUri + '\")' : null;\n      var backgroundSize = getBackgroundSize();\n      var hiddenImage = displayImageUri ? (0, _createElement.default)(\"img\", {\n        alt: ariaLabel || \"\",\n        style: styles.accessibilityImage$raw,\n        draggable: draggable || false,\n        ref: hiddenImageRef,\n        src: displayImageUri\n      }) : null;\n      function getBackgroundSize() {\n        if (hiddenImageRef.current != null && (resizeMode === \"center\" || resizeMode === \"repeat\")) {\n          var _hiddenImageRef$curre = hiddenImageRef.current, naturalHeight = _hiddenImageRef$curre.naturalHeight, naturalWidth = _hiddenImageRef$curre.naturalWidth;\n          var _height3 = layout.height, _width3 = layout.width;\n          if (naturalHeight && naturalWidth && _height3 && _width3) {\n            var scaleFactor = Math.min(1, _width3 / naturalWidth, _height3 / naturalHeight);\n            var x = Math.ceil(scaleFactor * naturalWidth);\n            var y = Math.ceil(scaleFactor * naturalHeight);\n            return x + \"px \" + y + \"px\";\n          }\n        }\n      }\n      __name(getBackgroundSize, \"getBackgroundSize\");\n      function handleLayout(e) {\n        if (resizeMode === \"center\" || resizeMode === \"repeat\" || onLayout) {\n          var _layout = e.nativeEvent.layout;\n          onLayout && onLayout(e);\n          updateLayout(_layout);\n        }\n      }\n      __name(handleLayout, \"handleLayout\");\n      var uri = resolveAssetUri(source);\n      React75.useEffect(() => {\n        abortPendingRequest();\n        if (uri != null) {\n          updateState(LOADING);\n          if (onLoadStart) {\n            onLoadStart();\n          }\n          requestRef.current = _ImageLoader.default.load(uri, /* @__PURE__ */ __name(function load(e) {\n            updateState(LOADED);\n            if (onLoad) {\n              onLoad(e);\n            }\n            if (onLoadEnd) {\n              onLoadEnd();\n            }\n          }, \"load\"), /* @__PURE__ */ __name(function error2() {\n            updateState(ERRORED);\n            if (onError) {\n              onError({\n                nativeEvent: {\n                  error: \"Failed to load resource \" + uri\n                }\n              });\n            }\n            if (onLoadEnd) {\n              onLoadEnd();\n            }\n          }, \"error\"));\n        }\n        function abortPendingRequest() {\n          if (requestRef.current != null) {\n            _ImageLoader.default.abort(requestRef.current);\n            requestRef.current = null;\n          }\n        }\n        __name(abortPendingRequest, \"abortPendingRequest\");\n        return abortPendingRequest;\n      }, [uri, requestRef, updateState, onError, onLoad, onLoadEnd, onLoadStart]);\n      return /* @__PURE__ */ React75.createElement(_View.default, (0, _extends2.default)({}, rest, {\n        \"aria-label\": ariaLabel,\n        onLayout: handleLayout,\n        pointerEvents,\n        ref,\n        style: [\n          styles.root,\n          hasTextAncestor && styles.inline,\n          imageSizeStyle,\n          style,\n          styles.undo,\n          // TEMP: avoid deprecated shadow props regression\n          // until Image refactored to use createElement.\n          {\n            boxShadow: null\n          }\n        ]\n      }), /* @__PURE__ */ React75.createElement(_View.default, {\n        style: [styles.image, resizeModeStyles[resizeMode], {\n          backgroundImage,\n          filter\n        }, backgroundSize != null && {\n          backgroundSize\n        }],\n        suppressHydrationWarning: true\n      }), hiddenImage, createTintColorSVG(tintColor, filterRef.current));\n    });\n    Image2.displayName = \"Image\";\n    var ImageWithStatics = Image2;\n    ImageWithStatics.getSize = function(uri, success, failure) {\n      _ImageLoader.default.getSize(uri, success, failure);\n    };\n    ImageWithStatics.prefetch = function(uri) {\n      return _ImageLoader.default.prefetch(uri);\n    };\n    ImageWithStatics.queryCache = function(uris) {\n      return _ImageLoader.default.queryCache(uris);\n    };\n    var styles = _StyleSheet.default.create({\n      root: {\n        flexBasis: \"auto\",\n        overflow: \"hidden\",\n        zIndex: 0\n      },\n      inline: {\n        display: \"inline-flex\"\n      },\n      undo: {\n        // These styles are converted to CSS filters applied to the\n        // element displaying the background image.\n        blurRadius: null,\n        shadowColor: null,\n        shadowOpacity: null,\n        shadowOffset: null,\n        shadowRadius: null,\n        tintColor: null,\n        // These styles are not supported\n        overlayColor: null,\n        resizeMode: null\n      },\n      image: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, _StyleSheet.default.absoluteFillObject), {}, {\n        backgroundColor: \"transparent\",\n        backgroundPosition: \"center\",\n        backgroundRepeat: \"no-repeat\",\n        backgroundSize: \"cover\",\n        height: \"100%\",\n        width: \"100%\",\n        zIndex: -1\n      }),\n      accessibilityImage$raw: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, _StyleSheet.default.absoluteFillObject), {}, {\n        height: \"100%\",\n        opacity: 0,\n        width: \"100%\",\n        zIndex: -1\n      })\n    });\n    var resizeModeStyles = _StyleSheet.default.create({\n      center: {\n        backgroundSize: \"auto\"\n      },\n      contain: {\n        backgroundSize: \"contain\"\n      },\n      cover: {\n        backgroundSize: \"cover\"\n      },\n      none: {\n        backgroundPosition: \"0\",\n        backgroundSize: \"auto\"\n      },\n      repeat: {\n        backgroundPosition: \"0\",\n        backgroundRepeat: \"repeat\",\n        backgroundSize: \"auto\"\n      },\n      stretch: {\n        backgroundSize: \"100% 100%\"\n      }\n    });\n    var _default = exports2.default = ImageWithStatics;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/components/AnimatedImage.js\nvar require_AnimatedImage = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/components/AnimatedImage.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var _Image = _interopRequireDefault(require_Image());\n    var _createAnimatedComponent = _interopRequireDefault(require_createAnimatedComponent());\n    var _default = exports2.default = (0, _createAnimatedComponent.default)(_Image.default);\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/components/AnimatedScrollView.js\nvar require_AnimatedScrollView = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/components/AnimatedScrollView.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _extends2 = _interopRequireDefault(require_extends());\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var _ScrollView = _interopRequireDefault(require_ScrollView());\n    var _createAnimatedComponent = _interopRequireDefault(require_createAnimatedComponent());\n    var ScrollViewWithEventThrottle = /* @__PURE__ */ React75.forwardRef((props, ref) => /* @__PURE__ */ React75.createElement(_ScrollView.default, (0, _extends2.default)({\n      scrollEventThrottle: 1e-4\n    }, props, {\n      ref\n    })));\n    var _default = exports2.default = (0, _createAnimatedComponent.default)(ScrollViewWithEventThrottle);\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/VirtualizedSectionList/index.js\nvar require_VirtualizedSectionList = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/VirtualizedSectionList/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _extends2 = _interopRequireDefault(require_extends());\n    var _createForOfIteratorHelperLoose2 = _interopRequireDefault(require_createForOfIteratorHelperLoose());\n    var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());\n    var _objectSpread2 = _interopRequireDefault(require_objectSpread2());\n    var _View = _interopRequireDefault(require_View());\n    var _VirtualizedList = _interopRequireDefault(require_VirtualizedList());\n    var _VirtualizeUtils = require_VirtualizeUtils();\n    var _invariant = _interopRequireDefault(require_invariant());\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var _excluded = [\"ItemSeparatorComponent\", \"SectionSeparatorComponent\", \"renderItem\", \"renderSectionFooter\", \"renderSectionHeader\", \"sections\", \"stickySectionHeadersEnabled\"];\n    var VirtualizedSectionList = class extends React75.PureComponent {\n      static {\n        __name(this, \"VirtualizedSectionList\");\n      }\n      constructor() {\n        super(...arguments);\n        this._keyExtractor = (item, index3) => {\n          var info = this._subExtractor(index3);\n          return info && info.key || String(index3);\n        };\n        this._convertViewable = (viewable) => {\n          var _info$index;\n          (0, _invariant.default)(viewable.index != null, \"Received a broken ViewToken\");\n          var info = this._subExtractor(viewable.index);\n          if (!info) {\n            return null;\n          }\n          var keyExtractorWithNullableIndex = info.section.keyExtractor;\n          var keyExtractorWithNonNullableIndex = this.props.keyExtractor || _VirtualizeUtils.keyExtractor;\n          var key = keyExtractorWithNullableIndex != null ? keyExtractorWithNullableIndex(viewable.item, info.index) : keyExtractorWithNonNullableIndex(viewable.item, (_info$index = info.index) !== null && _info$index !== void 0 ? _info$index : 0);\n          return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, viewable), {}, {\n            index: info.index,\n            key,\n            section: info.section\n          });\n        };\n        this._onViewableItemsChanged = (_ref) => {\n          var viewableItems = _ref.viewableItems, changed = _ref.changed;\n          var onViewableItemsChanged = this.props.onViewableItemsChanged;\n          if (onViewableItemsChanged != null) {\n            onViewableItemsChanged({\n              viewableItems: viewableItems.map(this._convertViewable, this).filter(Boolean),\n              changed: changed.map(this._convertViewable, this).filter(Boolean)\n            });\n          }\n        };\n        this._renderItem = (listItemCount) => (\n          // eslint-disable-next-line react/no-unstable-nested-components\n          (_ref2) => {\n            var item = _ref2.item, index3 = _ref2.index;\n            var info = this._subExtractor(index3);\n            if (!info) {\n              return null;\n            }\n            var infoIndex = info.index;\n            if (infoIndex == null) {\n              var section = info.section;\n              if (info.header === true) {\n                var renderSectionHeader = this.props.renderSectionHeader;\n                return renderSectionHeader ? renderSectionHeader({\n                  section\n                }) : null;\n              } else {\n                var renderSectionFooter = this.props.renderSectionFooter;\n                return renderSectionFooter ? renderSectionFooter({\n                  section\n                }) : null;\n              }\n            } else {\n              var renderItem = info.section.renderItem || this.props.renderItem;\n              var SeparatorComponent = this._getSeparatorComponent(index3, info, listItemCount);\n              (0, _invariant.default)(renderItem, \"no renderItem!\");\n              return /* @__PURE__ */ React75.createElement(ItemWithSeparator, {\n                SeparatorComponent,\n                LeadingSeparatorComponent: infoIndex === 0 ? this.props.SectionSeparatorComponent : void 0,\n                cellKey: info.key,\n                index: infoIndex,\n                item,\n                leadingItem: info.leadingItem,\n                leadingSection: info.leadingSection,\n                prevCellKey: (this._subExtractor(index3 - 1) || {}).key,\n                setSelfHighlightCallback: this._setUpdateHighlightFor,\n                setSelfUpdatePropsCallback: this._setUpdatePropsFor,\n                updateHighlightFor: this._updateHighlightFor,\n                updatePropsFor: this._updatePropsFor,\n                renderItem,\n                section: info.section,\n                trailingItem: info.trailingItem,\n                trailingSection: info.trailingSection,\n                inverted: !!this.props.inverted\n              });\n            }\n          }\n        );\n        this._updatePropsFor = (cellKey, value) => {\n          var updateProps = this._updatePropsMap[cellKey];\n          if (updateProps != null) {\n            updateProps(value);\n          }\n        };\n        this._updateHighlightFor = (cellKey, value) => {\n          var updateHighlight = this._updateHighlightMap[cellKey];\n          if (updateHighlight != null) {\n            updateHighlight(value);\n          }\n        };\n        this._setUpdateHighlightFor = (cellKey, updateHighlightFn) => {\n          if (updateHighlightFn != null) {\n            this._updateHighlightMap[cellKey] = updateHighlightFn;\n          } else {\n            delete this._updateHighlightFor[cellKey];\n          }\n        };\n        this._setUpdatePropsFor = (cellKey, updatePropsFn) => {\n          if (updatePropsFn != null) {\n            this._updatePropsMap[cellKey] = updatePropsFn;\n          } else {\n            delete this._updatePropsMap[cellKey];\n          }\n        };\n        this._updateHighlightMap = {};\n        this._updatePropsMap = {};\n        this._captureRef = (ref) => {\n          this._listRef = ref;\n        };\n      }\n      scrollToLocation(params) {\n        var index3 = params.itemIndex;\n        for (var i = 0; i < params.sectionIndex; i++) {\n          index3 += this.props.getItemCount(this.props.sections[i].data) + 2;\n        }\n        var viewOffset = params.viewOffset || 0;\n        if (this._listRef == null) {\n          return;\n        }\n        if (params.itemIndex > 0 && this.props.stickySectionHeadersEnabled) {\n          var frame = this._listRef.__getFrameMetricsApprox(index3 - params.itemIndex, this._listRef.props);\n          viewOffset += frame.length;\n        }\n        var toIndexParams = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, params), {}, {\n          viewOffset,\n          index: index3\n        });\n        this._listRef.scrollToIndex(toIndexParams);\n      }\n      getListRef() {\n        return this._listRef;\n      }\n      render() {\n        var _this$props = this.props, ItemSeparatorComponent = _this$props.ItemSeparatorComponent, SectionSeparatorComponent = _this$props.SectionSeparatorComponent, _renderItem = _this$props.renderItem, renderSectionFooter = _this$props.renderSectionFooter, renderSectionHeader = _this$props.renderSectionHeader, _sections = _this$props.sections, stickySectionHeadersEnabled = _this$props.stickySectionHeadersEnabled, passThroughProps = (0, _objectWithoutPropertiesLoose2.default)(_this$props, _excluded);\n        var listHeaderOffset = this.props.ListHeaderComponent ? 1 : 0;\n        var stickyHeaderIndices = this.props.stickySectionHeadersEnabled ? [] : void 0;\n        var itemCount = 0;\n        for (var _iterator = (0, _createForOfIteratorHelperLoose2.default)(this.props.sections), _step; !(_step = _iterator()).done; ) {\n          var section = _step.value;\n          if (stickyHeaderIndices != null) {\n            stickyHeaderIndices.push(itemCount + listHeaderOffset);\n          }\n          itemCount += 2;\n          itemCount += this.props.getItemCount(section.data);\n        }\n        var renderItem = this._renderItem(itemCount);\n        return /* @__PURE__ */ React75.createElement(_VirtualizedList.default, (0, _extends2.default)({}, passThroughProps, {\n          keyExtractor: this._keyExtractor,\n          stickyHeaderIndices,\n          renderItem,\n          data: this.props.sections,\n          getItem: /* @__PURE__ */ __name((sections, index3) => this._getItem(this.props, sections, index3), \"getItem\"),\n          getItemCount: /* @__PURE__ */ __name(() => itemCount, \"getItemCount\"),\n          onViewableItemsChanged: this.props.onViewableItemsChanged ? this._onViewableItemsChanged : void 0,\n          ref: this._captureRef\n        }));\n      }\n      _getItem(props, sections, index3) {\n        if (!sections) {\n          return null;\n        }\n        var itemIdx = index3 - 1;\n        for (var i = 0; i < sections.length; i++) {\n          var section = sections[i];\n          var sectionData = section.data;\n          var itemCount = props.getItemCount(sectionData);\n          if (itemIdx === -1 || itemIdx === itemCount) {\n            return section;\n          } else if (itemIdx < itemCount) {\n            return props.getItem(sectionData, itemIdx);\n          } else {\n            itemIdx -= itemCount + 2;\n          }\n        }\n        return null;\n      }\n      // $FlowFixMe[missing-local-annot]\n      _subExtractor(index3) {\n        var itemIndex = index3;\n        var _this$props2 = this.props, getItem = _this$props2.getItem, getItemCount = _this$props2.getItemCount, keyExtractor = _this$props2.keyExtractor, sections = _this$props2.sections;\n        for (var i = 0; i < sections.length; i++) {\n          var section = sections[i];\n          var sectionData = section.data;\n          var key = section.key || String(i);\n          itemIndex -= 1;\n          if (itemIndex >= getItemCount(sectionData) + 1) {\n            itemIndex -= getItemCount(sectionData) + 1;\n          } else if (itemIndex === -1) {\n            return {\n              section,\n              key: key + \":header\",\n              index: null,\n              header: true,\n              trailingSection: sections[i + 1]\n            };\n          } else if (itemIndex === getItemCount(sectionData)) {\n            return {\n              section,\n              key: key + \":footer\",\n              index: null,\n              header: false,\n              trailingSection: sections[i + 1]\n            };\n          } else {\n            var extractor = section.keyExtractor || keyExtractor || _VirtualizeUtils.keyExtractor;\n            return {\n              section,\n              key: key + \":\" + extractor(getItem(sectionData, itemIndex), itemIndex),\n              index: itemIndex,\n              leadingItem: getItem(sectionData, itemIndex - 1),\n              leadingSection: sections[i - 1],\n              trailingItem: getItem(sectionData, itemIndex + 1),\n              trailingSection: sections[i + 1]\n            };\n          }\n        }\n      }\n      _getSeparatorComponent(index3, info, listItemCount) {\n        info = info || this._subExtractor(index3);\n        if (!info) {\n          return null;\n        }\n        var ItemSeparatorComponent = info.section.ItemSeparatorComponent || this.props.ItemSeparatorComponent;\n        var SectionSeparatorComponent = this.props.SectionSeparatorComponent;\n        var isLastItemInList = index3 === listItemCount - 1;\n        var isLastItemInSection = info.index === this.props.getItemCount(info.section.data) - 1;\n        if (SectionSeparatorComponent && isLastItemInSection) {\n          return SectionSeparatorComponent;\n        }\n        if (ItemSeparatorComponent && !isLastItemInSection && !isLastItemInList) {\n          return ItemSeparatorComponent;\n        }\n        return null;\n      }\n    };\n    function ItemWithSeparator(props) {\n      var LeadingSeparatorComponent = props.LeadingSeparatorComponent, SeparatorComponent = props.SeparatorComponent, cellKey = props.cellKey, prevCellKey = props.prevCellKey, setSelfHighlightCallback = props.setSelfHighlightCallback, updateHighlightFor = props.updateHighlightFor, setSelfUpdatePropsCallback = props.setSelfUpdatePropsCallback, updatePropsFor = props.updatePropsFor, item = props.item, index3 = props.index, section = props.section, inverted = props.inverted;\n      var _React$useState = React75.useState(false), leadingSeparatorHiglighted = _React$useState[0], setLeadingSeparatorHighlighted = _React$useState[1];\n      var _React$useState2 = React75.useState(false), separatorHighlighted = _React$useState2[0], setSeparatorHighlighted = _React$useState2[1];\n      var _React$useState3 = React75.useState({\n        leadingItem: props.leadingItem,\n        leadingSection: props.leadingSection,\n        section: props.section,\n        trailingItem: props.item,\n        trailingSection: props.trailingSection\n      }), leadingSeparatorProps = _React$useState3[0], setLeadingSeparatorProps = _React$useState3[1];\n      var _React$useState4 = React75.useState({\n        leadingItem: props.item,\n        leadingSection: props.leadingSection,\n        section: props.section,\n        trailingItem: props.trailingItem,\n        trailingSection: props.trailingSection\n      }), separatorProps = _React$useState4[0], setSeparatorProps = _React$useState4[1];\n      React75.useEffect(() => {\n        setSelfHighlightCallback(cellKey, setSeparatorHighlighted);\n        setSelfUpdatePropsCallback(cellKey, setSeparatorProps);\n        return () => {\n          setSelfUpdatePropsCallback(cellKey, null);\n          setSelfHighlightCallback(cellKey, null);\n        };\n      }, [cellKey, setSelfHighlightCallback, setSeparatorProps, setSelfUpdatePropsCallback]);\n      var separators = {\n        highlight: /* @__PURE__ */ __name(() => {\n          setLeadingSeparatorHighlighted(true);\n          setSeparatorHighlighted(true);\n          if (prevCellKey != null) {\n            updateHighlightFor(prevCellKey, true);\n          }\n        }, \"highlight\"),\n        unhighlight: /* @__PURE__ */ __name(() => {\n          setLeadingSeparatorHighlighted(false);\n          setSeparatorHighlighted(false);\n          if (prevCellKey != null) {\n            updateHighlightFor(prevCellKey, false);\n          }\n        }, \"unhighlight\"),\n        updateProps: /* @__PURE__ */ __name((select, newProps) => {\n          if (select === \"leading\") {\n            if (LeadingSeparatorComponent != null) {\n              setLeadingSeparatorProps((0, _objectSpread2.default)((0, _objectSpread2.default)({}, leadingSeparatorProps), newProps));\n            } else if (prevCellKey != null) {\n              updatePropsFor(prevCellKey, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, leadingSeparatorProps), newProps));\n            }\n          } else if (select === \"trailing\" && SeparatorComponent != null) {\n            setSeparatorProps((0, _objectSpread2.default)((0, _objectSpread2.default)({}, separatorProps), newProps));\n          }\n        }, \"updateProps\")\n      };\n      var element = props.renderItem({\n        item,\n        index: index3,\n        section,\n        separators\n      });\n      var leadingSeparator = LeadingSeparatorComponent != null && /* @__PURE__ */ React75.createElement(LeadingSeparatorComponent, (0, _extends2.default)({\n        highlighted: leadingSeparatorHiglighted\n      }, leadingSeparatorProps));\n      var separator = SeparatorComponent != null && /* @__PURE__ */ React75.createElement(SeparatorComponent, (0, _extends2.default)({\n        highlighted: separatorHighlighted\n      }, separatorProps));\n      return leadingSeparator || separator ? /* @__PURE__ */ React75.createElement(_View.default, null, inverted === false ? leadingSeparator : separator, element, inverted === false ? separator : leadingSeparator) : element;\n    }\n    __name(ItemWithSeparator, \"ItemWithSeparator\");\n    var _default = exports2.default = VirtualizedSectionList;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/SectionList/index.js\nvar require_SectionList = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/SectionList/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _extends2 = _interopRequireDefault(require_extends());\n    var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());\n    var _Platform = _interopRequireDefault(require_Platform());\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var _VirtualizedSectionList = _interopRequireDefault(require_VirtualizedSectionList());\n    var _excluded = [\"stickySectionHeadersEnabled\"];\n    var SectionList = class extends React75.PureComponent {\n      static {\n        __name(this, \"SectionList\");\n      }\n      constructor() {\n        super(...arguments);\n        this._captureRef = (ref) => {\n          this._wrapperListRef = ref;\n        };\n      }\n      /**\n       * Scrolls to the item at the specified `sectionIndex` and `itemIndex` (within the section)\n       * positioned in the viewable area such that `viewPosition` 0 places it at the top (and may be\n       * covered by a sticky header), 1 at the bottom, and 0.5 centered in the middle. `viewOffset` is a\n       * fixed number of pixels to offset the final target position, e.g. to compensate for sticky\n       * headers.\n       *\n       * Note: cannot scroll to locations outside the render window without specifying the\n       * `getItemLayout` prop.\n       */\n      scrollToLocation(params) {\n        if (this._wrapperListRef != null) {\n          this._wrapperListRef.scrollToLocation(params);\n        }\n      }\n      /**\n       * Tells the list an interaction has occurred, which should trigger viewability calculations, e.g.\n       * if `waitForInteractions` is true and the user has not scrolled. This is typically called by\n       * taps on items or by navigation actions.\n       */\n      recordInteraction() {\n        var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n        listRef && listRef.recordInteraction();\n      }\n      /**\n       * Displays the scroll indicators momentarily.\n       *\n       * @platform ios\n       */\n      flashScrollIndicators() {\n        var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n        listRef && listRef.flashScrollIndicators();\n      }\n      /**\n       * Provides a handle to the underlying scroll responder.\n       */\n      getScrollResponder() {\n        var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n        if (listRef) {\n          return listRef.getScrollResponder();\n        }\n      }\n      getScrollableNode() {\n        var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n        if (listRef) {\n          return listRef.getScrollableNode();\n        }\n      }\n      render() {\n        var _this$props = this.props, _stickySectionHeadersEnabled = _this$props.stickySectionHeadersEnabled, restProps = (0, _objectWithoutPropertiesLoose2.default)(_this$props, _excluded);\n        var stickySectionHeadersEnabled = _stickySectionHeadersEnabled !== null && _stickySectionHeadersEnabled !== void 0 ? _stickySectionHeadersEnabled : _Platform.default.OS === \"ios\";\n        return /* @__PURE__ */ React75.createElement(_VirtualizedSectionList.default, (0, _extends2.default)({}, restProps, {\n          stickySectionHeadersEnabled,\n          ref: this._captureRef,\n          getItemCount: /* @__PURE__ */ __name((items) => items.length, \"getItemCount\"),\n          getItem: /* @__PURE__ */ __name((items, index3) => items[index3], \"getItem\")\n        }));\n      }\n    };\n    exports2.default = SectionList;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/SectionList/index.js\nvar require_SectionList2 = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/SectionList/index.js\"(exports2, module2) {\n    \"use strict\";\n    \"use client\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _SectionList = _interopRequireDefault(require_SectionList());\n    var _default = exports2.default = _SectionList.default;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/components/AnimatedSectionList.js\nvar require_AnimatedSectionList = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/components/AnimatedSectionList.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _extends2 = _interopRequireDefault(require_extends());\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var _SectionList = _interopRequireDefault(require_SectionList2());\n    var _createAnimatedComponent = _interopRequireDefault(require_createAnimatedComponent());\n    var SectionListWithEventThrottle = /* @__PURE__ */ React75.forwardRef((props, ref) => /* @__PURE__ */ React75.createElement(_SectionList.default, (0, _extends2.default)({\n      scrollEventThrottle: 1e-4\n    }, props, {\n      ref\n    })));\n    var _default = exports2.default = (0, _createAnimatedComponent.default)(SectionListWithEventThrottle);\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/Text/index.js\nvar require_Text = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/Text/index.js\"(exports2, module2) {\n    \"use strict\";\n    \"use client\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _objectSpread2 = _interopRequireDefault(require_objectSpread2());\n    var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var _createElement = _interopRequireDefault(require_createElement());\n    var forwardedProps = _interopRequireWildcard(require_forwardedProps());\n    var _pick = _interopRequireDefault(require_pick());\n    var _useElementLayout = _interopRequireDefault(require_useElementLayout());\n    var _useMergeRefs = _interopRequireDefault(require_useMergeRefs());\n    var _usePlatformMethods = _interopRequireDefault(require_usePlatformMethods());\n    var _useResponderEvents = _interopRequireDefault(require_useResponderEvents());\n    var _StyleSheet = _interopRequireDefault(require_StyleSheet());\n    var _TextAncestorContext = _interopRequireDefault(require_TextAncestorContext());\n    var _useLocale = require_useLocale();\n    var _excluded = [\"hrefAttrs\", \"numberOfLines\", \"onClick\", \"onLayout\", \"onPress\", \"onMoveShouldSetResponder\", \"onMoveShouldSetResponderCapture\", \"onResponderEnd\", \"onResponderGrant\", \"onResponderMove\", \"onResponderReject\", \"onResponderRelease\", \"onResponderStart\", \"onResponderTerminate\", \"onResponderTerminationRequest\", \"onScrollShouldSetResponder\", \"onScrollShouldSetResponderCapture\", \"onSelectionChangeShouldSetResponder\", \"onSelectionChangeShouldSetResponderCapture\", \"onStartShouldSetResponder\", \"onStartShouldSetResponderCapture\", \"selectable\"];\n    var forwardPropsList = Object.assign({}, forwardedProps.defaultProps, forwardedProps.accessibilityProps, forwardedProps.clickProps, forwardedProps.focusProps, forwardedProps.keyboardProps, forwardedProps.mouseProps, forwardedProps.touchProps, forwardedProps.styleProps, {\n      href: true,\n      lang: true,\n      pointerEvents: true\n    });\n    var pickProps = /* @__PURE__ */ __name((props) => (0, _pick.default)(props, forwardPropsList), \"pickProps\");\n    var Text5 = /* @__PURE__ */ React75.forwardRef((props, forwardedRef) => {\n      var hrefAttrs = props.hrefAttrs, numberOfLines = props.numberOfLines, onClick = props.onClick, onLayout = props.onLayout, onPress = props.onPress, onMoveShouldSetResponder = props.onMoveShouldSetResponder, onMoveShouldSetResponderCapture = props.onMoveShouldSetResponderCapture, onResponderEnd = props.onResponderEnd, onResponderGrant = props.onResponderGrant, onResponderMove = props.onResponderMove, onResponderReject = props.onResponderReject, onResponderRelease = props.onResponderRelease, onResponderStart = props.onResponderStart, onResponderTerminate = props.onResponderTerminate, onResponderTerminationRequest = props.onResponderTerminationRequest, onScrollShouldSetResponder = props.onScrollShouldSetResponder, onScrollShouldSetResponderCapture = props.onScrollShouldSetResponderCapture, onSelectionChangeShouldSetResponder = props.onSelectionChangeShouldSetResponder, onSelectionChangeShouldSetResponderCapture = props.onSelectionChangeShouldSetResponderCapture, onStartShouldSetResponder = props.onStartShouldSetResponder, onStartShouldSetResponderCapture = props.onStartShouldSetResponderCapture, selectable = props.selectable, rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);\n      var hasTextAncestor = React75.useContext(_TextAncestorContext.default);\n      var hostRef = React75.useRef(null);\n      var _useLocaleContext = (0, _useLocale.useLocaleContext)(), contextDirection = _useLocaleContext.direction;\n      (0, _useElementLayout.default)(hostRef, onLayout);\n      (0, _useResponderEvents.default)(hostRef, {\n        onMoveShouldSetResponder,\n        onMoveShouldSetResponderCapture,\n        onResponderEnd,\n        onResponderGrant,\n        onResponderMove,\n        onResponderReject,\n        onResponderRelease,\n        onResponderStart,\n        onResponderTerminate,\n        onResponderTerminationRequest,\n        onScrollShouldSetResponder,\n        onScrollShouldSetResponderCapture,\n        onSelectionChangeShouldSetResponder,\n        onSelectionChangeShouldSetResponderCapture,\n        onStartShouldSetResponder,\n        onStartShouldSetResponderCapture\n      });\n      var handleClick = React75.useCallback((e) => {\n        if (onClick != null) {\n          onClick(e);\n        } else if (onPress != null) {\n          e.stopPropagation();\n          onPress(e);\n        }\n      }, [onClick, onPress]);\n      var component = hasTextAncestor ? \"span\" : \"div\";\n      var langDirection = props.lang != null ? (0, _useLocale.getLocaleDirection)(props.lang) : null;\n      var componentDirection = props.dir || langDirection;\n      var writingDirection = componentDirection || contextDirection;\n      var supportedProps = pickProps(rest);\n      supportedProps.dir = componentDirection;\n      if (!hasTextAncestor) {\n        supportedProps.dir = componentDirection != null ? componentDirection : \"auto\";\n      }\n      if (onClick || onPress) {\n        supportedProps.onClick = handleClick;\n      }\n      supportedProps.style = [numberOfLines != null && numberOfLines > 1 && {\n        WebkitLineClamp: numberOfLines\n      }, hasTextAncestor === true ? styles.textHasAncestor$raw : styles.text$raw, numberOfLines === 1 && styles.textOneLine, numberOfLines != null && numberOfLines > 1 && styles.textMultiLine, props.style, selectable === true && styles.selectable, selectable === false && styles.notSelectable, onPress && styles.pressable];\n      if (props.href != null) {\n        component = \"a\";\n        if (hrefAttrs != null) {\n          var download = hrefAttrs.download, rel = hrefAttrs.rel, target = hrefAttrs.target;\n          if (download != null) {\n            supportedProps.download = download;\n          }\n          if (rel != null) {\n            supportedProps.rel = rel;\n          }\n          if (typeof target === \"string\") {\n            supportedProps.target = target.charAt(0) !== \"_\" ? \"_\" + target : target;\n          }\n        }\n      }\n      var platformMethodsRef = (0, _usePlatformMethods.default)(supportedProps);\n      var setRef2 = (0, _useMergeRefs.default)(hostRef, platformMethodsRef, forwardedRef);\n      supportedProps.ref = setRef2;\n      var element = (0, _createElement.default)(component, supportedProps, {\n        writingDirection\n      });\n      return hasTextAncestor ? element : /* @__PURE__ */ React75.createElement(_TextAncestorContext.default.Provider, {\n        value: true\n      }, element);\n    });\n    Text5.displayName = \"Text\";\n    var textStyle = {\n      backgroundColor: \"transparent\",\n      border: \"0 solid black\",\n      boxSizing: \"border-box\",\n      color: \"black\",\n      display: \"inline\",\n      font: \"14px System\",\n      listStyle: \"none\",\n      margin: 0,\n      padding: 0,\n      position: \"relative\",\n      textAlign: \"start\",\n      textDecoration: \"none\",\n      whiteSpace: \"pre-wrap\",\n      wordWrap: \"break-word\"\n    };\n    var styles = _StyleSheet.default.create({\n      text$raw: textStyle,\n      textHasAncestor$raw: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, textStyle), {}, {\n        color: \"inherit\",\n        font: \"inherit\",\n        textAlign: \"inherit\",\n        whiteSpace: \"inherit\"\n      }),\n      textOneLine: {\n        maxWidth: \"100%\",\n        overflow: \"hidden\",\n        textOverflow: \"ellipsis\",\n        whiteSpace: \"nowrap\",\n        wordWrap: \"normal\"\n      },\n      // See #13\n      textMultiLine: {\n        display: \"-webkit-box\",\n        maxWidth: \"100%\",\n        overflow: \"hidden\",\n        textOverflow: \"ellipsis\",\n        WebkitBoxOrient: \"vertical\"\n      },\n      notSelectable: {\n        userSelect: \"none\"\n      },\n      selectable: {\n        userSelect: \"text\"\n      },\n      pressable: {\n        cursor: \"pointer\"\n      }\n    });\n    var _default = exports2.default = Text5;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/components/AnimatedText.js\nvar require_AnimatedText = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/components/AnimatedText.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var _Text = _interopRequireDefault(require_Text());\n    var _createAnimatedComponent = _interopRequireDefault(require_createAnimatedComponent());\n    var _default = exports2.default = (0, _createAnimatedComponent.default)(_Text.default);\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/components/AnimatedView.js\nvar require_AnimatedView = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/components/AnimatedView.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var _View = _interopRequireDefault(require_View());\n    var _createAnimatedComponent = _interopRequireDefault(require_createAnimatedComponent());\n    var _default = exports2.default = (0, _createAnimatedComponent.default)(_View.default);\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedAddition.js\nvar require_AnimatedAddition = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedAddition.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _AnimatedInterpolation = _interopRequireDefault(require_AnimatedInterpolation());\n    var _AnimatedValue = _interopRequireDefault(require_AnimatedValue());\n    var _AnimatedWithChildren = _interopRequireDefault(require_AnimatedWithChildren());\n    var AnimatedAddition = class extends _AnimatedWithChildren.default {\n      static {\n        __name(this, \"AnimatedAddition\");\n      }\n      constructor(a, b) {\n        super();\n        this._a = typeof a === \"number\" ? new _AnimatedValue.default(a) : a;\n        this._b = typeof b === \"number\" ? new _AnimatedValue.default(b) : b;\n      }\n      __makeNative(platformConfig) {\n        this._a.__makeNative(platformConfig);\n        this._b.__makeNative(platformConfig);\n        super.__makeNative(platformConfig);\n      }\n      __getValue() {\n        return this._a.__getValue() + this._b.__getValue();\n      }\n      interpolate(config) {\n        return new _AnimatedInterpolation.default(this, config);\n      }\n      __attach() {\n        this._a.__addChild(this);\n        this._b.__addChild(this);\n      }\n      __detach() {\n        this._a.__removeChild(this);\n        this._b.__removeChild(this);\n        super.__detach();\n      }\n      __getNativeConfig() {\n        return {\n          type: \"addition\",\n          input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n        };\n      }\n    };\n    var _default = exports2.default = AnimatedAddition;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedDiffClamp.js\nvar require_AnimatedDiffClamp = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedDiffClamp.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _AnimatedInterpolation = _interopRequireDefault(require_AnimatedInterpolation());\n    var _AnimatedWithChildren = _interopRequireDefault(require_AnimatedWithChildren());\n    var AnimatedDiffClamp = class extends _AnimatedWithChildren.default {\n      static {\n        __name(this, \"AnimatedDiffClamp\");\n      }\n      constructor(a, min2, max2) {\n        super();\n        this._a = a;\n        this._min = min2;\n        this._max = max2;\n        this._value = this._lastValue = this._a.__getValue();\n      }\n      __makeNative(platformConfig) {\n        this._a.__makeNative(platformConfig);\n        super.__makeNative(platformConfig);\n      }\n      interpolate(config) {\n        return new _AnimatedInterpolation.default(this, config);\n      }\n      __getValue() {\n        var value = this._a.__getValue();\n        var diff = value - this._lastValue;\n        this._lastValue = value;\n        this._value = Math.min(Math.max(this._value + diff, this._min), this._max);\n        return this._value;\n      }\n      __attach() {\n        this._a.__addChild(this);\n      }\n      __detach() {\n        this._a.__removeChild(this);\n        super.__detach();\n      }\n      __getNativeConfig() {\n        return {\n          type: \"diffclamp\",\n          input: this._a.__getNativeTag(),\n          min: this._min,\n          max: this._max\n        };\n      }\n    };\n    var _default = exports2.default = AnimatedDiffClamp;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedDivision.js\nvar require_AnimatedDivision = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedDivision.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _AnimatedInterpolation = _interopRequireDefault(require_AnimatedInterpolation());\n    var _AnimatedNode = _interopRequireDefault(require_AnimatedNode());\n    var _AnimatedValue = _interopRequireDefault(require_AnimatedValue());\n    var _AnimatedWithChildren = _interopRequireDefault(require_AnimatedWithChildren());\n    var AnimatedDivision = class extends _AnimatedWithChildren.default {\n      static {\n        __name(this, \"AnimatedDivision\");\n      }\n      constructor(a, b) {\n        super();\n        this._warnedAboutDivideByZero = false;\n        if (b === 0 || b instanceof _AnimatedNode.default && b.__getValue() === 0) {\n          console.error(\"Detected potential division by zero in AnimatedDivision\");\n        }\n        this._a = typeof a === \"number\" ? new _AnimatedValue.default(a) : a;\n        this._b = typeof b === \"number\" ? new _AnimatedValue.default(b) : b;\n      }\n      __makeNative(platformConfig) {\n        this._a.__makeNative(platformConfig);\n        this._b.__makeNative(platformConfig);\n        super.__makeNative(platformConfig);\n      }\n      __getValue() {\n        var a = this._a.__getValue();\n        var b = this._b.__getValue();\n        if (b === 0) {\n          if (!this._warnedAboutDivideByZero) {\n            console.error(\"Detected division by zero in AnimatedDivision\");\n            this._warnedAboutDivideByZero = true;\n          }\n          return 0;\n        }\n        this._warnedAboutDivideByZero = false;\n        return a / b;\n      }\n      interpolate(config) {\n        return new _AnimatedInterpolation.default(this, config);\n      }\n      __attach() {\n        this._a.__addChild(this);\n        this._b.__addChild(this);\n      }\n      __detach() {\n        this._a.__removeChild(this);\n        this._b.__removeChild(this);\n        super.__detach();\n      }\n      __getNativeConfig() {\n        return {\n          type: \"division\",\n          input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n        };\n      }\n    };\n    var _default = exports2.default = AnimatedDivision;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedModulo.js\nvar require_AnimatedModulo = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedModulo.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _AnimatedInterpolation = _interopRequireDefault(require_AnimatedInterpolation());\n    var _AnimatedWithChildren = _interopRequireDefault(require_AnimatedWithChildren());\n    var AnimatedModulo = class extends _AnimatedWithChildren.default {\n      static {\n        __name(this, \"AnimatedModulo\");\n      }\n      constructor(a, modulus) {\n        super();\n        this._a = a;\n        this._modulus = modulus;\n      }\n      __makeNative(platformConfig) {\n        this._a.__makeNative(platformConfig);\n        super.__makeNative(platformConfig);\n      }\n      __getValue() {\n        return (this._a.__getValue() % this._modulus + this._modulus) % this._modulus;\n      }\n      interpolate(config) {\n        return new _AnimatedInterpolation.default(this, config);\n      }\n      __attach() {\n        this._a.__addChild(this);\n      }\n      __detach() {\n        this._a.__removeChild(this);\n        super.__detach();\n      }\n      __getNativeConfig() {\n        return {\n          type: \"modulus\",\n          input: this._a.__getNativeTag(),\n          modulus: this._modulus\n        };\n      }\n    };\n    var _default = exports2.default = AnimatedModulo;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedMultiplication.js\nvar require_AnimatedMultiplication = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedMultiplication.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _AnimatedInterpolation = _interopRequireDefault(require_AnimatedInterpolation());\n    var _AnimatedValue = _interopRequireDefault(require_AnimatedValue());\n    var _AnimatedWithChildren = _interopRequireDefault(require_AnimatedWithChildren());\n    var AnimatedMultiplication = class extends _AnimatedWithChildren.default {\n      static {\n        __name(this, \"AnimatedMultiplication\");\n      }\n      constructor(a, b) {\n        super();\n        this._a = typeof a === \"number\" ? new _AnimatedValue.default(a) : a;\n        this._b = typeof b === \"number\" ? new _AnimatedValue.default(b) : b;\n      }\n      __makeNative(platformConfig) {\n        this._a.__makeNative(platformConfig);\n        this._b.__makeNative(platformConfig);\n        super.__makeNative(platformConfig);\n      }\n      __getValue() {\n        return this._a.__getValue() * this._b.__getValue();\n      }\n      interpolate(config) {\n        return new _AnimatedInterpolation.default(this, config);\n      }\n      __attach() {\n        this._a.__addChild(this);\n        this._b.__addChild(this);\n      }\n      __detach() {\n        this._a.__removeChild(this);\n        this._b.__removeChild(this);\n        super.__detach();\n      }\n      __getNativeConfig() {\n        return {\n          type: \"multiplication\",\n          input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n        };\n      }\n    };\n    var _default = exports2.default = AnimatedMultiplication;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedSubtraction.js\nvar require_AnimatedSubtraction = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedSubtraction.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _AnimatedInterpolation = _interopRequireDefault(require_AnimatedInterpolation());\n    var _AnimatedValue = _interopRequireDefault(require_AnimatedValue());\n    var _AnimatedWithChildren = _interopRequireDefault(require_AnimatedWithChildren());\n    var AnimatedSubtraction = class extends _AnimatedWithChildren.default {\n      static {\n        __name(this, \"AnimatedSubtraction\");\n      }\n      constructor(a, b) {\n        super();\n        this._a = typeof a === \"number\" ? new _AnimatedValue.default(a) : a;\n        this._b = typeof b === \"number\" ? new _AnimatedValue.default(b) : b;\n      }\n      __makeNative(platformConfig) {\n        this._a.__makeNative(platformConfig);\n        this._b.__makeNative(platformConfig);\n        super.__makeNative(platformConfig);\n      }\n      __getValue() {\n        return this._a.__getValue() - this._b.__getValue();\n      }\n      interpolate(config) {\n        return new _AnimatedInterpolation.default(this, config);\n      }\n      __attach() {\n        this._a.__addChild(this);\n        this._b.__addChild(this);\n      }\n      __detach() {\n        this._a.__removeChild(this);\n        this._b.__removeChild(this);\n        super.__detach();\n      }\n      __getNativeConfig() {\n        return {\n          type: \"subtraction\",\n          input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n        };\n      }\n    };\n    var _default = exports2.default = AnimatedSubtraction;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedTracking.js\nvar require_AnimatedTracking = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedTracking.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _objectSpread2 = _interopRequireDefault(require_objectSpread2());\n    var _AnimatedValue = _interopRequireDefault(require_AnimatedValue());\n    var _AnimatedNode = _interopRequireDefault(require_AnimatedNode());\n    var _NativeAnimatedHelper = require_NativeAnimatedHelper();\n    var AnimatedTracking = class extends _AnimatedNode.default {\n      static {\n        __name(this, \"AnimatedTracking\");\n      }\n      constructor(value, parent, animationClass, animationConfig, callback) {\n        super();\n        this._value = value;\n        this._parent = parent;\n        this._animationClass = animationClass;\n        this._animationConfig = animationConfig;\n        this._useNativeDriver = (0, _NativeAnimatedHelper.shouldUseNativeDriver)(animationConfig);\n        this._callback = callback;\n        this.__attach();\n      }\n      __makeNative() {\n        this.__isNative = true;\n        this._parent.__makeNative();\n        super.__makeNative();\n        this._value.__makeNative();\n      }\n      __getValue() {\n        return this._parent.__getValue();\n      }\n      __attach() {\n        this._parent.__addChild(this);\n        if (this._useNativeDriver) {\n          this.__makeNative();\n        }\n      }\n      __detach() {\n        this._parent.__removeChild(this);\n        super.__detach();\n      }\n      update() {\n        this._value.animate(new this._animationClass((0, _objectSpread2.default)((0, _objectSpread2.default)({}, this._animationConfig), {}, {\n          toValue: this._animationConfig.toValue.__getValue()\n        })), this._callback);\n      }\n      __getNativeConfig() {\n        var animation = new this._animationClass((0, _objectSpread2.default)((0, _objectSpread2.default)({}, this._animationConfig), {}, {\n          // remove toValue from the config as it's a ref to Animated.Value\n          toValue: void 0\n        }));\n        var animationConfig = animation.__getNativeAnimationConfig();\n        return {\n          type: \"tracking\",\n          animationId: (0, _NativeAnimatedHelper.generateNewAnimationId)(),\n          animationConfig,\n          toValue: this._parent.__getNativeTag(),\n          value: this._value.__getNativeTag()\n        };\n      }\n    };\n    var _default = exports2.default = AnimatedTracking;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedValueXY.js\nvar require_AnimatedValueXY = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedValueXY.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _AnimatedValue = _interopRequireDefault(require_AnimatedValue());\n    var _AnimatedWithChildren = _interopRequireDefault(require_AnimatedWithChildren());\n    var _invariant = _interopRequireDefault(require_invariant());\n    var _uniqueId = 1;\n    var AnimatedValueXY = class extends _AnimatedWithChildren.default {\n      static {\n        __name(this, \"AnimatedValueXY\");\n      }\n      constructor(valueIn) {\n        super();\n        var value = valueIn || {\n          x: 0,\n          y: 0\n        };\n        if (typeof value.x === \"number\" && typeof value.y === \"number\") {\n          this.x = new _AnimatedValue.default(value.x);\n          this.y = new _AnimatedValue.default(value.y);\n        } else {\n          (0, _invariant.default)(value.x instanceof _AnimatedValue.default && value.y instanceof _AnimatedValue.default, \"AnimatedValueXY must be initialized with an object of numbers or AnimatedValues.\");\n          this.x = value.x;\n          this.y = value.y;\n        }\n        this._listeners = {};\n      }\n      /**\n       * Directly set the value. This will stop any animations running on the value\n       * and update all the bound properties.\n       *\n       * See https://reactnative.dev/docs/animatedvaluexy.html#setvalue\n       */\n      setValue(value) {\n        this.x.setValue(value.x);\n        this.y.setValue(value.y);\n      }\n      /**\n       * Sets an offset that is applied on top of whatever value is set, whether\n       * via `setValue`, an animation, or `Animated.event`. Useful for compensating\n       * things like the start of a pan gesture.\n       *\n       * See https://reactnative.dev/docs/animatedvaluexy.html#setoffset\n       */\n      setOffset(offset4) {\n        this.x.setOffset(offset4.x);\n        this.y.setOffset(offset4.y);\n      }\n      /**\n       * Merges the offset value into the base value and resets the offset to zero.\n       * The final output of the value is unchanged.\n       *\n       * See https://reactnative.dev/docs/animatedvaluexy.html#flattenoffset\n       */\n      flattenOffset() {\n        this.x.flattenOffset();\n        this.y.flattenOffset();\n      }\n      /**\n       * Sets the offset value to the base value, and resets the base value to\n       * zero. The final output of the value is unchanged.\n       *\n       * See https://reactnative.dev/docs/animatedvaluexy.html#extractoffset\n       */\n      extractOffset() {\n        this.x.extractOffset();\n        this.y.extractOffset();\n      }\n      __getValue() {\n        return {\n          x: this.x.__getValue(),\n          y: this.y.__getValue()\n        };\n      }\n      /**\n       * Stops any animation and resets the value to its original.\n       *\n       * See https://reactnative.dev/docs/animatedvaluexy.html#resetanimation\n       */\n      resetAnimation(callback) {\n        this.x.resetAnimation();\n        this.y.resetAnimation();\n        callback && callback(this.__getValue());\n      }\n      /**\n       * Stops any running animation or tracking. `callback` is invoked with the\n       * final value after stopping the animation, which is useful for updating\n       * state to match the animation position with layout.\n       *\n       * See https://reactnative.dev/docs/animatedvaluexy.html#stopanimation\n       */\n      stopAnimation(callback) {\n        this.x.stopAnimation();\n        this.y.stopAnimation();\n        callback && callback(this.__getValue());\n      }\n      /**\n       * Adds an asynchronous listener to the value so you can observe updates from\n       * animations.  This is useful because there is no way to synchronously read\n       * the value because it might be driven natively.\n       *\n       * Returns a string that serves as an identifier for the listener.\n       *\n       * See https://reactnative.dev/docs/animatedvaluexy.html#addlistener\n       */\n      addListener(callback) {\n        var id = String(_uniqueId++);\n        var jointCallback = /* @__PURE__ */ __name((_ref) => {\n          var number = _ref.value;\n          callback(this.__getValue());\n        }, \"jointCallback\");\n        this._listeners[id] = {\n          x: this.x.addListener(jointCallback),\n          y: this.y.addListener(jointCallback)\n        };\n        return id;\n      }\n      /**\n       * Unregister a listener. The `id` param shall match the identifier\n       * previously returned by `addListener()`.\n       *\n       * See https://reactnative.dev/docs/animatedvaluexy.html#removelistener\n       */\n      removeListener(id) {\n        this.x.removeListener(this._listeners[id].x);\n        this.y.removeListener(this._listeners[id].y);\n        delete this._listeners[id];\n      }\n      /**\n       * Remove all registered listeners.\n       *\n       * See https://reactnative.dev/docs/animatedvaluexy.html#removealllisteners\n       */\n      removeAllListeners() {\n        this.x.removeAllListeners();\n        this.y.removeAllListeners();\n        this._listeners = {};\n      }\n      /**\n       * Converts `{x, y}` into `{left, top}` for use in style.\n       *\n       * See https://reactnative.dev/docs/animatedvaluexy.html#getlayout\n       */\n      getLayout() {\n        return {\n          left: this.x,\n          top: this.y\n        };\n      }\n      /**\n       * Converts `{x, y}` into a useable translation transform.\n       *\n       * See https://reactnative.dev/docs/animatedvaluexy.html#gettranslatetransform\n       */\n      getTranslateTransform() {\n        return [{\n          translateX: this.x\n        }, {\n          translateY: this.y\n        }];\n      }\n    };\n    var _default = exports2.default = AnimatedValueXY;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/animations/Animation.js\nvar require_Animation = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/animations/Animation.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _NativeAnimatedHelper = _interopRequireDefault(require_NativeAnimatedHelper());\n    var startNativeAnimationNextId = 1;\n    var Animation = class {\n      static {\n        __name(this, \"Animation\");\n      }\n      start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {\n      }\n      stop() {\n        if (this.__nativeId) {\n          _NativeAnimatedHelper.default.API.stopAnimation(this.__nativeId);\n        }\n      }\n      __getNativeAnimationConfig() {\n        throw new Error(\"This animation type cannot be offloaded to native\");\n      }\n      // Helper function for subclasses to make sure onEnd is only called once.\n      __debouncedOnEnd(result) {\n        var onEnd = this.__onEnd;\n        this.__onEnd = null;\n        onEnd && onEnd(result);\n      }\n      __startNativeAnimation(animatedValue) {\n        var startNativeAnimationWaitId = startNativeAnimationNextId + \":startAnimation\";\n        startNativeAnimationNextId += 1;\n        _NativeAnimatedHelper.default.API.setWaitingForIdentifier(startNativeAnimationWaitId);\n        try {\n          var config = this.__getNativeAnimationConfig();\n          animatedValue.__makeNative(config.platformConfig);\n          this.__nativeId = _NativeAnimatedHelper.default.generateNewAnimationId();\n          _NativeAnimatedHelper.default.API.startAnimatingNode(\n            this.__nativeId,\n            animatedValue.__getNativeTag(),\n            config,\n            // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n            this.__debouncedOnEnd.bind(this)\n          );\n        } catch (e) {\n          throw e;\n        } finally {\n          _NativeAnimatedHelper.default.API.unsetWaitingForIdentifier(startNativeAnimationWaitId);\n        }\n      }\n    };\n    var _default = exports2.default = Animation;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/animations/DecayAnimation.js\nvar require_DecayAnimation = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/animations/DecayAnimation.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _Animation = _interopRequireDefault(require_Animation());\n    var _NativeAnimatedHelper = require_NativeAnimatedHelper();\n    var DecayAnimation = class extends _Animation.default {\n      static {\n        __name(this, \"DecayAnimation\");\n      }\n      constructor(config) {\n        var _config$deceleration, _config$isInteraction, _config$iterations;\n        super();\n        this._deceleration = (_config$deceleration = config.deceleration) !== null && _config$deceleration !== void 0 ? _config$deceleration : 0.998;\n        this._velocity = config.velocity;\n        this._useNativeDriver = (0, _NativeAnimatedHelper.shouldUseNativeDriver)(config);\n        this.__isInteraction = (_config$isInteraction = config.isInteraction) !== null && _config$isInteraction !== void 0 ? _config$isInteraction : !this._useNativeDriver;\n        this.__iterations = (_config$iterations = config.iterations) !== null && _config$iterations !== void 0 ? _config$iterations : 1;\n      }\n      __getNativeAnimationConfig() {\n        return {\n          type: \"decay\",\n          deceleration: this._deceleration,\n          velocity: this._velocity,\n          iterations: this.__iterations\n        };\n      }\n      start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {\n        this.__active = true;\n        this._lastValue = fromValue;\n        this._fromValue = fromValue;\n        this._onUpdate = onUpdate;\n        this.__onEnd = onEnd;\n        this._startTime = Date.now();\n        if (this._useNativeDriver) {\n          this.__startNativeAnimation(animatedValue);\n        } else {\n          this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n        }\n      }\n      onUpdate() {\n        var now = Date.now();\n        var value = this._fromValue + this._velocity / (1 - this._deceleration) * (1 - Math.exp(-(1 - this._deceleration) * (now - this._startTime)));\n        this._onUpdate(value);\n        if (Math.abs(this._lastValue - value) < 0.1) {\n          this.__debouncedOnEnd({\n            finished: true\n          });\n          return;\n        }\n        this._lastValue = value;\n        if (this.__active) {\n          this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n        }\n      }\n      stop() {\n        super.stop();\n        this.__active = false;\n        global.cancelAnimationFrame(this._animationFrame);\n        this.__debouncedOnEnd({\n          finished: false\n        });\n      }\n    };\n    var _default = exports2.default = DecayAnimation;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/SpringConfig.js\nvar require_SpringConfig = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/SpringConfig.js\"(exports2, module2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    function stiffnessFromOrigamiValue(oValue) {\n      return (oValue - 30) * 3.62 + 194;\n    }\n    __name(stiffnessFromOrigamiValue, \"stiffnessFromOrigamiValue\");\n    function dampingFromOrigamiValue(oValue) {\n      return (oValue - 8) * 3 + 25;\n    }\n    __name(dampingFromOrigamiValue, \"dampingFromOrigamiValue\");\n    function fromOrigamiTensionAndFriction(tension, friction) {\n      return {\n        stiffness: stiffnessFromOrigamiValue(tension),\n        damping: dampingFromOrigamiValue(friction)\n      };\n    }\n    __name(fromOrigamiTensionAndFriction, \"fromOrigamiTensionAndFriction\");\n    function fromBouncinessAndSpeed(bounciness, speed) {\n      function normalize(value, startValue, endValue) {\n        return (value - startValue) / (endValue - startValue);\n      }\n      __name(normalize, \"normalize\");\n      function projectNormal(n, start, end) {\n        return start + n * (end - start);\n      }\n      __name(projectNormal, \"projectNormal\");\n      function linearInterpolation(t, start, end) {\n        return t * end + (1 - t) * start;\n      }\n      __name(linearInterpolation, \"linearInterpolation\");\n      function quadraticOutInterpolation(t, start, end) {\n        return linearInterpolation(2 * t - t * t, start, end);\n      }\n      __name(quadraticOutInterpolation, \"quadraticOutInterpolation\");\n      function b3Friction1(x) {\n        return 7e-4 * Math.pow(x, 3) - 0.031 * Math.pow(x, 2) + 0.64 * x + 1.28;\n      }\n      __name(b3Friction1, \"b3Friction1\");\n      function b3Friction2(x) {\n        return 44e-6 * Math.pow(x, 3) - 6e-3 * Math.pow(x, 2) + 0.36 * x + 2;\n      }\n      __name(b3Friction2, \"b3Friction2\");\n      function b3Friction3(x) {\n        return 45e-8 * Math.pow(x, 3) - 332e-6 * Math.pow(x, 2) + 0.1078 * x + 5.84;\n      }\n      __name(b3Friction3, \"b3Friction3\");\n      function b3Nobounce(tension) {\n        if (tension <= 18) {\n          return b3Friction1(tension);\n        } else if (tension > 18 && tension <= 44) {\n          return b3Friction2(tension);\n        } else {\n          return b3Friction3(tension);\n        }\n      }\n      __name(b3Nobounce, \"b3Nobounce\");\n      var b = normalize(bounciness / 1.7, 0, 20);\n      b = projectNormal(b, 0, 0.8);\n      var s = normalize(speed / 1.7, 0, 20);\n      var bouncyTension = projectNormal(s, 0.5, 200);\n      var bouncyFriction = quadraticOutInterpolation(b, b3Nobounce(bouncyTension), 0.01);\n      return {\n        stiffness: stiffnessFromOrigamiValue(bouncyTension),\n        damping: dampingFromOrigamiValue(bouncyFriction)\n      };\n    }\n    __name(fromBouncinessAndSpeed, \"fromBouncinessAndSpeed\");\n    var _default = exports2.default = {\n      fromOrigamiTensionAndFriction,\n      fromBouncinessAndSpeed\n    };\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedColor.js\nvar require_AnimatedColor = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedColor.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _AnimatedValue = _interopRequireDefault(require_AnimatedValue());\n    var _AnimatedWithChildren = _interopRequireDefault(require_AnimatedWithChildren());\n    var _normalizeColors = _interopRequireDefault(require_normalize_colors());\n    var _NativeAnimatedHelper = _interopRequireDefault(require_NativeAnimatedHelper());\n    var NativeAnimatedAPI = _NativeAnimatedHelper.default.API;\n    var defaultColor = {\n      r: 0,\n      g: 0,\n      b: 0,\n      a: 1\n    };\n    var _uniqueId = 1;\n    var processColorObject = /* @__PURE__ */ __name((color) => {\n      return color;\n    }, \"processColorObject\");\n    function processColor(color) {\n      if (color === void 0 || color === null) {\n        return null;\n      }\n      if (isRgbaValue(color)) {\n        return color;\n      }\n      var normalizedColor = (0, _normalizeColors.default)(\n        // $FlowIgnore[incompatible-cast] - Type is verified above\n        color\n      );\n      if (normalizedColor === void 0 || normalizedColor === null) {\n        return null;\n      }\n      if (typeof normalizedColor === \"object\") {\n        var processedColorObj = processColorObject(normalizedColor);\n        if (processedColorObj != null) {\n          return processedColorObj;\n        }\n      } else if (typeof normalizedColor === \"number\") {\n        var r = (normalizedColor & 4278190080) >>> 24;\n        var g = (normalizedColor & 16711680) >>> 16;\n        var b = (normalizedColor & 65280) >>> 8;\n        var a = (normalizedColor & 255) / 255;\n        return {\n          r,\n          g,\n          b,\n          a\n        };\n      }\n      return null;\n    }\n    __name(processColor, \"processColor\");\n    function isRgbaValue(value) {\n      return value && typeof value.r === \"number\" && typeof value.g === \"number\" && typeof value.b === \"number\" && typeof value.a === \"number\";\n    }\n    __name(isRgbaValue, \"isRgbaValue\");\n    function isRgbaAnimatedValue(value) {\n      return value && value.r instanceof _AnimatedValue.default && value.g instanceof _AnimatedValue.default && value.b instanceof _AnimatedValue.default && value.a instanceof _AnimatedValue.default;\n    }\n    __name(isRgbaAnimatedValue, \"isRgbaAnimatedValue\");\n    var AnimatedColor = class extends _AnimatedWithChildren.default {\n      static {\n        __name(this, \"AnimatedColor\");\n      }\n      constructor(valueIn, config) {\n        super();\n        this._listeners = {};\n        var value = valueIn !== null && valueIn !== void 0 ? valueIn : defaultColor;\n        if (isRgbaAnimatedValue(value)) {\n          var rgbaAnimatedValue = value;\n          this.r = rgbaAnimatedValue.r;\n          this.g = rgbaAnimatedValue.g;\n          this.b = rgbaAnimatedValue.b;\n          this.a = rgbaAnimatedValue.a;\n        } else {\n          var _processColor;\n          var processedColor = (\n            // $FlowIgnore[incompatible-cast] - Type is verified above\n            (_processColor = processColor(value)) !== null && _processColor !== void 0 ? _processColor : defaultColor\n          );\n          var initColor = defaultColor;\n          if (isRgbaValue(processedColor)) {\n            initColor = processedColor;\n          } else {\n            this.nativeColor = processedColor;\n          }\n          this.r = new _AnimatedValue.default(initColor.r);\n          this.g = new _AnimatedValue.default(initColor.g);\n          this.b = new _AnimatedValue.default(initColor.b);\n          this.a = new _AnimatedValue.default(initColor.a);\n        }\n        if (this.nativeColor || config && config.useNativeDriver) {\n          this.__makeNative();\n        }\n      }\n      /**\n       * Directly set the value. This will stop any animations running on the value\n       * and update all the bound properties.\n       */\n      setValue(value) {\n        var _processColor2;\n        var shouldUpdateNodeConfig = false;\n        if (this.__isNative) {\n          var nativeTag = this.__getNativeTag();\n          NativeAnimatedAPI.setWaitingForIdentifier(nativeTag.toString());\n        }\n        var processedColor = (_processColor2 = processColor(value)) !== null && _processColor2 !== void 0 ? _processColor2 : defaultColor;\n        if (isRgbaValue(processedColor)) {\n          var rgbaValue = processedColor;\n          this.r.setValue(rgbaValue.r);\n          this.g.setValue(rgbaValue.g);\n          this.b.setValue(rgbaValue.b);\n          this.a.setValue(rgbaValue.a);\n          if (this.nativeColor != null) {\n            this.nativeColor = null;\n            shouldUpdateNodeConfig = true;\n          }\n        } else {\n          var nativeColor = processedColor;\n          if (this.nativeColor !== nativeColor) {\n            this.nativeColor = nativeColor;\n            shouldUpdateNodeConfig = true;\n          }\n        }\n        if (this.__isNative) {\n          var _nativeTag = this.__getNativeTag();\n          if (shouldUpdateNodeConfig) {\n            NativeAnimatedAPI.updateAnimatedNodeConfig(_nativeTag, this.__getNativeConfig());\n          }\n          NativeAnimatedAPI.unsetWaitingForIdentifier(_nativeTag.toString());\n        }\n      }\n      /**\n       * Sets an offset that is applied on top of whatever value is set, whether\n       * via `setValue`, an animation, or `Animated.event`. Useful for compensating\n       * things like the start of a pan gesture.\n       */\n      setOffset(offset4) {\n        this.r.setOffset(offset4.r);\n        this.g.setOffset(offset4.g);\n        this.b.setOffset(offset4.b);\n        this.a.setOffset(offset4.a);\n      }\n      /**\n       * Merges the offset value into the base value and resets the offset to zero.\n       * The final output of the value is unchanged.\n       */\n      flattenOffset() {\n        this.r.flattenOffset();\n        this.g.flattenOffset();\n        this.b.flattenOffset();\n        this.a.flattenOffset();\n      }\n      /**\n       * Sets the offset value to the base value, and resets the base value to\n       * zero. The final output of the value is unchanged.\n       */\n      extractOffset() {\n        this.r.extractOffset();\n        this.g.extractOffset();\n        this.b.extractOffset();\n        this.a.extractOffset();\n      }\n      /**\n       * Adds an asynchronous listener to the value so you can observe updates from\n       * animations.  This is useful because there is no way to synchronously read\n       * the value because it might be driven natively.\n       *\n       * Returns a string that serves as an identifier for the listener.\n       */\n      addListener(callback) {\n        var id = String(_uniqueId++);\n        var jointCallback = /* @__PURE__ */ __name((_ref) => {\n          var number = _ref.value;\n          callback(this.__getValue());\n        }, \"jointCallback\");\n        this._listeners[id] = {\n          r: this.r.addListener(jointCallback),\n          g: this.g.addListener(jointCallback),\n          b: this.b.addListener(jointCallback),\n          a: this.a.addListener(jointCallback)\n        };\n        return id;\n      }\n      /**\n       * Unregister a listener. The `id` param shall match the identifier\n       * previously returned by `addListener()`.\n       */\n      removeListener(id) {\n        this.r.removeListener(this._listeners[id].r);\n        this.g.removeListener(this._listeners[id].g);\n        this.b.removeListener(this._listeners[id].b);\n        this.a.removeListener(this._listeners[id].a);\n        delete this._listeners[id];\n      }\n      /**\n       * Remove all registered listeners.\n       */\n      removeAllListeners() {\n        this.r.removeAllListeners();\n        this.g.removeAllListeners();\n        this.b.removeAllListeners();\n        this.a.removeAllListeners();\n        this._listeners = {};\n      }\n      /**\n       * Stops any running animation or tracking. `callback` is invoked with the\n       * final value after stopping the animation, which is useful for updating\n       * state to match the animation position with layout.\n       */\n      stopAnimation(callback) {\n        this.r.stopAnimation();\n        this.g.stopAnimation();\n        this.b.stopAnimation();\n        this.a.stopAnimation();\n        callback && callback(this.__getValue());\n      }\n      /**\n       * Stops any animation and resets the value to its original.\n       */\n      resetAnimation(callback) {\n        this.r.resetAnimation();\n        this.g.resetAnimation();\n        this.b.resetAnimation();\n        this.a.resetAnimation();\n        callback && callback(this.__getValue());\n      }\n      __getValue() {\n        if (this.nativeColor != null) {\n          return this.nativeColor;\n        } else {\n          return \"rgba(\" + this.r.__getValue() + \", \" + this.g.__getValue() + \", \" + this.b.__getValue() + \", \" + this.a.__getValue() + \")\";\n        }\n      }\n      __attach() {\n        this.r.__addChild(this);\n        this.g.__addChild(this);\n        this.b.__addChild(this);\n        this.a.__addChild(this);\n        super.__attach();\n      }\n      __detach() {\n        this.r.__removeChild(this);\n        this.g.__removeChild(this);\n        this.b.__removeChild(this);\n        this.a.__removeChild(this);\n        super.__detach();\n      }\n      __makeNative(platformConfig) {\n        this.r.__makeNative(platformConfig);\n        this.g.__makeNative(platformConfig);\n        this.b.__makeNative(platformConfig);\n        this.a.__makeNative(platformConfig);\n        super.__makeNative(platformConfig);\n      }\n      __getNativeConfig() {\n        return {\n          type: \"color\",\n          r: this.r.__getNativeTag(),\n          g: this.g.__getNativeTag(),\n          b: this.b.__getNativeTag(),\n          a: this.a.__getNativeTag(),\n          nativeColor: this.nativeColor\n        };\n      }\n    };\n    exports2.default = AnimatedColor;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/animations/SpringAnimation.js\nvar require_SpringAnimation = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/animations/SpringAnimation.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _Animation = _interopRequireDefault(require_Animation());\n    var _SpringConfig = _interopRequireDefault(require_SpringConfig());\n    var _invariant = _interopRequireDefault(require_invariant());\n    var _NativeAnimatedHelper = require_NativeAnimatedHelper();\n    var _AnimatedColor = _interopRequireDefault(require_AnimatedColor());\n    var SpringAnimation = class _SpringAnimation extends _Animation.default {\n      static {\n        __name(this, \"SpringAnimation\");\n      }\n      constructor(config) {\n        var _config$overshootClam, _config$restDisplacem, _config$restSpeedThre, _config$velocity, _config$velocity2, _config$delay, _config$isInteraction, _config$iterations;\n        super();\n        this._overshootClamping = (_config$overshootClam = config.overshootClamping) !== null && _config$overshootClam !== void 0 ? _config$overshootClam : false;\n        this._restDisplacementThreshold = (_config$restDisplacem = config.restDisplacementThreshold) !== null && _config$restDisplacem !== void 0 ? _config$restDisplacem : 1e-3;\n        this._restSpeedThreshold = (_config$restSpeedThre = config.restSpeedThreshold) !== null && _config$restSpeedThre !== void 0 ? _config$restSpeedThre : 1e-3;\n        this._initialVelocity = (_config$velocity = config.velocity) !== null && _config$velocity !== void 0 ? _config$velocity : 0;\n        this._lastVelocity = (_config$velocity2 = config.velocity) !== null && _config$velocity2 !== void 0 ? _config$velocity2 : 0;\n        this._toValue = config.toValue;\n        this._delay = (_config$delay = config.delay) !== null && _config$delay !== void 0 ? _config$delay : 0;\n        this._useNativeDriver = (0, _NativeAnimatedHelper.shouldUseNativeDriver)(config);\n        this._platformConfig = config.platformConfig;\n        this.__isInteraction = (_config$isInteraction = config.isInteraction) !== null && _config$isInteraction !== void 0 ? _config$isInteraction : !this._useNativeDriver;\n        this.__iterations = (_config$iterations = config.iterations) !== null && _config$iterations !== void 0 ? _config$iterations : 1;\n        if (config.stiffness !== void 0 || config.damping !== void 0 || config.mass !== void 0) {\n          var _config$stiffness, _config$damping, _config$mass;\n          (0, _invariant.default)(config.bounciness === void 0 && config.speed === void 0 && config.tension === void 0 && config.friction === void 0, \"You can define one of bounciness/speed, tension/friction, or stiffness/damping/mass, but not more than one\");\n          this._stiffness = (_config$stiffness = config.stiffness) !== null && _config$stiffness !== void 0 ? _config$stiffness : 100;\n          this._damping = (_config$damping = config.damping) !== null && _config$damping !== void 0 ? _config$damping : 10;\n          this._mass = (_config$mass = config.mass) !== null && _config$mass !== void 0 ? _config$mass : 1;\n        } else if (config.bounciness !== void 0 || config.speed !== void 0) {\n          var _config$bounciness, _config$speed;\n          (0, _invariant.default)(config.tension === void 0 && config.friction === void 0 && config.stiffness === void 0 && config.damping === void 0 && config.mass === void 0, \"You can define one of bounciness/speed, tension/friction, or stiffness/damping/mass, but not more than one\");\n          var springConfig = _SpringConfig.default.fromBouncinessAndSpeed((_config$bounciness = config.bounciness) !== null && _config$bounciness !== void 0 ? _config$bounciness : 8, (_config$speed = config.speed) !== null && _config$speed !== void 0 ? _config$speed : 12);\n          this._stiffness = springConfig.stiffness;\n          this._damping = springConfig.damping;\n          this._mass = 1;\n        } else {\n          var _config$tension, _config$friction;\n          var _springConfig = _SpringConfig.default.fromOrigamiTensionAndFriction((_config$tension = config.tension) !== null && _config$tension !== void 0 ? _config$tension : 40, (_config$friction = config.friction) !== null && _config$friction !== void 0 ? _config$friction : 7);\n          this._stiffness = _springConfig.stiffness;\n          this._damping = _springConfig.damping;\n          this._mass = 1;\n        }\n        (0, _invariant.default)(this._stiffness > 0, \"Stiffness value must be greater than 0\");\n        (0, _invariant.default)(this._damping > 0, \"Damping value must be greater than 0\");\n        (0, _invariant.default)(this._mass > 0, \"Mass value must be greater than 0\");\n      }\n      __getNativeAnimationConfig() {\n        var _this$_initialVelocit;\n        return {\n          type: \"spring\",\n          overshootClamping: this._overshootClamping,\n          restDisplacementThreshold: this._restDisplacementThreshold,\n          restSpeedThreshold: this._restSpeedThreshold,\n          stiffness: this._stiffness,\n          damping: this._damping,\n          mass: this._mass,\n          initialVelocity: (_this$_initialVelocit = this._initialVelocity) !== null && _this$_initialVelocit !== void 0 ? _this$_initialVelocit : this._lastVelocity,\n          toValue: this._toValue,\n          iterations: this.__iterations,\n          platformConfig: this._platformConfig\n        };\n      }\n      start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {\n        this.__active = true;\n        this._startPosition = fromValue;\n        this._lastPosition = this._startPosition;\n        this._onUpdate = onUpdate;\n        this.__onEnd = onEnd;\n        this._lastTime = Date.now();\n        this._frameTime = 0;\n        if (previousAnimation instanceof _SpringAnimation) {\n          var internalState = previousAnimation.getInternalState();\n          this._lastPosition = internalState.lastPosition;\n          this._lastVelocity = internalState.lastVelocity;\n          this._initialVelocity = this._lastVelocity;\n          this._lastTime = internalState.lastTime;\n        }\n        var start = /* @__PURE__ */ __name(() => {\n          if (this._useNativeDriver) {\n            this.__startNativeAnimation(animatedValue);\n          } else {\n            this.onUpdate();\n          }\n        }, \"start\");\n        if (this._delay) {\n          this._timeout = setTimeout(start, this._delay);\n        } else {\n          start();\n        }\n      }\n      getInternalState() {\n        return {\n          lastPosition: this._lastPosition,\n          lastVelocity: this._lastVelocity,\n          lastTime: this._lastTime\n        };\n      }\n      /**\n       * This spring model is based off of a damped harmonic oscillator\n       * (https://en.wikipedia.org/wiki/Harmonic_oscillator#Damped_harmonic_oscillator).\n       *\n       * We use the closed form of the second order differential equation:\n       *\n       * x'' + (2ζ⍵_0)x' + ⍵^2x = 0\n       *\n       * where\n       *    ⍵_0 = √(k / m) (undamped angular frequency of the oscillator),\n       *    ζ = c / 2√mk (damping ratio),\n       *    c = damping constant\n       *    k = stiffness\n       *    m = mass\n       *\n       * The derivation of the closed form is described in detail here:\n       * http://planetmath.org/sites/default/files/texpdf/39745.pdf\n       *\n       * This algorithm happens to match the algorithm used by CASpringAnimation,\n       * a QuartzCore (iOS) API that creates spring animations.\n       */\n      onUpdate() {\n        var MAX_STEPS = 64;\n        var now = Date.now();\n        if (now > this._lastTime + MAX_STEPS) {\n          now = this._lastTime + MAX_STEPS;\n        }\n        var deltaTime = (now - this._lastTime) / 1e3;\n        this._frameTime += deltaTime;\n        var c = this._damping;\n        var m = this._mass;\n        var k = this._stiffness;\n        var v0 = -this._initialVelocity;\n        var zeta = c / (2 * Math.sqrt(k * m));\n        var omega0 = Math.sqrt(k / m);\n        var omega1 = omega0 * Math.sqrt(1 - zeta * zeta);\n        var x0 = this._toValue - this._startPosition;\n        var position = 0;\n        var velocity = 0;\n        var t = this._frameTime;\n        if (zeta < 1) {\n          var envelope = Math.exp(-zeta * omega0 * t);\n          position = this._toValue - envelope * ((v0 + zeta * omega0 * x0) / omega1 * Math.sin(omega1 * t) + x0 * Math.cos(omega1 * t));\n          velocity = zeta * omega0 * envelope * (Math.sin(omega1 * t) * (v0 + zeta * omega0 * x0) / omega1 + x0 * Math.cos(omega1 * t)) - envelope * (Math.cos(omega1 * t) * (v0 + zeta * omega0 * x0) - omega1 * x0 * Math.sin(omega1 * t));\n        } else {\n          var _envelope = Math.exp(-omega0 * t);\n          position = this._toValue - _envelope * (x0 + (v0 + omega0 * x0) * t);\n          velocity = _envelope * (v0 * (t * omega0 - 1) + t * x0 * (omega0 * omega0));\n        }\n        this._lastTime = now;\n        this._lastPosition = position;\n        this._lastVelocity = velocity;\n        this._onUpdate(position);\n        if (!this.__active) {\n          return;\n        }\n        var isOvershooting = false;\n        if (this._overshootClamping && this._stiffness !== 0) {\n          if (this._startPosition < this._toValue) {\n            isOvershooting = position > this._toValue;\n          } else {\n            isOvershooting = position < this._toValue;\n          }\n        }\n        var isVelocity = Math.abs(velocity) <= this._restSpeedThreshold;\n        var isDisplacement = true;\n        if (this._stiffness !== 0) {\n          isDisplacement = Math.abs(this._toValue - position) <= this._restDisplacementThreshold;\n        }\n        if (isOvershooting || isVelocity && isDisplacement) {\n          if (this._stiffness !== 0) {\n            this._lastPosition = this._toValue;\n            this._lastVelocity = 0;\n            this._onUpdate(this._toValue);\n          }\n          this.__debouncedOnEnd({\n            finished: true\n          });\n          return;\n        }\n        this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n      }\n      stop() {\n        super.stop();\n        this.__active = false;\n        clearTimeout(this._timeout);\n        global.cancelAnimationFrame(this._animationFrame);\n        this.__debouncedOnEnd({\n          finished: false\n        });\n      }\n    };\n    var _default = exports2.default = SpringAnimation;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/bezier.js\nvar require_bezier = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/bezier.js\"(exports2, module2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.default = bezier;\n    var NEWTON_ITERATIONS = 4;\n    var NEWTON_MIN_SLOPE = 1e-3;\n    var SUBDIVISION_PRECISION = 1e-7;\n    var SUBDIVISION_MAX_ITERATIONS = 10;\n    var kSplineTableSize = 11;\n    var kSampleStepSize = 1 / (kSplineTableSize - 1);\n    var float32ArraySupported = typeof Float32Array === \"function\";\n    function A(aA1, aA2) {\n      return 1 - 3 * aA2 + 3 * aA1;\n    }\n    __name(A, \"A\");\n    function B(aA1, aA2) {\n      return 3 * aA2 - 6 * aA1;\n    }\n    __name(B, \"B\");\n    function C(aA1) {\n      return 3 * aA1;\n    }\n    __name(C, \"C\");\n    function calcBezier(aT, aA1, aA2) {\n      return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n    }\n    __name(calcBezier, \"calcBezier\");\n    function getSlope(aT, aA1, aA2) {\n      return 3 * A(aA1, aA2) * aT * aT + 2 * B(aA1, aA2) * aT + C(aA1);\n    }\n    __name(getSlope, \"getSlope\");\n    function binarySubdivide(aX, _aA, _aB, mX1, mX2) {\n      var currentX, currentT, i = 0, aA = _aA, aB = _aB;\n      do {\n        currentT = aA + (aB - aA) / 2;\n        currentX = calcBezier(currentT, mX1, mX2) - aX;\n        if (currentX > 0) {\n          aB = currentT;\n        } else {\n          aA = currentT;\n        }\n      } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n      return currentT;\n    }\n    __name(binarySubdivide, \"binarySubdivide\");\n    function newtonRaphsonIterate(aX, _aGuessT, mX1, mX2) {\n      var aGuessT = _aGuessT;\n      for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n        var currentSlope = getSlope(aGuessT, mX1, mX2);\n        if (currentSlope === 0) {\n          return aGuessT;\n        }\n        var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n        aGuessT -= currentX / currentSlope;\n      }\n      return aGuessT;\n    }\n    __name(newtonRaphsonIterate, \"newtonRaphsonIterate\");\n    function bezier(mX1, mY1, mX2, mY2) {\n      if (!(mX1 >= 0 && mX1 <= 1 && mX2 >= 0 && mX2 <= 1)) {\n        throw new Error(\"bezier x values must be in [0, 1] range\");\n      }\n      var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n      if (mX1 !== mY1 || mX2 !== mY2) {\n        for (var i = 0; i < kSplineTableSize; ++i) {\n          sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n        }\n      }\n      function getTForX(aX) {\n        var intervalStart = 0;\n        var currentSample = 1;\n        var lastSample = kSplineTableSize - 1;\n        for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n          intervalStart += kSampleStepSize;\n        }\n        --currentSample;\n        var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n        var guessForT = intervalStart + dist * kSampleStepSize;\n        var initialSlope = getSlope(guessForT, mX1, mX2);\n        if (initialSlope >= NEWTON_MIN_SLOPE) {\n          return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n        } else if (initialSlope === 0) {\n          return guessForT;\n        } else {\n          return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n        }\n      }\n      __name(getTForX, \"getTForX\");\n      return /* @__PURE__ */ __name(function BezierEasing(x) {\n        if (mX1 === mY1 && mX2 === mY2) {\n          return x;\n        }\n        if (x === 0) {\n          return 0;\n        }\n        if (x === 1) {\n          return 1;\n        }\n        return calcBezier(getTForX(x), mY1, mY2);\n      }, \"BezierEasing\");\n    }\n    __name(bezier, \"bezier\");\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/Easing.js\nvar require_Easing = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/Easing.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _bezier2 = _interopRequireDefault(require_bezier());\n    var ease;\n    var Easing = class _Easing {\n      static {\n        __name(this, \"Easing\");\n      }\n      /**\n       * A stepping function, returns 1 for any positive value of `n`.\n       */\n      static step0(n) {\n        return n > 0 ? 1 : 0;\n      }\n      /**\n       * A stepping function, returns 1 if `n` is greater than or equal to 1.\n       */\n      static step1(n) {\n        return n >= 1 ? 1 : 0;\n      }\n      /**\n       * A linear function, `f(t) = t`. Position correlates to elapsed time one to\n       * one.\n       *\n       * http://cubic-bezier.com/#0,0,1,1\n       */\n      static linear(t) {\n        return t;\n      }\n      /**\n       * A simple inertial interaction, similar to an object slowly accelerating to\n       * speed.\n       *\n       * http://cubic-bezier.com/#.42,0,1,1\n       */\n      static ease(t) {\n        if (!ease) {\n          ease = _Easing.bezier(0.42, 0, 1, 1);\n        }\n        return ease(t);\n      }\n      /**\n       * A quadratic function, `f(t) = t * t`. Position equals the square of elapsed\n       * time.\n       *\n       * http://easings.net/#easeInQuad\n       */\n      static quad(t) {\n        return t * t;\n      }\n      /**\n       * A cubic function, `f(t) = t * t * t`. Position equals the cube of elapsed\n       * time.\n       *\n       * http://easings.net/#easeInCubic\n       */\n      static cubic(t) {\n        return t * t * t;\n      }\n      /**\n       * A power function. Position is equal to the Nth power of elapsed time.\n       *\n       * n = 4: http://easings.net/#easeInQuart\n       * n = 5: http://easings.net/#easeInQuint\n       */\n      static poly(n) {\n        return (t) => Math.pow(t, n);\n      }\n      /**\n       * A sinusoidal function.\n       *\n       * http://easings.net/#easeInSine\n       */\n      static sin(t) {\n        return 1 - Math.cos(t * Math.PI / 2);\n      }\n      /**\n       * A circular function.\n       *\n       * http://easings.net/#easeInCirc\n       */\n      static circle(t) {\n        return 1 - Math.sqrt(1 - t * t);\n      }\n      /**\n       * An exponential function.\n       *\n       * http://easings.net/#easeInExpo\n       */\n      static exp(t) {\n        return Math.pow(2, 10 * (t - 1));\n      }\n      /**\n       * A simple elastic interaction, similar to a spring oscillating back and\n       * forth.\n       *\n       * Default bounciness is 1, which overshoots a little bit once. 0 bounciness\n       * doesn't overshoot at all, and bounciness of N > 1 will overshoot about N\n       * times.\n       *\n       * http://easings.net/#easeInElastic\n       */\n      static elastic(bounciness) {\n        if (bounciness === void 0) {\n          bounciness = 1;\n        }\n        var p = bounciness * Math.PI;\n        return (t) => 1 - Math.pow(Math.cos(t * Math.PI / 2), 3) * Math.cos(t * p);\n      }\n      /**\n       * Use with `Animated.parallel()` to create a simple effect where the object\n       * animates back slightly as the animation starts.\n       *\n       * Wolfram Plot:\n       *\n       * - http://tiny.cc/back_default (s = 1.70158, default)\n       */\n      static back(s) {\n        if (s === void 0) {\n          s = 1.70158;\n        }\n        return (t) => t * t * ((s + 1) * t - s);\n      }\n      /**\n       * Provides a simple bouncing effect.\n       *\n       * http://easings.net/#easeInBounce\n       */\n      static bounce(t) {\n        if (t < 1 / 2.75) {\n          return 7.5625 * t * t;\n        }\n        if (t < 2 / 2.75) {\n          var _t = t - 1.5 / 2.75;\n          return 7.5625 * _t * _t + 0.75;\n        }\n        if (t < 2.5 / 2.75) {\n          var _t2 = t - 2.25 / 2.75;\n          return 7.5625 * _t2 * _t2 + 0.9375;\n        }\n        var t2 = t - 2.625 / 2.75;\n        return 7.5625 * t2 * t2 + 0.984375;\n      }\n      /**\n       * Provides a cubic bezier curve, equivalent to CSS Transitions'\n       * `transition-timing-function`.\n       *\n       * A useful tool to visualize cubic bezier curves can be found at\n       * http://cubic-bezier.com/\n       */\n      static bezier(x1, y1, x2, y2) {\n        return (0, _bezier2.default)(x1, y1, x2, y2);\n      }\n      /**\n       * Runs an easing function forwards.\n       */\n      static in(easing) {\n        return easing;\n      }\n      /**\n       * Runs an easing function backwards.\n       */\n      static out(easing) {\n        return (t) => 1 - easing(1 - t);\n      }\n      /**\n       * Makes any easing function symmetrical. The easing function will run\n       * forwards for half of the duration, then backwards for the rest of the\n       * duration.\n       */\n      static inOut(easing) {\n        return (t) => {\n          if (t < 0.5) {\n            return easing(t * 2) / 2;\n          }\n          return 1 - easing((1 - t) * 2) / 2;\n        };\n      }\n    };\n    var _default = exports2.default = Easing;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/Easing/index.js\nvar require_Easing2 = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/Easing/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _Easing = _interopRequireDefault(require_Easing());\n    var _default = exports2.default = _Easing.default;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/animations/TimingAnimation.js\nvar require_TimingAnimation = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/animations/TimingAnimation.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _AnimatedValue = _interopRequireDefault(require_AnimatedValue());\n    var _AnimatedValueXY = _interopRequireDefault(require_AnimatedValueXY());\n    var _AnimatedInterpolation = _interopRequireDefault(require_AnimatedInterpolation());\n    var _Easing = _interopRequireDefault(require_Easing2());\n    var _Animation = _interopRequireDefault(require_Animation());\n    var _NativeAnimatedHelper = require_NativeAnimatedHelper();\n    var _AnimatedColor = _interopRequireDefault(require_AnimatedColor());\n    var _easeInOut;\n    function easeInOut() {\n      if (!_easeInOut) {\n        _easeInOut = _Easing.default.inOut(_Easing.default.ease);\n      }\n      return _easeInOut;\n    }\n    __name(easeInOut, \"easeInOut\");\n    var TimingAnimation = class extends _Animation.default {\n      static {\n        __name(this, \"TimingAnimation\");\n      }\n      constructor(config) {\n        var _config$easing, _config$duration, _config$delay, _config$iterations, _config$isInteraction;\n        super();\n        this._toValue = config.toValue;\n        this._easing = (_config$easing = config.easing) !== null && _config$easing !== void 0 ? _config$easing : easeInOut();\n        this._duration = (_config$duration = config.duration) !== null && _config$duration !== void 0 ? _config$duration : 500;\n        this._delay = (_config$delay = config.delay) !== null && _config$delay !== void 0 ? _config$delay : 0;\n        this.__iterations = (_config$iterations = config.iterations) !== null && _config$iterations !== void 0 ? _config$iterations : 1;\n        this._useNativeDriver = (0, _NativeAnimatedHelper.shouldUseNativeDriver)(config);\n        this._platformConfig = config.platformConfig;\n        this.__isInteraction = (_config$isInteraction = config.isInteraction) !== null && _config$isInteraction !== void 0 ? _config$isInteraction : !this._useNativeDriver;\n      }\n      __getNativeAnimationConfig() {\n        var frameDuration = 1e3 / 60;\n        var frames = [];\n        var numFrames = Math.round(this._duration / frameDuration);\n        for (var frame = 0; frame < numFrames; frame++) {\n          frames.push(this._easing(frame / numFrames));\n        }\n        frames.push(this._easing(1));\n        return {\n          type: \"frames\",\n          frames,\n          toValue: this._toValue,\n          iterations: this.__iterations,\n          platformConfig: this._platformConfig\n        };\n      }\n      start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {\n        this.__active = true;\n        this._fromValue = fromValue;\n        this._onUpdate = onUpdate;\n        this.__onEnd = onEnd;\n        var start = /* @__PURE__ */ __name(() => {\n          if (this._duration === 0 && !this._useNativeDriver) {\n            this._onUpdate(this._toValue);\n            this.__debouncedOnEnd({\n              finished: true\n            });\n          } else {\n            this._startTime = Date.now();\n            if (this._useNativeDriver) {\n              this.__startNativeAnimation(animatedValue);\n            } else {\n              this._animationFrame = requestAnimationFrame(\n                // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n                this.onUpdate.bind(this)\n              );\n            }\n          }\n        }, \"start\");\n        if (this._delay) {\n          this._timeout = setTimeout(start, this._delay);\n        } else {\n          start();\n        }\n      }\n      onUpdate() {\n        var now = Date.now();\n        if (now >= this._startTime + this._duration) {\n          if (this._duration === 0) {\n            this._onUpdate(this._toValue);\n          } else {\n            this._onUpdate(this._fromValue + this._easing(1) * (this._toValue - this._fromValue));\n          }\n          this.__debouncedOnEnd({\n            finished: true\n          });\n          return;\n        }\n        this._onUpdate(this._fromValue + this._easing((now - this._startTime) / this._duration) * (this._toValue - this._fromValue));\n        if (this.__active) {\n          this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n        }\n      }\n      stop() {\n        super.stop();\n        this.__active = false;\n        clearTimeout(this._timeout);\n        global.cancelAnimationFrame(this._animationFrame);\n        this.__debouncedOnEnd({\n          finished: false\n        });\n      }\n    };\n    var _default = exports2.default = TimingAnimation;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/AnimatedImplementation.js\nvar require_AnimatedImplementation = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/AnimatedImplementation.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _objectSpread2 = _interopRequireDefault(require_objectSpread2());\n    var _AnimatedEvent = require_AnimatedEvent();\n    var _AnimatedAddition = _interopRequireDefault(require_AnimatedAddition());\n    var _AnimatedDiffClamp = _interopRequireDefault(require_AnimatedDiffClamp());\n    var _AnimatedDivision = _interopRequireDefault(require_AnimatedDivision());\n    var _AnimatedInterpolation = _interopRequireDefault(require_AnimatedInterpolation());\n    var _AnimatedModulo = _interopRequireDefault(require_AnimatedModulo());\n    var _AnimatedMultiplication = _interopRequireDefault(require_AnimatedMultiplication());\n    var _AnimatedNode = _interopRequireDefault(require_AnimatedNode());\n    var _AnimatedProps = _interopRequireDefault(require_AnimatedProps());\n    var _AnimatedSubtraction = _interopRequireDefault(require_AnimatedSubtraction());\n    var _AnimatedTracking = _interopRequireDefault(require_AnimatedTracking());\n    var _AnimatedValue = _interopRequireDefault(require_AnimatedValue());\n    var _AnimatedValueXY = _interopRequireDefault(require_AnimatedValueXY());\n    var _DecayAnimation = _interopRequireDefault(require_DecayAnimation());\n    var _SpringAnimation = _interopRequireDefault(require_SpringAnimation());\n    var _TimingAnimation = _interopRequireDefault(require_TimingAnimation());\n    var _createAnimatedComponent = _interopRequireDefault(require_createAnimatedComponent());\n    var _AnimatedColor = _interopRequireDefault(require_AnimatedColor());\n    var add = /* @__PURE__ */ __name(function add2(a, b) {\n      return new _AnimatedAddition.default(a, b);\n    }, \"add\");\n    var subtract = /* @__PURE__ */ __name(function subtract2(a, b) {\n      return new _AnimatedSubtraction.default(a, b);\n    }, \"subtract\");\n    var divide = /* @__PURE__ */ __name(function divide2(a, b) {\n      return new _AnimatedDivision.default(a, b);\n    }, \"divide\");\n    var multiply = /* @__PURE__ */ __name(function multiply2(a, b) {\n      return new _AnimatedMultiplication.default(a, b);\n    }, \"multiply\");\n    var modulo = /* @__PURE__ */ __name(function modulo2(a, modulus) {\n      return new _AnimatedModulo.default(a, modulus);\n    }, \"modulo\");\n    var diffClamp = /* @__PURE__ */ __name(function diffClamp2(a, min2, max2) {\n      return new _AnimatedDiffClamp.default(a, min2, max2);\n    }, \"diffClamp\");\n    var _combineCallbacks = /* @__PURE__ */ __name(function _combineCallbacks2(callback, config) {\n      if (callback && config.onComplete) {\n        return function() {\n          config.onComplete && config.onComplete(...arguments);\n          callback && callback(...arguments);\n        };\n      } else {\n        return callback || config.onComplete;\n      }\n    }, \"_combineCallbacks\");\n    var maybeVectorAnim = /* @__PURE__ */ __name(function maybeVectorAnim2(value, config, anim) {\n      if (value instanceof _AnimatedValueXY.default) {\n        var configX = (0, _objectSpread2.default)({}, config);\n        var configY = (0, _objectSpread2.default)({}, config);\n        for (var key in config) {\n          var _config$key = config[key], x = _config$key.x, y = _config$key.y;\n          if (x !== void 0 && y !== void 0) {\n            configX[key] = x;\n            configY[key] = y;\n          }\n        }\n        var aX = anim(value.x, configX);\n        var aY = anim(value.y, configY);\n        return parallel([aX, aY], {\n          stopTogether: false\n        });\n      } else if (value instanceof _AnimatedColor.default) {\n        var configR = (0, _objectSpread2.default)({}, config);\n        var configG = (0, _objectSpread2.default)({}, config);\n        var configB = (0, _objectSpread2.default)({}, config);\n        var configA = (0, _objectSpread2.default)({}, config);\n        for (var _key in config) {\n          var _config$_key = config[_key], r = _config$_key.r, g = _config$_key.g, b = _config$_key.b, a = _config$_key.a;\n          if (r !== void 0 && g !== void 0 && b !== void 0 && a !== void 0) {\n            configR[_key] = r;\n            configG[_key] = g;\n            configB[_key] = b;\n            configA[_key] = a;\n          }\n        }\n        var aR = anim(value.r, configR);\n        var aG = anim(value.g, configG);\n        var aB = anim(value.b, configB);\n        var aA = anim(value.a, configA);\n        return parallel([aR, aG, aB, aA], {\n          stopTogether: false\n        });\n      }\n      return null;\n    }, \"maybeVectorAnim\");\n    var spring = /* @__PURE__ */ __name(function spring2(value, config) {\n      var _start = /* @__PURE__ */ __name(function start(animatedValue, configuration, callback) {\n        callback = _combineCallbacks(callback, configuration);\n        var singleValue = animatedValue;\n        var singleConfig = configuration;\n        singleValue.stopTracking();\n        if (configuration.toValue instanceof _AnimatedNode.default) {\n          singleValue.track(new _AnimatedTracking.default(singleValue, configuration.toValue, _SpringAnimation.default, singleConfig, callback));\n        } else {\n          singleValue.animate(new _SpringAnimation.default(singleConfig), callback);\n        }\n      }, \"start\");\n      return maybeVectorAnim(value, config, spring2) || {\n        start: /* @__PURE__ */ __name(function start(callback) {\n          _start(value, config, callback);\n        }, \"start\"),\n        stop: /* @__PURE__ */ __name(function stop() {\n          value.stopAnimation();\n        }, \"stop\"),\n        reset: /* @__PURE__ */ __name(function reset() {\n          value.resetAnimation();\n        }, \"reset\"),\n        _startNativeLoop: /* @__PURE__ */ __name(function _startNativeLoop(iterations) {\n          var singleConfig = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, config), {}, {\n            iterations\n          });\n          _start(value, singleConfig);\n        }, \"_startNativeLoop\"),\n        _isUsingNativeDriver: /* @__PURE__ */ __name(function _isUsingNativeDriver() {\n          return config.useNativeDriver || false;\n        }, \"_isUsingNativeDriver\")\n      };\n    }, \"spring\");\n    var timing = /* @__PURE__ */ __name(function timing2(value, config) {\n      var _start2 = /* @__PURE__ */ __name(function start(animatedValue, configuration, callback) {\n        callback = _combineCallbacks(callback, configuration);\n        var singleValue = animatedValue;\n        var singleConfig = configuration;\n        singleValue.stopTracking();\n        if (configuration.toValue instanceof _AnimatedNode.default) {\n          singleValue.track(new _AnimatedTracking.default(singleValue, configuration.toValue, _TimingAnimation.default, singleConfig, callback));\n        } else {\n          singleValue.animate(new _TimingAnimation.default(singleConfig), callback);\n        }\n      }, \"start\");\n      return maybeVectorAnim(value, config, timing2) || {\n        start: /* @__PURE__ */ __name(function start(callback) {\n          _start2(value, config, callback);\n        }, \"start\"),\n        stop: /* @__PURE__ */ __name(function stop() {\n          value.stopAnimation();\n        }, \"stop\"),\n        reset: /* @__PURE__ */ __name(function reset() {\n          value.resetAnimation();\n        }, \"reset\"),\n        _startNativeLoop: /* @__PURE__ */ __name(function _startNativeLoop(iterations) {\n          var singleConfig = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, config), {}, {\n            iterations\n          });\n          _start2(value, singleConfig);\n        }, \"_startNativeLoop\"),\n        _isUsingNativeDriver: /* @__PURE__ */ __name(function _isUsingNativeDriver() {\n          return config.useNativeDriver || false;\n        }, \"_isUsingNativeDriver\")\n      };\n    }, \"timing\");\n    var decay = /* @__PURE__ */ __name(function decay2(value, config) {\n      var _start3 = /* @__PURE__ */ __name(function start(animatedValue, configuration, callback) {\n        callback = _combineCallbacks(callback, configuration);\n        var singleValue = animatedValue;\n        var singleConfig = configuration;\n        singleValue.stopTracking();\n        singleValue.animate(new _DecayAnimation.default(singleConfig), callback);\n      }, \"start\");\n      return maybeVectorAnim(value, config, decay2) || {\n        start: /* @__PURE__ */ __name(function start(callback) {\n          _start3(value, config, callback);\n        }, \"start\"),\n        stop: /* @__PURE__ */ __name(function stop() {\n          value.stopAnimation();\n        }, \"stop\"),\n        reset: /* @__PURE__ */ __name(function reset() {\n          value.resetAnimation();\n        }, \"reset\"),\n        _startNativeLoop: /* @__PURE__ */ __name(function _startNativeLoop(iterations) {\n          var singleConfig = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, config), {}, {\n            iterations\n          });\n          _start3(value, singleConfig);\n        }, \"_startNativeLoop\"),\n        _isUsingNativeDriver: /* @__PURE__ */ __name(function _isUsingNativeDriver() {\n          return config.useNativeDriver || false;\n        }, \"_isUsingNativeDriver\")\n      };\n    }, \"decay\");\n    var sequence = /* @__PURE__ */ __name(function sequence2(animations) {\n      var current = 0;\n      return {\n        start: /* @__PURE__ */ __name(function start(callback) {\n          var onComplete = /* @__PURE__ */ __name(function onComplete2(result) {\n            if (!result.finished) {\n              callback && callback(result);\n              return;\n            }\n            current++;\n            if (current === animations.length) {\n              callback && callback(result);\n              return;\n            }\n            animations[current].start(onComplete2);\n          }, \"onComplete\");\n          if (animations.length === 0) {\n            callback && callback({\n              finished: true\n            });\n          } else {\n            animations[current].start(onComplete);\n          }\n        }, \"start\"),\n        stop: /* @__PURE__ */ __name(function stop() {\n          if (current < animations.length) {\n            animations[current].stop();\n          }\n        }, \"stop\"),\n        reset: /* @__PURE__ */ __name(function reset() {\n          animations.forEach((animation, idx) => {\n            if (idx <= current) {\n              animation.reset();\n            }\n          });\n          current = 0;\n        }, \"reset\"),\n        _startNativeLoop: /* @__PURE__ */ __name(function _startNativeLoop() {\n          throw new Error(\"Loops run using the native driver cannot contain Animated.sequence animations\");\n        }, \"_startNativeLoop\"),\n        _isUsingNativeDriver: /* @__PURE__ */ __name(function _isUsingNativeDriver() {\n          return false;\n        }, \"_isUsingNativeDriver\")\n      };\n    }, \"sequence\");\n    var parallel = /* @__PURE__ */ __name(function parallel2(animations, config) {\n      var doneCount = 0;\n      var hasEnded = {};\n      var stopTogether = !(config && config.stopTogether === false);\n      var result = {\n        start: /* @__PURE__ */ __name(function start(callback) {\n          if (doneCount === animations.length) {\n            callback && callback({\n              finished: true\n            });\n            return;\n          }\n          animations.forEach((animation, idx) => {\n            var cb = /* @__PURE__ */ __name(function cb2(endResult) {\n              hasEnded[idx] = true;\n              doneCount++;\n              if (doneCount === animations.length) {\n                doneCount = 0;\n                callback && callback(endResult);\n                return;\n              }\n              if (!endResult.finished && stopTogether) {\n                result.stop();\n              }\n            }, \"cb\");\n            if (!animation) {\n              cb({\n                finished: true\n              });\n            } else {\n              animation.start(cb);\n            }\n          });\n        }, \"start\"),\n        stop: /* @__PURE__ */ __name(function stop() {\n          animations.forEach((animation, idx) => {\n            !hasEnded[idx] && animation.stop();\n            hasEnded[idx] = true;\n          });\n        }, \"stop\"),\n        reset: /* @__PURE__ */ __name(function reset() {\n          animations.forEach((animation, idx) => {\n            animation.reset();\n            hasEnded[idx] = false;\n            doneCount = 0;\n          });\n        }, \"reset\"),\n        _startNativeLoop: /* @__PURE__ */ __name(function _startNativeLoop() {\n          throw new Error(\"Loops run using the native driver cannot contain Animated.parallel animations\");\n        }, \"_startNativeLoop\"),\n        _isUsingNativeDriver: /* @__PURE__ */ __name(function _isUsingNativeDriver() {\n          return false;\n        }, \"_isUsingNativeDriver\")\n      };\n      return result;\n    }, \"parallel\");\n    var delay = /* @__PURE__ */ __name(function delay2(time) {\n      return timing(new _AnimatedValue.default(0), {\n        toValue: 0,\n        delay: time,\n        duration: 0,\n        useNativeDriver: false\n      });\n    }, \"delay\");\n    var stagger = /* @__PURE__ */ __name(function stagger2(time, animations) {\n      return parallel(animations.map((animation, i) => {\n        return sequence([delay(time * i), animation]);\n      }));\n    }, \"stagger\");\n    var loop = /* @__PURE__ */ __name(function loop2(animation, _temp) {\n      var _ref = _temp === void 0 ? {} : _temp, _ref$iterations = _ref.iterations, iterations = _ref$iterations === void 0 ? -1 : _ref$iterations, _ref$resetBeforeItera = _ref.resetBeforeIteration, resetBeforeIteration = _ref$resetBeforeItera === void 0 ? true : _ref$resetBeforeItera;\n      var isFinished = false;\n      var iterationsSoFar = 0;\n      return {\n        start: /* @__PURE__ */ __name(function start(callback) {\n          var restart = /* @__PURE__ */ __name(function restart2(result) {\n            if (result === void 0) {\n              result = {\n                finished: true\n              };\n            }\n            if (isFinished || iterationsSoFar === iterations || result.finished === false) {\n              callback && callback(result);\n            } else {\n              iterationsSoFar++;\n              resetBeforeIteration && animation.reset();\n              animation.start(restart2);\n            }\n          }, \"restart\");\n          if (!animation || iterations === 0) {\n            callback && callback({\n              finished: true\n            });\n          } else {\n            if (animation._isUsingNativeDriver()) {\n              animation._startNativeLoop(iterations);\n            } else {\n              restart();\n            }\n          }\n        }, \"start\"),\n        stop: /* @__PURE__ */ __name(function stop() {\n          isFinished = true;\n          animation.stop();\n        }, \"stop\"),\n        reset: /* @__PURE__ */ __name(function reset() {\n          iterationsSoFar = 0;\n          isFinished = false;\n          animation.reset();\n        }, \"reset\"),\n        _startNativeLoop: /* @__PURE__ */ __name(function _startNativeLoop() {\n          throw new Error(\"Loops run using the native driver cannot contain Animated.loop animations\");\n        }, \"_startNativeLoop\"),\n        _isUsingNativeDriver: /* @__PURE__ */ __name(function _isUsingNativeDriver() {\n          return animation._isUsingNativeDriver();\n        }, \"_isUsingNativeDriver\")\n      };\n    }, \"loop\");\n    function forkEvent(event2, listener) {\n      if (!event2) {\n        return listener;\n      } else if (event2 instanceof _AnimatedEvent.AnimatedEvent) {\n        event2.__addListener(listener);\n        return event2;\n      } else {\n        return function() {\n          typeof event2 === \"function\" && event2(...arguments);\n          listener(...arguments);\n        };\n      }\n    }\n    __name(forkEvent, \"forkEvent\");\n    function unforkEvent(event2, listener) {\n      if (event2 && event2 instanceof _AnimatedEvent.AnimatedEvent) {\n        event2.__removeListener(listener);\n      }\n    }\n    __name(unforkEvent, \"unforkEvent\");\n    var event = /* @__PURE__ */ __name(function event2(argMapping, config) {\n      var animatedEvent = new _AnimatedEvent.AnimatedEvent(argMapping, config);\n      if (animatedEvent.__isNative) {\n        return animatedEvent;\n      } else {\n        return animatedEvent.__getHandler();\n      }\n    }, \"event\");\n    var _default = exports2.default = {\n      /**\n       * Standard value class for driving animations.  Typically initialized with\n       * `new Animated.Value(0);`\n       *\n       * See https://reactnative.dev/docs/animated#value\n       */\n      Value: _AnimatedValue.default,\n      /**\n       * 2D value class for driving 2D animations, such as pan gestures.\n       *\n       * See https://reactnative.dev/docs/animatedvaluexy\n       */\n      ValueXY: _AnimatedValueXY.default,\n      /**\n       * Value class for driving color animations.\n       */\n      Color: _AnimatedColor.default,\n      /**\n       * Exported to use the Interpolation type in flow.\n       *\n       * See https://reactnative.dev/docs/animated#interpolation\n       */\n      Interpolation: _AnimatedInterpolation.default,\n      /**\n       * Exported for ease of type checking. All animated values derive from this\n       * class.\n       *\n       * See https://reactnative.dev/docs/animated#node\n       */\n      Node: _AnimatedNode.default,\n      /**\n       * Animates a value from an initial velocity to zero based on a decay\n       * coefficient.\n       *\n       * See https://reactnative.dev/docs/animated#decay\n       */\n      decay,\n      /**\n       * Animates a value along a timed easing curve. The Easing module has tons of\n       * predefined curves, or you can use your own function.\n       *\n       * See https://reactnative.dev/docs/animated#timing\n       */\n      timing,\n      /**\n       * Animates a value according to an analytical spring model based on\n       * damped harmonic oscillation.\n       *\n       * See https://reactnative.dev/docs/animated#spring\n       */\n      spring,\n      /**\n       * Creates a new Animated value composed from two Animated values added\n       * together.\n       *\n       * See https://reactnative.dev/docs/animated#add\n       */\n      add,\n      /**\n       * Creates a new Animated value composed by subtracting the second Animated\n       * value from the first Animated value.\n       *\n       * See https://reactnative.dev/docs/animated#subtract\n       */\n      subtract,\n      /**\n       * Creates a new Animated value composed by dividing the first Animated value\n       * by the second Animated value.\n       *\n       * See https://reactnative.dev/docs/animated#divide\n       */\n      divide,\n      /**\n       * Creates a new Animated value composed from two Animated values multiplied\n       * together.\n       *\n       * See https://reactnative.dev/docs/animated#multiply\n       */\n      multiply,\n      /**\n       * Creates a new Animated value that is the (non-negative) modulo of the\n       * provided Animated value.\n       *\n       * See https://reactnative.dev/docs/animated#modulo\n       */\n      modulo,\n      /**\n       * Create a new Animated value that is limited between 2 values. It uses the\n       * difference between the last value so even if the value is far from the\n       * bounds it will start changing when the value starts getting closer again.\n       *\n       * See https://reactnative.dev/docs/animated#diffclamp\n       */\n      diffClamp,\n      /**\n       * Starts an animation after the given delay.\n       *\n       * See https://reactnative.dev/docs/animated#delay\n       */\n      delay,\n      /**\n       * Starts an array of animations in order, waiting for each to complete\n       * before starting the next. If the current running animation is stopped, no\n       * following animations will be started.\n       *\n       * See https://reactnative.dev/docs/animated#sequence\n       */\n      sequence,\n      /**\n       * Starts an array of animations all at the same time. By default, if one\n       * of the animations is stopped, they will all be stopped. You can override\n       * this with the `stopTogether` flag.\n       *\n       * See https://reactnative.dev/docs/animated#parallel\n       */\n      parallel,\n      /**\n       * Array of animations may run in parallel (overlap), but are started in\n       * sequence with successive delays.  Nice for doing trailing effects.\n       *\n       * See https://reactnative.dev/docs/animated#stagger\n       */\n      stagger,\n      /**\n       * Loops a given animation continuously, so that each time it reaches the\n       * end, it resets and begins again from the start.\n       *\n       * See https://reactnative.dev/docs/animated#loop\n       */\n      loop,\n      /**\n       * Takes an array of mappings and extracts values from each arg accordingly,\n       * then calls `setValue` on the mapped outputs.\n       *\n       * See https://reactnative.dev/docs/animated#event\n       */\n      event,\n      /**\n       * Make any React component Animatable.  Used to create `Animated.View`, etc.\n       *\n       * See https://reactnative.dev/docs/animated#createanimatedcomponent\n       */\n      createAnimatedComponent: _createAnimatedComponent.default,\n      /**\n       * Imperative API to attach an animated value to an event on a view. Prefer\n       * using `Animated.event` with `useNativeDrive: true` if possible.\n       *\n       * See https://reactnative.dev/docs/animated#attachnativeevent\n       */\n      attachNativeEvent: _AnimatedEvent.attachNativeEvent,\n      /**\n       * Advanced imperative API for snooping on animated events that are passed in\n       * through props. Use values directly where possible.\n       *\n       * See https://reactnative.dev/docs/animated#forkevent\n       */\n      forkEvent,\n      unforkEvent,\n      /**\n       * Expose Event class, so it can be used as a type for type checkers.\n       */\n      Event: _AnimatedEvent.AnimatedEvent\n    };\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/AnimatedMock.js\nvar require_AnimatedMock = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/AnimatedMock.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _objectSpread2 = _interopRequireDefault(require_objectSpread2());\n    var _AnimatedEvent = require_AnimatedEvent();\n    var _AnimatedImplementation = _interopRequireDefault(require_AnimatedImplementation());\n    var _AnimatedInterpolation = _interopRequireDefault(require_AnimatedInterpolation());\n    var _AnimatedNode = _interopRequireDefault(require_AnimatedNode());\n    var _AnimatedValue = _interopRequireDefault(require_AnimatedValue());\n    var _AnimatedValueXY = _interopRequireDefault(require_AnimatedValueXY());\n    var _createAnimatedComponent = _interopRequireDefault(require_createAnimatedComponent());\n    var _AnimatedColor = _interopRequireDefault(require_AnimatedColor());\n    var inAnimationCallback = false;\n    function mockAnimationStart(start) {\n      return (callback) => {\n        var guardedCallback = callback == null ? callback : function() {\n          if (inAnimationCallback) {\n            console.warn(\"Ignoring recursive animation callback when running mock animations\");\n            return;\n          }\n          inAnimationCallback = true;\n          try {\n            callback(...arguments);\n          } finally {\n            inAnimationCallback = false;\n          }\n        };\n        start(guardedCallback);\n      };\n    }\n    __name(mockAnimationStart, \"mockAnimationStart\");\n    var emptyAnimation = {\n      start: /* @__PURE__ */ __name(() => {\n      }, \"start\"),\n      stop: /* @__PURE__ */ __name(() => {\n      }, \"stop\"),\n      reset: /* @__PURE__ */ __name(() => {\n      }, \"reset\"),\n      _startNativeLoop: /* @__PURE__ */ __name(() => {\n      }, \"_startNativeLoop\"),\n      _isUsingNativeDriver: /* @__PURE__ */ __name(() => {\n        return false;\n      }, \"_isUsingNativeDriver\")\n    };\n    var mockCompositeAnimation = /* @__PURE__ */ __name((animations) => (0, _objectSpread2.default)((0, _objectSpread2.default)({}, emptyAnimation), {}, {\n      start: mockAnimationStart((callback) => {\n        animations.forEach((animation) => animation.start());\n        callback == null ? void 0 : callback({\n          finished: true\n        });\n      })\n    }), \"mockCompositeAnimation\");\n    var spring = /* @__PURE__ */ __name(function spring2(value, config) {\n      var anyValue = value;\n      return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, emptyAnimation), {}, {\n        start: mockAnimationStart((callback) => {\n          anyValue.setValue(config.toValue);\n          callback == null ? void 0 : callback({\n            finished: true\n          });\n        })\n      });\n    }, \"spring\");\n    var timing = /* @__PURE__ */ __name(function timing2(value, config) {\n      var anyValue = value;\n      return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, emptyAnimation), {}, {\n        start: mockAnimationStart((callback) => {\n          anyValue.setValue(config.toValue);\n          callback == null ? void 0 : callback({\n            finished: true\n          });\n        })\n      });\n    }, \"timing\");\n    var decay = /* @__PURE__ */ __name(function decay2(value, config) {\n      return emptyAnimation;\n    }, \"decay\");\n    var sequence = /* @__PURE__ */ __name(function sequence2(animations) {\n      return mockCompositeAnimation(animations);\n    }, \"sequence\");\n    var parallel = /* @__PURE__ */ __name(function parallel2(animations, config) {\n      return mockCompositeAnimation(animations);\n    }, \"parallel\");\n    var delay = /* @__PURE__ */ __name(function delay2(time) {\n      return emptyAnimation;\n    }, \"delay\");\n    var stagger = /* @__PURE__ */ __name(function stagger2(time, animations) {\n      return mockCompositeAnimation(animations);\n    }, \"stagger\");\n    var loop = /* @__PURE__ */ __name(function loop2(animation, _temp) {\n      var _ref = _temp === void 0 ? {} : _temp, _ref$iterations = _ref.iterations, iterations = _ref$iterations === void 0 ? -1 : _ref$iterations;\n      return emptyAnimation;\n    }, \"loop\");\n    var _default = exports2.default = {\n      Value: _AnimatedValue.default,\n      ValueXY: _AnimatedValueXY.default,\n      Color: _AnimatedColor.default,\n      Interpolation: _AnimatedInterpolation.default,\n      Node: _AnimatedNode.default,\n      decay,\n      timing,\n      spring,\n      add: _AnimatedImplementation.default.add,\n      subtract: _AnimatedImplementation.default.subtract,\n      divide: _AnimatedImplementation.default.divide,\n      multiply: _AnimatedImplementation.default.multiply,\n      modulo: _AnimatedImplementation.default.modulo,\n      diffClamp: _AnimatedImplementation.default.diffClamp,\n      delay,\n      sequence,\n      parallel,\n      stagger,\n      loop,\n      event: _AnimatedImplementation.default.event,\n      createAnimatedComponent: _createAnimatedComponent.default,\n      attachNativeEvent: _AnimatedEvent.attachNativeEvent,\n      forkEvent: _AnimatedImplementation.default.forkEvent,\n      unforkEvent: _AnimatedImplementation.default.unforkEvent,\n      Event: _AnimatedEvent.AnimatedEvent\n    };\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/Animated.js\nvar require_Animated = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/Animated.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _objectSpread2 = _interopRequireDefault(require_objectSpread2());\n    var _Platform = _interopRequireDefault(require_Platform());\n    var _AnimatedFlatList = _interopRequireDefault(require_AnimatedFlatList());\n    var _AnimatedImage = _interopRequireDefault(require_AnimatedImage());\n    var _AnimatedScrollView = _interopRequireDefault(require_AnimatedScrollView());\n    var _AnimatedSectionList = _interopRequireDefault(require_AnimatedSectionList());\n    var _AnimatedText = _interopRequireDefault(require_AnimatedText());\n    var _AnimatedView = _interopRequireDefault(require_AnimatedView());\n    var _AnimatedMock = _interopRequireDefault(require_AnimatedMock());\n    var _AnimatedImplementation = _interopRequireDefault(require_AnimatedImplementation());\n    var Animated = _Platform.default.isTesting ? _AnimatedMock.default : _AnimatedImplementation.default;\n    var _default = exports2.default = (0, _objectSpread2.default)({\n      FlatList: _AnimatedFlatList.default,\n      Image: _AnimatedImage.default,\n      ScrollView: _AnimatedScrollView.default,\n      SectionList: _AnimatedSectionList.default,\n      Text: _AnimatedText.default,\n      View: _AnimatedView.default\n    }, Animated);\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/Animated/index.js\nvar require_Animated2 = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/Animated/index.js\"(exports2, module2) {\n    \"use strict\";\n    \"use client\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _Animated = _interopRequireDefault(require_Animated());\n    var _default = exports2.default = _Animated.default;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/Appearance/index.js\nvar require_Appearance = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/Appearance/index.js\"(exports2, module2) {\n    \"use strict\";\n    \"use client\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _canUseDom = _interopRequireDefault(require_canUseDom());\n    function getQuery() {\n      return _canUseDom.default && window.matchMedia != null ? window.matchMedia(\"(prefers-color-scheme: dark)\") : null;\n    }\n    __name(getQuery, \"getQuery\");\n    var query = getQuery();\n    var listenerMapping = /* @__PURE__ */ new WeakMap();\n    var Appearance = {\n      getColorScheme() {\n        return query && query.matches ? \"dark\" : \"light\";\n      },\n      addChangeListener(listener) {\n        var mappedListener = listenerMapping.get(listener);\n        if (!mappedListener) {\n          mappedListener = /* @__PURE__ */ __name((_ref) => {\n            var matches = _ref.matches;\n            listener({\n              colorScheme: matches ? \"dark\" : \"light\"\n            });\n          }, \"mappedListener\");\n          listenerMapping.set(listener, mappedListener);\n        }\n        if (query) {\n          query.addListener(mappedListener);\n        }\n        function remove() {\n          var mappedListener2 = listenerMapping.get(listener);\n          if (query && mappedListener2) {\n            query.removeListener(mappedListener2);\n          }\n          listenerMapping.delete(listener);\n        }\n        __name(remove, \"remove\");\n        return {\n          remove\n        };\n      }\n    };\n    var _default = exports2.default = Appearance;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/AppRegistry/AppContainer.js\nvar require_AppContainer = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/AppRegistry/AppContainer.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var _StyleSheet = _interopRequireDefault(require_StyleSheet());\n    var _View = _interopRequireDefault(require_View());\n    var RootTagContext = /* @__PURE__ */ React75.createContext(null);\n    var AppContainer = /* @__PURE__ */ React75.forwardRef((props, forwardedRef) => {\n      var children = props.children, WrapperComponent = props.WrapperComponent;\n      var innerView = /* @__PURE__ */ React75.createElement(_View.default, {\n        children,\n        key: 1,\n        style: styles.appContainer\n      });\n      if (WrapperComponent) {\n        innerView = /* @__PURE__ */ React75.createElement(WrapperComponent, null, innerView);\n      }\n      return /* @__PURE__ */ React75.createElement(RootTagContext.Provider, {\n        value: props.rootTag\n      }, /* @__PURE__ */ React75.createElement(_View.default, {\n        ref: forwardedRef,\n        style: styles.appContainer\n      }, innerView));\n    });\n    AppContainer.displayName = \"AppContainer\";\n    var _default = exports2.default = AppContainer;\n    var styles = _StyleSheet.default.create({\n      appContainer: {\n        flex: 1,\n        pointerEvents: \"box-none\"\n      }\n    });\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/AppRegistry/renderApplication.js\nvar require_renderApplication = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/AppRegistry/renderApplication.js\"(exports2) {\n    \"use strict\";\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = renderApplication;\n    exports2.getApplication = getApplication;\n    var _extends2 = _interopRequireDefault(require_extends());\n    var _AppContainer = _interopRequireDefault(require_AppContainer());\n    var _invariant = _interopRequireDefault(require_invariant());\n    var _render = _interopRequireWildcard(require_render());\n    var _StyleSheet = _interopRequireDefault(require_StyleSheet());\n    var _react = _interopRequireDefault(require(\"react\"));\n    function renderApplication(RootComponent, WrapperComponent, callback, options) {\n      var shouldHydrate = options.hydrate, initialProps = options.initialProps, mode = options.mode, rootTag = options.rootTag;\n      var renderFn = shouldHydrate ? mode === \"concurrent\" ? _render.hydrate : _render.hydrateLegacy : mode === \"concurrent\" ? _render.render : _render.default;\n      (0, _invariant.default)(rootTag, \"Expect to have a valid rootTag, instead got \", rootTag);\n      return renderFn(/* @__PURE__ */ _react.default.createElement(_AppContainer.default, {\n        WrapperComponent,\n        ref: callback,\n        rootTag\n      }, /* @__PURE__ */ _react.default.createElement(RootComponent, initialProps)), rootTag);\n    }\n    __name(renderApplication, \"renderApplication\");\n    function getApplication(RootComponent, initialProps, WrapperComponent) {\n      var element = /* @__PURE__ */ _react.default.createElement(_AppContainer.default, {\n        WrapperComponent,\n        rootTag: {}\n      }, /* @__PURE__ */ _react.default.createElement(RootComponent, initialProps));\n      var getStyleElement = /* @__PURE__ */ __name((props) => {\n        var sheet = _StyleSheet.default.getSheet();\n        return /* @__PURE__ */ _react.default.createElement(\"style\", (0, _extends2.default)({}, props, {\n          dangerouslySetInnerHTML: {\n            __html: sheet.textContent\n          },\n          id: sheet.id\n        }));\n      }, \"getStyleElement\");\n      return {\n        element,\n        getStyleElement\n      };\n    }\n    __name(getApplication, \"getApplication\");\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/AppRegistry/index.js\nvar require_AppRegistry = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/AppRegistry/index.js\"(exports2, module2) {\n    \"use strict\";\n    \"use client\";\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _objectSpread2 = _interopRequireDefault(require_objectSpread2());\n    var _invariant = _interopRequireDefault(require_invariant());\n    var _unmountComponentAtNode = _interopRequireDefault(require_unmountComponentAtNode());\n    var _renderApplication = _interopRequireWildcard(require_renderApplication());\n    var emptyObject = {};\n    var runnables = {};\n    var componentProviderInstrumentationHook = /* @__PURE__ */ __name((component) => component(), \"componentProviderInstrumentationHook\");\n    var wrapperComponentProvider;\n    var AppRegistry = class _AppRegistry {\n      static {\n        __name(this, \"AppRegistry\");\n      }\n      static getAppKeys() {\n        return Object.keys(runnables);\n      }\n      static getApplication(appKey, appParameters) {\n        (0, _invariant.default)(runnables[appKey] && runnables[appKey].getApplication, \"Application \" + appKey + \" has not been registered. This is either due to an import error during initialization or failure to call AppRegistry.registerComponent.\");\n        return runnables[appKey].getApplication(appParameters);\n      }\n      static registerComponent(appKey, componentProvider) {\n        runnables[appKey] = {\n          getApplication: /* @__PURE__ */ __name((appParameters) => (0, _renderApplication.getApplication)(componentProviderInstrumentationHook(componentProvider), appParameters ? appParameters.initialProps : emptyObject, wrapperComponentProvider && wrapperComponentProvider(appParameters)), \"getApplication\"),\n          run: /* @__PURE__ */ __name((appParameters) => (0, _renderApplication.default)(componentProviderInstrumentationHook(componentProvider), wrapperComponentProvider && wrapperComponentProvider(appParameters), appParameters.callback, {\n            hydrate: appParameters.hydrate || false,\n            initialProps: appParameters.initialProps || emptyObject,\n            mode: appParameters.mode || \"concurrent\",\n            rootTag: appParameters.rootTag\n          }), \"run\")\n        };\n        return appKey;\n      }\n      static registerConfig(config) {\n        config.forEach((_ref) => {\n          var appKey = _ref.appKey, component = _ref.component, run = _ref.run;\n          if (run) {\n            _AppRegistry.registerRunnable(appKey, run);\n          } else {\n            (0, _invariant.default)(component, \"No component provider passed in\");\n            _AppRegistry.registerComponent(appKey, component);\n          }\n        });\n      }\n      // TODO: fix style sheet creation when using this method\n      static registerRunnable(appKey, run) {\n        runnables[appKey] = {\n          run\n        };\n        return appKey;\n      }\n      static runApplication(appKey, appParameters) {\n        var isDevelopment = process.env.NODE_ENV !== \"production\" && process.env.NODE_ENV !== \"test\";\n        if (isDevelopment) {\n          var params = (0, _objectSpread2.default)({}, appParameters);\n          params.rootTag = \"#\" + params.rootTag.id;\n          console.log('Running application \"' + appKey + '\" with appParams:\\n', params, \"\\nDevelopment-level warnings: \" + (isDevelopment ? \"ON\" : \"OFF\") + \".\" + (\"\\nPerformance optimizations: \" + (isDevelopment ? \"OFF\" : \"ON\") + \".\"));\n        }\n        (0, _invariant.default)(runnables[appKey] && runnables[appKey].run, 'Application \"' + appKey + '\" has not been registered. This is either due to an import error during initialization or failure to call AppRegistry.registerComponent.');\n        return runnables[appKey].run(appParameters);\n      }\n      static setComponentProviderInstrumentationHook(hook) {\n        componentProviderInstrumentationHook = hook;\n      }\n      static setWrapperComponentProvider(provider) {\n        wrapperComponentProvider = provider;\n      }\n      static unmountApplicationComponentAtRootTag(rootTag) {\n        (0, _unmountComponentAtNode.default)(rootTag);\n      }\n    };\n    exports2.default = AppRegistry;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/AppState/index.js\nvar require_AppState = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/AppState/index.js\"(exports2, module2) {\n    \"use strict\";\n    \"use client\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _invariant = _interopRequireDefault(require_invariant());\n    var _EventEmitter = _interopRequireDefault(require_EventEmitter());\n    var _canUseDom = _interopRequireDefault(require_canUseDom());\n    var isPrefixed = _canUseDom.default && !document.hasOwnProperty(\"hidden\") && document.hasOwnProperty(\"webkitHidden\");\n    var EVENT_TYPES = [\"change\", \"memoryWarning\"];\n    var VISIBILITY_CHANGE_EVENT = isPrefixed ? \"webkitvisibilitychange\" : \"visibilitychange\";\n    var VISIBILITY_STATE_PROPERTY = isPrefixed ? \"webkitVisibilityState\" : \"visibilityState\";\n    var AppStates = {\n      BACKGROUND: \"background\",\n      ACTIVE: \"active\"\n    };\n    var changeEmitter = null;\n    var AppState = class _AppState {\n      static {\n        __name(this, \"AppState\");\n      }\n      static get currentState() {\n        if (!_AppState.isAvailable) {\n          return AppStates.ACTIVE;\n        }\n        switch (document[VISIBILITY_STATE_PROPERTY]) {\n          case \"hidden\":\n          case \"prerender\":\n          case \"unloaded\":\n            return AppStates.BACKGROUND;\n          default:\n            return AppStates.ACTIVE;\n        }\n      }\n      static addEventListener(type, handler) {\n        if (_AppState.isAvailable) {\n          (0, _invariant.default)(EVENT_TYPES.indexOf(type) !== -1, 'Trying to subscribe to unknown event: \"%s\"', type);\n          if (type === \"change\") {\n            if (!changeEmitter) {\n              changeEmitter = new _EventEmitter.default();\n              document.addEventListener(VISIBILITY_CHANGE_EVENT, () => {\n                if (changeEmitter) {\n                  changeEmitter.emit(\"change\", _AppState.currentState);\n                }\n              }, false);\n            }\n            return changeEmitter.addListener(type, handler);\n          }\n        }\n      }\n    };\n    exports2.default = AppState;\n    AppState.isAvailable = _canUseDom.default && !!document[VISIBILITY_STATE_PROPERTY];\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/BackHandler/index.js\nvar require_BackHandler = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/BackHandler/index.js\"(exports2, module2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    function emptyFunction() {\n    }\n    __name(emptyFunction, \"emptyFunction\");\n    var BackHandler = {\n      exitApp: emptyFunction,\n      addEventListener() {\n        console.error(\"BackHandler is not supported on web and should not be used.\");\n        return {\n          remove: emptyFunction\n        };\n      },\n      removeEventListener: emptyFunction\n    };\n    var _default = exports2.default = BackHandler;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/Clipboard/index.js\nvar require_Clipboard = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/Clipboard/index.js\"(exports2, module2) {\n    \"use strict\";\n    \"use client\";\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var clipboardAvailable;\n    var Clipboard = class {\n      static {\n        __name(this, \"Clipboard\");\n      }\n      static isAvailable() {\n        if (clipboardAvailable === void 0) {\n          clipboardAvailable = typeof document.queryCommandSupported === \"function\" && document.queryCommandSupported(\"copy\");\n        }\n        return clipboardAvailable;\n      }\n      static getString() {\n        return Promise.resolve(\"\");\n      }\n      static setString(text) {\n        var success = false;\n        var body = document.body;\n        if (body) {\n          var node = document.createElement(\"span\");\n          node.textContent = text;\n          node.style.opacity = \"0\";\n          node.style.position = \"absolute\";\n          node.style.whiteSpace = \"pre-wrap\";\n          node.style.userSelect = \"auto\";\n          body.appendChild(node);\n          var selection = window.getSelection();\n          selection.removeAllRanges();\n          var range = document.createRange();\n          range.selectNodeContents(node);\n          selection.addRange(range);\n          try {\n            document.execCommand(\"copy\");\n            success = true;\n          } catch (e) {\n          }\n          selection.removeAllRanges();\n          body.removeChild(node);\n        }\n        return success;\n      }\n    };\n    exports2.default = Clipboard;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/I18nManager/index.js\nvar require_I18nManager = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/I18nManager/index.js\"(exports2, module2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var I18nManager = {\n      allowRTL() {\n        return;\n      },\n      forceRTL() {\n        return;\n      },\n      getConstants() {\n        return {\n          isRTL: false\n        };\n      }\n    };\n    var _default = exports2.default = I18nManager;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/Keyboard/index.js\nvar require_Keyboard = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/Keyboard/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _dismissKeyboard = _interopRequireDefault(require_dismissKeyboard());\n    var Keyboard2 = {\n      isVisible() {\n        return false;\n      },\n      addListener() {\n        return {\n          remove: /* @__PURE__ */ __name(() => {\n          }, \"remove\")\n        };\n      },\n      dismiss() {\n        (0, _dismissKeyboard.default)();\n      },\n      removeAllListeners() {\n      },\n      removeListener() {\n      }\n    };\n    var _default = exports2.default = Keyboard2;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/LayoutAnimation/index.js\nvar require_LayoutAnimation = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/LayoutAnimation/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _Platform = _interopRequireDefault(require_Platform());\n    var _UIManager = _interopRequireDefault(require_UIManager());\n    var __DEV__ = process.env.NODE_ENV !== \"production\";\n    function configureNext(config, onAnimationDidEnd) {\n      if (!_Platform.default.isTesting) {\n        _UIManager.default.configureNextLayoutAnimation(\n          config,\n          onAnimationDidEnd !== null && onAnimationDidEnd !== void 0 ? onAnimationDidEnd : function() {\n          },\n          function() {\n          }\n          /* unused onError */\n        );\n      }\n    }\n    __name(configureNext, \"configureNext\");\n    function create(duration, type, property) {\n      return {\n        duration,\n        create: {\n          type,\n          property\n        },\n        update: {\n          type\n        },\n        delete: {\n          type,\n          property\n        }\n      };\n    }\n    __name(create, \"create\");\n    var Presets = {\n      easeInEaseOut: create(300, \"easeInEaseOut\", \"opacity\"),\n      linear: create(500, \"linear\", \"opacity\"),\n      spring: {\n        duration: 700,\n        create: {\n          type: \"linear\",\n          property: \"opacity\"\n        },\n        update: {\n          type: \"spring\",\n          springDamping: 0.4\n        },\n        delete: {\n          type: \"linear\",\n          property: \"opacity\"\n        }\n      }\n    };\n    var LayoutAnimation = {\n      /**\n       * Schedules an animation to happen on the next layout.\n       *\n       * @param config Specifies animation properties:\n       *\n       *   - `duration` in milliseconds\n       *   - `create`, `AnimationConfig` for animating in new views\n       *   - `update`, `AnimationConfig` for animating views that have been updated\n       *\n       * @param onAnimationDidEnd Called when the animation finished.\n       * Only supported on iOS.\n       * @param onError Called on error. Only supported on iOS.\n       */\n      configureNext,\n      /**\n       * Helper for creating a config for `configureNext`.\n       */\n      create,\n      Types: Object.freeze({\n        spring: \"spring\",\n        linear: \"linear\",\n        easeInEaseOut: \"easeInEaseOut\",\n        easeIn: \"easeIn\",\n        easeOut: \"easeOut\",\n        keyboard: \"keyboard\"\n      }),\n      Properties: Object.freeze({\n        opacity: \"opacity\",\n        scaleX: \"scaleX\",\n        scaleY: \"scaleY\",\n        scaleXY: \"scaleXY\"\n      }),\n      checkConfig() {\n        console.error(\"LayoutAnimation.checkConfig(...) has been disabled.\");\n      },\n      Presets,\n      easeInEaseOut: configureNext.bind(null, Presets.easeInEaseOut),\n      linear: configureNext.bind(null, Presets.linear),\n      spring: configureNext.bind(null, Presets.spring)\n    };\n    var _default = exports2.default = LayoutAnimation;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/LayoutAnimation/index.js\nvar require_LayoutAnimation2 = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/LayoutAnimation/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _LayoutAnimation = _interopRequireDefault(require_LayoutAnimation());\n    var _default = exports2.default = _LayoutAnimation.default;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/Linking/index.js\nvar require_Linking = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/Linking/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _invariant = _interopRequireDefault(require_invariant());\n    var _canUseDom = _interopRequireDefault(require_canUseDom());\n    var initialURL = _canUseDom.default ? window.location.href : \"\";\n    var Linking2 = class {\n      static {\n        __name(this, \"Linking\");\n      }\n      constructor() {\n        this._eventCallbacks = {};\n      }\n      /**\n       * An object mapping of event name\n       * and all the callbacks subscribing to it\n       */\n      _dispatchEvent(event) {\n        for (var _len = arguments.length, data = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n          data[_key - 1] = arguments[_key];\n        }\n        var listeners = this._eventCallbacks[event];\n        if (listeners != null && Array.isArray(listeners)) {\n          listeners.map((listener) => {\n            listener(...data);\n          });\n        }\n      }\n      /**\n       * Adds a event listener for the specified event. The callback will be called when the\n       * said event is dispatched.\n       */\n      addEventListener(eventType, callback) {\n        var _this = this;\n        if (!_this._eventCallbacks[eventType]) {\n          _this._eventCallbacks[eventType] = [callback];\n        }\n        _this._eventCallbacks[eventType].push(callback);\n        return {\n          remove() {\n            var callbacks = _this._eventCallbacks[eventType];\n            var filteredCallbacks = callbacks.filter((c) => c.toString() !== callback.toString());\n            _this._eventCallbacks[eventType] = filteredCallbacks;\n          }\n        };\n      }\n      /**\n       * Removes a previously added event listener for the specified event. The callback must\n       * be the same object as the one passed to `addEventListener`.\n       */\n      removeEventListener(eventType, callback) {\n        console.error(\"Linking.removeEventListener('\" + eventType + \"', ...): Method has been deprecated. Please instead use `remove()` on the subscription returned by `Linking.addEventListener`.\");\n        var callbacks = this._eventCallbacks[eventType];\n        var filteredCallbacks = callbacks.filter((c) => c.toString() !== callback.toString());\n        this._eventCallbacks[eventType] = filteredCallbacks;\n      }\n      canOpenURL() {\n        return Promise.resolve(true);\n      }\n      getInitialURL() {\n        return Promise.resolve(initialURL);\n      }\n      /**\n       * Try to open the given url in a secure fashion. The method returns a Promise object.\n       * If a target is passed (including undefined) that target will be used, otherwise '_blank'.\n       * If the url opens, the promise is resolved. If not, the promise is rejected.\n       * Dispatches the `onOpen` event if `url` is opened successfully.\n       */\n      openURL(url, target) {\n        if (arguments.length === 1) {\n          target = \"_blank\";\n        }\n        try {\n          open(url, target);\n          this._dispatchEvent(\"onOpen\", url);\n          return Promise.resolve();\n        } catch (e) {\n          return Promise.reject(e);\n        }\n      }\n      _validateURL(url) {\n        (0, _invariant.default)(typeof url === \"string\", \"Invalid URL: should be a string. Was: \" + url);\n        (0, _invariant.default)(url, \"Invalid URL: cannot be empty\");\n      }\n    };\n    var open = /* @__PURE__ */ __name((url, target) => {\n      if (_canUseDom.default) {\n        var urlToOpen = new URL(url, window.location).toString();\n        if (urlToOpen.indexOf(\"tel:\") === 0) {\n          window.location = urlToOpen;\n        } else {\n          window.open(urlToOpen, target, \"noopener\");\n        }\n      }\n    }, \"open\");\n    var _default = exports2.default = new Linking2();\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/NativeEventEmitter/index.js\nvar require_NativeEventEmitter2 = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/NativeEventEmitter/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _NativeEventEmitter = _interopRequireDefault(require_NativeEventEmitter());\n    var _default = exports2.default = _NativeEventEmitter.default;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/TouchHistoryMath/index.js\nvar require_TouchHistoryMath = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/TouchHistoryMath/index.js\"(exports2, module2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var TouchHistoryMath = {\n      /**\n       * This code is optimized and not intended to look beautiful. This allows\n       * computing of touch centroids that have moved after `touchesChangedAfter`\n       * timeStamp. You can compute the current centroid involving all touches\n       * moves after `touchesChangedAfter`, or you can compute the previous\n       * centroid of all touches that were moved after `touchesChangedAfter`.\n       *\n       * @param {TouchHistoryMath} touchHistory Standard Responder touch track\n       * data.\n       * @param {number} touchesChangedAfter timeStamp after which moved touches\n       * are considered \"actively moving\" - not just \"active\".\n       * @param {boolean} isXAxis Consider `x` dimension vs. `y` dimension.\n       * @param {boolean} ofCurrent Compute current centroid for actively moving\n       * touches vs. previous centroid of now actively moving touches.\n       * @return {number} value of centroid in specified dimension.\n       */\n      centroidDimension: /* @__PURE__ */ __name(function centroidDimension(touchHistory, touchesChangedAfter, isXAxis, ofCurrent) {\n        var touchBank = touchHistory.touchBank;\n        var total = 0;\n        var count2 = 0;\n        var oneTouchData = touchHistory.numberActiveTouches === 1 ? touchHistory.touchBank[touchHistory.indexOfSingleActiveTouch] : null;\n        if (oneTouchData !== null) {\n          if (oneTouchData.touchActive && oneTouchData.currentTimeStamp > touchesChangedAfter) {\n            total += ofCurrent && isXAxis ? oneTouchData.currentPageX : ofCurrent && !isXAxis ? oneTouchData.currentPageY : !ofCurrent && isXAxis ? oneTouchData.previousPageX : oneTouchData.previousPageY;\n            count2 = 1;\n          }\n        } else {\n          for (var i = 0; i < touchBank.length; i++) {\n            var touchTrack = touchBank[i];\n            if (touchTrack !== null && touchTrack !== void 0 && touchTrack.touchActive && touchTrack.currentTimeStamp >= touchesChangedAfter) {\n              var toAdd = void 0;\n              if (ofCurrent && isXAxis) {\n                toAdd = touchTrack.currentPageX;\n              } else if (ofCurrent && !isXAxis) {\n                toAdd = touchTrack.currentPageY;\n              } else if (!ofCurrent && isXAxis) {\n                toAdd = touchTrack.previousPageX;\n              } else {\n                toAdd = touchTrack.previousPageY;\n              }\n              total += toAdd;\n              count2++;\n            }\n          }\n        }\n        return count2 > 0 ? total / count2 : TouchHistoryMath.noCentroid;\n      }, \"centroidDimension\"),\n      currentCentroidXOfTouchesChangedAfter: /* @__PURE__ */ __name(function currentCentroidXOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {\n        return TouchHistoryMath.centroidDimension(\n          touchHistory,\n          touchesChangedAfter,\n          true,\n          // isXAxis\n          true\n          // ofCurrent\n        );\n      }, \"currentCentroidXOfTouchesChangedAfter\"),\n      currentCentroidYOfTouchesChangedAfter: /* @__PURE__ */ __name(function currentCentroidYOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {\n        return TouchHistoryMath.centroidDimension(\n          touchHistory,\n          touchesChangedAfter,\n          false,\n          // isXAxis\n          true\n          // ofCurrent\n        );\n      }, \"currentCentroidYOfTouchesChangedAfter\"),\n      previousCentroidXOfTouchesChangedAfter: /* @__PURE__ */ __name(function previousCentroidXOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {\n        return TouchHistoryMath.centroidDimension(\n          touchHistory,\n          touchesChangedAfter,\n          true,\n          // isXAxis\n          false\n          // ofCurrent\n        );\n      }, \"previousCentroidXOfTouchesChangedAfter\"),\n      previousCentroidYOfTouchesChangedAfter: /* @__PURE__ */ __name(function previousCentroidYOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {\n        return TouchHistoryMath.centroidDimension(\n          touchHistory,\n          touchesChangedAfter,\n          false,\n          // isXAxis\n          false\n          // ofCurrent\n        );\n      }, \"previousCentroidYOfTouchesChangedAfter\"),\n      currentCentroidX: /* @__PURE__ */ __name(function currentCentroidX(touchHistory) {\n        return TouchHistoryMath.centroidDimension(\n          touchHistory,\n          0,\n          // touchesChangedAfter\n          true,\n          // isXAxis\n          true\n          // ofCurrent\n        );\n      }, \"currentCentroidX\"),\n      currentCentroidY: /* @__PURE__ */ __name(function currentCentroidY(touchHistory) {\n        return TouchHistoryMath.centroidDimension(\n          touchHistory,\n          0,\n          // touchesChangedAfter\n          false,\n          // isXAxis\n          true\n          // ofCurrent\n        );\n      }, \"currentCentroidY\"),\n      noCentroid: -1\n    };\n    var _default = exports2.default = TouchHistoryMath;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/PanResponder/index.js\nvar require_PanResponder = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/PanResponder/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _InteractionManager = _interopRequireDefault(require_InteractionManager());\n    var _TouchHistoryMath = _interopRequireDefault(require_TouchHistoryMath());\n    var currentCentroidXOfTouchesChangedAfter = _TouchHistoryMath.default.currentCentroidXOfTouchesChangedAfter;\n    var currentCentroidYOfTouchesChangedAfter = _TouchHistoryMath.default.currentCentroidYOfTouchesChangedAfter;\n    var previousCentroidXOfTouchesChangedAfter = _TouchHistoryMath.default.previousCentroidXOfTouchesChangedAfter;\n    var previousCentroidYOfTouchesChangedAfter = _TouchHistoryMath.default.previousCentroidYOfTouchesChangedAfter;\n    var currentCentroidX = _TouchHistoryMath.default.currentCentroidX;\n    var currentCentroidY = _TouchHistoryMath.default.currentCentroidY;\n    var PanResponder2 = {\n      /**\n       *\n       * A graphical explanation of the touch data flow:\n       *\n       * +----------------------------+             +--------------------------------+\n       * | ResponderTouchHistoryStore |             |TouchHistoryMath                |\n       * +----------------------------+             +----------+---------------------+\n       * |Global store of touchHistory|             |Allocation-less math util       |\n       * |including activeness, start |             |on touch history (centroids     |\n       * |position, prev/cur position.|             |and multitouch movement etc)    |\n       * |                            |             |                                |\n       * +----^-----------------------+             +----^---------------------------+\n       *      |                                          |\n       *      | (records relevant history                |\n       *      |  of touches relevant for                 |\n       *      |  implementing higher level               |\n       *      |  gestures)                               |\n       *      |                                          |\n       * +----+-----------------------+             +----|---------------------------+\n       * | ResponderEventPlugin       |             |    |   Your App/Component      |\n       * +----------------------------+             +----|---------------------------+\n       * |Negotiates which view gets  | Low level   |    |             High level    |\n       * |onResponderMove events.     | events w/   |  +-+-------+     events w/     |\n       * |Also records history into   | touchHistory|  |   Pan   |     multitouch +  |\n       * |ResponderTouchHistoryStore. +---------------->Responder+-----> accumulative|\n       * +----------------------------+ attached to |  |         |     distance and  |\n       *                                 each event |  +---------+     velocity.     |\n       *                                            |                                |\n       *                                            |                                |\n       *                                            +--------------------------------+\n       *\n       *\n       *\n       * Gesture that calculates cumulative movement over time in a way that just\n       * \"does the right thing\" for multiple touches. The \"right thing\" is very\n       * nuanced. When moving two touches in opposite directions, the cumulative\n       * distance is zero in each dimension. When two touches move in parallel five\n       * pixels in the same direction, the cumulative distance is five, not ten. If\n       * two touches start, one moves five in a direction, then stops and the other\n       * touch moves fives in the same direction, the cumulative distance is ten.\n       *\n       * This logic requires a kind of processing of time \"clusters\" of touch events\n       * so that two touch moves that essentially occur in parallel but move every\n       * other frame respectively, are considered part of the same movement.\n       *\n       * Explanation of some of the non-obvious fields:\n       *\n       * - moveX/moveY: If no move event has been observed, then `(moveX, moveY)` is\n       *   invalid. If a move event has been observed, `(moveX, moveY)` is the\n       *   centroid of the most recently moved \"cluster\" of active touches.\n       *   (Currently all move have the same timeStamp, but later we should add some\n       *   threshold for what is considered to be \"moving\"). If a palm is\n       *   accidentally counted as a touch, but a finger is moving greatly, the palm\n       *   will move slightly, but we only want to count the single moving touch.\n       * - x0/y0: Centroid location (non-cumulative) at the time of becoming\n       *   responder.\n       * - dx/dy: Cumulative touch distance - not the same thing as sum of each touch\n       *   distance. Accounts for touch moves that are clustered together in time,\n       *   moving the same direction. Only valid when currently responder (otherwise,\n       *   it only represents the drag distance below the threshold).\n       * - vx/vy: Velocity.\n       */\n      _initializeGestureState(gestureState) {\n        gestureState.moveX = 0;\n        gestureState.moveY = 0;\n        gestureState.x0 = 0;\n        gestureState.y0 = 0;\n        gestureState.dx = 0;\n        gestureState.dy = 0;\n        gestureState.vx = 0;\n        gestureState.vy = 0;\n        gestureState.numberActiveTouches = 0;\n        gestureState._accountsForMovesUpTo = 0;\n      },\n      /**\n       * This is nuanced and is necessary. It is incorrect to continuously take all\n       * active *and* recently moved touches, find the centroid, and track how that\n       * result changes over time. Instead, we must take all recently moved\n       * touches, and calculate how the centroid has changed just for those\n       * recently moved touches, and append that change to an accumulator. This is\n       * to (at least) handle the case where the user is moving three fingers, and\n       * then one of the fingers stops but the other two continue.\n       *\n       * This is very different than taking all of the recently moved touches and\n       * storing their centroid as `dx/dy`. For correctness, we must *accumulate\n       * changes* in the centroid of recently moved touches.\n       *\n       * There is also some nuance with how we handle multiple moved touches in a\n       * single event. With the way `ReactNativeEventEmitter` dispatches touches as\n       * individual events, multiple touches generate two 'move' events, each of\n       * them triggering `onResponderMove`. But with the way `PanResponder` works,\n       * all of the gesture inference is performed on the first dispatch, since it\n       * looks at all of the touches (even the ones for which there hasn't been a\n       * native dispatch yet). Therefore, `PanResponder` does not call\n       * `onResponderMove` passed the first dispatch. This diverges from the\n       * typical responder callback pattern (without using `PanResponder`), but\n       * avoids more dispatches than necessary.\n       */\n      _updateGestureStateOnMove(gestureState, touchHistory) {\n        gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n        gestureState.moveX = currentCentroidXOfTouchesChangedAfter(touchHistory, gestureState._accountsForMovesUpTo);\n        gestureState.moveY = currentCentroidYOfTouchesChangedAfter(touchHistory, gestureState._accountsForMovesUpTo);\n        var movedAfter = gestureState._accountsForMovesUpTo;\n        var prevX = previousCentroidXOfTouchesChangedAfter(touchHistory, movedAfter);\n        var x = currentCentroidXOfTouchesChangedAfter(touchHistory, movedAfter);\n        var prevY = previousCentroidYOfTouchesChangedAfter(touchHistory, movedAfter);\n        var y = currentCentroidYOfTouchesChangedAfter(touchHistory, movedAfter);\n        var nextDX = gestureState.dx + (x - prevX);\n        var nextDY = gestureState.dy + (y - prevY);\n        var dt = touchHistory.mostRecentTimeStamp - gestureState._accountsForMovesUpTo;\n        gestureState.vx = (nextDX - gestureState.dx) / dt;\n        gestureState.vy = (nextDY - gestureState.dy) / dt;\n        gestureState.dx = nextDX;\n        gestureState.dy = nextDY;\n        gestureState._accountsForMovesUpTo = touchHistory.mostRecentTimeStamp;\n      },\n      /**\n       * @param {object} config Enhanced versions of all of the responder callbacks\n       * that provide not only the typical `ResponderSyntheticEvent`, but also the\n       * `PanResponder` gesture state.  Simply replace the word `Responder` with\n       * `PanResponder` in each of the typical `onResponder*` callbacks. For\n       * example, the `config` object would look like:\n       *\n       *  - `onMoveShouldSetPanResponder: (e, gestureState) => {...}`\n       *  - `onMoveShouldSetPanResponderCapture: (e, gestureState) => {...}`\n       *  - `onStartShouldSetPanResponder: (e, gestureState) => {...}`\n       *  - `onStartShouldSetPanResponderCapture: (e, gestureState) => {...}`\n       *  - `onPanResponderReject: (e, gestureState) => {...}`\n       *  - `onPanResponderGrant: (e, gestureState) => {...}`\n       *  - `onPanResponderStart: (e, gestureState) => {...}`\n       *  - `onPanResponderEnd: (e, gestureState) => {...}`\n       *  - `onPanResponderRelease: (e, gestureState) => {...}`\n       *  - `onPanResponderMove: (e, gestureState) => {...}`\n       *  - `onPanResponderTerminate: (e, gestureState) => {...}`\n       *  - `onPanResponderTerminationRequest: (e, gestureState) => {...}`\n       *  - `onShouldBlockNativeResponder: (e, gestureState) => {...}`\n       *\n       *  In general, for events that have capture equivalents, we update the\n       *  gestureState once in the capture phase and can use it in the bubble phase\n       *  as well.\n       *\n       *  Be careful with onStartShould* callbacks. They only reflect updated\n       *  `gestureState` for start/end events that bubble/capture to the Node.\n       *  Once the node is the responder, you can rely on every start/end event\n       *  being processed by the gesture and `gestureState` being updated\n       *  accordingly. (numberActiveTouches) may not be totally accurate unless you\n       *  are the responder.\n       */\n      create(config) {\n        var interactionState = {\n          handle: null,\n          shouldCancelClick: false,\n          timeout: null\n        };\n        var gestureState = {\n          // Useful for debugging\n          stateID: Math.random(),\n          moveX: 0,\n          moveY: 0,\n          x0: 0,\n          y0: 0,\n          dx: 0,\n          dy: 0,\n          vx: 0,\n          vy: 0,\n          numberActiveTouches: 0,\n          _accountsForMovesUpTo: 0\n        };\n        var panHandlers = {\n          onStartShouldSetResponder(event) {\n            return config.onStartShouldSetPanResponder == null ? false : config.onStartShouldSetPanResponder(event, gestureState);\n          },\n          onMoveShouldSetResponder(event) {\n            return config.onMoveShouldSetPanResponder == null ? false : config.onMoveShouldSetPanResponder(event, gestureState);\n          },\n          onStartShouldSetResponderCapture(event) {\n            if (event.nativeEvent.touches.length === 1) {\n              PanResponder2._initializeGestureState(gestureState);\n            }\n            gestureState.numberActiveTouches = event.touchHistory.numberActiveTouches;\n            return config.onStartShouldSetPanResponderCapture != null ? config.onStartShouldSetPanResponderCapture(event, gestureState) : false;\n          },\n          onMoveShouldSetResponderCapture(event) {\n            var touchHistory = event.touchHistory;\n            if (gestureState._accountsForMovesUpTo === touchHistory.mostRecentTimeStamp) {\n              return false;\n            }\n            PanResponder2._updateGestureStateOnMove(gestureState, touchHistory);\n            return config.onMoveShouldSetPanResponderCapture ? config.onMoveShouldSetPanResponderCapture(event, gestureState) : false;\n          },\n          onResponderGrant(event) {\n            if (!interactionState.handle) {\n              interactionState.handle = _InteractionManager.default.createInteractionHandle();\n            }\n            if (interactionState.timeout) {\n              clearInteractionTimeout(interactionState);\n            }\n            interactionState.shouldCancelClick = true;\n            gestureState.x0 = currentCentroidX(event.touchHistory);\n            gestureState.y0 = currentCentroidY(event.touchHistory);\n            gestureState.dx = 0;\n            gestureState.dy = 0;\n            if (config.onPanResponderGrant) {\n              config.onPanResponderGrant(event, gestureState);\n            }\n            return config.onShouldBlockNativeResponder == null ? true : config.onShouldBlockNativeResponder(event, gestureState);\n          },\n          onResponderReject(event) {\n            clearInteractionHandle(interactionState, config.onPanResponderReject, event, gestureState);\n          },\n          onResponderRelease(event) {\n            clearInteractionHandle(interactionState, config.onPanResponderRelease, event, gestureState);\n            setInteractionTimeout(interactionState);\n            PanResponder2._initializeGestureState(gestureState);\n          },\n          onResponderStart(event) {\n            var touchHistory = event.touchHistory;\n            gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n            if (config.onPanResponderStart) {\n              config.onPanResponderStart(event, gestureState);\n            }\n          },\n          onResponderMove(event) {\n            var touchHistory = event.touchHistory;\n            if (gestureState._accountsForMovesUpTo === touchHistory.mostRecentTimeStamp) {\n              return;\n            }\n            PanResponder2._updateGestureStateOnMove(gestureState, touchHistory);\n            if (config.onPanResponderMove) {\n              config.onPanResponderMove(event, gestureState);\n            }\n          },\n          onResponderEnd(event) {\n            var touchHistory = event.touchHistory;\n            gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n            clearInteractionHandle(interactionState, config.onPanResponderEnd, event, gestureState);\n          },\n          onResponderTerminate(event) {\n            clearInteractionHandle(interactionState, config.onPanResponderTerminate, event, gestureState);\n            setInteractionTimeout(interactionState);\n            PanResponder2._initializeGestureState(gestureState);\n          },\n          onResponderTerminationRequest(event) {\n            return config.onPanResponderTerminationRequest == null ? true : config.onPanResponderTerminationRequest(event, gestureState);\n          },\n          // We do not want to trigger 'click' activated gestures or native behaviors\n          // on any pan target that is under a mouse cursor when it is released.\n          // Browsers will natively cancel 'click' events on a target if a non-mouse\n          // active pointer moves.\n          onClickCapture: /* @__PURE__ */ __name((event) => {\n            if (interactionState.shouldCancelClick === true) {\n              event.stopPropagation();\n              event.preventDefault();\n            }\n          }, \"onClickCapture\")\n        };\n        return {\n          panHandlers,\n          getInteractionHandle() {\n            return interactionState.handle;\n          }\n        };\n      }\n    };\n    function clearInteractionHandle(interactionState, callback, event, gestureState) {\n      if (interactionState.handle) {\n        _InteractionManager.default.clearInteractionHandle(interactionState.handle);\n        interactionState.handle = null;\n      }\n      if (callback) {\n        callback(event, gestureState);\n      }\n    }\n    __name(clearInteractionHandle, \"clearInteractionHandle\");\n    function clearInteractionTimeout(interactionState) {\n      clearTimeout(interactionState.timeout);\n    }\n    __name(clearInteractionTimeout, \"clearInteractionTimeout\");\n    function setInteractionTimeout(interactionState) {\n      interactionState.timeout = setTimeout(() => {\n        interactionState.shouldCancelClick = false;\n      }, 250);\n    }\n    __name(setInteractionTimeout, \"setInteractionTimeout\");\n    var _default = exports2.default = PanResponder2;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/PanResponder/index.js\nvar require_PanResponder2 = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/PanResponder/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _PanResponder = _interopRequireDefault(require_PanResponder());\n    var _default = exports2.default = _PanResponder.default;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/Share/index.js\nvar require_Share = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/Share/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _invariant = _interopRequireDefault(require_invariant());\n    var Share = class {\n      static {\n        __name(this, \"Share\");\n      }\n      static share(content, options) {\n        if (options === void 0) {\n          options = {};\n        }\n        (0, _invariant.default)(typeof content === \"object\" && content !== null, \"Content to share must be a valid object\");\n        (0, _invariant.default)(typeof content.url === \"string\" || typeof content.message === \"string\", \"At least one of URL and message is required\");\n        (0, _invariant.default)(typeof options === \"object\" && options !== null, \"Options must be a valid object\");\n        (0, _invariant.default)(!content.title || typeof content.title === \"string\", \"Invalid title: title should be a string.\");\n        if (window.navigator.share !== void 0) {\n          return window.navigator.share({\n            title: content.title,\n            text: content.message,\n            url: content.url\n          });\n        } else {\n          return Promise.reject(new Error(\"Share is not supported in this browser\"));\n        }\n      }\n      /**\n       * The content was successfully shared.\n       */\n      static get sharedAction() {\n        return \"sharedAction\";\n      }\n      /**\n       * The dialog has been dismissed.\n       * @platform ios\n       */\n      static get dismissedAction() {\n        return \"dismissedAction\";\n      }\n    };\n    var _default = exports2.default = Share;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/Vibration/index.js\nvar require_Vibration = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/Vibration/index.js\"(exports2, module2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var vibrate = /* @__PURE__ */ __name((pattern) => {\n      if (\"vibrate\" in window.navigator) {\n        window.navigator.vibrate(pattern);\n      }\n    }, \"vibrate\");\n    var Vibration = {\n      cancel() {\n        vibrate(0);\n      },\n      vibrate(pattern) {\n        if (pattern === void 0) {\n          pattern = 400;\n        }\n        vibrate(pattern);\n      }\n    };\n    var _default = exports2.default = Vibration;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/ActivityIndicator/index.js\nvar require_ActivityIndicator = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/ActivityIndicator/index.js\"(exports2, module2) {\n    \"use strict\";\n    \"use client\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _extends2 = _interopRequireDefault(require_extends());\n    var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var _StyleSheet = _interopRequireDefault(require_StyleSheet());\n    var _View = _interopRequireDefault(require_View());\n    var _excluded = [\"animating\", \"color\", \"hidesWhenStopped\", \"size\", \"style\"];\n    var createSvgCircle = /* @__PURE__ */ __name((style) => /* @__PURE__ */ React75.createElement(\"circle\", {\n      cx: \"16\",\n      cy: \"16\",\n      fill: \"none\",\n      r: \"14\",\n      strokeWidth: \"4\",\n      style\n    }), \"createSvgCircle\");\n    var ActivityIndicator2 = /* @__PURE__ */ React75.forwardRef((props, forwardedRef) => {\n      var _props$animating = props.animating, animating = _props$animating === void 0 ? true : _props$animating, _props$color = props.color, color = _props$color === void 0 ? \"#1976D2\" : _props$color, _props$hidesWhenStopp = props.hidesWhenStopped, hidesWhenStopped = _props$hidesWhenStopp === void 0 ? true : _props$hidesWhenStopp, _props$size = props.size, size4 = _props$size === void 0 ? \"small\" : _props$size, style = props.style, other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);\n      var svg = /* @__PURE__ */ React75.createElement(\"svg\", {\n        height: \"100%\",\n        viewBox: \"0 0 32 32\",\n        width: \"100%\"\n      }, createSvgCircle({\n        stroke: color,\n        opacity: 0.2\n      }), createSvgCircle({\n        stroke: color,\n        strokeDasharray: 80,\n        strokeDashoffset: 60\n      }));\n      return /* @__PURE__ */ React75.createElement(_View.default, (0, _extends2.default)({}, other, {\n        \"aria-valuemax\": 1,\n        \"aria-valuemin\": 0,\n        ref: forwardedRef,\n        role: \"progressbar\",\n        style: [styles.container, style]\n      }), /* @__PURE__ */ React75.createElement(_View.default, {\n        children: svg,\n        style: [typeof size4 === \"number\" ? {\n          height: size4,\n          width: size4\n        } : indicatorSizes[size4], styles.animation, !animating && styles.animationPause, !animating && hidesWhenStopped && styles.hidesWhenStopped]\n      }));\n    });\n    ActivityIndicator2.displayName = \"ActivityIndicator\";\n    var styles = _StyleSheet.default.create({\n      container: {\n        alignItems: \"center\",\n        justifyContent: \"center\"\n      },\n      hidesWhenStopped: {\n        visibility: \"hidden\"\n      },\n      animation: {\n        animationDuration: \"0.75s\",\n        animationKeyframes: [{\n          \"0%\": {\n            transform: \"rotate(0deg)\"\n          },\n          \"100%\": {\n            transform: \"rotate(360deg)\"\n          }\n        }],\n        animationTimingFunction: \"linear\",\n        animationIterationCount: \"infinite\"\n      },\n      animationPause: {\n        animationPlayState: \"paused\"\n      }\n    });\n    var indicatorSizes = _StyleSheet.default.create({\n      small: {\n        width: 20,\n        height: 20\n      },\n      large: {\n        width: 36,\n        height: 36\n      }\n    });\n    var _default = exports2.default = ActivityIndicator2;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/usePressEvents/PressResponder.js\nvar require_PressResponder = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/usePressEvents/PressResponder.js\"(exports2, module2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var DELAY = \"DELAY\";\n    var ERROR = \"ERROR\";\n    var LONG_PRESS_DETECTED = \"LONG_PRESS_DETECTED\";\n    var NOT_RESPONDER = \"NOT_RESPONDER\";\n    var RESPONDER_ACTIVE_LONG_PRESS_START = \"RESPONDER_ACTIVE_LONG_PRESS_START\";\n    var RESPONDER_ACTIVE_PRESS_START = \"RESPONDER_ACTIVE_PRESS_START\";\n    var RESPONDER_INACTIVE_PRESS_START = \"RESPONDER_INACTIVE_PRESS_START\";\n    var RESPONDER_GRANT = \"RESPONDER_GRANT\";\n    var RESPONDER_RELEASE = \"RESPONDER_RELEASE\";\n    var RESPONDER_TERMINATED = \"RESPONDER_TERMINATED\";\n    var Transitions = Object.freeze({\n      NOT_RESPONDER: {\n        DELAY: ERROR,\n        RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,\n        RESPONDER_RELEASE: ERROR,\n        RESPONDER_TERMINATED: ERROR,\n        LONG_PRESS_DETECTED: ERROR\n      },\n      RESPONDER_INACTIVE_PRESS_START: {\n        DELAY: RESPONDER_ACTIVE_PRESS_START,\n        RESPONDER_GRANT: ERROR,\n        RESPONDER_RELEASE: NOT_RESPONDER,\n        RESPONDER_TERMINATED: NOT_RESPONDER,\n        LONG_PRESS_DETECTED: ERROR\n      },\n      RESPONDER_ACTIVE_PRESS_START: {\n        DELAY: ERROR,\n        RESPONDER_GRANT: ERROR,\n        RESPONDER_RELEASE: NOT_RESPONDER,\n        RESPONDER_TERMINATED: NOT_RESPONDER,\n        LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START\n      },\n      RESPONDER_ACTIVE_LONG_PRESS_START: {\n        DELAY: ERROR,\n        RESPONDER_GRANT: ERROR,\n        RESPONDER_RELEASE: NOT_RESPONDER,\n        RESPONDER_TERMINATED: NOT_RESPONDER,\n        LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START\n      },\n      ERROR: {\n        DELAY: NOT_RESPONDER,\n        RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,\n        RESPONDER_RELEASE: NOT_RESPONDER,\n        RESPONDER_TERMINATED: NOT_RESPONDER,\n        LONG_PRESS_DETECTED: NOT_RESPONDER\n      }\n    });\n    var getElementRole = /* @__PURE__ */ __name((element) => element.getAttribute(\"role\"), \"getElementRole\");\n    var getElementType = /* @__PURE__ */ __name((element) => element.tagName.toLowerCase(), \"getElementType\");\n    var isActiveSignal = /* @__PURE__ */ __name((signal) => signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START, \"isActiveSignal\");\n    var isButtonRole = /* @__PURE__ */ __name((element) => getElementRole(element) === \"button\", \"isButtonRole\");\n    var isPressStartSignal = /* @__PURE__ */ __name((signal) => signal === RESPONDER_INACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START, \"isPressStartSignal\");\n    var isTerminalSignal = /* @__PURE__ */ __name((signal) => signal === RESPONDER_TERMINATED || signal === RESPONDER_RELEASE, \"isTerminalSignal\");\n    var isValidKeyPress = /* @__PURE__ */ __name((event) => {\n      var key = event.key, target = event.target;\n      var isSpacebar = key === \" \" || key === \"Spacebar\";\n      var isButtonish = getElementType(target) === \"button\" || isButtonRole(target);\n      return key === \"Enter\" || isSpacebar && isButtonish;\n    }, \"isValidKeyPress\");\n    var DEFAULT_LONG_PRESS_DELAY_MS = 450;\n    var DEFAULT_PRESS_DELAY_MS = 50;\n    var PressResponder = class {\n      static {\n        __name(this, \"PressResponder\");\n      }\n      constructor(config) {\n        this._eventHandlers = null;\n        this._isPointerTouch = false;\n        this._longPressDelayTimeout = null;\n        this._longPressDispatched = false;\n        this._pressDelayTimeout = null;\n        this._pressOutDelayTimeout = null;\n        this._touchState = NOT_RESPONDER;\n        this._responderElement = null;\n        this.configure(config);\n      }\n      configure(config) {\n        this._config = config;\n      }\n      /**\n       * Resets any pending timers. This should be called on unmount.\n       */\n      reset() {\n        this._cancelLongPressDelayTimeout();\n        this._cancelPressDelayTimeout();\n        this._cancelPressOutDelayTimeout();\n      }\n      /**\n       * Returns a set of props to spread into the interactive element.\n       */\n      getEventHandlers() {\n        if (this._eventHandlers == null) {\n          this._eventHandlers = this._createEventHandlers();\n        }\n        return this._eventHandlers;\n      }\n      _createEventHandlers() {\n        var start = /* @__PURE__ */ __name((event, shouldDelay) => {\n          event.persist();\n          this._cancelPressOutDelayTimeout();\n          this._longPressDispatched = false;\n          this._selectionTerminated = false;\n          this._touchState = NOT_RESPONDER;\n          this._isPointerTouch = event.nativeEvent.type === \"touchstart\";\n          this._receiveSignal(RESPONDER_GRANT, event);\n          var delayPressStart = normalizeDelay(this._config.delayPressStart, 0, DEFAULT_PRESS_DELAY_MS);\n          if (shouldDelay !== false && delayPressStart > 0) {\n            this._pressDelayTimeout = setTimeout(() => {\n              this._receiveSignal(DELAY, event);\n            }, delayPressStart);\n          } else {\n            this._receiveSignal(DELAY, event);\n          }\n          var delayLongPress = normalizeDelay(this._config.delayLongPress, 10, DEFAULT_LONG_PRESS_DELAY_MS);\n          this._longPressDelayTimeout = setTimeout(() => {\n            this._handleLongPress(event);\n          }, delayLongPress + delayPressStart);\n        }, \"start\");\n        var end = /* @__PURE__ */ __name((event) => {\n          this._receiveSignal(RESPONDER_RELEASE, event);\n        }, \"end\");\n        var keyupHandler = /* @__PURE__ */ __name((event) => {\n          var onPress = this._config.onPress;\n          var target = event.target;\n          if (this._touchState !== NOT_RESPONDER && isValidKeyPress(event)) {\n            end(event);\n            document.removeEventListener(\"keyup\", keyupHandler);\n            var role = target.getAttribute(\"role\");\n            var elementType = getElementType(target);\n            var isNativeInteractiveElement = role === \"link\" || elementType === \"a\" || elementType === \"button\" || elementType === \"input\" || elementType === \"select\" || elementType === \"textarea\";\n            var isActiveElement = this._responderElement === target;\n            if (onPress != null && !isNativeInteractiveElement && isActiveElement) {\n              onPress(event);\n            }\n            this._responderElement = null;\n          }\n        }, \"keyupHandler\");\n        return {\n          onStartShouldSetResponder: /* @__PURE__ */ __name((event) => {\n            var disabled = this._config.disabled;\n            if (disabled && isButtonRole(event.currentTarget)) {\n              event.stopPropagation();\n            }\n            if (disabled == null) {\n              return true;\n            }\n            return !disabled;\n          }, \"onStartShouldSetResponder\"),\n          onKeyDown: /* @__PURE__ */ __name((event) => {\n            var disabled = this._config.disabled;\n            var key = event.key, target = event.target;\n            if (!disabled && isValidKeyPress(event)) {\n              if (this._touchState === NOT_RESPONDER) {\n                start(event, false);\n                this._responderElement = target;\n                document.addEventListener(\"keyup\", keyupHandler);\n              }\n              var isSpacebarKey = key === \" \" || key === \"Spacebar\";\n              var role = getElementRole(target);\n              var isButtonLikeRole = role === \"button\" || role === \"menuitem\";\n              if (isSpacebarKey && isButtonLikeRole && getElementType(target) !== \"button\") {\n                event.preventDefault();\n              }\n              event.stopPropagation();\n            }\n          }, \"onKeyDown\"),\n          onResponderGrant: /* @__PURE__ */ __name((event) => start(event), \"onResponderGrant\"),\n          onResponderMove: /* @__PURE__ */ __name((event) => {\n            if (this._config.onPressMove != null) {\n              this._config.onPressMove(event);\n            }\n            var touch = getTouchFromResponderEvent(event);\n            if (this._touchActivatePosition != null) {\n              var deltaX = this._touchActivatePosition.pageX - touch.pageX;\n              var deltaY = this._touchActivatePosition.pageY - touch.pageY;\n              if (Math.hypot(deltaX, deltaY) > 10) {\n                this._cancelLongPressDelayTimeout();\n              }\n            }\n          }, \"onResponderMove\"),\n          onResponderRelease: /* @__PURE__ */ __name((event) => end(event), \"onResponderRelease\"),\n          onResponderTerminate: /* @__PURE__ */ __name((event) => {\n            if (event.nativeEvent.type === \"selectionchange\") {\n              this._selectionTerminated = true;\n            }\n            this._receiveSignal(RESPONDER_TERMINATED, event);\n          }, \"onResponderTerminate\"),\n          onResponderTerminationRequest: /* @__PURE__ */ __name((event) => {\n            var _this$_config = this._config, cancelable = _this$_config.cancelable, disabled = _this$_config.disabled, onLongPress = _this$_config.onLongPress;\n            if (!disabled && onLongPress != null && this._isPointerTouch && event.nativeEvent.type === \"contextmenu\") {\n              return false;\n            }\n            if (cancelable == null) {\n              return true;\n            }\n            return cancelable;\n          }, \"onResponderTerminationRequest\"),\n          // NOTE: this diverges from react-native in 3 significant ways:\n          // * The `onPress` callback is not connected to the responder system (the native\n          //  `click` event must be used but is dispatched in many scenarios where no pointers\n          //   are on the screen.) Therefore, it's possible for `onPress` to be called without\n          //   `onPress{Start,End}` being called first.\n          // * The `onPress` callback is only be called on the first ancestor of the native\n          //   `click` target that is using the PressResponder.\n          // * The event's `nativeEvent` is a `MouseEvent` not a `TouchEvent`.\n          onClick: /* @__PURE__ */ __name((event) => {\n            var _this$_config2 = this._config, disabled = _this$_config2.disabled, onPress = _this$_config2.onPress;\n            if (!disabled) {\n              event.stopPropagation();\n              if (this._longPressDispatched || this._selectionTerminated) {\n                event.preventDefault();\n              } else if (onPress != null && event.altKey === false) {\n                onPress(event);\n              }\n            } else {\n              if (isButtonRole(event.currentTarget)) {\n                event.stopPropagation();\n              }\n            }\n          }, \"onClick\"),\n          // If `onLongPress` is provided and a touch pointer is being used, prevent the\n          // default context menu from opening.\n          onContextMenu: /* @__PURE__ */ __name((event) => {\n            var _this$_config3 = this._config, disabled = _this$_config3.disabled, onLongPress = _this$_config3.onLongPress;\n            if (!disabled) {\n              if (onLongPress != null && this._isPointerTouch && !event.defaultPrevented) {\n                event.preventDefault();\n                event.stopPropagation();\n              }\n            } else {\n              if (isButtonRole(event.currentTarget)) {\n                event.stopPropagation();\n              }\n            }\n          }, \"onContextMenu\")\n        };\n      }\n      /**\n       * Receives a state machine signal, performs side effects of the transition\n       * and stores the new state. Validates the transition as well.\n       */\n      _receiveSignal(signal, event) {\n        var prevState = this._touchState;\n        var nextState = null;\n        if (Transitions[prevState] != null) {\n          nextState = Transitions[prevState][signal];\n        }\n        if (this._touchState === NOT_RESPONDER && signal === RESPONDER_RELEASE) {\n          return;\n        }\n        if (nextState == null || nextState === ERROR) {\n          console.error(\"PressResponder: Invalid signal \" + signal + \" for state \" + prevState + \" on responder\");\n        } else if (prevState !== nextState) {\n          this._performTransitionSideEffects(prevState, nextState, signal, event);\n          this._touchState = nextState;\n        }\n      }\n      /**\n       * Performs a transition between touchable states and identify any activations\n       * or deactivations (and callback invocations).\n       */\n      _performTransitionSideEffects(prevState, nextState, signal, event) {\n        if (isTerminalSignal(signal)) {\n          setTimeout(() => {\n            this._isPointerTouch = false;\n          }, 0);\n          this._touchActivatePosition = null;\n          this._cancelLongPressDelayTimeout();\n        }\n        if (isPressStartSignal(prevState) && signal === LONG_PRESS_DETECTED) {\n          var onLongPress = this._config.onLongPress;\n          if (onLongPress != null && event.nativeEvent.key == null) {\n            onLongPress(event);\n            this._longPressDispatched = true;\n          }\n        }\n        var isPrevActive = isActiveSignal(prevState);\n        var isNextActive = isActiveSignal(nextState);\n        if (!isPrevActive && isNextActive) {\n          this._activate(event);\n        } else if (isPrevActive && !isNextActive) {\n          this._deactivate(event);\n        }\n        if (isPressStartSignal(prevState) && signal === RESPONDER_RELEASE) {\n          var _this$_config4 = this._config, _onLongPress = _this$_config4.onLongPress, onPress = _this$_config4.onPress;\n          if (onPress != null) {\n            var isPressCanceledByLongPress = _onLongPress != null && prevState === RESPONDER_ACTIVE_LONG_PRESS_START;\n            if (!isPressCanceledByLongPress) {\n              if (!isNextActive && !isPrevActive) {\n                this._activate(event);\n                this._deactivate(event);\n              }\n            }\n          }\n        }\n        this._cancelPressDelayTimeout();\n      }\n      _activate(event) {\n        var _this$_config5 = this._config, onPressChange = _this$_config5.onPressChange, onPressStart = _this$_config5.onPressStart;\n        var touch = getTouchFromResponderEvent(event);\n        this._touchActivatePosition = {\n          pageX: touch.pageX,\n          pageY: touch.pageY\n        };\n        if (onPressStart != null) {\n          onPressStart(event);\n        }\n        if (onPressChange != null) {\n          onPressChange(true);\n        }\n      }\n      _deactivate(event) {\n        var _this$_config6 = this._config, onPressChange = _this$_config6.onPressChange, onPressEnd = _this$_config6.onPressEnd;\n        function end() {\n          if (onPressEnd != null) {\n            onPressEnd(event);\n          }\n          if (onPressChange != null) {\n            onPressChange(false);\n          }\n        }\n        __name(end, \"end\");\n        var delayPressEnd = normalizeDelay(this._config.delayPressEnd);\n        if (delayPressEnd > 0) {\n          this._pressOutDelayTimeout = setTimeout(() => {\n            end();\n          }, delayPressEnd);\n        } else {\n          end();\n        }\n      }\n      _handleLongPress(event) {\n        if (this._touchState === RESPONDER_ACTIVE_PRESS_START || this._touchState === RESPONDER_ACTIVE_LONG_PRESS_START) {\n          this._receiveSignal(LONG_PRESS_DETECTED, event);\n        }\n      }\n      _cancelLongPressDelayTimeout() {\n        if (this._longPressDelayTimeout != null) {\n          clearTimeout(this._longPressDelayTimeout);\n          this._longPressDelayTimeout = null;\n        }\n      }\n      _cancelPressDelayTimeout() {\n        if (this._pressDelayTimeout != null) {\n          clearTimeout(this._pressDelayTimeout);\n          this._pressDelayTimeout = null;\n        }\n      }\n      _cancelPressOutDelayTimeout() {\n        if (this._pressOutDelayTimeout != null) {\n          clearTimeout(this._pressOutDelayTimeout);\n          this._pressOutDelayTimeout = null;\n        }\n      }\n    };\n    exports2.default = PressResponder;\n    function normalizeDelay(delay, min2, fallback) {\n      if (min2 === void 0) {\n        min2 = 0;\n      }\n      if (fallback === void 0) {\n        fallback = 0;\n      }\n      return Math.max(min2, delay !== null && delay !== void 0 ? delay : fallback);\n    }\n    __name(normalizeDelay, \"normalizeDelay\");\n    function getTouchFromResponderEvent(event) {\n      var _event$nativeEvent = event.nativeEvent, changedTouches = _event$nativeEvent.changedTouches, touches = _event$nativeEvent.touches;\n      if (touches != null && touches.length > 0) {\n        return touches[0];\n      }\n      if (changedTouches != null && changedTouches.length > 0) {\n        return changedTouches[0];\n      }\n      return event.nativeEvent;\n    }\n    __name(getTouchFromResponderEvent, \"getTouchFromResponderEvent\");\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/usePressEvents/index.js\nvar require_usePressEvents = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/usePressEvents/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = usePressEvents;\n    var _PressResponder = _interopRequireDefault(require_PressResponder());\n    var _react = require(\"react\");\n    function usePressEvents(hostRef, config) {\n      var pressResponderRef = (0, _react.useRef)(null);\n      if (pressResponderRef.current == null) {\n        pressResponderRef.current = new _PressResponder.default(config);\n      }\n      var pressResponder = pressResponderRef.current;\n      (0, _react.useEffect)(() => {\n        pressResponder.configure(config);\n      }, [config, pressResponder]);\n      (0, _react.useEffect)(() => {\n        return () => {\n          pressResponder.reset();\n        };\n      }, [pressResponder]);\n      (0, _react.useDebugValue)(config);\n      return pressResponder.getEventHandlers();\n    }\n    __name(usePressEvents, \"usePressEvents\");\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/TouchableOpacity/index.js\nvar require_TouchableOpacity = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/TouchableOpacity/index.js\"(exports2, module2) {\n    \"use strict\";\n    \"use client\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _extends2 = _interopRequireDefault(require_extends());\n    var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());\n    var _react = _interopRequireWildcard(require(\"react\"));\n    var React75 = _react;\n    var _useMergeRefs = _interopRequireDefault(require_useMergeRefs());\n    var _usePressEvents = _interopRequireDefault(require_usePressEvents());\n    var _StyleSheet = _interopRequireDefault(require_StyleSheet());\n    var _View = _interopRequireDefault(require_View());\n    var _excluded = [\"activeOpacity\", \"delayPressIn\", \"delayPressOut\", \"delayLongPress\", \"disabled\", \"focusable\", \"onLongPress\", \"onPress\", \"onPressIn\", \"onPressOut\", \"rejectResponderTermination\", \"style\"];\n    function TouchableOpacity(props, forwardedRef) {\n      var activeOpacity = props.activeOpacity, delayPressIn = props.delayPressIn, delayPressOut = props.delayPressOut, delayLongPress = props.delayLongPress, disabled = props.disabled, focusable = props.focusable, onLongPress = props.onLongPress, onPress = props.onPress, onPressIn = props.onPressIn, onPressOut = props.onPressOut, rejectResponderTermination = props.rejectResponderTermination, style = props.style, rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);\n      var hostRef = (0, _react.useRef)(null);\n      var setRef2 = (0, _useMergeRefs.default)(forwardedRef, hostRef);\n      var _useState = (0, _react.useState)(\"0s\"), duration = _useState[0], setDuration = _useState[1];\n      var _useState2 = (0, _react.useState)(null), opacityOverride = _useState2[0], setOpacityOverride = _useState2[1];\n      var setOpacityTo = (0, _react.useCallback)((value, duration2) => {\n        setOpacityOverride(value);\n        setDuration(duration2 ? duration2 / 1e3 + \"s\" : \"0s\");\n      }, [setOpacityOverride, setDuration]);\n      var setOpacityActive = (0, _react.useCallback)((duration2) => {\n        setOpacityTo(activeOpacity !== null && activeOpacity !== void 0 ? activeOpacity : 0.2, duration2);\n      }, [activeOpacity, setOpacityTo]);\n      var setOpacityInactive = (0, _react.useCallback)((duration2) => {\n        setOpacityTo(null, duration2);\n      }, [setOpacityTo]);\n      var pressConfig = (0, _react.useMemo)(() => ({\n        cancelable: !rejectResponderTermination,\n        disabled,\n        delayLongPress,\n        delayPressStart: delayPressIn,\n        delayPressEnd: delayPressOut,\n        onLongPress,\n        onPress,\n        onPressStart(event) {\n          var isGrant = event.dispatchConfig != null ? event.dispatchConfig.registrationName === \"onResponderGrant\" : event.type === \"keydown\";\n          setOpacityActive(isGrant ? 0 : 150);\n          if (onPressIn != null) {\n            onPressIn(event);\n          }\n        },\n        onPressEnd(event) {\n          setOpacityInactive(250);\n          if (onPressOut != null) {\n            onPressOut(event);\n          }\n        }\n      }), [delayLongPress, delayPressIn, delayPressOut, disabled, onLongPress, onPress, onPressIn, onPressOut, rejectResponderTermination, setOpacityActive, setOpacityInactive]);\n      var pressEventHandlers = (0, _usePressEvents.default)(hostRef, pressConfig);\n      return /* @__PURE__ */ React75.createElement(_View.default, (0, _extends2.default)({}, rest, pressEventHandlers, {\n        accessibilityDisabled: disabled,\n        focusable: !disabled && focusable !== false,\n        pointerEvents: disabled ? \"box-none\" : void 0,\n        ref: setRef2,\n        style: [styles.root, !disabled && styles.actionable, style, opacityOverride != null && {\n          opacity: opacityOverride\n        }, {\n          transitionDuration: duration\n        }]\n      }));\n    }\n    __name(TouchableOpacity, \"TouchableOpacity\");\n    var styles = _StyleSheet.default.create({\n      root: {\n        transitionProperty: \"opacity\",\n        transitionDuration: \"0.15s\",\n        userSelect: \"none\"\n      },\n      actionable: {\n        cursor: \"pointer\",\n        touchAction: \"manipulation\"\n      }\n    });\n    var MemoedTouchableOpacity = /* @__PURE__ */ React75.memo(/* @__PURE__ */ React75.forwardRef(TouchableOpacity));\n    MemoedTouchableOpacity.displayName = \"TouchableOpacity\";\n    var _default = exports2.default = MemoedTouchableOpacity;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/Button/index.js\nvar require_Button = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/Button/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var _StyleSheet = _interopRequireDefault(require_StyleSheet());\n    var _TouchableOpacity = _interopRequireDefault(require_TouchableOpacity());\n    var _Text = _interopRequireDefault(require_Text());\n    var Button = /* @__PURE__ */ React75.forwardRef((props, forwardedRef) => {\n      var accessibilityLabel = props.accessibilityLabel, color = props.color, disabled = props.disabled, onPress = props.onPress, testID = props.testID, title = props.title;\n      return /* @__PURE__ */ React75.createElement(_TouchableOpacity.default, {\n        accessibilityLabel,\n        accessibilityRole: \"button\",\n        disabled,\n        focusable: !disabled,\n        onPress,\n        ref: forwardedRef,\n        style: [styles.button, color && {\n          backgroundColor: color\n        }, disabled && styles.buttonDisabled],\n        testID\n      }, /* @__PURE__ */ React75.createElement(_Text.default, {\n        style: [styles.text, disabled && styles.textDisabled]\n      }, title));\n    });\n    Button.displayName = \"Button\";\n    var styles = _StyleSheet.default.create({\n      button: {\n        backgroundColor: \"#2196F3\",\n        borderRadius: 2\n      },\n      text: {\n        color: \"#fff\",\n        fontWeight: \"500\",\n        padding: 8,\n        textAlign: \"center\",\n        textTransform: \"uppercase\"\n      },\n      buttonDisabled: {\n        backgroundColor: \"#dfdfdf\"\n      },\n      textDisabled: {\n        color: \"#a1a1a1\"\n      }\n    });\n    var _default = exports2.default = Button;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/CheckBox/index.js\nvar require_CheckBox = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/CheckBox/index.js\"(exports2, module2) {\n    \"use strict\";\n    \"use client\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _objectSpread2 = _interopRequireDefault(require_objectSpread2());\n    var _extends2 = _interopRequireDefault(require_extends());\n    var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var _createElement = _interopRequireDefault(require_createElement());\n    var _StyleSheet = _interopRequireDefault(require_StyleSheet());\n    var _View = _interopRequireDefault(require_View());\n    var _excluded = [\"aria-readonly\", \"color\", \"disabled\", \"onChange\", \"onValueChange\", \"readOnly\", \"style\", \"value\"];\n    var CheckBox = /* @__PURE__ */ React75.forwardRef((props, forwardedRef) => {\n      var ariaReadOnly = props[\"aria-readonly\"], color = props.color, disabled = props.disabled, onChange = props.onChange, onValueChange = props.onValueChange, readOnly = props.readOnly, style = props.style, value = props.value, other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);\n      function handleChange(event) {\n        var value2 = event.nativeEvent.target.checked;\n        event.nativeEvent.value = value2;\n        onChange && onChange(event);\n        onValueChange && onValueChange(value2);\n      }\n      __name(handleChange, \"handleChange\");\n      var fakeControl = /* @__PURE__ */ React75.createElement(_View.default, {\n        style: [\n          styles.fakeControl,\n          value && styles.fakeControlChecked,\n          // custom color\n          value && color && {\n            backgroundColor: color,\n            borderColor: color\n          },\n          disabled && styles.fakeControlDisabled,\n          value && disabled && styles.fakeControlCheckedAndDisabled\n        ]\n      });\n      var nativeControl = (0, _createElement.default)(\"input\", {\n        checked: value,\n        disabled,\n        onChange: handleChange,\n        readOnly: readOnly === true || ariaReadOnly === true || other.accessibilityReadOnly === true,\n        ref: forwardedRef,\n        style: [styles.nativeControl, styles.cursorInherit],\n        type: \"checkbox\"\n      });\n      return /* @__PURE__ */ React75.createElement(_View.default, (0, _extends2.default)({}, other, {\n        \"aria-disabled\": disabled,\n        \"aria-readonly\": ariaReadOnly,\n        style: [styles.root, style, disabled && styles.cursorDefault]\n      }), fakeControl, nativeControl);\n    });\n    CheckBox.displayName = \"CheckBox\";\n    var styles = _StyleSheet.default.create({\n      root: {\n        cursor: \"pointer\",\n        height: 16,\n        userSelect: \"none\",\n        width: 16\n      },\n      cursorDefault: {\n        cursor: \"default\"\n      },\n      cursorInherit: {\n        cursor: \"inherit\"\n      },\n      fakeControl: {\n        alignItems: \"center\",\n        backgroundColor: \"#fff\",\n        borderColor: \"#657786\",\n        borderRadius: 2,\n        borderStyle: \"solid\",\n        borderWidth: 2,\n        height: \"100%\",\n        justifyContent: \"center\",\n        width: \"100%\"\n      },\n      fakeControlChecked: {\n        backgroundColor: \"#009688\",\n        backgroundImage: 'url(\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8cGF0aAogICAgIGQ9Ik0gMC4wNDAzODA1OSwwLjYyNjc3NjcgMC4xNDY0NDY2MSwwLjUyMDcxMDY4IDAuNDI5Mjg5MzIsMC44MDM1NTMzOSAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IE0gMC4yMTcxNTcyOSwwLjgwMzU1MzM5IDAuODUzNTUzMzksMC4xNjcxNTcyOSAwLjk1OTYxOTQxLDAuMjczMjIzMyAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IgogICAgIGlkPSJyZWN0Mzc4MCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L3N2Zz4K\")',\n        backgroundRepeat: \"no-repeat\",\n        borderColor: \"#009688\"\n      },\n      fakeControlDisabled: {\n        borderColor: \"#CCD6DD\"\n      },\n      fakeControlCheckedAndDisabled: {\n        backgroundColor: \"#AAB8C2\",\n        borderColor: \"#AAB8C2\"\n      },\n      nativeControl: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, _StyleSheet.default.absoluteFillObject), {}, {\n        height: \"100%\",\n        margin: 0,\n        appearance: \"none\",\n        padding: 0,\n        width: \"100%\"\n      })\n    });\n    var _default = exports2.default = CheckBox;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/ImageBackground/index.js\nvar require_ImageBackground = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/ImageBackground/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _extends2 = _interopRequireDefault(require_extends());\n    var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());\n    var _react = _interopRequireWildcard(require(\"react\"));\n    var React75 = _react;\n    var _Image = _interopRequireDefault(require_Image());\n    var _StyleSheet = _interopRequireDefault(require_StyleSheet());\n    var _View = _interopRequireDefault(require_View());\n    var _excluded = [\"children\", \"style\", \"imageStyle\", \"imageRef\"];\n    var emptyObject = {};\n    var ImageBackground = /* @__PURE__ */ (0, _react.forwardRef)((props, forwardedRef) => {\n      var children = props.children, _props$style = props.style, style = _props$style === void 0 ? emptyObject : _props$style, imageStyle = props.imageStyle, imageRef = props.imageRef, rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);\n      var _StyleSheet$flatten = _StyleSheet.default.flatten(style), height = _StyleSheet$flatten.height, width = _StyleSheet$flatten.width;\n      return /* @__PURE__ */ React75.createElement(_View.default, {\n        ref: forwardedRef,\n        style\n      }, /* @__PURE__ */ React75.createElement(_Image.default, (0, _extends2.default)({}, rest, {\n        ref: imageRef,\n        style: [{\n          // Temporary Workaround:\n          // Current (imperfect yet) implementation of <Image> overwrites width and height styles\n          // (which is not quite correct), and these styles conflict with explicitly set styles\n          // of <ImageBackground> and with our internal layout model here.\n          // So, we have to proxy/reapply these styles explicitly for actual <Image> component.\n          // This workaround should be removed after implementing proper support of\n          // intrinsic content size of the <Image>.\n          width,\n          height,\n          zIndex: -1\n        }, _StyleSheet.default.absoluteFill, imageStyle]\n      })), children);\n    });\n    ImageBackground.displayName = \"ImageBackground\";\n    var _default = exports2.default = ImageBackground;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/KeyboardAvoidingView/index.js\nvar require_KeyboardAvoidingView = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/KeyboardAvoidingView/index.js\"(exports2, module2) {\n    \"use strict\";\n    \"use client\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _extends2 = _interopRequireDefault(require_extends());\n    var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var _View = _interopRequireDefault(require_View());\n    var _excluded = [\"behavior\", \"contentContainerStyle\", \"keyboardVerticalOffset\"];\n    var KeyboardAvoidingView = class extends React75.Component {\n      static {\n        __name(this, \"KeyboardAvoidingView\");\n      }\n      constructor() {\n        super(...arguments);\n        this.frame = null;\n        this.onLayout = (event) => {\n          this.frame = event.nativeEvent.layout;\n        };\n      }\n      relativeKeyboardHeight(keyboardFrame) {\n        var frame = this.frame;\n        if (!frame || !keyboardFrame) {\n          return 0;\n        }\n        var keyboardY = keyboardFrame.screenY - (this.props.keyboardVerticalOffset || 0);\n        return Math.max(frame.y + frame.height - keyboardY, 0);\n      }\n      onKeyboardChange(event) {\n      }\n      render() {\n        var _this$props = this.props, behavior = _this$props.behavior, contentContainerStyle = _this$props.contentContainerStyle, keyboardVerticalOffset = _this$props.keyboardVerticalOffset, rest = (0, _objectWithoutPropertiesLoose2.default)(_this$props, _excluded);\n        return /* @__PURE__ */ React75.createElement(_View.default, (0, _extends2.default)({\n          onLayout: this.onLayout\n        }, rest));\n      }\n    };\n    var _default = exports2.default = KeyboardAvoidingView;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/Modal/ModalPortal.js\nvar require_ModalPortal = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/Modal/ModalPortal.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var _reactDom = _interopRequireDefault(require(\"react-dom\"));\n    var _canUseDom = _interopRequireDefault(require_canUseDom());\n    function ModalPortal(props) {\n      var children = props.children;\n      var elementRef = React75.useRef(null);\n      if (_canUseDom.default && !elementRef.current) {\n        var element = document.createElement(\"div\");\n        if (element && document.body) {\n          document.body.appendChild(element);\n          elementRef.current = element;\n        }\n      }\n      React75.useEffect(() => {\n        if (_canUseDom.default) {\n          return () => {\n            if (document.body && elementRef.current) {\n              document.body.removeChild(elementRef.current);\n              elementRef.current = null;\n            }\n          };\n        }\n      }, []);\n      return elementRef.current && _canUseDom.default ? /* @__PURE__ */ _reactDom.default.createPortal(children, elementRef.current) : null;\n    }\n    __name(ModalPortal, \"ModalPortal\");\n    var _default = exports2.default = ModalPortal;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/Modal/ModalAnimation.js\nvar require_ModalAnimation = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/Modal/ModalAnimation.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var _StyleSheet = _interopRequireDefault(require_StyleSheet());\n    var _createElement = _interopRequireDefault(require_createElement());\n    var ANIMATION_DURATION = 300;\n    function getAnimationStyle(animationType, visible) {\n      if (animationType === \"slide\") {\n        return visible ? animatedSlideInStyles : animatedSlideOutStyles;\n      }\n      if (animationType === \"fade\") {\n        return visible ? animatedFadeInStyles : animatedFadeOutStyles;\n      }\n      return visible ? styles.container : styles.hidden;\n    }\n    __name(getAnimationStyle, \"getAnimationStyle\");\n    function ModalAnimation(props) {\n      var animationType = props.animationType, children = props.children, onDismiss = props.onDismiss, onShow = props.onShow, visible = props.visible;\n      var _React$useState = React75.useState(false), isRendering = _React$useState[0], setIsRendering = _React$useState[1];\n      var wasVisible = React75.useRef(false);\n      var wasRendering = React75.useRef(false);\n      var isAnimated = animationType && animationType !== \"none\";\n      var animationEndCallback = React75.useCallback((e) => {\n        if (e && e.currentTarget !== e.target) {\n          return;\n        }\n        if (visible) {\n          if (onShow) {\n            onShow();\n          }\n        } else {\n          setIsRendering(false);\n        }\n      }, [onShow, visible]);\n      React75.useEffect(() => {\n        if (wasRendering.current && !isRendering && onDismiss) {\n          onDismiss();\n        }\n        wasRendering.current = isRendering;\n      }, [isRendering, onDismiss]);\n      React75.useEffect(() => {\n        if (visible) {\n          setIsRendering(true);\n        }\n        if (visible !== wasVisible.current && !isAnimated) {\n          animationEndCallback();\n        }\n        wasVisible.current = visible;\n      }, [isAnimated, visible, animationEndCallback]);\n      return isRendering || visible ? (0, _createElement.default)(\"div\", {\n        style: isRendering ? getAnimationStyle(animationType, visible) : styles.hidden,\n        onAnimationEnd: animationEndCallback,\n        children\n      }) : null;\n    }\n    __name(ModalAnimation, \"ModalAnimation\");\n    var styles = _StyleSheet.default.create({\n      container: {\n        position: \"fixed\",\n        top: 0,\n        right: 0,\n        bottom: 0,\n        left: 0,\n        zIndex: 9999\n      },\n      animatedIn: {\n        animationDuration: ANIMATION_DURATION + \"ms\",\n        animationTimingFunction: \"ease-in\"\n      },\n      animatedOut: {\n        pointerEvents: \"none\",\n        animationDuration: ANIMATION_DURATION + \"ms\",\n        animationTimingFunction: \"ease-out\"\n      },\n      fadeIn: {\n        opacity: 1,\n        animationKeyframes: {\n          \"0%\": {\n            opacity: 0\n          },\n          \"100%\": {\n            opacity: 1\n          }\n        }\n      },\n      fadeOut: {\n        opacity: 0,\n        animationKeyframes: {\n          \"0%\": {\n            opacity: 1\n          },\n          \"100%\": {\n            opacity: 0\n          }\n        }\n      },\n      slideIn: {\n        transform: \"translateY(0%)\",\n        animationKeyframes: {\n          \"0%\": {\n            transform: \"translateY(100%)\"\n          },\n          \"100%\": {\n            transform: \"translateY(0%)\"\n          }\n        }\n      },\n      slideOut: {\n        transform: \"translateY(100%)\",\n        animationKeyframes: {\n          \"0%\": {\n            transform: \"translateY(0%)\"\n          },\n          \"100%\": {\n            transform: \"translateY(100%)\"\n          }\n        }\n      },\n      hidden: {\n        opacity: 0\n      }\n    });\n    var animatedSlideInStyles = [styles.container, styles.animatedIn, styles.slideIn];\n    var animatedSlideOutStyles = [styles.container, styles.animatedOut, styles.slideOut];\n    var animatedFadeInStyles = [styles.container, styles.animatedIn, styles.fadeIn];\n    var animatedFadeOutStyles = [styles.container, styles.animatedOut, styles.fadeOut];\n    var _default = exports2.default = ModalAnimation;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/Modal/ModalContent.js\nvar require_ModalContent = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/Modal/ModalContent.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _extends2 = _interopRequireDefault(require_extends());\n    var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var _View = _interopRequireDefault(require_View());\n    var _StyleSheet = _interopRequireDefault(require_StyleSheet());\n    var _canUseDom = _interopRequireDefault(require_canUseDom());\n    var _excluded = [\"active\", \"children\", \"onRequestClose\", \"transparent\"];\n    var ModalContent = /* @__PURE__ */ React75.forwardRef((props, forwardedRef) => {\n      var active = props.active, children = props.children, onRequestClose = props.onRequestClose, transparent = props.transparent, rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);\n      React75.useEffect(() => {\n        if (_canUseDom.default) {\n          var closeOnEscape = /* @__PURE__ */ __name((e) => {\n            if (active && e.key === \"Escape\") {\n              e.stopPropagation();\n              if (onRequestClose) {\n                onRequestClose();\n              }\n            }\n          }, \"closeOnEscape\");\n          document.addEventListener(\"keyup\", closeOnEscape, false);\n          return () => document.removeEventListener(\"keyup\", closeOnEscape, false);\n        }\n      }, [active, onRequestClose]);\n      var style = React75.useMemo(() => {\n        return [styles.modal, transparent ? styles.modalTransparent : styles.modalOpaque];\n      }, [transparent]);\n      return /* @__PURE__ */ React75.createElement(_View.default, (0, _extends2.default)({}, rest, {\n        \"aria-modal\": true,\n        ref: forwardedRef,\n        role: active ? \"dialog\" : null,\n        style\n      }), /* @__PURE__ */ React75.createElement(_View.default, {\n        style: styles.container\n      }, children));\n    });\n    var styles = _StyleSheet.default.create({\n      modal: {\n        position: \"fixed\",\n        top: 0,\n        right: 0,\n        bottom: 0,\n        left: 0\n      },\n      modalTransparent: {\n        backgroundColor: \"transparent\"\n      },\n      modalOpaque: {\n        backgroundColor: \"white\"\n      },\n      container: {\n        top: 0,\n        flex: 1\n      }\n    });\n    var _default = exports2.default = ModalContent;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/Modal/ModalFocusTrap.js\nvar require_ModalFocusTrap = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/Modal/ModalFocusTrap.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var _View = _interopRequireDefault(require_View());\n    var _createElement = _interopRequireDefault(require_createElement());\n    var _StyleSheet = _interopRequireDefault(require_StyleSheet());\n    var _UIManager = _interopRequireDefault(require_UIManager());\n    var _canUseDom = _interopRequireDefault(require_canUseDom());\n    var FocusBracket = /* @__PURE__ */ __name(() => {\n      return (0, _createElement.default)(\"div\", {\n        role: \"none\",\n        tabIndex: 0,\n        style: styles.focusBracket\n      });\n    }, \"FocusBracket\");\n    function attemptFocus(element) {\n      if (!_canUseDom.default) {\n        return false;\n      }\n      try {\n        element.focus();\n      } catch (e) {\n      }\n      return document.activeElement === element;\n    }\n    __name(attemptFocus, \"attemptFocus\");\n    function focusFirstDescendant(element) {\n      for (var i = 0; i < element.childNodes.length; i++) {\n        var child = element.childNodes[i];\n        if (attemptFocus(child) || focusFirstDescendant(child)) {\n          return true;\n        }\n      }\n      return false;\n    }\n    __name(focusFirstDescendant, \"focusFirstDescendant\");\n    function focusLastDescendant(element) {\n      for (var i = element.childNodes.length - 1; i >= 0; i--) {\n        var child = element.childNodes[i];\n        if (attemptFocus(child) || focusLastDescendant(child)) {\n          return true;\n        }\n      }\n      return false;\n    }\n    __name(focusLastDescendant, \"focusLastDescendant\");\n    var ModalFocusTrap = /* @__PURE__ */ __name((_ref) => {\n      var active = _ref.active, children = _ref.children;\n      var trapElementRef = React75.useRef();\n      var focusRef = React75.useRef({\n        trapFocusInProgress: false,\n        lastFocusedElement: null\n      });\n      React75.useEffect(() => {\n        if (_canUseDom.default) {\n          var trapFocus = /* @__PURE__ */ __name(() => {\n            if (trapElementRef.current == null || focusRef.current.trapFocusInProgress || !active) {\n              return;\n            }\n            try {\n              focusRef.current.trapFocusInProgress = true;\n              if (document.activeElement instanceof Node && !trapElementRef.current.contains(document.activeElement)) {\n                var hasFocused = focusFirstDescendant(trapElementRef.current);\n                if (focusRef.current.lastFocusedElement === document.activeElement) {\n                  hasFocused = focusLastDescendant(trapElementRef.current);\n                }\n                if (!hasFocused && trapElementRef.current != null && document.activeElement) {\n                  _UIManager.default.focus(trapElementRef.current);\n                }\n              }\n            } finally {\n              focusRef.current.trapFocusInProgress = false;\n            }\n            focusRef.current.lastFocusedElement = document.activeElement;\n          }, \"trapFocus\");\n          trapFocus();\n          document.addEventListener(\"focus\", trapFocus, true);\n          return () => document.removeEventListener(\"focus\", trapFocus, true);\n        }\n      }, [active]);\n      React75.useEffect(function() {\n        if (_canUseDom.default) {\n          var lastFocusedElementOutsideTrap = document.activeElement;\n          return function() {\n            if (lastFocusedElementOutsideTrap && document.contains(lastFocusedElementOutsideTrap)) {\n              _UIManager.default.focus(lastFocusedElementOutsideTrap);\n            }\n          };\n        }\n      }, []);\n      return /* @__PURE__ */ React75.createElement(React75.Fragment, null, /* @__PURE__ */ React75.createElement(FocusBracket, null), /* @__PURE__ */ React75.createElement(_View.default, {\n        ref: trapElementRef\n      }, children), /* @__PURE__ */ React75.createElement(FocusBracket, null));\n    }, \"ModalFocusTrap\");\n    var _default = exports2.default = ModalFocusTrap;\n    var styles = _StyleSheet.default.create({\n      focusBracket: {\n        outlineStyle: \"none\"\n      }\n    });\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/Modal/index.js\nvar require_Modal = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/Modal/index.js\"(exports2, module2) {\n    \"use strict\";\n    \"use client\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _extends2 = _interopRequireDefault(require_extends());\n    var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var _ModalPortal = _interopRequireDefault(require_ModalPortal());\n    var _ModalAnimation = _interopRequireDefault(require_ModalAnimation());\n    var _ModalContent = _interopRequireDefault(require_ModalContent());\n    var _ModalFocusTrap = _interopRequireDefault(require_ModalFocusTrap());\n    var _excluded = [\"animationType\", \"children\", \"onDismiss\", \"onRequestClose\", \"onShow\", \"transparent\", \"visible\"];\n    var uniqueModalIdentifier = 0;\n    var activeModalStack = [];\n    var activeModalListeners = {};\n    function notifyActiveModalListeners() {\n      if (activeModalStack.length === 0) {\n        return;\n      }\n      var activeModalId = activeModalStack[activeModalStack.length - 1];\n      activeModalStack.forEach((modalId) => {\n        if (modalId in activeModalListeners) {\n          activeModalListeners[modalId](modalId === activeModalId);\n        }\n      });\n    }\n    __name(notifyActiveModalListeners, \"notifyActiveModalListeners\");\n    function removeActiveModal(modalId) {\n      if (modalId in activeModalListeners) {\n        activeModalListeners[modalId](false);\n        delete activeModalListeners[modalId];\n      }\n      var index3 = activeModalStack.indexOf(modalId);\n      if (index3 !== -1) {\n        activeModalStack.splice(index3, 1);\n        notifyActiveModalListeners();\n      }\n    }\n    __name(removeActiveModal, \"removeActiveModal\");\n    function addActiveModal(modalId, listener) {\n      removeActiveModal(modalId);\n      activeModalStack.push(modalId);\n      activeModalListeners[modalId] = listener;\n      notifyActiveModalListeners();\n    }\n    __name(addActiveModal, \"addActiveModal\");\n    var Modal = /* @__PURE__ */ React75.forwardRef((props, forwardedRef) => {\n      var animationType = props.animationType, children = props.children, onDismiss = props.onDismiss, onRequestClose = props.onRequestClose, onShow = props.onShow, transparent = props.transparent, _props$visible = props.visible, visible = _props$visible === void 0 ? true : _props$visible, rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);\n      var modalId = React75.useMemo(() => uniqueModalIdentifier++, []);\n      var _React$useState = React75.useState(false), isActive = _React$useState[0], setIsActive = _React$useState[1];\n      var onDismissCallback = React75.useCallback(() => {\n        removeActiveModal(modalId);\n        if (onDismiss) {\n          onDismiss();\n        }\n      }, [modalId, onDismiss]);\n      var onShowCallback = React75.useCallback(() => {\n        addActiveModal(modalId, setIsActive);\n        if (onShow) {\n          onShow();\n        }\n      }, [modalId, onShow]);\n      React75.useEffect(() => {\n        return () => removeActiveModal(modalId);\n      }, [modalId]);\n      return /* @__PURE__ */ React75.createElement(_ModalPortal.default, null, /* @__PURE__ */ React75.createElement(_ModalAnimation.default, {\n        animationType,\n        onDismiss: onDismissCallback,\n        onShow: onShowCallback,\n        visible\n      }, /* @__PURE__ */ React75.createElement(_ModalFocusTrap.default, {\n        active: isActive\n      }, /* @__PURE__ */ React75.createElement(_ModalContent.default, (0, _extends2.default)({}, rest, {\n        active: isActive,\n        onRequestClose,\n        ref: forwardedRef,\n        transparent\n      }), children))));\n    });\n    var _default = exports2.default = Modal;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/Picker/PickerItem.js\nvar require_PickerItem = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/Picker/PickerItem.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = PickerItem;\n    var _createElement = _interopRequireDefault(require_createElement());\n    function PickerItem(props) {\n      var color = props.color, label = props.label, testID = props.testID, value = props.value;\n      var style = {\n        color\n      };\n      return (0, _createElement.default)(\"option\", {\n        children: label,\n        style,\n        testID,\n        value\n      });\n    }\n    __name(PickerItem, \"PickerItem\");\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/Picker/index.js\nvar require_Picker = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/Picker/index.js\"(exports2, module2) {\n    \"use strict\";\n    \"use client\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _objectSpread2 = _interopRequireDefault(require_objectSpread2());\n    var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var _createElement = _interopRequireDefault(require_createElement());\n    var _useMergeRefs = _interopRequireDefault(require_useMergeRefs());\n    var _usePlatformMethods = _interopRequireDefault(require_usePlatformMethods());\n    var _PickerItem = _interopRequireDefault(require_PickerItem());\n    var _StyleSheet = _interopRequireDefault(require_StyleSheet());\n    var _excluded = [\"children\", \"enabled\", \"onValueChange\", \"selectedValue\", \"style\", \"testID\", \"itemStyle\", \"mode\", \"prompt\"];\n    var Picker = /* @__PURE__ */ React75.forwardRef((props, forwardedRef) => {\n      var children = props.children, enabled = props.enabled, onValueChange = props.onValueChange, selectedValue = props.selectedValue, style = props.style, testID = props.testID, itemStyle = props.itemStyle, mode = props.mode, prompt = props.prompt, other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);\n      var hostRef = React75.useRef(null);\n      function handleChange(e) {\n        var _e$target = e.target, selectedIndex = _e$target.selectedIndex, value = _e$target.value;\n        if (onValueChange) {\n          onValueChange(value, selectedIndex);\n        }\n      }\n      __name(handleChange, \"handleChange\");\n      var supportedProps = (0, _objectSpread2.default)({\n        children,\n        disabled: enabled === false ? true : void 0,\n        onChange: handleChange,\n        style: [styles.initial, style],\n        testID,\n        value: selectedValue\n      }, other);\n      var platformMethodsRef = (0, _usePlatformMethods.default)(supportedProps);\n      var setRef2 = (0, _useMergeRefs.default)(hostRef, platformMethodsRef, forwardedRef);\n      supportedProps.ref = setRef2;\n      return (0, _createElement.default)(\"select\", supportedProps);\n    });\n    Picker.Item = _PickerItem.default;\n    var styles = _StyleSheet.default.create({\n      initial: {\n        fontFamily: \"System\",\n        fontSize: \"inherit\",\n        margin: 0\n      }\n    });\n    var _default = exports2.default = Picker;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/addEventListener/index.js\nvar require_addEventListener = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/addEventListener/index.js\"(exports2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.addEventListener = addEventListener;\n    var _canUseDom = _interopRequireDefault(require_canUseDom());\n    var emptyFunction = /* @__PURE__ */ __name(() => {\n    }, \"emptyFunction\");\n    function supportsPassiveEvents() {\n      var supported = false;\n      if (_canUseDom.default) {\n        try {\n          var options = {};\n          Object.defineProperty(options, \"passive\", {\n            get() {\n              supported = true;\n              return false;\n            }\n          });\n          window.addEventListener(\"test\", null, options);\n          window.removeEventListener(\"test\", null, options);\n        } catch (e) {\n        }\n      }\n      return supported;\n    }\n    __name(supportsPassiveEvents, \"supportsPassiveEvents\");\n    var canUsePassiveEvents = supportsPassiveEvents();\n    function getOptions(options) {\n      if (options == null) {\n        return false;\n      }\n      return canUsePassiveEvents ? options : Boolean(options.capture);\n    }\n    __name(getOptions, \"getOptions\");\n    function isPropagationStopped() {\n      return this.cancelBubble;\n    }\n    __name(isPropagationStopped, \"isPropagationStopped\");\n    function isDefaultPrevented() {\n      return this.defaultPrevented;\n    }\n    __name(isDefaultPrevented, \"isDefaultPrevented\");\n    function normalizeEvent(event) {\n      event.nativeEvent = event;\n      event.persist = emptyFunction;\n      event.isDefaultPrevented = isDefaultPrevented;\n      event.isPropagationStopped = isPropagationStopped;\n      return event;\n    }\n    __name(normalizeEvent, \"normalizeEvent\");\n    function addEventListener(target, type, listener, options) {\n      var opts = getOptions(options);\n      var compatListener = /* @__PURE__ */ __name((e) => listener(normalizeEvent(e)), \"compatListener\");\n      target.addEventListener(type, compatListener, opts);\n      return /* @__PURE__ */ __name(function removeEventListener() {\n        if (target != null) {\n          target.removeEventListener(type, compatListener, opts);\n        }\n      }, \"removeEventListener\");\n    }\n    __name(addEventListener, \"addEventListener\");\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/modality/index.js\nvar require_modality = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/modality/index.js\"(exports2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.addModalityListener = addModalityListener;\n    exports2.getActiveModality = getActiveModality;\n    exports2.getModality = getModality;\n    exports2.testOnly_resetActiveModality = testOnly_resetActiveModality;\n    var _addEventListener = require_addEventListener();\n    var _canUseDom = _interopRequireDefault(require_canUseDom());\n    var supportsPointerEvent = /* @__PURE__ */ __name(() => !!(typeof window !== \"undefined\" && window.PointerEvent != null), \"supportsPointerEvent\");\n    var activeModality = \"keyboard\";\n    var modality = \"keyboard\";\n    var previousModality;\n    var previousActiveModality;\n    var isEmulatingMouseEvents = false;\n    var listeners = /* @__PURE__ */ new Set();\n    var KEYBOARD = \"keyboard\";\n    var MOUSE = \"mouse\";\n    var TOUCH = \"touch\";\n    var BLUR = \"blur\";\n    var CONTEXTMENU = \"contextmenu\";\n    var FOCUS = \"focus\";\n    var KEYDOWN = \"keydown\";\n    var MOUSEDOWN = \"mousedown\";\n    var MOUSEMOVE = \"mousemove\";\n    var MOUSEUP = \"mouseup\";\n    var POINTERDOWN = \"pointerdown\";\n    var POINTERMOVE = \"pointermove\";\n    var SCROLL = \"scroll\";\n    var SELECTIONCHANGE = \"selectionchange\";\n    var TOUCHCANCEL = \"touchcancel\";\n    var TOUCHMOVE = \"touchmove\";\n    var TOUCHSTART = \"touchstart\";\n    var VISIBILITYCHANGE = \"visibilitychange\";\n    var bubbleOptions = {\n      passive: true\n    };\n    var captureOptions = {\n      capture: true,\n      passive: true\n    };\n    function restoreModality() {\n      if (previousModality != null || previousActiveModality != null) {\n        if (previousModality != null) {\n          modality = previousModality;\n          previousModality = null;\n        }\n        if (previousActiveModality != null) {\n          activeModality = previousActiveModality;\n          previousActiveModality = null;\n        }\n        callListeners();\n      }\n    }\n    __name(restoreModality, \"restoreModality\");\n    function onBlurWindow() {\n      previousModality = modality;\n      previousActiveModality = activeModality;\n      activeModality = KEYBOARD;\n      modality = KEYBOARD;\n      callListeners();\n      isEmulatingMouseEvents = false;\n    }\n    __name(onBlurWindow, \"onBlurWindow\");\n    function onFocusWindow() {\n      restoreModality();\n    }\n    __name(onFocusWindow, \"onFocusWindow\");\n    function onKeyDown(event) {\n      if (event.metaKey || event.altKey || event.ctrlKey) {\n        return;\n      }\n      if (modality !== KEYBOARD) {\n        modality = KEYBOARD;\n        activeModality = KEYBOARD;\n        callListeners();\n      }\n    }\n    __name(onKeyDown, \"onKeyDown\");\n    function onVisibilityChange() {\n      if (document.visibilityState !== \"hidden\") {\n        restoreModality();\n      }\n    }\n    __name(onVisibilityChange, \"onVisibilityChange\");\n    function onPointerish(event) {\n      var eventType = event.type;\n      if (supportsPointerEvent()) {\n        if (eventType === POINTERDOWN) {\n          if (activeModality !== event.pointerType) {\n            modality = event.pointerType;\n            activeModality = event.pointerType;\n            callListeners();\n          }\n          return;\n        }\n        if (eventType === POINTERMOVE) {\n          if (modality !== event.pointerType) {\n            modality = event.pointerType;\n            callListeners();\n          }\n          return;\n        }\n      } else {\n        if (!isEmulatingMouseEvents) {\n          if (eventType === MOUSEDOWN) {\n            if (activeModality !== MOUSE) {\n              modality = MOUSE;\n              activeModality = MOUSE;\n              callListeners();\n            }\n          }\n          if (eventType === MOUSEMOVE) {\n            if (modality !== MOUSE) {\n              modality = MOUSE;\n              callListeners();\n            }\n          }\n        }\n        if (eventType === TOUCHSTART) {\n          isEmulatingMouseEvents = true;\n          if (event.touches && event.touches.length > 1) {\n            isEmulatingMouseEvents = false;\n          }\n          if (activeModality !== TOUCH) {\n            modality = TOUCH;\n            activeModality = TOUCH;\n            callListeners();\n          }\n          return;\n        }\n        if (eventType === CONTEXTMENU || eventType === MOUSEUP || eventType === SELECTIONCHANGE || eventType === SCROLL || eventType === TOUCHCANCEL || eventType === TOUCHMOVE) {\n          isEmulatingMouseEvents = false;\n        }\n      }\n    }\n    __name(onPointerish, \"onPointerish\");\n    if (_canUseDom.default) {\n      (0, _addEventListener.addEventListener)(window, BLUR, onBlurWindow, bubbleOptions);\n      (0, _addEventListener.addEventListener)(window, FOCUS, onFocusWindow, bubbleOptions);\n      (0, _addEventListener.addEventListener)(document, KEYDOWN, onKeyDown, captureOptions);\n      (0, _addEventListener.addEventListener)(document, VISIBILITYCHANGE, onVisibilityChange, captureOptions);\n      (0, _addEventListener.addEventListener)(document, POINTERDOWN, onPointerish, captureOptions);\n      (0, _addEventListener.addEventListener)(document, POINTERMOVE, onPointerish, captureOptions);\n      (0, _addEventListener.addEventListener)(document, CONTEXTMENU, onPointerish, captureOptions);\n      (0, _addEventListener.addEventListener)(document, MOUSEDOWN, onPointerish, captureOptions);\n      (0, _addEventListener.addEventListener)(document, MOUSEMOVE, onPointerish, captureOptions);\n      (0, _addEventListener.addEventListener)(document, MOUSEUP, onPointerish, captureOptions);\n      (0, _addEventListener.addEventListener)(document, TOUCHCANCEL, onPointerish, captureOptions);\n      (0, _addEventListener.addEventListener)(document, TOUCHMOVE, onPointerish, captureOptions);\n      (0, _addEventListener.addEventListener)(document, TOUCHSTART, onPointerish, captureOptions);\n      (0, _addEventListener.addEventListener)(document, SELECTIONCHANGE, onPointerish, captureOptions);\n      (0, _addEventListener.addEventListener)(document, SCROLL, onPointerish, captureOptions);\n    }\n    function callListeners() {\n      var value = {\n        activeModality,\n        modality\n      };\n      listeners.forEach((listener) => {\n        listener(value);\n      });\n    }\n    __name(callListeners, \"callListeners\");\n    function getActiveModality() {\n      return activeModality;\n    }\n    __name(getActiveModality, \"getActiveModality\");\n    function getModality() {\n      return modality;\n    }\n    __name(getModality, \"getModality\");\n    function addModalityListener(listener) {\n      listeners.add(listener);\n      return () => {\n        listeners.delete(listener);\n      };\n    }\n    __name(addModalityListener, \"addModalityListener\");\n    function testOnly_resetActiveModality() {\n      isEmulatingMouseEvents = false;\n      activeModality = KEYBOARD;\n      modality = KEYBOARD;\n    }\n    __name(testOnly_resetActiveModality, \"testOnly_resetActiveModality\");\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/useEvent/index.js\nvar require_useEvent2 = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/useEvent/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = useEvent12;\n    var _addEventListener = require_addEventListener();\n    var _useLayoutEffect = _interopRequireDefault(require_useLayoutEffect());\n    var _useStable = _interopRequireDefault(require_useStable());\n    function useEvent12(eventType, options) {\n      var targetListeners = (0, _useStable.default)(() => /* @__PURE__ */ new Map());\n      var addListener = (0, _useStable.default)(() => {\n        return (target, callback) => {\n          var removeTargetListener = targetListeners.get(target);\n          if (removeTargetListener != null) {\n            removeTargetListener();\n          }\n          if (callback == null) {\n            targetListeners.delete(target);\n            callback = /* @__PURE__ */ __name(() => {\n            }, \"callback\");\n          }\n          var removeEventListener = (0, _addEventListener.addEventListener)(target, eventType, callback, options);\n          targetListeners.set(target, removeEventListener);\n          return removeEventListener;\n        };\n      });\n      (0, _useLayoutEffect.default)(() => {\n        return () => {\n          targetListeners.forEach((removeListener) => {\n            removeListener();\n          });\n          targetListeners.clear();\n        };\n      }, [targetListeners]);\n      return addListener;\n    }\n    __name(useEvent12, \"useEvent\");\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/useHover/index.js\nvar require_useHover = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/useHover/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = useHover2;\n    var _modality = require_modality();\n    var _useEvent = _interopRequireDefault(require_useEvent2());\n    var _useLayoutEffect = _interopRequireDefault(require_useLayoutEffect());\n    var emptyObject = {};\n    var opts = {\n      passive: true\n    };\n    var lockEventType = \"react-gui:hover:lock\";\n    var unlockEventType = \"react-gui:hover:unlock\";\n    var supportsPointerEvent = /* @__PURE__ */ __name(() => !!(typeof window !== \"undefined\" && window.PointerEvent != null), \"supportsPointerEvent\");\n    function dispatchCustomEvent(target, type, payload) {\n      var event = document.createEvent(\"CustomEvent\");\n      var _ref = payload || emptyObject, _ref$bubbles = _ref.bubbles, bubbles = _ref$bubbles === void 0 ? true : _ref$bubbles, _ref$cancelable = _ref.cancelable, cancelable = _ref$cancelable === void 0 ? true : _ref$cancelable, detail = _ref.detail;\n      event.initCustomEvent(type, bubbles, cancelable, detail);\n      target.dispatchEvent(event);\n    }\n    __name(dispatchCustomEvent, \"dispatchCustomEvent\");\n    function getPointerType(event) {\n      var pointerType = event.pointerType;\n      return pointerType != null ? pointerType : (0, _modality.getModality)();\n    }\n    __name(getPointerType, \"getPointerType\");\n    function useHover2(targetRef, config) {\n      var contain = config.contain, disabled = config.disabled, onHoverStart = config.onHoverStart, onHoverChange = config.onHoverChange, onHoverUpdate = config.onHoverUpdate, onHoverEnd = config.onHoverEnd;\n      var canUsePE = supportsPointerEvent();\n      var addMoveListener = (0, _useEvent.default)(canUsePE ? \"pointermove\" : \"mousemove\", opts);\n      var addEnterListener = (0, _useEvent.default)(canUsePE ? \"pointerenter\" : \"mouseenter\", opts);\n      var addLeaveListener = (0, _useEvent.default)(canUsePE ? \"pointerleave\" : \"mouseleave\", opts);\n      var addLockListener = (0, _useEvent.default)(lockEventType, opts);\n      var addUnlockListener = (0, _useEvent.default)(unlockEventType, opts);\n      (0, _useLayoutEffect.default)(() => {\n        var target = targetRef.current;\n        if (target !== null) {\n          var hoverEnd = /* @__PURE__ */ __name(function hoverEnd2(e) {\n            if (onHoverEnd != null) {\n              onHoverEnd(e);\n            }\n            if (onHoverChange != null) {\n              onHoverChange(false);\n            }\n            addMoveListener(target, null);\n            addLeaveListener(target, null);\n          }, \"hoverEnd\");\n          var leaveListener = /* @__PURE__ */ __name(function leaveListener2(e) {\n            var target2 = targetRef.current;\n            if (target2 != null && getPointerType(e) !== \"touch\") {\n              if (contain) {\n                dispatchCustomEvent(target2, unlockEventType);\n              }\n              hoverEnd(e);\n            }\n          }, \"leaveListener\");\n          var moveListener = /* @__PURE__ */ __name(function moveListener2(e) {\n            if (getPointerType(e) !== \"touch\") {\n              if (onHoverUpdate != null) {\n                if (e.x == null) {\n                  e.x = e.clientX;\n                }\n                if (e.y == null) {\n                  e.y = e.clientY;\n                }\n                onHoverUpdate(e);\n              }\n            }\n          }, \"moveListener\");\n          var hoverStart = /* @__PURE__ */ __name(function hoverStart2(e) {\n            if (onHoverStart != null) {\n              onHoverStart(e);\n            }\n            if (onHoverChange != null) {\n              onHoverChange(true);\n            }\n            if (onHoverUpdate != null) {\n              addMoveListener(target, !disabled ? moveListener : null);\n            }\n            addLeaveListener(target, !disabled ? leaveListener : null);\n          }, \"hoverStart\");\n          var enterListener = /* @__PURE__ */ __name(function enterListener2(e) {\n            var target2 = targetRef.current;\n            if (target2 != null && getPointerType(e) !== \"touch\") {\n              if (contain) {\n                dispatchCustomEvent(target2, lockEventType);\n              }\n              hoverStart(e);\n              var lockListener = /* @__PURE__ */ __name(function lockListener2(lockEvent) {\n                if (lockEvent.target !== target2) {\n                  hoverEnd(e);\n                }\n              }, \"lockListener\");\n              var unlockListener = /* @__PURE__ */ __name(function unlockListener2(lockEvent) {\n                if (lockEvent.target !== target2) {\n                  hoverStart(e);\n                }\n              }, \"unlockListener\");\n              addLockListener(target2, !disabled ? lockListener : null);\n              addUnlockListener(target2, !disabled ? unlockListener : null);\n            }\n          }, \"enterListener\");\n          addEnterListener(target, !disabled ? enterListener : null);\n        }\n      }, [addEnterListener, addMoveListener, addLeaveListener, addLockListener, addUnlockListener, contain, disabled, onHoverStart, onHoverChange, onHoverUpdate, onHoverEnd, targetRef]);\n    }\n    __name(useHover2, \"useHover\");\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/Pressable/index.js\nvar require_Pressable = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/Pressable/index.js\"(exports2, module2) {\n    \"use strict\";\n    \"use client\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _extends2 = _interopRequireDefault(require_extends());\n    var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());\n    var _react = _interopRequireWildcard(require(\"react\"));\n    var React75 = _react;\n    var _useMergeRefs = _interopRequireDefault(require_useMergeRefs());\n    var _useHover = _interopRequireDefault(require_useHover());\n    var _usePressEvents = _interopRequireDefault(require_usePressEvents());\n    var _StyleSheet = _interopRequireDefault(require_StyleSheet());\n    var _View = _interopRequireDefault(require_View());\n    var _excluded = [\"children\", \"delayLongPress\", \"delayPressIn\", \"delayPressOut\", \"disabled\", \"onBlur\", \"onContextMenu\", \"onFocus\", \"onHoverIn\", \"onHoverOut\", \"onKeyDown\", \"onLongPress\", \"onPress\", \"onPressMove\", \"onPressIn\", \"onPressOut\", \"style\", \"tabIndex\", \"testOnly_hovered\", \"testOnly_pressed\"];\n    function Pressable(props, forwardedRef) {\n      var children = props.children, delayLongPress = props.delayLongPress, delayPressIn = props.delayPressIn, delayPressOut = props.delayPressOut, disabled = props.disabled, onBlur = props.onBlur, onContextMenu = props.onContextMenu, onFocus = props.onFocus, onHoverIn = props.onHoverIn, onHoverOut = props.onHoverOut, onKeyDown = props.onKeyDown, onLongPress = props.onLongPress, onPress = props.onPress, onPressMove = props.onPressMove, onPressIn = props.onPressIn, onPressOut = props.onPressOut, style = props.style, tabIndex = props.tabIndex, testOnly_hovered = props.testOnly_hovered, testOnly_pressed = props.testOnly_pressed, rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);\n      var _useForceableState = useForceableState(testOnly_hovered === true), hovered = _useForceableState[0], setHovered = _useForceableState[1];\n      var _useForceableState2 = useForceableState(false), focused = _useForceableState2[0], setFocused = _useForceableState2[1];\n      var _useForceableState3 = useForceableState(testOnly_pressed === true), pressed = _useForceableState3[0], setPressed = _useForceableState3[1];\n      var hostRef = (0, _react.useRef)(null);\n      var setRef2 = (0, _useMergeRefs.default)(forwardedRef, hostRef);\n      var pressConfig = (0, _react.useMemo)(() => ({\n        delayLongPress,\n        delayPressStart: delayPressIn,\n        delayPressEnd: delayPressOut,\n        disabled,\n        onLongPress,\n        onPress,\n        onPressChange: setPressed,\n        onPressStart: onPressIn,\n        onPressMove,\n        onPressEnd: onPressOut\n      }), [delayLongPress, delayPressIn, delayPressOut, disabled, onLongPress, onPress, onPressIn, onPressMove, onPressOut, setPressed]);\n      var pressEventHandlers = (0, _usePressEvents.default)(hostRef, pressConfig);\n      var onContextMenuPress = pressEventHandlers.onContextMenu, onKeyDownPress = pressEventHandlers.onKeyDown;\n      (0, _useHover.default)(hostRef, {\n        contain: true,\n        disabled,\n        onHoverChange: setHovered,\n        onHoverStart: onHoverIn,\n        onHoverEnd: onHoverOut\n      });\n      var interactionState = {\n        hovered,\n        focused,\n        pressed\n      };\n      var blurHandler = React75.useCallback((e) => {\n        if (e.nativeEvent.target === hostRef.current) {\n          setFocused(false);\n          if (onBlur != null) {\n            onBlur(e);\n          }\n        }\n      }, [hostRef, setFocused, onBlur]);\n      var focusHandler = React75.useCallback((e) => {\n        if (e.nativeEvent.target === hostRef.current) {\n          setFocused(true);\n          if (onFocus != null) {\n            onFocus(e);\n          }\n        }\n      }, [hostRef, setFocused, onFocus]);\n      var contextMenuHandler = React75.useCallback((e) => {\n        if (onContextMenuPress != null) {\n          onContextMenuPress(e);\n        }\n        if (onContextMenu != null) {\n          onContextMenu(e);\n        }\n      }, [onContextMenu, onContextMenuPress]);\n      var keyDownHandler = React75.useCallback((e) => {\n        if (onKeyDownPress != null) {\n          onKeyDownPress(e);\n        }\n        if (onKeyDown != null) {\n          onKeyDown(e);\n        }\n      }, [onKeyDown, onKeyDownPress]);\n      var _tabIndex;\n      if (tabIndex !== void 0) {\n        _tabIndex = tabIndex;\n      } else {\n        _tabIndex = disabled ? -1 : 0;\n      }\n      return /* @__PURE__ */ React75.createElement(_View.default, (0, _extends2.default)({}, rest, pressEventHandlers, {\n        \"aria-disabled\": disabled,\n        onBlur: blurHandler,\n        onContextMenu: contextMenuHandler,\n        onFocus: focusHandler,\n        onKeyDown: keyDownHandler,\n        ref: setRef2,\n        style: [disabled ? styles.disabled : styles.active, typeof style === \"function\" ? style(interactionState) : style],\n        tabIndex: _tabIndex\n      }), typeof children === \"function\" ? children(interactionState) : children);\n    }\n    __name(Pressable, \"Pressable\");\n    function useForceableState(forced) {\n      var _useState = (0, _react.useState)(false), bool = _useState[0], setBool = _useState[1];\n      return [bool || forced, setBool];\n    }\n    __name(useForceableState, \"useForceableState\");\n    var styles = _StyleSheet.default.create({\n      active: {\n        cursor: \"pointer\",\n        touchAction: \"manipulation\"\n      },\n      disabled: {\n        pointerEvents: \"box-none\"\n      }\n    });\n    var MemoedPressable = /* @__PURE__ */ (0, _react.memo)(/* @__PURE__ */ (0, _react.forwardRef)(Pressable));\n    MemoedPressable.displayName = \"Pressable\";\n    var _default = exports2.default = MemoedPressable;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/ProgressBar/index.js\nvar require_ProgressBar = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/ProgressBar/index.js\"(exports2, module2) {\n    \"use strict\";\n    \"use client\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _extends2 = _interopRequireDefault(require_extends());\n    var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var _StyleSheet = _interopRequireDefault(require_StyleSheet());\n    var _View = _interopRequireDefault(require_View());\n    var _excluded = [\"color\", \"indeterminate\", \"progress\", \"trackColor\", \"style\"];\n    var ProgressBar = /* @__PURE__ */ React75.forwardRef((props, ref) => {\n      var _props$color = props.color, color = _props$color === void 0 ? \"#1976D2\" : _props$color, _props$indeterminate = props.indeterminate, indeterminate = _props$indeterminate === void 0 ? false : _props$indeterminate, _props$progress = props.progress, progress = _props$progress === void 0 ? 0 : _props$progress, _props$trackColor = props.trackColor, trackColor = _props$trackColor === void 0 ? \"transparent\" : _props$trackColor, style = props.style, other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);\n      var percentageProgress = progress * 100;\n      var width = indeterminate ? \"25%\" : percentageProgress + \"%\";\n      return /* @__PURE__ */ React75.createElement(_View.default, (0, _extends2.default)({}, other, {\n        \"aria-valuemax\": 100,\n        \"aria-valuemin\": 0,\n        \"aria-valuenow\": indeterminate ? null : percentageProgress,\n        ref,\n        role: \"progressbar\",\n        style: [styles.track, style, {\n          backgroundColor: trackColor\n        }]\n      }), /* @__PURE__ */ React75.createElement(_View.default, {\n        style: [{\n          backgroundColor: color,\n          width\n        }, styles.progress, indeterminate && styles.animation]\n      }));\n    });\n    ProgressBar.displayName = \"ProgressBar\";\n    var styles = _StyleSheet.default.create({\n      track: {\n        forcedColorAdjust: \"none\",\n        height: 5,\n        overflow: \"hidden\",\n        userSelect: \"none\",\n        zIndex: 0\n      },\n      progress: {\n        forcedColorAdjust: \"none\",\n        height: \"100%\",\n        zIndex: -1\n      },\n      animation: {\n        animationDuration: \"1s\",\n        animationKeyframes: [{\n          \"0%\": {\n            transform: \"translateX(-100%)\"\n          },\n          \"100%\": {\n            transform: \"translateX(400%)\"\n          }\n        }],\n        animationTimingFunction: \"linear\",\n        animationIterationCount: \"infinite\"\n      }\n    });\n    var _default = exports2.default = ProgressBar;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/SafeAreaView/index.js\nvar require_SafeAreaView = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/SafeAreaView/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _extends2 = _interopRequireDefault(require_extends());\n    var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var _StyleSheet = _interopRequireDefault(require_StyleSheet());\n    var _View = _interopRequireDefault(require_View());\n    var _canUseDom = _interopRequireDefault(require_canUseDom());\n    var _excluded = [\"style\"];\n    var cssFunction = function() {\n      if (_canUseDom.default && window.CSS && window.CSS.supports && window.CSS.supports(\"top: constant(safe-area-inset-top)\")) {\n        return \"constant\";\n      }\n      return \"env\";\n    }();\n    var SafeAreaView = /* @__PURE__ */ React75.forwardRef((props, ref) => {\n      var style = props.style, rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);\n      return /* @__PURE__ */ React75.createElement(_View.default, (0, _extends2.default)({}, rest, {\n        ref,\n        style: [styles.root, style]\n      }));\n    });\n    SafeAreaView.displayName = \"SafeAreaView\";\n    var styles = _StyleSheet.default.create({\n      root: {\n        paddingTop: cssFunction + \"(safe-area-inset-top)\",\n        paddingRight: cssFunction + \"(safe-area-inset-right)\",\n        paddingBottom: cssFunction + \"(safe-area-inset-bottom)\",\n        paddingLeft: cssFunction + \"(safe-area-inset-left)\"\n      }\n    });\n    var _default = exports2.default = SafeAreaView;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/StatusBar/index.js\nvar require_StatusBar = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/StatusBar/index.js\"(exports2, module2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var emptyFunction = /* @__PURE__ */ __name(() => {\n    }, \"emptyFunction\");\n    function StatusBar() {\n      return null;\n    }\n    __name(StatusBar, \"StatusBar\");\n    StatusBar.setBackgroundColor = emptyFunction;\n    StatusBar.setBarStyle = emptyFunction;\n    StatusBar.setHidden = emptyFunction;\n    StatusBar.setNetworkActivityIndicatorVisible = emptyFunction;\n    StatusBar.setTranslucent = emptyFunction;\n    var _default = exports2.default = StatusBar;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/multiplyStyleLengthValue/index.js\nvar require_multiplyStyleLengthValue = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/multiplyStyleLengthValue/index.js\"(exports2, module2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var CSS_UNIT_RE = /^[+-]?\\d*(?:\\.\\d+)?(?:[Ee][+-]?\\d+)?(%|\\w*)/;\n    var getUnit = /* @__PURE__ */ __name((str) => str.match(CSS_UNIT_RE)[1], \"getUnit\");\n    var isNumeric = /* @__PURE__ */ __name((n) => {\n      return !isNaN(parseFloat(n)) && isFinite(n);\n    }, \"isNumeric\");\n    var multiplyStyleLengthValue = /* @__PURE__ */ __name((value, multiple) => {\n      if (typeof value === \"string\") {\n        var number = parseFloat(value) * multiple;\n        var unit = getUnit(value);\n        return \"\" + number + unit;\n      } else if (isNumeric(value)) {\n        return value * multiple;\n      }\n    }, \"multiplyStyleLengthValue\");\n    var _default = exports2.default = multiplyStyleLengthValue;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/Switch/index.js\nvar require_Switch = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/Switch/index.js\"(exports2, module2) {\n    \"use strict\";\n    \"use client\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _objectSpread2 = _interopRequireDefault(require_objectSpread2());\n    var _extends2 = _interopRequireDefault(require_extends());\n    var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var _createElement = _interopRequireDefault(require_createElement());\n    var _multiplyStyleLengthValue = _interopRequireDefault(require_multiplyStyleLengthValue());\n    var _StyleSheet = _interopRequireDefault(require_StyleSheet());\n    var _View = _interopRequireDefault(require_View());\n    var _excluded = [\"aria-label\", \"accessibilityLabel\", \"activeThumbColor\", \"activeTrackColor\", \"disabled\", \"onValueChange\", \"style\", \"thumbColor\", \"trackColor\", \"value\"];\n    var emptyObject = {};\n    var thumbDefaultBoxShadow = \"0px 1px 3px rgba(0,0,0,0.5)\";\n    var thumbFocusedBoxShadow = thumbDefaultBoxShadow + \", 0 0 0 10px rgba(0,0,0,0.1)\";\n    var defaultActiveTrackColor = \"#A3D3CF\";\n    var defaultTrackColor = \"#939393\";\n    var defaultDisabledTrackColor = \"#D5D5D5\";\n    var defaultActiveThumbColor = \"#009688\";\n    var defaultThumbColor = \"#FAFAFA\";\n    var defaultDisabledThumbColor = \"#BDBDBD\";\n    var Switch2 = /* @__PURE__ */ React75.forwardRef((props, forwardedRef) => {\n      var ariaLabel = props[\"aria-label\"], accessibilityLabel = props.accessibilityLabel, activeThumbColor = props.activeThumbColor, activeTrackColor = props.activeTrackColor, _props$disabled = props.disabled, disabled = _props$disabled === void 0 ? false : _props$disabled, onValueChange = props.onValueChange, _props$style = props.style, style = _props$style === void 0 ? emptyObject : _props$style, thumbColor = props.thumbColor, trackColor = props.trackColor, _props$value = props.value, value = _props$value === void 0 ? false : _props$value, other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);\n      var thumbRef = React75.useRef(null);\n      function handleChange(event) {\n        if (onValueChange != null) {\n          onValueChange(event.nativeEvent.target.checked);\n        }\n      }\n      __name(handleChange, \"handleChange\");\n      function handleFocusState(event) {\n        var isFocused = event.nativeEvent.type === \"focus\";\n        var boxShadow = isFocused ? thumbFocusedBoxShadow : thumbDefaultBoxShadow;\n        if (thumbRef.current != null) {\n          thumbRef.current.style.boxShadow = boxShadow;\n        }\n      }\n      __name(handleFocusState, \"handleFocusState\");\n      var _StyleSheet$flatten = _StyleSheet.default.flatten(style), styleHeight = _StyleSheet$flatten.height, styleWidth = _StyleSheet$flatten.width;\n      var height = styleHeight || \"20px\";\n      var minWidth = (0, _multiplyStyleLengthValue.default)(height, 2);\n      var width = styleWidth > minWidth ? styleWidth : minWidth;\n      var trackBorderRadius = (0, _multiplyStyleLengthValue.default)(height, 0.5);\n      var trackCurrentColor = function() {\n        if (value === true) {\n          if (trackColor != null && typeof trackColor === \"object\") {\n            return trackColor.true;\n          } else {\n            return activeTrackColor !== null && activeTrackColor !== void 0 ? activeTrackColor : defaultActiveTrackColor;\n          }\n        } else {\n          if (trackColor != null && typeof trackColor === \"object\") {\n            return trackColor.false;\n          } else {\n            return trackColor !== null && trackColor !== void 0 ? trackColor : defaultTrackColor;\n          }\n        }\n      }();\n      var thumbCurrentColor = value ? activeThumbColor !== null && activeThumbColor !== void 0 ? activeThumbColor : defaultActiveThumbColor : thumbColor !== null && thumbColor !== void 0 ? thumbColor : defaultThumbColor;\n      var thumbHeight = height;\n      var thumbWidth = thumbHeight;\n      var rootStyle = [styles.root, style, disabled && styles.cursorDefault, {\n        height,\n        width\n      }];\n      var disabledTrackColor = function() {\n        if (value === true) {\n          if (typeof activeTrackColor === \"string\" && activeTrackColor != null || typeof trackColor === \"object\" && trackColor != null && trackColor.true) {\n            return trackCurrentColor;\n          } else {\n            return defaultDisabledTrackColor;\n          }\n        } else {\n          if (typeof trackColor === \"string\" && trackColor != null || typeof trackColor === \"object\" && trackColor != null && trackColor.false) {\n            return trackCurrentColor;\n          } else {\n            return defaultDisabledTrackColor;\n          }\n        }\n      }();\n      var disabledThumbColor = function() {\n        if (value === true) {\n          if (activeThumbColor == null) {\n            return defaultDisabledThumbColor;\n          } else {\n            return thumbCurrentColor;\n          }\n        } else {\n          if (thumbColor == null) {\n            return defaultDisabledThumbColor;\n          } else {\n            return thumbCurrentColor;\n          }\n        }\n      }();\n      var trackStyle = [styles.track, {\n        backgroundColor: disabled ? disabledTrackColor : trackCurrentColor,\n        borderRadius: trackBorderRadius\n      }];\n      var thumbStyle = [styles.thumb, value && styles.thumbActive, {\n        backgroundColor: disabled ? disabledThumbColor : thumbCurrentColor,\n        height: thumbHeight,\n        marginStart: value ? (0, _multiplyStyleLengthValue.default)(thumbWidth, -1) : 0,\n        width: thumbWidth\n      }];\n      var nativeControl = (0, _createElement.default)(\"input\", {\n        \"aria-label\": ariaLabel || accessibilityLabel,\n        checked: value,\n        disabled,\n        onBlur: handleFocusState,\n        onChange: handleChange,\n        onFocus: handleFocusState,\n        ref: forwardedRef,\n        style: [styles.nativeControl, styles.cursorInherit],\n        type: \"checkbox\",\n        role: \"switch\"\n      });\n      return /* @__PURE__ */ React75.createElement(_View.default, (0, _extends2.default)({}, other, {\n        style: rootStyle\n      }), /* @__PURE__ */ React75.createElement(_View.default, {\n        style: trackStyle\n      }), /* @__PURE__ */ React75.createElement(_View.default, {\n        ref: thumbRef,\n        style: thumbStyle\n      }), nativeControl);\n    });\n    Switch2.displayName = \"Switch\";\n    var styles = _StyleSheet.default.create({\n      root: {\n        cursor: \"pointer\",\n        userSelect: \"none\"\n      },\n      cursorDefault: {\n        cursor: \"default\"\n      },\n      cursorInherit: {\n        cursor: \"inherit\"\n      },\n      track: (0, _objectSpread2.default)((0, _objectSpread2.default)({\n        forcedColorAdjust: \"none\"\n      }, _StyleSheet.default.absoluteFillObject), {}, {\n        height: \"70%\",\n        margin: \"auto\",\n        transitionDuration: \"0.1s\",\n        width: \"100%\"\n      }),\n      thumb: {\n        forcedColorAdjust: \"none\",\n        alignSelf: \"flex-start\",\n        borderRadius: \"100%\",\n        boxShadow: thumbDefaultBoxShadow,\n        start: \"0%\",\n        transform: \"translateZ(0)\",\n        transitionDuration: \"0.1s\"\n      },\n      thumbActive: {\n        insetInlineStart: \"100%\"\n      },\n      nativeControl: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, _StyleSheet.default.absoluteFillObject), {}, {\n        height: \"100%\",\n        margin: 0,\n        appearance: \"none\",\n        padding: 0,\n        width: \"100%\"\n      })\n    });\n    var _default = exports2.default = Switch2;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/TextInput/index.js\nvar require_TextInput = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/TextInput/index.js\"(exports2, module2) {\n    \"use strict\";\n    \"use client\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var _createElement = _interopRequireDefault(require_createElement());\n    var forwardedProps = _interopRequireWildcard(require_forwardedProps());\n    var _pick = _interopRequireDefault(require_pick());\n    var _useElementLayout = _interopRequireDefault(require_useElementLayout());\n    var _useLayoutEffect = _interopRequireDefault(require_useLayoutEffect());\n    var _useMergeRefs = _interopRequireDefault(require_useMergeRefs());\n    var _usePlatformMethods = _interopRequireDefault(require_usePlatformMethods());\n    var _useResponderEvents = _interopRequireDefault(require_useResponderEvents());\n    var _useLocale = require_useLocale();\n    var _StyleSheet = _interopRequireDefault(require_StyleSheet());\n    var _TextInputState = _interopRequireDefault(require_TextInputState());\n    var isSelectionStale = /* @__PURE__ */ __name((node, selection) => {\n      var selectionEnd = node.selectionEnd, selectionStart = node.selectionStart;\n      var start = selection.start, end = selection.end;\n      return start !== selectionStart || end !== selectionEnd;\n    }, \"isSelectionStale\");\n    var setSelection = /* @__PURE__ */ __name((node, selection) => {\n      if (isSelectionStale(node, selection)) {\n        var start = selection.start, end = selection.end;\n        try {\n          node.setSelectionRange(start, end || start);\n        } catch (e) {\n        }\n      }\n    }, \"setSelection\");\n    var forwardPropsList = Object.assign({}, forwardedProps.defaultProps, forwardedProps.accessibilityProps, forwardedProps.clickProps, forwardedProps.focusProps, forwardedProps.keyboardProps, forwardedProps.mouseProps, forwardedProps.touchProps, forwardedProps.styleProps, {\n      autoCapitalize: true,\n      autoComplete: true,\n      autoCorrect: true,\n      autoFocus: true,\n      defaultValue: true,\n      disabled: true,\n      lang: true,\n      maxLength: true,\n      onChange: true,\n      onScroll: true,\n      placeholder: true,\n      pointerEvents: true,\n      readOnly: true,\n      rows: true,\n      spellCheck: true,\n      value: true,\n      type: true\n    });\n    var pickProps = /* @__PURE__ */ __name((props) => (0, _pick.default)(props, forwardPropsList), \"pickProps\");\n    function isEventComposing(nativeEvent) {\n      return nativeEvent.isComposing || nativeEvent.keyCode === 229;\n    }\n    __name(isEventComposing, \"isEventComposing\");\n    var focusTimeout = null;\n    var TextInput2 = /* @__PURE__ */ React75.forwardRef((props, forwardedRef) => {\n      var _props$autoCapitalize = props.autoCapitalize, autoCapitalize = _props$autoCapitalize === void 0 ? \"sentences\" : _props$autoCapitalize, autoComplete = props.autoComplete, autoCompleteType = props.autoCompleteType, _props$autoCorrect = props.autoCorrect, autoCorrect = _props$autoCorrect === void 0 ? true : _props$autoCorrect, blurOnSubmit = props.blurOnSubmit, caretHidden = props.caretHidden, clearTextOnFocus = props.clearTextOnFocus, dir = props.dir, editable = props.editable, enterKeyHint = props.enterKeyHint, inputMode = props.inputMode, keyboardType = props.keyboardType, _props$multiline = props.multiline, multiline = _props$multiline === void 0 ? false : _props$multiline, numberOfLines = props.numberOfLines, onBlur = props.onBlur, onChange = props.onChange, onChangeText = props.onChangeText, onContentSizeChange = props.onContentSizeChange, onFocus = props.onFocus, onKeyPress = props.onKeyPress, onLayout = props.onLayout, onMoveShouldSetResponder = props.onMoveShouldSetResponder, onMoveShouldSetResponderCapture = props.onMoveShouldSetResponderCapture, onResponderEnd = props.onResponderEnd, onResponderGrant = props.onResponderGrant, onResponderMove = props.onResponderMove, onResponderReject = props.onResponderReject, onResponderRelease = props.onResponderRelease, onResponderStart = props.onResponderStart, onResponderTerminate = props.onResponderTerminate, onResponderTerminationRequest = props.onResponderTerminationRequest, onScrollShouldSetResponder = props.onScrollShouldSetResponder, onScrollShouldSetResponderCapture = props.onScrollShouldSetResponderCapture, onSelectionChange = props.onSelectionChange, onSelectionChangeShouldSetResponder = props.onSelectionChangeShouldSetResponder, onSelectionChangeShouldSetResponderCapture = props.onSelectionChangeShouldSetResponderCapture, onStartShouldSetResponder = props.onStartShouldSetResponder, onStartShouldSetResponderCapture = props.onStartShouldSetResponderCapture, onSubmitEditing = props.onSubmitEditing, placeholderTextColor = props.placeholderTextColor, _props$readOnly = props.readOnly, readOnly = _props$readOnly === void 0 ? false : _props$readOnly, returnKeyType = props.returnKeyType, rows = props.rows, _props$secureTextEntr = props.secureTextEntry, secureTextEntry = _props$secureTextEntr === void 0 ? false : _props$secureTextEntr, selection = props.selection, selectTextOnFocus = props.selectTextOnFocus, showSoftInputOnFocus = props.showSoftInputOnFocus, spellCheck = props.spellCheck;\n      var type;\n      var _inputMode;\n      if (inputMode != null) {\n        _inputMode = inputMode;\n        if (inputMode === \"email\") {\n          type = \"email\";\n        } else if (inputMode === \"tel\") {\n          type = \"tel\";\n        } else if (inputMode === \"search\") {\n          type = \"search\";\n        } else if (inputMode === \"url\") {\n          type = \"url\";\n        } else {\n          type = \"text\";\n        }\n      } else if (keyboardType != null) {\n        switch (keyboardType) {\n          case \"email-address\":\n            type = \"email\";\n            break;\n          case \"number-pad\":\n          case \"numeric\":\n            _inputMode = \"numeric\";\n            break;\n          case \"decimal-pad\":\n            _inputMode = \"decimal\";\n            break;\n          case \"phone-pad\":\n            type = \"tel\";\n            break;\n          case \"search\":\n          case \"web-search\":\n            type = \"search\";\n            break;\n          case \"url\":\n            type = \"url\";\n            break;\n          default:\n            type = \"text\";\n        }\n      }\n      if (secureTextEntry) {\n        type = \"password\";\n      }\n      var dimensions = React75.useRef({\n        height: null,\n        width: null\n      });\n      var hostRef = React75.useRef(null);\n      var prevSelection = React75.useRef(null);\n      var prevSecureTextEntry = React75.useRef(false);\n      React75.useEffect(() => {\n        if (hostRef.current && prevSelection.current) {\n          setSelection(hostRef.current, prevSelection.current);\n        }\n        prevSecureTextEntry.current = secureTextEntry;\n      }, [secureTextEntry]);\n      var handleContentSizeChange = React75.useCallback((hostNode) => {\n        if (multiline && onContentSizeChange && hostNode != null) {\n          var newHeight = hostNode.scrollHeight;\n          var newWidth = hostNode.scrollWidth;\n          if (newHeight !== dimensions.current.height || newWidth !== dimensions.current.width) {\n            dimensions.current.height = newHeight;\n            dimensions.current.width = newWidth;\n            onContentSizeChange({\n              nativeEvent: {\n                contentSize: {\n                  height: dimensions.current.height,\n                  width: dimensions.current.width\n                }\n              }\n            });\n          }\n        }\n      }, [multiline, onContentSizeChange]);\n      var imperativeRef = React75.useMemo(() => (hostNode) => {\n        if (hostNode != null) {\n          hostNode.clear = function() {\n            if (hostNode != null) {\n              hostNode.value = \"\";\n            }\n          };\n          hostNode.isFocused = function() {\n            return hostNode != null && _TextInputState.default.currentlyFocusedField() === hostNode;\n          };\n          handleContentSizeChange(hostNode);\n        }\n      }, [handleContentSizeChange]);\n      function handleBlur(e) {\n        _TextInputState.default._currentlyFocusedNode = null;\n        if (onBlur) {\n          e.nativeEvent.text = e.target.value;\n          onBlur(e);\n        }\n      }\n      __name(handleBlur, \"handleBlur\");\n      function handleChange(e) {\n        var hostNode = e.target;\n        var text = hostNode.value;\n        e.nativeEvent.text = text;\n        handleContentSizeChange(hostNode);\n        if (onChange) {\n          onChange(e);\n        }\n        if (onChangeText) {\n          onChangeText(text);\n        }\n      }\n      __name(handleChange, \"handleChange\");\n      function handleFocus(e) {\n        var hostNode = e.target;\n        if (onFocus) {\n          e.nativeEvent.text = hostNode.value;\n          onFocus(e);\n        }\n        if (hostNode != null) {\n          _TextInputState.default._currentlyFocusedNode = hostNode;\n          if (clearTextOnFocus) {\n            hostNode.value = \"\";\n          }\n          if (selectTextOnFocus) {\n            if (focusTimeout != null) {\n              clearTimeout(focusTimeout);\n            }\n            focusTimeout = setTimeout(() => {\n              if (hostNode != null && document.activeElement === hostNode) {\n                hostNode.select();\n              }\n            }, 0);\n          }\n        }\n      }\n      __name(handleFocus, \"handleFocus\");\n      function handleKeyDown(e) {\n        var hostNode = e.target;\n        e.stopPropagation();\n        var blurOnSubmitDefault = !multiline;\n        var shouldBlurOnSubmit = blurOnSubmit == null ? blurOnSubmitDefault : blurOnSubmit;\n        var nativeEvent = e.nativeEvent;\n        var isComposing = isEventComposing(nativeEvent);\n        if (onKeyPress) {\n          onKeyPress(e);\n        }\n        if (e.key === \"Enter\" && !e.shiftKey && // Do not call submit if composition is occuring.\n        !isComposing && !e.isDefaultPrevented()) {\n          if ((blurOnSubmit || !multiline) && onSubmitEditing) {\n            e.preventDefault();\n            nativeEvent.text = e.target.value;\n            onSubmitEditing(e);\n          }\n          if (shouldBlurOnSubmit && hostNode != null) {\n            setTimeout(() => hostNode.blur(), 0);\n          }\n        }\n      }\n      __name(handleKeyDown, \"handleKeyDown\");\n      function handleSelectionChange(e) {\n        try {\n          var _e$target = e.target, selectionStart = _e$target.selectionStart, selectionEnd = _e$target.selectionEnd;\n          var _selection = {\n            start: selectionStart,\n            end: selectionEnd\n          };\n          if (onSelectionChange) {\n            e.nativeEvent.selection = _selection;\n            e.nativeEvent.text = e.target.value;\n            onSelectionChange(e);\n          }\n          if (prevSecureTextEntry.current === secureTextEntry) {\n            prevSelection.current = _selection;\n          }\n        } catch (e2) {\n        }\n      }\n      __name(handleSelectionChange, \"handleSelectionChange\");\n      (0, _useLayoutEffect.default)(() => {\n        var node = hostRef.current;\n        if (node != null && selection != null) {\n          setSelection(node, selection);\n        }\n        if (document.activeElement === node) {\n          _TextInputState.default._currentlyFocusedNode = node;\n        }\n      }, [hostRef, selection]);\n      var component = multiline ? \"textarea\" : \"input\";\n      (0, _useElementLayout.default)(hostRef, onLayout);\n      (0, _useResponderEvents.default)(hostRef, {\n        onMoveShouldSetResponder,\n        onMoveShouldSetResponderCapture,\n        onResponderEnd,\n        onResponderGrant,\n        onResponderMove,\n        onResponderReject,\n        onResponderRelease,\n        onResponderStart,\n        onResponderTerminate,\n        onResponderTerminationRequest,\n        onScrollShouldSetResponder,\n        onScrollShouldSetResponderCapture,\n        onSelectionChangeShouldSetResponder,\n        onSelectionChangeShouldSetResponderCapture,\n        onStartShouldSetResponder,\n        onStartShouldSetResponderCapture\n      });\n      var _useLocaleContext = (0, _useLocale.useLocaleContext)(), contextDirection = _useLocaleContext.direction;\n      var supportedProps = pickProps(props);\n      supportedProps.autoCapitalize = autoCapitalize;\n      supportedProps.autoComplete = autoComplete || autoCompleteType || \"on\";\n      supportedProps.autoCorrect = autoCorrect ? \"on\" : \"off\";\n      supportedProps.dir = dir !== void 0 ? dir : \"auto\";\n      supportedProps.enterKeyHint = enterKeyHint || returnKeyType;\n      supportedProps.inputMode = _inputMode;\n      supportedProps.onBlur = handleBlur;\n      supportedProps.onChange = handleChange;\n      supportedProps.onFocus = handleFocus;\n      supportedProps.onKeyDown = handleKeyDown;\n      supportedProps.onSelect = handleSelectionChange;\n      supportedProps.readOnly = readOnly === true || editable === false;\n      supportedProps.rows = multiline ? rows != null ? rows : numberOfLines : 1;\n      supportedProps.spellCheck = spellCheck != null ? spellCheck : autoCorrect;\n      supportedProps.style = [{\n        \"--placeholderTextColor\": placeholderTextColor\n      }, styles.textinput$raw, styles.placeholder, props.style, caretHidden && styles.caretHidden];\n      supportedProps.type = multiline ? void 0 : type;\n      supportedProps.virtualkeyboardpolicy = showSoftInputOnFocus === false ? \"manual\" : \"auto\";\n      var platformMethodsRef = (0, _usePlatformMethods.default)(supportedProps);\n      var setRef2 = (0, _useMergeRefs.default)(hostRef, platformMethodsRef, imperativeRef, forwardedRef);\n      supportedProps.ref = setRef2;\n      var langDirection = props.lang != null ? (0, _useLocale.getLocaleDirection)(props.lang) : null;\n      var componentDirection = props.dir || langDirection;\n      var writingDirection = componentDirection || contextDirection;\n      var element = (0, _createElement.default)(component, supportedProps, {\n        writingDirection\n      });\n      return element;\n    });\n    TextInput2.displayName = \"TextInput\";\n    TextInput2.State = _TextInputState.default;\n    var styles = _StyleSheet.default.create({\n      textinput$raw: {\n        MozAppearance: \"textfield\",\n        WebkitAppearance: \"none\",\n        backgroundColor: \"transparent\",\n        border: \"0 solid black\",\n        borderRadius: 0,\n        boxSizing: \"border-box\",\n        font: \"14px System\",\n        margin: 0,\n        padding: 0,\n        resize: \"none\"\n      },\n      placeholder: {\n        placeholderTextColor: \"var(--placeholderTextColor)\"\n      },\n      caretHidden: {\n        caretColor: \"transparent\"\n      }\n    });\n    var _default = exports2.default = TextInput2;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/vendor/react-native/PooledClass/index.js\nvar require_PooledClass = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/vendor/react-native/PooledClass/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _invariant = _interopRequireDefault(require_invariant());\n    var twoArgumentPooler = /* @__PURE__ */ __name(function twoArgumentPooler2(a1, a2) {\n      var Klass = this;\n      if (Klass.instancePool.length) {\n        var instance = Klass.instancePool.pop();\n        Klass.call(instance, a1, a2);\n        return instance;\n      } else {\n        return new Klass(a1, a2);\n      }\n    }, \"twoArgumentPooler\");\n    var standardReleaser = /* @__PURE__ */ __name(function standardReleaser2(instance) {\n      var Klass = this;\n      instance.destructor();\n      if (Klass.instancePool.length < Klass.poolSize) {\n        Klass.instancePool.push(instance);\n      }\n    }, \"standardReleaser\");\n    var DEFAULT_POOL_SIZE = 10;\n    var DEFAULT_POOLER = twoArgumentPooler;\n    var addPoolingTo = /* @__PURE__ */ __name(function addPoolingTo2(CopyConstructor, pooler) {\n      var NewKlass = CopyConstructor;\n      NewKlass.instancePool = [];\n      NewKlass.getPooled = pooler || DEFAULT_POOLER;\n      if (!NewKlass.poolSize) {\n        NewKlass.poolSize = DEFAULT_POOL_SIZE;\n      }\n      NewKlass.release = standardReleaser;\n      return NewKlass;\n    }, \"addPoolingTo\");\n    var PooledClass = {\n      addPoolingTo,\n      twoArgumentPooler\n    };\n    var _default = exports2.default = PooledClass;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/Touchable/BoundingDimensions.js\nvar require_BoundingDimensions = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/Touchable/BoundingDimensions.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _PooledClass = _interopRequireDefault(require_PooledClass());\n    var twoArgumentPooler = _PooledClass.default.twoArgumentPooler;\n    function BoundingDimensions(width, height) {\n      this.width = width;\n      this.height = height;\n    }\n    __name(BoundingDimensions, \"BoundingDimensions\");\n    BoundingDimensions.prototype.destructor = function() {\n      this.width = null;\n      this.height = null;\n    };\n    BoundingDimensions.getPooledFromElement = function(element) {\n      return BoundingDimensions.getPooled(element.offsetWidth, element.offsetHeight);\n    };\n    _PooledClass.default.addPoolingTo(BoundingDimensions, twoArgumentPooler);\n    var _default = exports2.default = BoundingDimensions;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/Touchable/Position.js\nvar require_Position = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/Touchable/Position.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _PooledClass = _interopRequireDefault(require_PooledClass());\n    var twoArgumentPooler = _PooledClass.default.twoArgumentPooler;\n    function Position(left, top) {\n      this.left = left;\n      this.top = top;\n    }\n    __name(Position, \"Position\");\n    Position.prototype.destructor = function() {\n      this.left = null;\n      this.top = null;\n    };\n    _PooledClass.default.addPoolingTo(Position, twoArgumentPooler);\n    var _default = exports2.default = Position;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/Touchable/index.js\nvar require_Touchable = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/Touchable/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());\n    var _objectSpread2 = _interopRequireDefault(require_objectSpread2());\n    var _AccessibilityUtil = _interopRequireDefault(require_AccessibilityUtil());\n    var _BoundingDimensions = _interopRequireDefault(require_BoundingDimensions());\n    var _normalizeColors = _interopRequireDefault(require_normalize_colors());\n    var _Position = _interopRequireDefault(require_Position());\n    var _react = _interopRequireDefault(require(\"react\"));\n    var _UIManager = _interopRequireDefault(require_UIManager());\n    var _View = _interopRequireDefault(require_View());\n    var _warnOnce = require_warnOnce();\n    var extractSingleTouch = /* @__PURE__ */ __name((nativeEvent) => {\n      var touches = nativeEvent.touches;\n      var changedTouches = nativeEvent.changedTouches;\n      var hasTouches = touches && touches.length > 0;\n      var hasChangedTouches = changedTouches && changedTouches.length > 0;\n      return !hasTouches && hasChangedTouches ? changedTouches[0] : hasTouches ? touches[0] : nativeEvent;\n    }, \"extractSingleTouch\");\n    var States = {\n      NOT_RESPONDER: \"NOT_RESPONDER\",\n      // Not the responder\n      RESPONDER_INACTIVE_PRESS_IN: \"RESPONDER_INACTIVE_PRESS_IN\",\n      // Responder, inactive, in the `PressRect`\n      RESPONDER_INACTIVE_PRESS_OUT: \"RESPONDER_INACTIVE_PRESS_OUT\",\n      // Responder, inactive, out of `PressRect`\n      RESPONDER_ACTIVE_PRESS_IN: \"RESPONDER_ACTIVE_PRESS_IN\",\n      // Responder, active, in the `PressRect`\n      RESPONDER_ACTIVE_PRESS_OUT: \"RESPONDER_ACTIVE_PRESS_OUT\",\n      // Responder, active, out of `PressRect`\n      RESPONDER_ACTIVE_LONG_PRESS_IN: \"RESPONDER_ACTIVE_LONG_PRESS_IN\",\n      // Responder, active, in the `PressRect`, after long press threshold\n      RESPONDER_ACTIVE_LONG_PRESS_OUT: \"RESPONDER_ACTIVE_LONG_PRESS_OUT\",\n      // Responder, active, out of `PressRect`, after long press threshold\n      ERROR: \"ERROR\"\n    };\n    var baseStatesConditions = {\n      NOT_RESPONDER: false,\n      RESPONDER_INACTIVE_PRESS_IN: false,\n      RESPONDER_INACTIVE_PRESS_OUT: false,\n      RESPONDER_ACTIVE_PRESS_IN: false,\n      RESPONDER_ACTIVE_PRESS_OUT: false,\n      RESPONDER_ACTIVE_LONG_PRESS_IN: false,\n      RESPONDER_ACTIVE_LONG_PRESS_OUT: false,\n      ERROR: false\n    };\n    var IsActive = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, baseStatesConditions), {}, {\n      RESPONDER_ACTIVE_PRESS_OUT: true,\n      RESPONDER_ACTIVE_PRESS_IN: true\n    });\n    var IsPressingIn = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, baseStatesConditions), {}, {\n      RESPONDER_INACTIVE_PRESS_IN: true,\n      RESPONDER_ACTIVE_PRESS_IN: true,\n      RESPONDER_ACTIVE_LONG_PRESS_IN: true\n    });\n    var IsLongPressingIn = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, baseStatesConditions), {}, {\n      RESPONDER_ACTIVE_LONG_PRESS_IN: true\n    });\n    var Signals = {\n      DELAY: \"DELAY\",\n      RESPONDER_GRANT: \"RESPONDER_GRANT\",\n      RESPONDER_RELEASE: \"RESPONDER_RELEASE\",\n      RESPONDER_TERMINATED: \"RESPONDER_TERMINATED\",\n      ENTER_PRESS_RECT: \"ENTER_PRESS_RECT\",\n      LEAVE_PRESS_RECT: \"LEAVE_PRESS_RECT\",\n      LONG_PRESS_DETECTED: \"LONG_PRESS_DETECTED\"\n    };\n    var Transitions = {\n      NOT_RESPONDER: {\n        DELAY: States.ERROR,\n        RESPONDER_GRANT: States.RESPONDER_INACTIVE_PRESS_IN,\n        RESPONDER_RELEASE: States.ERROR,\n        RESPONDER_TERMINATED: States.ERROR,\n        ENTER_PRESS_RECT: States.ERROR,\n        LEAVE_PRESS_RECT: States.ERROR,\n        LONG_PRESS_DETECTED: States.ERROR\n      },\n      RESPONDER_INACTIVE_PRESS_IN: {\n        DELAY: States.RESPONDER_ACTIVE_PRESS_IN,\n        RESPONDER_GRANT: States.ERROR,\n        RESPONDER_RELEASE: States.NOT_RESPONDER,\n        RESPONDER_TERMINATED: States.NOT_RESPONDER,\n        ENTER_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_IN,\n        LEAVE_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_OUT,\n        LONG_PRESS_DETECTED: States.ERROR\n      },\n      RESPONDER_INACTIVE_PRESS_OUT: {\n        DELAY: States.RESPONDER_ACTIVE_PRESS_OUT,\n        RESPONDER_GRANT: States.ERROR,\n        RESPONDER_RELEASE: States.NOT_RESPONDER,\n        RESPONDER_TERMINATED: States.NOT_RESPONDER,\n        ENTER_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_IN,\n        LEAVE_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_OUT,\n        LONG_PRESS_DETECTED: States.ERROR\n      },\n      RESPONDER_ACTIVE_PRESS_IN: {\n        DELAY: States.ERROR,\n        RESPONDER_GRANT: States.ERROR,\n        RESPONDER_RELEASE: States.NOT_RESPONDER,\n        RESPONDER_TERMINATED: States.NOT_RESPONDER,\n        ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_IN,\n        LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_OUT,\n        LONG_PRESS_DETECTED: States.RESPONDER_ACTIVE_LONG_PRESS_IN\n      },\n      RESPONDER_ACTIVE_PRESS_OUT: {\n        DELAY: States.ERROR,\n        RESPONDER_GRANT: States.ERROR,\n        RESPONDER_RELEASE: States.NOT_RESPONDER,\n        RESPONDER_TERMINATED: States.NOT_RESPONDER,\n        ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_IN,\n        LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_OUT,\n        LONG_PRESS_DETECTED: States.ERROR\n      },\n      RESPONDER_ACTIVE_LONG_PRESS_IN: {\n        DELAY: States.ERROR,\n        RESPONDER_GRANT: States.ERROR,\n        RESPONDER_RELEASE: States.NOT_RESPONDER,\n        RESPONDER_TERMINATED: States.NOT_RESPONDER,\n        ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_IN,\n        LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_OUT,\n        LONG_PRESS_DETECTED: States.RESPONDER_ACTIVE_LONG_PRESS_IN\n      },\n      RESPONDER_ACTIVE_LONG_PRESS_OUT: {\n        DELAY: States.ERROR,\n        RESPONDER_GRANT: States.ERROR,\n        RESPONDER_RELEASE: States.NOT_RESPONDER,\n        RESPONDER_TERMINATED: States.NOT_RESPONDER,\n        ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_IN,\n        LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_OUT,\n        LONG_PRESS_DETECTED: States.ERROR\n      },\n      error: {\n        DELAY: States.NOT_RESPONDER,\n        RESPONDER_GRANT: States.RESPONDER_INACTIVE_PRESS_IN,\n        RESPONDER_RELEASE: States.NOT_RESPONDER,\n        RESPONDER_TERMINATED: States.NOT_RESPONDER,\n        ENTER_PRESS_RECT: States.NOT_RESPONDER,\n        LEAVE_PRESS_RECT: States.NOT_RESPONDER,\n        LONG_PRESS_DETECTED: States.NOT_RESPONDER\n      }\n    };\n    var HIGHLIGHT_DELAY_MS = 130;\n    var PRESS_EXPAND_PX = 20;\n    var LONG_PRESS_THRESHOLD = 500;\n    var LONG_PRESS_DELAY_MS = LONG_PRESS_THRESHOLD - HIGHLIGHT_DELAY_MS;\n    var LONG_PRESS_ALLOWED_MOVEMENT = 10;\n    var TouchableMixin = {\n      // HACK (part 1): basic support for touchable interactions using a keyboard\n      componentDidMount: /* @__PURE__ */ __name(function componentDidMount() {\n        (0, _warnOnce.warnOnce)(\"TouchableMixin\", \"TouchableMixin is deprecated. Please use Pressable.\");\n        var touchableNode = this.getTouchableNode && this.getTouchableNode();\n        if (touchableNode && touchableNode.addEventListener) {\n          this._touchableBlurListener = (e) => {\n            if (this._isTouchableKeyboardActive) {\n              if (this.state.touchable.touchState && this.state.touchable.touchState !== States.NOT_RESPONDER) {\n                this.touchableHandleResponderTerminate({\n                  nativeEvent: e\n                });\n              }\n              this._isTouchableKeyboardActive = false;\n            }\n          };\n          touchableNode.addEventListener(\"blur\", this._touchableBlurListener);\n        }\n      }, \"componentDidMount\"),\n      /**\n       * Clear all timeouts on unmount\n       */\n      componentWillUnmount: /* @__PURE__ */ __name(function componentWillUnmount() {\n        var touchableNode = this.getTouchableNode && this.getTouchableNode();\n        if (touchableNode && touchableNode.addEventListener) {\n          touchableNode.removeEventListener(\"blur\", this._touchableBlurListener);\n        }\n        this.touchableDelayTimeout && clearTimeout(this.touchableDelayTimeout);\n        this.longPressDelayTimeout && clearTimeout(this.longPressDelayTimeout);\n        this.pressOutDelayTimeout && clearTimeout(this.pressOutDelayTimeout);\n        this.pressInLocation = null;\n        this.state.touchable.responderID = null;\n      }, \"componentWillUnmount\"),\n      /**\n       * It's prefer that mixins determine state in this way, having the class\n       * explicitly mix the state in the one and only `getInitialState` method.\n       *\n       * @return {object} State object to be placed inside of\n       * `this.state.touchable`.\n       */\n      touchableGetInitialState: /* @__PURE__ */ __name(function touchableGetInitialState() {\n        return {\n          touchable: {\n            touchState: void 0,\n            responderID: null\n          }\n        };\n      }, \"touchableGetInitialState\"),\n      // ==== Hooks to Gesture Responder system ====\n      /**\n       * Must return true if embedded in a native platform scroll view.\n       */\n      touchableHandleResponderTerminationRequest: /* @__PURE__ */ __name(function touchableHandleResponderTerminationRequest() {\n        return !this.props.rejectResponderTermination;\n      }, \"touchableHandleResponderTerminationRequest\"),\n      /**\n       * Must return true to start the process of `Touchable`.\n       */\n      touchableHandleStartShouldSetResponder: /* @__PURE__ */ __name(function touchableHandleStartShouldSetResponder() {\n        return !this.props.disabled;\n      }, \"touchableHandleStartShouldSetResponder\"),\n      /**\n       * Return true to cancel press on long press.\n       */\n      touchableLongPressCancelsPress: /* @__PURE__ */ __name(function touchableLongPressCancelsPress() {\n        return true;\n      }, \"touchableLongPressCancelsPress\"),\n      /**\n       * Place as callback for a DOM element's `onResponderGrant` event.\n       * @param {SyntheticEvent} e Synthetic event from event system.\n       *\n       */\n      touchableHandleResponderGrant: /* @__PURE__ */ __name(function touchableHandleResponderGrant(e) {\n        var dispatchID = e.currentTarget;\n        e.persist();\n        this.pressOutDelayTimeout && clearTimeout(this.pressOutDelayTimeout);\n        this.pressOutDelayTimeout = null;\n        this.state.touchable.touchState = States.NOT_RESPONDER;\n        this.state.touchable.responderID = dispatchID;\n        this._receiveSignal(Signals.RESPONDER_GRANT, e);\n        var delayMS = this.touchableGetHighlightDelayMS !== void 0 ? Math.max(this.touchableGetHighlightDelayMS(), 0) : HIGHLIGHT_DELAY_MS;\n        delayMS = isNaN(delayMS) ? HIGHLIGHT_DELAY_MS : delayMS;\n        if (delayMS !== 0) {\n          this.touchableDelayTimeout = setTimeout(this._handleDelay.bind(this, e), delayMS);\n        } else {\n          this._handleDelay(e);\n        }\n        var longDelayMS = this.touchableGetLongPressDelayMS !== void 0 ? Math.max(this.touchableGetLongPressDelayMS(), 10) : LONG_PRESS_DELAY_MS;\n        longDelayMS = isNaN(longDelayMS) ? LONG_PRESS_DELAY_MS : longDelayMS;\n        this.longPressDelayTimeout = setTimeout(this._handleLongDelay.bind(this, e), longDelayMS + delayMS);\n      }, \"touchableHandleResponderGrant\"),\n      /**\n       * Place as callback for a DOM element's `onResponderRelease` event.\n       */\n      touchableHandleResponderRelease: /* @__PURE__ */ __name(function touchableHandleResponderRelease(e) {\n        this.pressInLocation = null;\n        this._receiveSignal(Signals.RESPONDER_RELEASE, e);\n      }, \"touchableHandleResponderRelease\"),\n      /**\n       * Place as callback for a DOM element's `onResponderTerminate` event.\n       */\n      touchableHandleResponderTerminate: /* @__PURE__ */ __name(function touchableHandleResponderTerminate(e) {\n        this.pressInLocation = null;\n        this._receiveSignal(Signals.RESPONDER_TERMINATED, e);\n      }, \"touchableHandleResponderTerminate\"),\n      /**\n       * Place as callback for a DOM element's `onResponderMove` event.\n       */\n      touchableHandleResponderMove: /* @__PURE__ */ __name(function touchableHandleResponderMove(e) {\n        if (!this.state.touchable.positionOnActivate) {\n          return;\n        }\n        var positionOnActivate = this.state.touchable.positionOnActivate;\n        var dimensionsOnActivate = this.state.touchable.dimensionsOnActivate;\n        var pressRectOffset = this.touchableGetPressRectOffset ? this.touchableGetPressRectOffset() : {\n          left: PRESS_EXPAND_PX,\n          right: PRESS_EXPAND_PX,\n          top: PRESS_EXPAND_PX,\n          bottom: PRESS_EXPAND_PX\n        };\n        var pressExpandLeft = pressRectOffset.left;\n        var pressExpandTop = pressRectOffset.top;\n        var pressExpandRight = pressRectOffset.right;\n        var pressExpandBottom = pressRectOffset.bottom;\n        var hitSlop = this.touchableGetHitSlop ? this.touchableGetHitSlop() : null;\n        if (hitSlop) {\n          pressExpandLeft += hitSlop.left || 0;\n          pressExpandTop += hitSlop.top || 0;\n          pressExpandRight += hitSlop.right || 0;\n          pressExpandBottom += hitSlop.bottom || 0;\n        }\n        var touch = extractSingleTouch(e.nativeEvent);\n        var pageX = touch && touch.pageX;\n        var pageY = touch && touch.pageY;\n        if (this.pressInLocation) {\n          var movedDistance = this._getDistanceBetweenPoints(pageX, pageY, this.pressInLocation.pageX, this.pressInLocation.pageY);\n          if (movedDistance > LONG_PRESS_ALLOWED_MOVEMENT) {\n            this._cancelLongPressDelayTimeout();\n          }\n        }\n        var isTouchWithinActive = pageX > positionOnActivate.left - pressExpandLeft && pageY > positionOnActivate.top - pressExpandTop && pageX < positionOnActivate.left + dimensionsOnActivate.width + pressExpandRight && pageY < positionOnActivate.top + dimensionsOnActivate.height + pressExpandBottom;\n        if (isTouchWithinActive) {\n          var prevState = this.state.touchable.touchState;\n          this._receiveSignal(Signals.ENTER_PRESS_RECT, e);\n          var curState = this.state.touchable.touchState;\n          if (curState === States.RESPONDER_INACTIVE_PRESS_IN && prevState !== States.RESPONDER_INACTIVE_PRESS_IN) {\n            this._cancelLongPressDelayTimeout();\n          }\n        } else {\n          this._cancelLongPressDelayTimeout();\n          this._receiveSignal(Signals.LEAVE_PRESS_RECT, e);\n        }\n      }, \"touchableHandleResponderMove\"),\n      /**\n       * Invoked when the item receives focus. Mixers might override this to\n       * visually distinguish the `VisualRect` so that the user knows that it\n       * currently has the focus. Most platforms only support a single element being\n       * focused at a time, in which case there may have been a previously focused\n       * element that was blurred just prior to this. This can be overridden when\n       * using `Touchable.Mixin.withoutDefaultFocusAndBlur`.\n       */\n      touchableHandleFocus: /* @__PURE__ */ __name(function touchableHandleFocus2(e) {\n        this.props.onFocus && this.props.onFocus(e);\n      }, \"touchableHandleFocus\"),\n      /**\n       * Invoked when the item loses focus. Mixers might override this to\n       * visually distinguish the `VisualRect` so that the user knows that it\n       * no longer has focus. Most platforms only support a single element being\n       * focused at a time, in which case the focus may have moved to another.\n       * This can be overridden when using\n       * `Touchable.Mixin.withoutDefaultFocusAndBlur`.\n       */\n      touchableHandleBlur: /* @__PURE__ */ __name(function touchableHandleBlur2(e) {\n        this.props.onBlur && this.props.onBlur(e);\n      }, \"touchableHandleBlur\"),\n      // ==== Abstract Application Callbacks ====\n      /**\n       * Invoked when the item should be highlighted. Mixers should implement this\n       * to visually distinguish the `VisualRect` so that the user knows that\n       * releasing a touch will result in a \"selection\" (analog to click).\n       *\n       * @abstract\n       * touchableHandleActivePressIn: function,\n       */\n      /**\n       * Invoked when the item is \"active\" (in that it is still eligible to become\n       * a \"select\") but the touch has left the `PressRect`. Usually the mixer will\n       * want to unhighlight the `VisualRect`. If the user (while pressing) moves\n       * back into the `PressRect` `touchableHandleActivePressIn` will be invoked\n       * again and the mixer should probably highlight the `VisualRect` again. This\n       * event will not fire on an `touchEnd/mouseUp` event, only move events while\n       * the user is depressing the mouse/touch.\n       *\n       * @abstract\n       * touchableHandleActivePressOut: function\n       */\n      /**\n       * Invoked when the item is \"selected\" - meaning the interaction ended by\n       * letting up while the item was either in the state\n       * `RESPONDER_ACTIVE_PRESS_IN` or `RESPONDER_INACTIVE_PRESS_IN`.\n       *\n       * @abstract\n       * touchableHandlePress: function\n       */\n      /**\n       * Invoked when the item is long pressed - meaning the interaction ended by\n       * letting up while the item was in `RESPONDER_ACTIVE_LONG_PRESS_IN`. If\n       * `touchableHandleLongPress` is *not* provided, `touchableHandlePress` will\n       * be called as it normally is. If `touchableHandleLongPress` is provided, by\n       * default any `touchableHandlePress` callback will not be invoked. To\n       * override this default behavior, override `touchableLongPressCancelsPress`\n       * to return false. As a result, `touchableHandlePress` will be called when\n       * lifting up, even if `touchableHandleLongPress` has also been called.\n       *\n       * @abstract\n       * touchableHandleLongPress: function\n       */\n      /**\n       * Returns the number of millis to wait before triggering a highlight.\n       *\n       * @abstract\n       * touchableGetHighlightDelayMS: function\n       */\n      /**\n       * Returns the amount to extend the `HitRect` into the `PressRect`. Positive\n       * numbers mean the size expands outwards.\n       *\n       * @abstract\n       * touchableGetPressRectOffset: function\n       */\n      // ==== Internal Logic ====\n      /**\n       * Measures the `HitRect` node on activation. The Bounding rectangle is with\n       * respect to viewport - not page, so adding the `pageXOffset/pageYOffset`\n       * should result in points that are in the same coordinate system as an\n       * event's `globalX/globalY` data values.\n       *\n       * - Consider caching this for the lifetime of the component, or possibly\n       *   being able to share this cache between any `ScrollMap` view.\n       *\n       * @sideeffects\n       * @private\n       */\n      _remeasureMetricsOnActivation: /* @__PURE__ */ __name(function _remeasureMetricsOnActivation() {\n        var tag = this.state.touchable.responderID;\n        if (tag == null) {\n          return;\n        }\n        _UIManager.default.measure(tag, this._handleQueryLayout);\n      }, \"_remeasureMetricsOnActivation\"),\n      _handleQueryLayout: /* @__PURE__ */ __name(function _handleQueryLayout(l, t, w, h, globalX, globalY) {\n        if (!l && !t && !w && !h && !globalX && !globalY) {\n          return;\n        }\n        this.state.touchable.positionOnActivate && _Position.default.release(this.state.touchable.positionOnActivate);\n        this.state.touchable.dimensionsOnActivate && // $FlowFixMe\n        _BoundingDimensions.default.release(this.state.touchable.dimensionsOnActivate);\n        this.state.touchable.positionOnActivate = _Position.default.getPooled(globalX, globalY);\n        this.state.touchable.dimensionsOnActivate = _BoundingDimensions.default.getPooled(w, h);\n      }, \"_handleQueryLayout\"),\n      _handleDelay: /* @__PURE__ */ __name(function _handleDelay(e) {\n        this.touchableDelayTimeout = null;\n        this._receiveSignal(Signals.DELAY, e);\n      }, \"_handleDelay\"),\n      _handleLongDelay: /* @__PURE__ */ __name(function _handleLongDelay(e) {\n        this.longPressDelayTimeout = null;\n        var curState = this.state.touchable.touchState;\n        if (curState !== States.RESPONDER_ACTIVE_PRESS_IN && curState !== States.RESPONDER_ACTIVE_LONG_PRESS_IN) {\n          console.error(\"Attempted to transition from state `\" + curState + \"` to `\" + States.RESPONDER_ACTIVE_LONG_PRESS_IN + \"`, which is not supported. This is most likely due to `Touchable.longPressDelayTimeout` not being cancelled.\");\n        } else {\n          this._receiveSignal(Signals.LONG_PRESS_DETECTED, e);\n        }\n      }, \"_handleLongDelay\"),\n      /**\n       * Receives a state machine signal, performs side effects of the transition\n       * and stores the new state. Validates the transition as well.\n       *\n       * @param {Signals} signal State machine signal.\n       * @throws Error if invalid state transition or unrecognized signal.\n       * @sideeffects\n       */\n      _receiveSignal: /* @__PURE__ */ __name(function _receiveSignal(signal, e) {\n        var responderID = this.state.touchable.responderID;\n        var curState = this.state.touchable.touchState;\n        var nextState = Transitions[curState] && Transitions[curState][signal];\n        if (!responderID && signal === Signals.RESPONDER_RELEASE) {\n          return;\n        }\n        if (!nextState) {\n          throw new Error(\"Unrecognized signal `\" + signal + \"` or state `\" + curState + \"` for Touchable responder `\" + responderID + \"`\");\n        }\n        if (nextState === States.ERROR) {\n          throw new Error(\"Touchable cannot transition from `\" + curState + \"` to `\" + signal + \"` for responder `\" + responderID + \"`\");\n        }\n        if (curState !== nextState) {\n          this._performSideEffectsForTransition(curState, nextState, signal, e);\n          this.state.touchable.touchState = nextState;\n        }\n      }, \"_receiveSignal\"),\n      _cancelLongPressDelayTimeout: /* @__PURE__ */ __name(function _cancelLongPressDelayTimeout() {\n        this.longPressDelayTimeout && clearTimeout(this.longPressDelayTimeout);\n        this.longPressDelayTimeout = null;\n      }, \"_cancelLongPressDelayTimeout\"),\n      _isHighlight: /* @__PURE__ */ __name(function _isHighlight(state) {\n        return state === States.RESPONDER_ACTIVE_PRESS_IN || state === States.RESPONDER_ACTIVE_LONG_PRESS_IN;\n      }, \"_isHighlight\"),\n      _savePressInLocation: /* @__PURE__ */ __name(function _savePressInLocation(e) {\n        var touch = extractSingleTouch(e.nativeEvent);\n        var pageX = touch && touch.pageX;\n        var pageY = touch && touch.pageY;\n        var locationX = touch && touch.locationX;\n        var locationY = touch && touch.locationY;\n        this.pressInLocation = {\n          pageX,\n          pageY,\n          locationX,\n          locationY\n        };\n      }, \"_savePressInLocation\"),\n      _getDistanceBetweenPoints: /* @__PURE__ */ __name(function _getDistanceBetweenPoints(aX, aY, bX, bY) {\n        var deltaX = aX - bX;\n        var deltaY = aY - bY;\n        return Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n      }, \"_getDistanceBetweenPoints\"),\n      /**\n       * Will perform a transition between touchable states, and identify any\n       * highlighting or unhighlighting that must be performed for this particular\n       * transition.\n       *\n       * @param {States} curState Current Touchable state.\n       * @param {States} nextState Next Touchable state.\n       * @param {Signal} signal Signal that triggered the transition.\n       * @param {Event} e Native event.\n       * @sideeffects\n       */\n      _performSideEffectsForTransition: /* @__PURE__ */ __name(function _performSideEffectsForTransition(curState, nextState, signal, e) {\n        var curIsHighlight = this._isHighlight(curState);\n        var newIsHighlight = this._isHighlight(nextState);\n        var isFinalSignal = signal === Signals.RESPONDER_TERMINATED || signal === Signals.RESPONDER_RELEASE;\n        if (isFinalSignal) {\n          this._cancelLongPressDelayTimeout();\n        }\n        var isInitialTransition = curState === States.NOT_RESPONDER && nextState === States.RESPONDER_INACTIVE_PRESS_IN;\n        var isActiveTransition = !IsActive[curState] && IsActive[nextState];\n        if (isInitialTransition || isActiveTransition) {\n          this._remeasureMetricsOnActivation();\n        }\n        if (IsPressingIn[curState] && signal === Signals.LONG_PRESS_DETECTED) {\n          this.touchableHandleLongPress && this.touchableHandleLongPress(e);\n        }\n        if (newIsHighlight && !curIsHighlight) {\n          this._startHighlight(e);\n        } else if (!newIsHighlight && curIsHighlight) {\n          this._endHighlight(e);\n        }\n        if (IsPressingIn[curState] && signal === Signals.RESPONDER_RELEASE) {\n          var hasLongPressHandler = !!this.props.onLongPress;\n          var pressIsLongButStillCallOnPress = IsLongPressingIn[curState] && // We *are* long pressing.. // But either has no long handler\n          (!hasLongPressHandler || !this.touchableLongPressCancelsPress());\n          var shouldInvokePress = !IsLongPressingIn[curState] || pressIsLongButStillCallOnPress;\n          if (shouldInvokePress && this.touchableHandlePress) {\n            if (!newIsHighlight && !curIsHighlight) {\n              this._startHighlight(e);\n              this._endHighlight(e);\n            }\n            this.touchableHandlePress(e);\n          }\n        }\n        this.touchableDelayTimeout && clearTimeout(this.touchableDelayTimeout);\n        this.touchableDelayTimeout = null;\n      }, \"_performSideEffectsForTransition\"),\n      _playTouchSound: /* @__PURE__ */ __name(function _playTouchSound() {\n        _UIManager.default.playTouchSound();\n      }, \"_playTouchSound\"),\n      _startHighlight: /* @__PURE__ */ __name(function _startHighlight(e) {\n        this._savePressInLocation(e);\n        this.touchableHandleActivePressIn && this.touchableHandleActivePressIn(e);\n      }, \"_startHighlight\"),\n      _endHighlight: /* @__PURE__ */ __name(function _endHighlight(e) {\n        if (this.touchableHandleActivePressOut) {\n          if (this.touchableGetPressOutDelayMS && this.touchableGetPressOutDelayMS()) {\n            this.pressOutDelayTimeout = setTimeout(() => {\n              this.touchableHandleActivePressOut(e);\n            }, this.touchableGetPressOutDelayMS());\n          } else {\n            this.touchableHandleActivePressOut(e);\n          }\n        }\n      }, \"_endHighlight\"),\n      // HACK (part 2): basic support for touchable interactions using a keyboard (including\n      // delays and longPress)\n      touchableHandleKeyEvent: /* @__PURE__ */ __name(function touchableHandleKeyEvent(e) {\n        var type = e.type, key = e.key;\n        if (key === \"Enter\" || key === \" \") {\n          if (type === \"keydown\") {\n            if (!this._isTouchableKeyboardActive) {\n              if (!this.state.touchable.touchState || this.state.touchable.touchState === States.NOT_RESPONDER) {\n                this.touchableHandleResponderGrant(e);\n                this._isTouchableKeyboardActive = true;\n              }\n            }\n          } else if (type === \"keyup\") {\n            if (this._isTouchableKeyboardActive) {\n              if (this.state.touchable.touchState && this.state.touchable.touchState !== States.NOT_RESPONDER) {\n                this.touchableHandleResponderRelease(e);\n                this._isTouchableKeyboardActive = false;\n              }\n            }\n          }\n          e.stopPropagation();\n          if (!(key === \"Enter\" && _AccessibilityUtil.default.propsToAriaRole(this.props) === \"link\")) {\n            e.preventDefault();\n          }\n        }\n      }, \"touchableHandleKeyEvent\"),\n      withoutDefaultFocusAndBlur: {}\n    };\n    var touchableHandleFocus = TouchableMixin.touchableHandleFocus;\n    var touchableHandleBlur = TouchableMixin.touchableHandleBlur;\n    var TouchableMixinWithoutDefaultFocusAndBlur = (0, _objectWithoutPropertiesLoose2.default)(TouchableMixin, [\"touchableHandleFocus\", \"touchableHandleBlur\"]);\n    TouchableMixin.withoutDefaultFocusAndBlur = TouchableMixinWithoutDefaultFocusAndBlur;\n    var Touchable = {\n      Mixin: TouchableMixin,\n      TOUCH_TARGET_DEBUG: false,\n      // Highlights all touchable targets. Toggle with Inspector.\n      /**\n       * Renders a debugging overlay to visualize touch target with hitSlop (might not work on Android).\n       */\n      renderDebugView: /* @__PURE__ */ __name((_ref) => {\n        var color = _ref.color, hitSlop = _ref.hitSlop;\n        if (!Touchable.TOUCH_TARGET_DEBUG) {\n          return null;\n        }\n        if (process.env.NODE_ENV !== \"production\") {\n          throw Error(\"Touchable.TOUCH_TARGET_DEBUG should not be enabled in prod!\");\n        }\n        var debugHitSlopStyle = {};\n        hitSlop = hitSlop || {\n          top: 0,\n          bottom: 0,\n          left: 0,\n          right: 0\n        };\n        for (var key in hitSlop) {\n          debugHitSlopStyle[key] = -hitSlop[key];\n        }\n        var normalizedColor = (0, _normalizeColors.default)(color);\n        if (typeof normalizedColor !== \"number\") {\n          return null;\n        }\n        var hexColor = \"#\" + (\"00000000\" + normalizedColor.toString(16)).substr(-8);\n        return /* @__PURE__ */ _react.default.createElement(_View.default, {\n          pointerEvents: \"none\",\n          style: (0, _objectSpread2.default)({\n            position: \"absolute\",\n            borderColor: hexColor.slice(0, -2) + \"55\",\n            // More opaque\n            borderWidth: 1,\n            borderStyle: \"dashed\",\n            backgroundColor: hexColor.slice(0, -2) + \"0F\"\n          }, debugHitSlopStyle)\n        });\n      }, \"renderDebugView\")\n    };\n    var _default = exports2.default = Touchable;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/TouchableHighlight/index.js\nvar require_TouchableHighlight = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/TouchableHighlight/index.js\"(exports2, module2) {\n    \"use strict\";\n    \"use client\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _extends2 = _interopRequireDefault(require_extends());\n    var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());\n    var _react = _interopRequireWildcard(require(\"react\"));\n    var React75 = _react;\n    var _useMergeRefs = _interopRequireDefault(require_useMergeRefs());\n    var _usePressEvents = _interopRequireDefault(require_usePressEvents());\n    var _StyleSheet = _interopRequireDefault(require_StyleSheet());\n    var _View = _interopRequireDefault(require_View());\n    var _excluded = [\"activeOpacity\", \"children\", \"delayPressIn\", \"delayPressOut\", \"delayLongPress\", \"disabled\", \"focusable\", \"onHideUnderlay\", \"onLongPress\", \"onPress\", \"onPressIn\", \"onPressOut\", \"onShowUnderlay\", \"rejectResponderTermination\", \"style\", \"testOnly_pressed\", \"underlayColor\"];\n    function createExtraStyles(activeOpacity, underlayColor) {\n      return {\n        child: {\n          opacity: activeOpacity !== null && activeOpacity !== void 0 ? activeOpacity : 0.85\n        },\n        underlay: {\n          backgroundColor: underlayColor === void 0 ? \"black\" : underlayColor\n        }\n      };\n    }\n    __name(createExtraStyles, \"createExtraStyles\");\n    function hasPressHandler(props) {\n      return props.onPress != null || props.onPressIn != null || props.onPressOut != null || props.onLongPress != null;\n    }\n    __name(hasPressHandler, \"hasPressHandler\");\n    function TouchableHighlight(props, forwardedRef) {\n      var activeOpacity = props.activeOpacity, children = props.children, delayPressIn = props.delayPressIn, delayPressOut = props.delayPressOut, delayLongPress = props.delayLongPress, disabled = props.disabled, focusable = props.focusable, onHideUnderlay = props.onHideUnderlay, onLongPress = props.onLongPress, onPress = props.onPress, onPressIn = props.onPressIn, onPressOut = props.onPressOut, onShowUnderlay = props.onShowUnderlay, rejectResponderTermination = props.rejectResponderTermination, style = props.style, testOnly_pressed = props.testOnly_pressed, underlayColor = props.underlayColor, rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);\n      var hostRef = (0, _react.useRef)(null);\n      var setRef2 = (0, _useMergeRefs.default)(forwardedRef, hostRef);\n      var _useState = (0, _react.useState)(testOnly_pressed === true ? createExtraStyles(activeOpacity, underlayColor) : null), extraStyles = _useState[0], setExtraStyles = _useState[1];\n      var showUnderlay = (0, _react.useCallback)(() => {\n        if (!hasPressHandler(props)) {\n          return;\n        }\n        setExtraStyles(createExtraStyles(activeOpacity, underlayColor));\n        if (onShowUnderlay != null) {\n          onShowUnderlay();\n        }\n      }, [activeOpacity, onShowUnderlay, props, underlayColor]);\n      var hideUnderlay = (0, _react.useCallback)(() => {\n        if (testOnly_pressed === true) {\n          return;\n        }\n        if (hasPressHandler(props)) {\n          setExtraStyles(null);\n          if (onHideUnderlay != null) {\n            onHideUnderlay();\n          }\n        }\n      }, [onHideUnderlay, props, testOnly_pressed]);\n      var pressConfig = (0, _react.useMemo)(() => ({\n        cancelable: !rejectResponderTermination,\n        disabled,\n        delayLongPress,\n        delayPressStart: delayPressIn,\n        delayPressEnd: delayPressOut,\n        onLongPress,\n        onPress,\n        onPressStart(event) {\n          showUnderlay();\n          if (onPressIn != null) {\n            onPressIn(event);\n          }\n        },\n        onPressEnd(event) {\n          hideUnderlay();\n          if (onPressOut != null) {\n            onPressOut(event);\n          }\n        }\n      }), [delayLongPress, delayPressIn, delayPressOut, disabled, onLongPress, onPress, onPressIn, onPressOut, rejectResponderTermination, showUnderlay, hideUnderlay]);\n      var pressEventHandlers = (0, _usePressEvents.default)(hostRef, pressConfig);\n      var child = React75.Children.only(children);\n      return /* @__PURE__ */ React75.createElement(_View.default, (0, _extends2.default)({}, rest, pressEventHandlers, {\n        accessibilityDisabled: disabled,\n        focusable: !disabled && focusable !== false,\n        pointerEvents: disabled ? \"box-none\" : void 0,\n        ref: setRef2,\n        style: [styles.root, style, !disabled && styles.actionable, extraStyles && extraStyles.underlay]\n      }), /* @__PURE__ */ React75.cloneElement(child, {\n        style: [child.props.style, extraStyles && extraStyles.child]\n      }));\n    }\n    __name(TouchableHighlight, \"TouchableHighlight\");\n    var styles = _StyleSheet.default.create({\n      root: {\n        userSelect: \"none\"\n      },\n      actionable: {\n        cursor: \"pointer\",\n        touchAction: \"manipulation\"\n      }\n    });\n    var MemoedTouchableHighlight = /* @__PURE__ */ React75.memo(/* @__PURE__ */ React75.forwardRef(TouchableHighlight));\n    MemoedTouchableHighlight.displayName = \"TouchableHighlight\";\n    var _default = exports2.default = MemoedTouchableHighlight;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/modules/UnimplementedView/index.js\nvar require_UnimplementedView = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/modules/UnimplementedView/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _extends2 = _interopRequireDefault(require_extends());\n    var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());\n    var _View = _interopRequireDefault(require_View());\n    var _react = _interopRequireDefault(require(\"react\"));\n    var _excluded = [\"style\"];\n    function UnimplementedView(_ref) {\n      var style = _ref.style, props = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);\n      return /* @__PURE__ */ _react.default.createElement(_View.default, (0, _extends2.default)({}, props, {\n        style: [unimplementedViewStyles, style]\n      }));\n    }\n    __name(UnimplementedView, \"UnimplementedView\");\n    var unimplementedViewStyles = process.env.NODE_ENV !== \"production\" ? {\n      alignSelf: \"flex-start\",\n      borderColor: \"red\",\n      borderWidth: 1\n    } : {};\n    var _default = exports2.default = UnimplementedView;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/TouchableNativeFeedback/index.js\nvar require_TouchableNativeFeedback = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/TouchableNativeFeedback/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _UnimplementedView = _interopRequireDefault(require_UnimplementedView());\n    var _default = exports2.default = _UnimplementedView.default;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/TouchableWithoutFeedback/index.js\nvar require_TouchableWithoutFeedback = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/TouchableWithoutFeedback/index.js\"(exports2, module2) {\n    \"use strict\";\n    \"use client\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _react = _interopRequireWildcard(require(\"react\"));\n    var React75 = _react;\n    var _pick = _interopRequireDefault(require_pick());\n    var _useMergeRefs = _interopRequireDefault(require_useMergeRefs());\n    var _usePressEvents = _interopRequireDefault(require_usePressEvents());\n    var _warnOnce = require_warnOnce();\n    var forwardPropsList = {\n      accessibilityDisabled: true,\n      accessibilityLabel: true,\n      accessibilityLiveRegion: true,\n      accessibilityRole: true,\n      accessibilityState: true,\n      accessibilityValue: true,\n      children: true,\n      disabled: true,\n      focusable: true,\n      nativeID: true,\n      onBlur: true,\n      onFocus: true,\n      onLayout: true,\n      testID: true\n    };\n    var pickProps = /* @__PURE__ */ __name((props) => (0, _pick.default)(props, forwardPropsList), \"pickProps\");\n    function TouchableWithoutFeedback(props, forwardedRef) {\n      (0, _warnOnce.warnOnce)(\"TouchableWithoutFeedback\", \"TouchableWithoutFeedback is deprecated. Please use Pressable.\");\n      var delayPressIn = props.delayPressIn, delayPressOut = props.delayPressOut, delayLongPress = props.delayLongPress, disabled = props.disabled, focusable = props.focusable, onLongPress = props.onLongPress, onPress = props.onPress, onPressIn = props.onPressIn, onPressOut = props.onPressOut, rejectResponderTermination = props.rejectResponderTermination;\n      var hostRef = (0, _react.useRef)(null);\n      var pressConfig = (0, _react.useMemo)(() => ({\n        cancelable: !rejectResponderTermination,\n        disabled,\n        delayLongPress,\n        delayPressStart: delayPressIn,\n        delayPressEnd: delayPressOut,\n        onLongPress,\n        onPress,\n        onPressStart: onPressIn,\n        onPressEnd: onPressOut\n      }), [disabled, delayPressIn, delayPressOut, delayLongPress, onLongPress, onPress, onPressIn, onPressOut, rejectResponderTermination]);\n      var pressEventHandlers = (0, _usePressEvents.default)(hostRef, pressConfig);\n      var element = React75.Children.only(props.children);\n      var children = [element.props.children];\n      var supportedProps = pickProps(props);\n      supportedProps.accessibilityDisabled = disabled;\n      supportedProps.focusable = !disabled && focusable !== false;\n      supportedProps.ref = (0, _useMergeRefs.default)(forwardedRef, hostRef, element.ref);\n      var elementProps = Object.assign(supportedProps, pressEventHandlers);\n      return /* @__PURE__ */ React75.cloneElement(element, elementProps, ...children);\n    }\n    __name(TouchableWithoutFeedback, \"TouchableWithoutFeedback\");\n    var MemoedTouchableWithoutFeedback = /* @__PURE__ */ React75.memo(/* @__PURE__ */ React75.forwardRef(TouchableWithoutFeedback));\n    MemoedTouchableWithoutFeedback.displayName = \"TouchableWithoutFeedback\";\n    var _default = exports2.default = MemoedTouchableWithoutFeedback;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/VirtualizedList/index.js\nvar require_VirtualizedList2 = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/VirtualizedList/index.js\"(exports2, module2) {\n    \"use strict\";\n    \"use client\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _VirtualizedList = _interopRequireDefault(require_VirtualizedList());\n    var _default = exports2.default = _VirtualizedList.default;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/YellowBox/index.js\nvar require_YellowBox = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/YellowBox/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _react = _interopRequireDefault(require(\"react\"));\n    var _UnimplementedView = _interopRequireDefault(require_UnimplementedView());\n    function YellowBox(props) {\n      return /* @__PURE__ */ _react.default.createElement(_UnimplementedView.default, props);\n    }\n    __name(YellowBox, \"YellowBox\");\n    YellowBox.ignoreWarnings = () => {\n    };\n    var _default = exports2.default = YellowBox;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/LogBox/index.js\nvar require_LogBox = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/LogBox/index.js\"(exports2, module2) {\n    \"use strict\";\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var LogBox = {\n      ignoreLogs() {\n      },\n      ignoreAllLogs() {\n      },\n      uninstall() {\n      },\n      install() {\n      }\n    };\n    var _default = exports2.default = LogBox;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/DeviceEventEmitter/index.js\nvar require_DeviceEventEmitter = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/DeviceEventEmitter/index.js\"(exports2, module2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _RCTDeviceEventEmitter = _interopRequireDefault(require_RCTDeviceEventEmitter());\n    var _default = exports2.default = _RCTDeviceEventEmitter.default;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/useColorScheme/index.js\nvar require_useColorScheme = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/useColorScheme/index.js\"(exports2, module2) {\n    \"use strict\";\n    \"use client\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    var _interopRequireWildcard = require_interopRequireWildcard().default;\n    exports2.__esModule = true;\n    exports2.default = useColorScheme;\n    var React75 = _interopRequireWildcard(require(\"react\"));\n    var _Appearance = _interopRequireDefault(require_Appearance());\n    function useColorScheme() {\n      var _React$useState = React75.useState(_Appearance.default.getColorScheme()), colorScheme = _React$useState[0], setColorScheme = _React$useState[1];\n      React75.useEffect(() => {\n        function listener(appearance) {\n          setColorScheme(appearance.colorScheme);\n        }\n        __name(listener, \"listener\");\n        var _Appearance$addChange = _Appearance.default.addChangeListener(listener), remove = _Appearance$addChange.remove;\n        return remove;\n      });\n      return colorScheme;\n    }\n    __name(useColorScheme, \"useColorScheme\");\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/useLocaleContext/index.js\nvar require_useLocaleContext = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/useLocaleContext/index.js\"(exports2, module2) {\n    \"use strict\";\n    \"use client\";\n    exports2.__esModule = true;\n    exports2.default = void 0;\n    var _useLocale = require_useLocale();\n    var _default = exports2.default = _useLocale.useLocaleContext;\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/exports/useWindowDimensions/index.js\nvar require_useWindowDimensions = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/exports/useWindowDimensions/index.js\"(exports2, module2) {\n    \"use strict\";\n    \"use client\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.default = useWindowDimensions2;\n    var _Dimensions = _interopRequireDefault(require_Dimensions());\n    var _react = require(\"react\");\n    function useWindowDimensions2() {\n      var _useState = (0, _react.useState)(() => _Dimensions.default.get(\"window\")), dims = _useState[0], setDims = _useState[1];\n      (0, _react.useEffect)(() => {\n        function handleChange(_ref) {\n          var window2 = _ref.window;\n          if (window2 != null) {\n            setDims(window2);\n          }\n        }\n        __name(handleChange, \"handleChange\");\n        _Dimensions.default.addEventListener(\"change\", handleChange);\n        setDims(_Dimensions.default.get(\"window\"));\n        return () => {\n          _Dimensions.default.removeEventListener(\"change\", handleChange);\n        };\n      }, []);\n      return dims;\n    }\n    __name(useWindowDimensions2, \"useWindowDimensions\");\n    module2.exports = exports2.default;\n  }\n});\n\n// node_modules/react-native-web/dist/cjs/index.js\nvar require_cjs21 = __commonJS({\n  \"node_modules/react-native-web/dist/cjs/index.js\"(exports2) {\n    \"use strict\";\n    var _interopRequireDefault = require_interopRequireDefault().default;\n    exports2.__esModule = true;\n    exports2.useWindowDimensions = exports2.useLocaleContext = exports2.useColorScheme = exports2.unstable_createElement = exports2.unmountComponentAtNode = exports2.render = exports2.processColor = exports2.findNodeHandle = exports2.YellowBox = exports2.VirtualizedList = exports2.View = exports2.Vibration = exports2.UIManager = exports2.TouchableWithoutFeedback = exports2.TouchableOpacity = exports2.TouchableNativeFeedback = exports2.TouchableHighlight = exports2.Touchable = exports2.TextInput = exports2.Text = exports2.Switch = exports2.StyleSheet = exports2.StatusBar = exports2.Share = exports2.SectionList = exports2.ScrollView = exports2.SafeAreaView = exports2.RefreshControl = exports2.ProgressBar = exports2.Pressable = exports2.Platform = exports2.PixelRatio = exports2.Picker = exports2.PanResponder = exports2.NativeModules = exports2.NativeEventEmitter = exports2.Modal = exports2.LogBox = exports2.Linking = exports2.LayoutAnimation = exports2.KeyboardAvoidingView = exports2.Keyboard = exports2.InteractionManager = exports2.ImageBackground = exports2.Image = exports2.I18nManager = exports2.FlatList = exports2.Easing = exports2.Dimensions = exports2.DeviceEventEmitter = exports2.Clipboard = exports2.CheckBox = exports2.Button = exports2.BackHandler = exports2.Appearance = exports2.AppState = exports2.AppRegistry = exports2.Animated = exports2.Alert = exports2.ActivityIndicator = exports2.AccessibilityInfo = void 0;\n    var _createElement = _interopRequireDefault(require_createElement());\n    exports2.unstable_createElement = _createElement.default;\n    var _findNodeHandle = _interopRequireDefault(require_findNodeHandle());\n    exports2.findNodeHandle = _findNodeHandle.default;\n    var _processColor = _interopRequireDefault(require_processColor());\n    exports2.processColor = _processColor.default;\n    var _render = _interopRequireDefault(require_render());\n    exports2.render = _render.default;\n    var _unmountComponentAtNode = _interopRequireDefault(require_unmountComponentAtNode());\n    exports2.unmountComponentAtNode = _unmountComponentAtNode.default;\n    var _NativeModules = _interopRequireDefault(require_NativeModules());\n    exports2.NativeModules = _NativeModules.default;\n    var _AccessibilityInfo = _interopRequireDefault(require_AccessibilityInfo());\n    exports2.AccessibilityInfo = _AccessibilityInfo.default;\n    var _Alert = _interopRequireDefault(require_Alert());\n    exports2.Alert = _Alert.default;\n    var _Animated = _interopRequireDefault(require_Animated2());\n    exports2.Animated = _Animated.default;\n    var _Appearance = _interopRequireDefault(require_Appearance());\n    exports2.Appearance = _Appearance.default;\n    var _AppRegistry = _interopRequireDefault(require_AppRegistry());\n    exports2.AppRegistry = _AppRegistry.default;\n    var _AppState = _interopRequireDefault(require_AppState());\n    exports2.AppState = _AppState.default;\n    var _BackHandler = _interopRequireDefault(require_BackHandler());\n    exports2.BackHandler = _BackHandler.default;\n    var _Clipboard = _interopRequireDefault(require_Clipboard());\n    exports2.Clipboard = _Clipboard.default;\n    var _Dimensions = _interopRequireDefault(require_Dimensions());\n    exports2.Dimensions = _Dimensions.default;\n    var _Easing = _interopRequireDefault(require_Easing2());\n    exports2.Easing = _Easing.default;\n    var _I18nManager = _interopRequireDefault(require_I18nManager());\n    exports2.I18nManager = _I18nManager.default;\n    var _Keyboard = _interopRequireDefault(require_Keyboard());\n    exports2.Keyboard = _Keyboard.default;\n    var _InteractionManager = _interopRequireDefault(require_InteractionManager());\n    exports2.InteractionManager = _InteractionManager.default;\n    var _LayoutAnimation = _interopRequireDefault(require_LayoutAnimation2());\n    exports2.LayoutAnimation = _LayoutAnimation.default;\n    var _Linking = _interopRequireDefault(require_Linking());\n    exports2.Linking = _Linking.default;\n    var _NativeEventEmitter = _interopRequireDefault(require_NativeEventEmitter2());\n    exports2.NativeEventEmitter = _NativeEventEmitter.default;\n    var _PanResponder = _interopRequireDefault(require_PanResponder2());\n    exports2.PanResponder = _PanResponder.default;\n    var _PixelRatio = _interopRequireDefault(require_PixelRatio());\n    exports2.PixelRatio = _PixelRatio.default;\n    var _Platform = _interopRequireDefault(require_Platform());\n    exports2.Platform = _Platform.default;\n    var _Share = _interopRequireDefault(require_Share());\n    exports2.Share = _Share.default;\n    var _StyleSheet = _interopRequireDefault(require_StyleSheet());\n    exports2.StyleSheet = _StyleSheet.default;\n    var _UIManager = _interopRequireDefault(require_UIManager());\n    exports2.UIManager = _UIManager.default;\n    var _Vibration = _interopRequireDefault(require_Vibration());\n    exports2.Vibration = _Vibration.default;\n    var _ActivityIndicator = _interopRequireDefault(require_ActivityIndicator());\n    exports2.ActivityIndicator = _ActivityIndicator.default;\n    var _Button = _interopRequireDefault(require_Button());\n    exports2.Button = _Button.default;\n    var _CheckBox = _interopRequireDefault(require_CheckBox());\n    exports2.CheckBox = _CheckBox.default;\n    var _FlatList = _interopRequireDefault(require_FlatList2());\n    exports2.FlatList = _FlatList.default;\n    var _Image = _interopRequireDefault(require_Image());\n    exports2.Image = _Image.default;\n    var _ImageBackground = _interopRequireDefault(require_ImageBackground());\n    exports2.ImageBackground = _ImageBackground.default;\n    var _KeyboardAvoidingView = _interopRequireDefault(require_KeyboardAvoidingView());\n    exports2.KeyboardAvoidingView = _KeyboardAvoidingView.default;\n    var _Modal = _interopRequireDefault(require_Modal());\n    exports2.Modal = _Modal.default;\n    var _Picker = _interopRequireDefault(require_Picker());\n    exports2.Picker = _Picker.default;\n    var _Pressable = _interopRequireDefault(require_Pressable());\n    exports2.Pressable = _Pressable.default;\n    var _ProgressBar = _interopRequireDefault(require_ProgressBar());\n    exports2.ProgressBar = _ProgressBar.default;\n    var _RefreshControl = _interopRequireDefault(require_RefreshControl());\n    exports2.RefreshControl = _RefreshControl.default;\n    var _SafeAreaView = _interopRequireDefault(require_SafeAreaView());\n    exports2.SafeAreaView = _SafeAreaView.default;\n    var _ScrollView = _interopRequireDefault(require_ScrollView());\n    exports2.ScrollView = _ScrollView.default;\n    var _SectionList = _interopRequireDefault(require_SectionList2());\n    exports2.SectionList = _SectionList.default;\n    var _StatusBar = _interopRequireDefault(require_StatusBar());\n    exports2.StatusBar = _StatusBar.default;\n    var _Switch = _interopRequireDefault(require_Switch());\n    exports2.Switch = _Switch.default;\n    var _Text = _interopRequireDefault(require_Text());\n    exports2.Text = _Text.default;\n    var _TextInput = _interopRequireDefault(require_TextInput());\n    exports2.TextInput = _TextInput.default;\n    var _Touchable = _interopRequireDefault(require_Touchable());\n    exports2.Touchable = _Touchable.default;\n    var _TouchableHighlight = _interopRequireDefault(require_TouchableHighlight());\n    exports2.TouchableHighlight = _TouchableHighlight.default;\n    var _TouchableNativeFeedback = _interopRequireDefault(require_TouchableNativeFeedback());\n    exports2.TouchableNativeFeedback = _TouchableNativeFeedback.default;\n    var _TouchableOpacity = _interopRequireDefault(require_TouchableOpacity());\n    exports2.TouchableOpacity = _TouchableOpacity.default;\n    var _TouchableWithoutFeedback = _interopRequireDefault(require_TouchableWithoutFeedback());\n    exports2.TouchableWithoutFeedback = _TouchableWithoutFeedback.default;\n    var _View = _interopRequireDefault(require_View());\n    exports2.View = _View.default;\n    var _VirtualizedList = _interopRequireDefault(require_VirtualizedList2());\n    exports2.VirtualizedList = _VirtualizedList.default;\n    var _YellowBox = _interopRequireDefault(require_YellowBox());\n    exports2.YellowBox = _YellowBox.default;\n    var _LogBox = _interopRequireDefault(require_LogBox());\n    exports2.LogBox = _LogBox.default;\n    var _DeviceEventEmitter = _interopRequireDefault(require_DeviceEventEmitter());\n    exports2.DeviceEventEmitter = _DeviceEventEmitter.default;\n    var _useColorScheme = _interopRequireDefault(require_useColorScheme());\n    exports2.useColorScheme = _useColorScheme.default;\n    var _useLocaleContext = _interopRequireDefault(require_useLocaleContext());\n    exports2.useLocaleContext = _useLocaleContext.default;\n    var _useWindowDimensions = _interopRequireDefault(require_useWindowDimensions());\n    exports2.useWindowDimensions = _useWindowDimensions.default;\n  }\n});\n\n// node_modules/tabbable/dist/index.js\nvar require_dist = __commonJS({\n  \"node_modules/tabbable/dist/index.js\"(exports2) {\n    \"use strict\";\n    Object.defineProperty(exports2, \"__esModule\", { value: true });\n    var candidateSelectors = [\"input:not([inert])\", \"select:not([inert])\", \"textarea:not([inert])\", \"a[href]:not([inert])\", \"button:not([inert])\", \"[tabindex]:not(slot):not([inert])\", \"audio[controls]:not([inert])\", \"video[controls]:not([inert])\", '[contenteditable]:not([contenteditable=\"false\"]):not([inert])', \"details>summary:first-of-type:not([inert])\", \"details:not([inert])\"];\n    var candidateSelector = /* @__PURE__ */ candidateSelectors.join(\",\");\n    var NoElement = typeof Element === \"undefined\";\n    var matches = NoElement ? function() {\n    } : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\n    var getRootNode = !NoElement && Element.prototype.getRootNode ? function(element) {\n      var _element$getRootNode;\n      return element === null || element === void 0 ? void 0 : (_element$getRootNode = element.getRootNode) === null || _element$getRootNode === void 0 ? void 0 : _element$getRootNode.call(element);\n    } : function(element) {\n      return element === null || element === void 0 ? void 0 : element.ownerDocument;\n    };\n    var isInert = /* @__PURE__ */ __name(function isInert2(node, lookUp) {\n      var _node$getAttribute;\n      if (lookUp === void 0) {\n        lookUp = true;\n      }\n      var inertAtt = node === null || node === void 0 ? void 0 : (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, \"inert\");\n      var inert = inertAtt === \"\" || inertAtt === \"true\";\n      var result = inert || lookUp && node && isInert2(node.parentNode);\n      return result;\n    }, \"isInert\");\n    var isContentEditable = /* @__PURE__ */ __name(function isContentEditable2(node) {\n      var _node$getAttribute2;\n      var attValue = node === null || node === void 0 ? void 0 : (_node$getAttribute2 = node.getAttribute) === null || _node$getAttribute2 === void 0 ? void 0 : _node$getAttribute2.call(node, \"contenteditable\");\n      return attValue === \"\" || attValue === \"true\";\n    }, \"isContentEditable\");\n    var getCandidates = /* @__PURE__ */ __name(function getCandidates2(el, includeContainer, filter) {\n      if (isInert(el)) {\n        return [];\n      }\n      var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));\n      if (includeContainer && matches.call(el, candidateSelector)) {\n        candidates.unshift(el);\n      }\n      candidates = candidates.filter(filter);\n      return candidates;\n    }, \"getCandidates\");\n    var getCandidatesIteratively = /* @__PURE__ */ __name(function getCandidatesIteratively2(elements, includeContainer, options) {\n      var candidates = [];\n      var elementsToCheck = Array.from(elements);\n      while (elementsToCheck.length) {\n        var element = elementsToCheck.shift();\n        if (isInert(element, false)) {\n          continue;\n        }\n        if (element.tagName === \"SLOT\") {\n          var assigned = element.assignedElements();\n          var content = assigned.length ? assigned : element.children;\n          var nestedCandidates = getCandidatesIteratively2(content, true, options);\n          if (options.flatten) {\n            candidates.push.apply(candidates, nestedCandidates);\n          } else {\n            candidates.push({\n              scopeParent: element,\n              candidates: nestedCandidates\n            });\n          }\n        } else {\n          var validCandidate = matches.call(element, candidateSelector);\n          if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {\n            candidates.push(element);\n          }\n          var shadowRoot = element.shadowRoot || // check for an undisclosed shadow\n          typeof options.getShadowRoot === \"function\" && options.getShadowRoot(element);\n          var validShadowRoot = !isInert(shadowRoot, false) && (!options.shadowRootFilter || options.shadowRootFilter(element));\n          if (shadowRoot && validShadowRoot) {\n            var _nestedCandidates = getCandidatesIteratively2(shadowRoot === true ? element.children : shadowRoot.children, true, options);\n            if (options.flatten) {\n              candidates.push.apply(candidates, _nestedCandidates);\n            } else {\n              candidates.push({\n                scopeParent: element,\n                candidates: _nestedCandidates\n              });\n            }\n          } else {\n            elementsToCheck.unshift.apply(elementsToCheck, element.children);\n          }\n        }\n      }\n      return candidates;\n    }, \"getCandidatesIteratively\");\n    var hasTabIndex = /* @__PURE__ */ __name(function hasTabIndex2(node) {\n      return !isNaN(parseInt(node.getAttribute(\"tabindex\"), 10));\n    }, \"hasTabIndex\");\n    var getTabIndex = /* @__PURE__ */ __name(function getTabIndex2(node) {\n      if (!node) {\n        throw new Error(\"No node provided\");\n      }\n      if (node.tabIndex < 0) {\n        if ((/^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || isContentEditable(node)) && !hasTabIndex(node)) {\n          return 0;\n        }\n      }\n      return node.tabIndex;\n    }, \"getTabIndex\");\n    var getSortOrderTabIndex = /* @__PURE__ */ __name(function getSortOrderTabIndex2(node, isScope) {\n      var tabIndex = getTabIndex(node);\n      if (tabIndex < 0 && isScope && !hasTabIndex(node)) {\n        return 0;\n      }\n      return tabIndex;\n    }, \"getSortOrderTabIndex\");\n    var sortOrderedTabbables = /* @__PURE__ */ __name(function sortOrderedTabbables2(a, b) {\n      return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n    }, \"sortOrderedTabbables\");\n    var isInput = /* @__PURE__ */ __name(function isInput2(node) {\n      return node.tagName === \"INPUT\";\n    }, \"isInput\");\n    var isHiddenInput = /* @__PURE__ */ __name(function isHiddenInput2(node) {\n      return isInput(node) && node.type === \"hidden\";\n    }, \"isHiddenInput\");\n    var isDetailsWithSummary = /* @__PURE__ */ __name(function isDetailsWithSummary2(node) {\n      var r = node.tagName === \"DETAILS\" && Array.prototype.slice.apply(node.children).some(function(child) {\n        return child.tagName === \"SUMMARY\";\n      });\n      return r;\n    }, \"isDetailsWithSummary\");\n    var getCheckedRadio = /* @__PURE__ */ __name(function getCheckedRadio2(nodes, form) {\n      for (var i = 0; i < nodes.length; i++) {\n        if (nodes[i].checked && nodes[i].form === form) {\n          return nodes[i];\n        }\n      }\n    }, \"getCheckedRadio\");\n    var isTabbableRadio = /* @__PURE__ */ __name(function isTabbableRadio2(node) {\n      if (!node.name) {\n        return true;\n      }\n      var radioScope = node.form || getRootNode(node);\n      var queryRadios = /* @__PURE__ */ __name(function queryRadios2(name) {\n        return radioScope.querySelectorAll('input[type=\"radio\"][name=\"' + name + '\"]');\n      }, \"queryRadios\");\n      var radioSet;\n      if (typeof window !== \"undefined\" && typeof window.CSS !== \"undefined\" && typeof window.CSS.escape === \"function\") {\n        radioSet = queryRadios(window.CSS.escape(node.name));\n      } else {\n        try {\n          radioSet = queryRadios(node.name);\n        } catch (err) {\n          console.error(\"Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s\", err.message);\n          return false;\n        }\n      }\n      var checked = getCheckedRadio(radioSet, node.form);\n      return !checked || checked === node;\n    }, \"isTabbableRadio\");\n    var isRadio = /* @__PURE__ */ __name(function isRadio2(node) {\n      return isInput(node) && node.type === \"radio\";\n    }, \"isRadio\");\n    var isNonTabbableRadio = /* @__PURE__ */ __name(function isNonTabbableRadio2(node) {\n      return isRadio(node) && !isTabbableRadio(node);\n    }, \"isNonTabbableRadio\");\n    var isNodeAttached = /* @__PURE__ */ __name(function isNodeAttached2(node) {\n      var _nodeRoot;\n      var nodeRoot = node && getRootNode(node);\n      var nodeRootHost = (_nodeRoot = nodeRoot) === null || _nodeRoot === void 0 ? void 0 : _nodeRoot.host;\n      var attached = false;\n      if (nodeRoot && nodeRoot !== node) {\n        var _nodeRootHost, _nodeRootHost$ownerDo, _node$ownerDocument;\n        attached = !!((_nodeRootHost = nodeRootHost) !== null && _nodeRootHost !== void 0 && (_nodeRootHost$ownerDo = _nodeRootHost.ownerDocument) !== null && _nodeRootHost$ownerDo !== void 0 && _nodeRootHost$ownerDo.contains(nodeRootHost) || node !== null && node !== void 0 && (_node$ownerDocument = node.ownerDocument) !== null && _node$ownerDocument !== void 0 && _node$ownerDocument.contains(node));\n        while (!attached && nodeRootHost) {\n          var _nodeRoot2, _nodeRootHost2, _nodeRootHost2$ownerD;\n          nodeRoot = getRootNode(nodeRootHost);\n          nodeRootHost = (_nodeRoot2 = nodeRoot) === null || _nodeRoot2 === void 0 ? void 0 : _nodeRoot2.host;\n          attached = !!((_nodeRootHost2 = nodeRootHost) !== null && _nodeRootHost2 !== void 0 && (_nodeRootHost2$ownerD = _nodeRootHost2.ownerDocument) !== null && _nodeRootHost2$ownerD !== void 0 && _nodeRootHost2$ownerD.contains(nodeRootHost));\n        }\n      }\n      return attached;\n    }, \"isNodeAttached\");\n    var isZeroArea = /* @__PURE__ */ __name(function isZeroArea2(node) {\n      var _node$getBoundingClie = node.getBoundingClientRect(), width = _node$getBoundingClie.width, height = _node$getBoundingClie.height;\n      return width === 0 && height === 0;\n    }, \"isZeroArea\");\n    var isHidden2 = /* @__PURE__ */ __name(function isHidden3(node, _ref) {\n      var displayCheck = _ref.displayCheck, getShadowRoot = _ref.getShadowRoot;\n      if (getComputedStyle(node).visibility === \"hidden\") {\n        return true;\n      }\n      var isDirectSummary = matches.call(node, \"details>summary:first-of-type\");\n      var nodeUnderDetails = isDirectSummary ? node.parentElement : node;\n      if (matches.call(nodeUnderDetails, \"details:not([open]) *\")) {\n        return true;\n      }\n      if (!displayCheck || displayCheck === \"full\" || displayCheck === \"legacy-full\") {\n        if (typeof getShadowRoot === \"function\") {\n          var originalNode = node;\n          while (node) {\n            var parentElement = node.parentElement;\n            var rootNode = getRootNode(node);\n            if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true) {\n              return isZeroArea(node);\n            } else if (node.assignedSlot) {\n              node = node.assignedSlot;\n            } else if (!parentElement && rootNode !== node.ownerDocument) {\n              node = rootNode.host;\n            } else {\n              node = parentElement;\n            }\n          }\n          node = originalNode;\n        }\n        if (isNodeAttached(node)) {\n          return !node.getClientRects().length;\n        }\n        if (displayCheck !== \"legacy-full\") {\n          return true;\n        }\n      } else if (displayCheck === \"non-zero-area\") {\n        return isZeroArea(node);\n      }\n      return false;\n    }, \"isHidden\");\n    var isDisabledFromFieldset = /* @__PURE__ */ __name(function isDisabledFromFieldset2(node) {\n      if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {\n        var parentNode = node.parentElement;\n        while (parentNode) {\n          if (parentNode.tagName === \"FIELDSET\" && parentNode.disabled) {\n            for (var i = 0; i < parentNode.children.length; i++) {\n              var child = parentNode.children.item(i);\n              if (child.tagName === \"LEGEND\") {\n                return matches.call(parentNode, \"fieldset[disabled] *\") ? true : !child.contains(node);\n              }\n            }\n            return true;\n          }\n          parentNode = parentNode.parentElement;\n        }\n      }\n      return false;\n    }, \"isDisabledFromFieldset\");\n    var isNodeMatchingSelectorFocusable = /* @__PURE__ */ __name(function isNodeMatchingSelectorFocusable2(options, node) {\n      if (node.disabled || // we must do an inert look up to filter out any elements inside an inert ancestor\n      //  because we're limited in the type of selectors we can use in JSDom (see related\n      //  note related to `candidateSelectors`)\n      isInert(node) || isHiddenInput(node) || isHidden2(node, options) || // For a details element with a summary, the summary element gets the focus\n      isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {\n        return false;\n      }\n      return true;\n    }, \"isNodeMatchingSelectorFocusable\");\n    var isNodeMatchingSelectorTabbable = /* @__PURE__ */ __name(function isNodeMatchingSelectorTabbable2(options, node) {\n      if (isNonTabbableRadio(node) || getTabIndex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {\n        return false;\n      }\n      return true;\n    }, \"isNodeMatchingSelectorTabbable\");\n    var isValidShadowRootTabbable = /* @__PURE__ */ __name(function isValidShadowRootTabbable2(shadowHostNode) {\n      var tabIndex = parseInt(shadowHostNode.getAttribute(\"tabindex\"), 10);\n      if (isNaN(tabIndex) || tabIndex >= 0) {\n        return true;\n      }\n      return false;\n    }, \"isValidShadowRootTabbable\");\n    var sortByOrder = /* @__PURE__ */ __name(function sortByOrder2(candidates) {\n      var regularTabbables = [];\n      var orderedTabbables = [];\n      candidates.forEach(function(item, i) {\n        var isScope = !!item.scopeParent;\n        var element = isScope ? item.scopeParent : item;\n        var candidateTabindex = getSortOrderTabIndex(element, isScope);\n        var elements = isScope ? sortByOrder2(item.candidates) : element;\n        if (candidateTabindex === 0) {\n          isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);\n        } else {\n          orderedTabbables.push({\n            documentOrder: i,\n            tabIndex: candidateTabindex,\n            item,\n            isScope,\n            content: elements\n          });\n        }\n      });\n      return orderedTabbables.sort(sortOrderedTabbables).reduce(function(acc, sortable) {\n        sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);\n        return acc;\n      }, []).concat(regularTabbables);\n    }, \"sortByOrder\");\n    var tabbable2 = /* @__PURE__ */ __name(function tabbable3(container, options) {\n      options = options || {};\n      var candidates;\n      if (options.getShadowRoot) {\n        candidates = getCandidatesIteratively([container], options.includeContainer, {\n          filter: isNodeMatchingSelectorTabbable.bind(null, options),\n          flatten: false,\n          getShadowRoot: options.getShadowRoot,\n          shadowRootFilter: isValidShadowRootTabbable\n        });\n      } else {\n        candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));\n      }\n      return sortByOrder(candidates);\n    }, \"tabbable\");\n    var focusable = /* @__PURE__ */ __name(function focusable2(container, options) {\n      options = options || {};\n      var candidates;\n      if (options.getShadowRoot) {\n        candidates = getCandidatesIteratively([container], options.includeContainer, {\n          filter: isNodeMatchingSelectorFocusable.bind(null, options),\n          flatten: true,\n          getShadowRoot: options.getShadowRoot\n        });\n      } else {\n        candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));\n      }\n      return candidates;\n    }, \"focusable\");\n    var isTabbable2 = /* @__PURE__ */ __name(function isTabbable3(node, options) {\n      options = options || {};\n      if (!node) {\n        throw new Error(\"No node provided\");\n      }\n      if (matches.call(node, candidateSelector) === false) {\n        return false;\n      }\n      return isNodeMatchingSelectorTabbable(options, node);\n    }, \"isTabbable\");\n    var focusableCandidateSelector = /* @__PURE__ */ candidateSelectors.concat(\"iframe\").join(\",\");\n    var isFocusable = /* @__PURE__ */ __name(function isFocusable2(node, options) {\n      options = options || {};\n      if (!node) {\n        throw new Error(\"No node provided\");\n      }\n      if (matches.call(node, focusableCandidateSelector) === false) {\n        return false;\n      }\n      return isNodeMatchingSelectorFocusable(options, node);\n    }, \"isFocusable\");\n    exports2.focusable = focusable;\n    exports2.getTabIndex = getTabIndex;\n    exports2.isFocusable = isFocusable;\n    exports2.isTabbable = isTabbable2;\n    exports2.tabbable = tabbable2;\n  }\n});\n\n// node_modules/tamagui/dist/esm/index.mjs\nvar esm_exports = {};\n__export(esm_exports, {\n  ACTIONS: () => ACTIONS,\n  Adapt: () => Adapt,\n  AdaptContents: () => AdaptContents,\n  AdaptContext: () => AdaptContext,\n  AdaptParent: () => AdaptParent,\n  AdaptPortalContents: () => AdaptPortalContents,\n  AlertDialog: () => AlertDialog,\n  AlertDialogAction: () => AlertDialogAction,\n  AlertDialogCancel: () => AlertDialogCancel,\n  AlertDialogContent: () => AlertDialogContent,\n  AlertDialogDescription: () => AlertDialogDescription,\n  AlertDialogOverlay: () => AlertDialogOverlay,\n  AlertDialogPortal: () => AlertDialogPortal,\n  AlertDialogTitle: () => AlertDialogTitle,\n  AlertDialogTrigger: () => AlertDialogTrigger,\n  Anchor: () => Anchor,\n  AnimatePresence: () => AnimatePresence,\n  Article: () => Article,\n  Aside: () => Aside,\n  Avatar: () => Avatar,\n  AvatarFallback: () => AvatarFallback,\n  AvatarFallbackFrame: () => AvatarFallbackFrame,\n  AvatarFrame: () => AvatarFrame,\n  AvatarImage: () => AvatarImage,\n  Button: () => Button2,\n  ButtonContext: () => ButtonContext,\n  ButtonFrame: () => ButtonFrame,\n  ButtonIcon: () => ButtonIcon,\n  ButtonNestingContext: () => ButtonNestingContext,\n  ButtonText: () => ButtonText,\n  Card: () => Card,\n  CardBackground: () => CardBackground,\n  CardFooter: () => CardFooter,\n  CardFrame: () => CardFrame,\n  CardHeader: () => CardHeader,\n  Checkbox: () => Checkbox,\n  CheckboxContext: () => CheckboxContext,\n  CheckboxFrame: () => CheckboxFrame,\n  CheckboxIndicatorFrame: () => CheckboxIndicatorFrame,\n  CheckboxStyledContext: () => CheckboxStyledContext,\n  Circle: () => Circle,\n  ComponentContext: () => import_core56.ComponentContext,\n  Configuration: () => import_core56.Configuration,\n  Dialog: () => Dialog,\n  DialogClose: () => DialogClose,\n  DialogContent: () => DialogContent,\n  DialogDescription: () => DialogDescription,\n  DialogOverlay: () => DialogOverlay,\n  DialogOverlayFrame: () => DialogOverlayFrame,\n  DialogPortal: () => DialogPortal,\n  DialogPortalFrame: () => DialogPortalFrame,\n  DialogTitle: () => DialogTitle,\n  DialogTrigger: () => DialogTrigger,\n  DialogWarningProvider: () => DialogWarningProvider,\n  EnsureFlexed: () => EnsureFlexed,\n  Fieldset: () => Fieldset,\n  FontLanguage: () => import_core56.FontLanguage,\n  Footer: () => Footer,\n  Form: () => Form2,\n  FormFrame: () => FormFrame,\n  FormProvider: () => FormProvider,\n  FormTrigger: () => FormTrigger,\n  ForwardSelectContext: () => ForwardSelectContext,\n  Frame: () => Frame,\n  Group: () => Group,\n  GroupFrame: () => GroupFrame,\n  H1: () => H1,\n  H2: () => H2,\n  H3: () => H3,\n  H4: () => H4,\n  H5: () => H5,\n  H6: () => H6,\n  Handle: () => Handle,\n  Header: () => Header,\n  Heading: () => Heading,\n  INITIAL_STATE: () => INITIAL_STATE,\n  IS_FABRIC: () => IS_FABRIC,\n  Image: () => Image,\n  Input: () => Input,\n  InputFrame: () => InputFrame,\n  Label: () => Label,\n  LabelFrame: () => LabelFrame,\n  ListItem: () => ListItem2,\n  ListItemFrame: () => ListItemFrame,\n  ListItemSubtitle: () => ListItemSubtitle,\n  ListItemText: () => ListItemText,\n  ListItemTitle: () => ListItemTitle,\n  Main: () => Main,\n  Nav: () => Nav,\n  Overlay: () => Overlay,\n  Paragraph: () => Paragraph,\n  ParentSheetContext: () => ParentSheetContext,\n  Popover: () => Popover,\n  PopoverAnchor: () => PopoverAnchor,\n  PopoverArrow: () => PopoverArrow,\n  PopoverClose: () => PopoverClose,\n  PopoverContent: () => PopoverContent,\n  PopoverContext: () => PopoverContext,\n  PopoverTrigger: () => PopoverTrigger,\n  Popper: () => Popper,\n  PopperAnchor: () => PopperAnchor,\n  PopperArrow: () => PopperArrow,\n  PopperContent: () => PopperContent,\n  PopperContentFrame: () => PopperContentFrame,\n  PopperContext: () => PopperContext,\n  PopperProvider: () => PopperProvider,\n  Portal: () => Portal,\n  PortalHost: () => PortalHost,\n  PortalItem: () => GorhomPortalItem,\n  PortalProvider: () => PortalProvider,\n  PresenceChild: () => PresenceChild,\n  PresenceContext: () => PresenceContext,\n  Progress: () => Progress,\n  ProgressFrame: () => ProgressFrame,\n  ProgressIndicator: () => ProgressIndicator,\n  ProgressIndicatorFrame: () => ProgressIndicatorFrame,\n  ProvideAdaptContext: () => ProvideAdaptContext,\n  RadioGroup: () => RadioGroup,\n  RadioGroupFrame: () => RadioGroupFrame,\n  RadioGroupIndicatorFrame: () => RadioGroupIndicatorFrame,\n  RadioGroupItemFrame: () => RadioGroupItemFrame,\n  RadioGroupStyledContext: () => RadioGroupStyledContext,\n  Range: () => Range,\n  ResetPresence: () => ResetPresence,\n  ScrollView: () => ScrollView,\n  Section: () => Section,\n  Select: () => Select,\n  SelectGroupFrame: () => SelectGroupFrame,\n  SelectIcon: () => SelectIcon,\n  SelectItemParentProvider: () => SelectItemParentProvider,\n  SelectProvider: () => SelectProvider,\n  SelectSeparator: () => SelectSeparator,\n  Separator: () => Separator,\n  Sheet: () => Sheet,\n  SheetController: () => SheetController,\n  SheetControllerContext: () => SheetControllerContext,\n  SheetHandleFrame: () => SheetHandleFrame,\n  SheetInsideSheetContext: () => SheetInsideSheetContext,\n  SheetOverlayFrame: () => SheetOverlayFrame,\n  SheetScrollView: () => SheetScrollView,\n  SizableStack: () => SizableStack,\n  SizableText: () => SizableText,\n  Slider: () => Slider,\n  SliderContext: () => SliderContext,\n  SliderFrame: () => SliderFrame,\n  SliderThumb: () => SliderThumb,\n  SliderThumbFrame: () => SliderThumbFrame,\n  SliderTrack: () => SliderTrack,\n  SliderTrackActive: () => SliderTrackActive,\n  SliderTrackActiveFrame: () => SliderTrackActiveFrame,\n  SliderTrackFrame: () => SliderTrackFrame,\n  Spacer: () => import_core56.Spacer,\n  Spinner: () => Spinner,\n  Square: () => Square,\n  Stack: () => import_core56.Stack,\n  StyleObjectIdentifier: () => StyleObjectIdentifier,\n  StyleObjectProperty: () => StyleObjectProperty,\n  StyleObjectPseudo: () => StyleObjectPseudo,\n  StyleObjectRules: () => StyleObjectRules,\n  StyleObjectValue: () => StyleObjectValue,\n  Switch: () => Switch,\n  SwitchContext: () => SwitchContext,\n  SwitchFrame: () => SwitchFrame,\n  SwitchStyledContext: () => SwitchStyledContext,\n  SwitchThumb: () => SwitchThumb,\n  Tabs: () => Tabs2,\n  TamaguiProvider: () => TamaguiProvider,\n  Text: () => Text4,\n  TextArea: () => TextArea,\n  TextAreaFrame: () => TextAreaFrame,\n  Theme: () => import_core56.Theme,\n  ThemeableStack: () => ThemeableStack,\n  Thumb: () => Thumb,\n  ToggleGroup: () => ToggleGroup,\n  Tooltip: () => Tooltip2,\n  TooltipGroup: () => TooltipGroup,\n  TooltipSimple: () => TooltipSimple,\n  Track: () => Track,\n  USE_NATIVE_PORTAL: () => USE_NATIVE_PORTAL,\n  Unspaced: () => import_core56.Unspaced,\n  View: () => import_core56.View,\n  VisuallyHidden: () => VisuallyHidden,\n  XGroup: () => XGroup,\n  XStack: () => XStack,\n  YGroup: () => YGroup,\n  YStack: () => YStack,\n  ZStack: () => ZStack,\n  addTheme: () => addTheme,\n  allPortalHosts: () => allPortalHosts,\n  clamp: () => clamp,\n  closeOpenTooltips: () => closeOpenTooltips,\n  composeEventHandlers: () => composeEventHandlers,\n  composeRefs: () => composeRefs,\n  concatClassName: () => concatClassName,\n  configureInitialWindowDimensions: () => configureInitialWindowDimensions,\n  createAlertDialogScope: () => createAlertDialogScope,\n  createAvatarScope: () => createAvatarScope,\n  createCheckbox: () => createCheckbox,\n  createComponent: () => import_core56.createComponent,\n  createContext: () => createContext5,\n  createContextScope: () => createContextScope,\n  createDialogScope: () => createDialogScope,\n  createFont: () => import_core56.createFont,\n  createMedia: () => createMedia,\n  createProgressScope: () => createProgressScope,\n  createRadioGroup: () => createRadioGroup,\n  createSelectContext: () => createSelectContext,\n  createSelectItemParentContext: () => createSelectItemParentContext,\n  createSelectItemParentScope: () => createSelectItemParentScope,\n  createSelectScope: () => createSelectScope,\n  createSheet: () => createSheet,\n  createSheetScope: () => createSheetScope,\n  createShorthands: () => import_core56.createShorthands,\n  createStyledContext: () => import_core56.createStyledContext,\n  createSwitch: () => createSwitch,\n  createTamagui: () => createTamagui,\n  createTheme: () => import_core56.createTheme,\n  createTokens: () => import_core56.createTokens,\n  createVariable: () => import_core56.createVariable,\n  debounce: () => debounce,\n  defaultStyles: () => defaultStyles,\n  fullscreenStyle: () => fullscreenStyle,\n  getCSSStylesAtomic: () => import_core56.getCSSStylesAtomic,\n  getConfig: () => import_core56.getConfig,\n  getFontSize: () => getFontSize,\n  getFontSizeToken: () => getFontSizeToken,\n  getFontSizeVariable: () => getFontSizeVariable,\n  getMedia: () => import_core56.getMedia,\n  getNativeSheet: () => getNativeSheet,\n  getShapeSize: () => getShapeSize,\n  getThemes: () => import_core56.getThemes,\n  getToken: () => import_core56.getToken,\n  getTokenValue: () => import_core56.getTokenValue,\n  getTokens: () => import_core56.getTokens,\n  getVariable: () => import_core56.getVariable,\n  getVariableName: () => import_core56.getVariableName,\n  getVariableValue: () => import_core56.getVariableValue,\n  insertFont: () => import_core56.insertFont,\n  isChrome: () => import_core56.isChrome,\n  isClient: () => import_core56.isClient,\n  isPresent: () => isPresent,\n  isServer: () => import_core56.isServer,\n  isServerSide: () => isServerSide,\n  isTamaguiComponent: () => import_core56.isTamaguiComponent,\n  isTamaguiElement: () => import_core56.isTamaguiElement,\n  isTouchable: () => import_core56.isTouchable,\n  isVariable: () => import_core56.isVariable,\n  isWeb: () => import_core56.isWeb,\n  isWebTouchable: () => import_core56.isWebTouchable,\n  matchMedia: () => import_core56.matchMedia,\n  mediaObjectToString: () => import_core56.mediaObjectToString,\n  mediaQueryConfig: () => import_core56.mediaQueryConfig,\n  mediaState: () => import_core56.mediaState,\n  mutateThemes: () => mutateThemes,\n  portalListeners: () => portalListeners,\n  prevent: () => prevent,\n  replaceTheme: () => replaceTheme,\n  resolveViewZIndex: () => resolveViewZIndex,\n  setConfig: () => import_core56.setConfig,\n  setRef: () => setRef,\n  setupDev: () => import_core56.setupDev,\n  setupNativeSheet: () => setupNativeSheet,\n  setupPopper: () => setupPopper,\n  setupReactNative: () => import_core56.setupReactNative,\n  shouldRenderNativePlatform: () => shouldRenderNativePlatform,\n  simpleHash: () => simpleHash,\n  spacedChildren: () => import_core56.spacedChildren,\n  stylePropsAll: () => stylePropsAll,\n  stylePropsText: () => stylePropsText,\n  stylePropsTextOnly: () => stylePropsTextOnly,\n  stylePropsTransform: () => stylePropsTransform,\n  stylePropsUnitless: () => stylePropsUnitless,\n  stylePropsView: () => stylePropsView,\n  styled: () => import_core56.styled,\n  themeable: () => import_core56.themeable,\n  themeableVariants: () => themeableVariants,\n  tokenCategories: () => tokenCategories,\n  updateTheme: () => updateTheme,\n  useAdaptContext: () => useAdaptContext,\n  useAdaptIsActive: () => useAdaptIsActive,\n  useButton: () => useButton,\n  useComposedRefs: () => useComposedRefs,\n  useConfiguration: () => import_core56.useConfiguration,\n  useControllableState: () => useControllableState,\n  useCurrentColor: () => useCurrentColor,\n  useDebounce: () => useDebounce,\n  useDebounceValue: () => useDebounceValue,\n  useDidFinishSSR: () => import_core56.useDidFinishSSR,\n  useEvent: () => import_core56.useEvent,\n  useFloatingContext: () => useFloatingContext,\n  useForceUpdate: () => useForceUpdate,\n  useFormContext: () => useFormContext,\n  useGet: () => import_core56.useGet,\n  useGetThemedIcon: () => useGetThemedIcon,\n  useGroupItem: () => useGroupItem,\n  useInputProps: () => useInputProps,\n  useIsPresent: () => useIsPresent,\n  useIsTouchDevice: () => import_core56.useIsTouchDevice,\n  useIsomorphicLayoutEffect: () => import_core56.useIsomorphicLayoutEffect,\n  useLabelContext: () => useLabelContext,\n  useListItem: () => useListItem,\n  useMedia: () => import_core56.useMedia,\n  usePopoverContext: () => usePopoverContext,\n  usePopperContext: () => usePopperContext,\n  usePortal: () => usePortal,\n  usePresence: () => usePresence,\n  useProps: () => import_core56.useProps,\n  usePropsAndStyle: () => import_core56.usePropsAndStyle,\n  useSelectContext: () => useSelectContext,\n  useSelectItemParentContext: () => useSelectItemParentContext,\n  useSheet: () => useSheet,\n  useSheetController: () => useSheetController,\n  useSheetOffscreenSize: () => useSheetOffscreenSize,\n  useSheetOpenState: () => useSheetOpenState,\n  useStyle: () => import_core56.useStyle,\n  useTabsContext: () => useTabsContext,\n  useTheme: () => import_core56.useTheme,\n  useThemeName: () => import_core56.useThemeName,\n  useWindowDimensions: () => useWindowDimensions,\n  validPseudoKeys: () => validPseudoKeys,\n  validStyles: () => validStyles,\n  variableToString: () => import_core56.variableToString,\n  withStaticProperties: () => import_core56.withStaticProperties,\n  wrapChildrenInText: () => wrapChildrenInText\n});\nmodule.exports = __toCommonJS(esm_exports);\n__reExport(esm_exports, __toESM(require_cjs20(), 1), module.exports);\n\n// node_modules/@tamagui/z-index-stack/dist/esm/useStackedZIndex.mjs\nvar import_react2 = require(\"react\");\n\n// node_modules/@tamagui/z-index-stack/dist/esm/context.mjs\nvar import_react = require(\"react\");\nvar ZIndexStackContext = (0, import_react.createContext)(1);\nvar ZIndexHardcodedContext = (0, import_react.createContext)(void 0);\n\n// node_modules/@tamagui/z-index-stack/dist/esm/useStackedZIndex.mjs\nvar ZIndicesByContext = {};\nvar CurrentPortalZIndices = {};\nvar useStackedZIndex = /* @__PURE__ */ __name((props) => {\n  if (process.env.TAMAGUI_STACK_Z_INDEX_GLOBAL) {\n    const {\n      stackZIndex,\n      zIndex: zIndexProp = 1e3\n    } = props, id = (0, import_react2.useId)(), zIndex = (0, import_react2.useMemo)(() => {\n      if (stackZIndex && stackZIndex !== \"global\") {\n        const highest = Object.values(CurrentPortalZIndices).reduce((acc, cur) => Math.max(acc, cur), 0);\n        return Math.max(stackZIndex === true ? 1 : stackZIndex, highest + 1);\n      }\n      return zIndexProp || 1e3;\n    }, [stackZIndex]);\n    return (0, import_react2.useEffect)(() => {\n      if (typeof stackZIndex == \"number\") return CurrentPortalZIndices[id] = stackZIndex, () => {\n        delete CurrentPortalZIndices[id];\n      };\n    }, [stackZIndex]), zIndex;\n  } else {\n    const {\n      stackZIndex,\n      zIndex: zIndexProp\n    } = props, id = (0, import_react2.useId)(), stackingContextLevel = (0, import_react2.useContext)(ZIndexStackContext), stackLayer = stackZIndex === \"global\" ? 0 : stackingContextLevel, hardcoded = (0, import_react2.useContext)(ZIndexHardcodedContext);\n    ZIndicesByContext[stackLayer] ||= {};\n    const stackContext = ZIndicesByContext[stackLayer], zIndex = (0, import_react2.useMemo)(() => {\n      if (typeof zIndexProp == \"number\") return zIndexProp;\n      if (stackZIndex) {\n        if (hardcoded) return hardcoded + 1;\n        const highest = Object.values(stackContext).reduce((acc, cur) => Math.max(acc, cur), 0), found = stackLayer * 5e3 + highest + 1;\n        return typeof stackZIndex == \"number\" ? stackZIndex + found : found;\n      }\n      return 1;\n    }, [stackLayer, zIndexProp, stackZIndex]);\n    return (0, import_react2.useEffect)(() => {\n      if (stackZIndex) return stackContext[id] = zIndex, () => {\n        delete stackContext[id];\n      };\n    }, [zIndex]), zIndex;\n  }\n}, \"useStackedZIndex\");\n\n// node_modules/@tamagui/z-index-stack/dist/esm/StackZIndex.mjs\nvar import_react3 = require(\"react\");\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar StackZIndexContext = /* @__PURE__ */ __name(({\n  children,\n  zIndex\n}) => {\n  const existing = (0, import_react3.useContext)(ZIndexStackContext);\n  let content = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ZIndexStackContext.Provider, {\n    value: existing + 1,\n    children\n  });\n  return typeof zIndex < \"u\" && (content = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ZIndexHardcodedContext.Provider, {\n    value: zIndex,\n    children: content\n  })), content;\n}, \"StackZIndexContext\");\n\n// node_modules/@tamagui/constants/dist/esm/constants.mjs\nvar import_react4 = require(\"react\");\nvar isWeb = true;\nvar isWindowDefined = typeof window < \"u\";\nvar isServer = isWeb && !isWindowDefined;\nvar isClient = isWeb && isWindowDefined;\nvar useIsomorphicLayoutEffect = isServer ? import_react4.useEffect : import_react4.useLayoutEffect;\nvar isChrome = typeof navigator < \"u\" && /Chrome/.test(navigator.userAgent || \"\");\nvar isWebTouchable = isClient && (\"ontouchstart\" in window || navigator.maxTouchPoints > 0);\nvar isTouchable = !isWeb || isWebTouchable;\nvar isAndroid = false;\nvar isIos = process.env.TEST_NATIVE_PLATFORM === \"ios\";\nvar currentPlatform = \"web\";\n\n// node_modules/@tamagui/adapt/dist/esm/Adapt.mjs\nvar import_core5 = require(\"@tamagui/core\");\n\n// node_modules/@tamagui/simple-hash/dist/esm/index.mjs\nvar cache = /* @__PURE__ */ new Map();\nvar cacheSize = 0;\nvar simpleHash = /* @__PURE__ */ __name((strIn, hashMin = 10) => {\n  if (cache.has(strIn)) return cache.get(strIn);\n  let str = strIn;\n  str[0] === \"v\" && str.startsWith(\"var(\") && (str = str.slice(6, str.length - 1));\n  let hash = 0, valids = \"\", added = 0;\n  const len = str.length;\n  for (let i = 0; i < len; i++) {\n    if (hashMin !== \"strict\" && added <= hashMin) {\n      const char = str.charCodeAt(i);\n      if (char === 46) {\n        valids += \"--\";\n        continue;\n      }\n      if (isValidCSSCharCode(char)) {\n        added++, valids += str[i];\n        continue;\n      }\n    }\n    hash = hashChar(hash, str[i]);\n  }\n  const res = valids + (hash ? Math.abs(hash) : \"\");\n  return cacheSize > 1e4 && (cache.clear(), cacheSize = 0), cache.set(strIn, res), cacheSize++, res;\n}, \"simpleHash\");\nvar hashChar = /* @__PURE__ */ __name((hash, c) => Math.imul(31, hash) + c.charCodeAt(0) | 0, \"hashChar\");\nfunction isValidCSSCharCode(code) {\n  return (\n    // A-Z\n    code >= 65 && code <= 90 || // a-z\n    code >= 97 && code <= 122 || // _\n    code === 95 || // -\n    code === 45 || // 0-9\n    code >= 48 && code <= 57\n  );\n}\n__name(isValidCSSCharCode, \"isValidCSSCharCode\");\n\n// node_modules/@tamagui/helpers/dist/esm/clamp.mjs\nfunction clamp(value, [min2, max2]) {\n  return Math.min(max2, Math.max(min2, value));\n}\n__name(clamp, \"clamp\");\n\n// node_modules/@tamagui/helpers/dist/esm/composeEventHandlers.mjs\nfunction composeEventHandlers(og, next, {\n  checkDefaultPrevented = true\n} = {}) {\n  return !og || !next ? next || og || void 0 : (event) => {\n    if (og?.(event), !event || !(checkDefaultPrevented && typeof event == \"object\" && \"defaultPrevented\" in event) || // @ts-ignore\n    \"defaultPrevented\" in event && !event.defaultPrevented) return next?.(event);\n  };\n}\n__name(composeEventHandlers, \"composeEventHandlers\");\n\n// node_modules/@tamagui/helpers/dist/esm/concatClassName.mjs\nfunction concatClassName(_cn) {\n  const args = arguments, usedPrefixes = [];\n  let final = \"\";\n  const len = args.length;\n  let propObjects = null;\n  for (let x = len; x >= 0; x--) {\n    const cns = args[x];\n    if (!cns) continue;\n    if (!Array.isArray(cns) && typeof cns != \"string\") {\n      propObjects = propObjects || [], propObjects.push(cns);\n      continue;\n    }\n    const names = Array.isArray(cns) ? cns : cns.split(\" \"), numNames = names.length;\n    for (let i = numNames - 1; i >= 0; i--) {\n      const name = names[i];\n      if (!name || name === \" \") continue;\n      if (name[0] !== \"_\") {\n        final = name + \" \" + final;\n        continue;\n      }\n      const splitIndex = name.indexOf(\"-\");\n      if (splitIndex < 1) {\n        final = name + \" \" + final;\n        continue;\n      }\n      const isMediaQuery = name[splitIndex + 1] === \"_\", styleKey = name.slice(1, name.lastIndexOf(\"-\")), mediaKey = isMediaQuery ? name.slice(splitIndex + 2, splitIndex + 7) : null, uid = mediaKey ? styleKey + mediaKey : styleKey;\n      if (usedPrefixes.indexOf(uid) > -1) continue;\n      usedPrefixes.push(uid);\n      const propName = styleKey;\n      propName && propObjects && propObjects.some((po) => {\n        if (mediaKey) {\n          const propKey = pseudoInvert[mediaKey];\n          return po && po[propKey] && propName in po[propKey] && po[propKey] !== null;\n        }\n        return po && propName in po && po[propName] !== null;\n      }) || (final = name + \" \" + final);\n    }\n  }\n  return final;\n}\n__name(concatClassName, \"concatClassName\");\nvar pseudoInvert = {\n  hover: \"hoverStyle\",\n  focus: \"focusStyle\",\n  press: \"pressStyle\",\n  focusVisible: \"focusVisibleStyle\",\n  focusWithin: \"focusWithinStyle\",\n  disabled: \"disabledStyle\"\n};\n\n// node_modules/@tamagui/helpers/dist/esm/types.mjs\nvar StyleObjectProperty = 0;\nvar StyleObjectValue = 1;\nvar StyleObjectIdentifier = 2;\nvar StyleObjectPseudo = 3;\nvar StyleObjectRules = 4;\n\n// node_modules/@tamagui/helpers/dist/esm/shouldRenderNativePlatform.mjs\nvar ALL_PLATFORMS = [\"web\", \"android\", \"ios\"];\nfunction shouldRenderNativePlatform(nativeProp) {\n  if (!nativeProp) return null;\n  const userRequestedPlatforms = resolvePlatformNames(nativeProp);\n  for (const platform2 of ALL_PLATFORMS) if (platform2 === currentPlatform && userRequestedPlatforms.has(platform2)) return platform2;\n  return null;\n}\n__name(shouldRenderNativePlatform, \"shouldRenderNativePlatform\");\nfunction resolvePlatformNames(nativeProp) {\n  const platforms = nativeProp === true ? ALL_PLATFORMS : nativeProp === false ? [] : Array.isArray(nativeProp) ? nativeProp : [nativeProp], set = new Set(platforms);\n  return set.has(\"mobile\") && (set.add(\"android\"), set.add(\"ios\"), set.delete(\"mobile\")), set;\n}\n__name(resolvePlatformNames, \"resolvePlatformNames\");\n\n// node_modules/@tamagui/helpers/dist/esm/validStyleProps.mjs\nvar textColors = {\n  color: true,\n  textDecorationColor: true,\n  textShadowColor: true\n};\nvar tokenCategories = {\n  radius: {\n    borderRadius: true,\n    borderTopLeftRadius: true,\n    borderTopRightRadius: true,\n    borderBottomLeftRadius: true,\n    borderBottomRightRadius: true,\n    // logical\n    borderStartStartRadius: true,\n    borderStartEndRadius: true,\n    borderEndStartRadius: true,\n    borderEndEndRadius: true\n  },\n  size: {\n    width: true,\n    height: true,\n    minWidth: true,\n    minHeight: true,\n    maxWidth: true,\n    maxHeight: true,\n    blockSize: true,\n    minBlockSize: true,\n    maxBlockSize: true,\n    inlineSize: true,\n    minInlineSize: true,\n    maxInlineSize: true\n  },\n  zIndex: {\n    zIndex: true\n  },\n  color: {\n    backgroundColor: true,\n    borderColor: true,\n    borderBlockStartColor: true,\n    borderBlockEndColor: true,\n    borderBlockColor: true,\n    borderBottomColor: true,\n    borderInlineColor: true,\n    borderInlineStartColor: true,\n    borderInlineEndColor: true,\n    borderTopColor: true,\n    borderLeftColor: true,\n    borderRightColor: true,\n    borderEndColor: true,\n    borderStartColor: true,\n    shadowColor: true,\n    ...textColors,\n    outlineColor: true,\n    caretColor: true\n  }\n};\nvar stylePropsUnitless = {\n  WebkitLineClamp: true,\n  animationIterationCount: true,\n  aspectRatio: true,\n  borderImageOutset: true,\n  borderImageSlice: true,\n  borderImageWidth: true,\n  columnCount: true,\n  flex: true,\n  flexGrow: true,\n  flexOrder: true,\n  flexPositive: true,\n  flexShrink: true,\n  flexNegative: true,\n  fontWeight: true,\n  gridRow: true,\n  gridRowEnd: true,\n  gridRowGap: true,\n  gridRowStart: true,\n  gridColumn: true,\n  gridColumnEnd: true,\n  gridColumnGap: true,\n  gridColumnStart: true,\n  gridTemplateColumns: true,\n  gridTemplateAreas: true,\n  lineClamp: true,\n  opacity: true,\n  order: true,\n  orphans: true,\n  tabSize: true,\n  widows: true,\n  zIndex: true,\n  zoom: true,\n  scale: true,\n  scaleX: true,\n  scaleY: true,\n  scaleZ: true,\n  shadowOpacity: true\n};\nvar stylePropsTransform = {\n  x: true,\n  y: true,\n  scale: true,\n  perspective: true,\n  scaleX: true,\n  scaleY: true,\n  skewX: true,\n  skewY: true,\n  matrix: true,\n  rotate: true,\n  rotateY: true,\n  rotateX: true,\n  rotateZ: true\n};\nvar stylePropsView = {\n  backfaceVisibility: true,\n  borderBottomEndRadius: true,\n  borderBottomStartRadius: true,\n  borderBottomWidth: true,\n  borderLeftWidth: true,\n  borderRightWidth: true,\n  borderBlockWidth: true,\n  borderBlockEndWidth: true,\n  borderBlockStartWidth: true,\n  borderInlineWidth: true,\n  borderInlineEndWidth: true,\n  borderInlineStartWidth: true,\n  borderStyle: true,\n  borderBlockStyle: true,\n  borderBlockEndStyle: true,\n  borderBlockStartStyle: true,\n  borderInlineStyle: true,\n  borderInlineEndStyle: true,\n  borderInlineStartStyle: true,\n  borderTopEndRadius: true,\n  borderTopStartRadius: true,\n  borderTopWidth: true,\n  borderWidth: true,\n  transform: true,\n  transformOrigin: true,\n  alignContent: true,\n  alignItems: true,\n  alignSelf: true,\n  borderEndWidth: true,\n  borderStartWidth: true,\n  bottom: true,\n  display: true,\n  end: true,\n  flexBasis: true,\n  flexDirection: true,\n  flexWrap: true,\n  gap: true,\n  columnGap: true,\n  rowGap: true,\n  justifyContent: true,\n  left: true,\n  margin: true,\n  marginBlock: true,\n  marginBlockEnd: true,\n  marginBlockStart: true,\n  marginInline: true,\n  marginInlineStart: true,\n  marginInlineEnd: true,\n  marginBottom: true,\n  marginEnd: true,\n  marginHorizontal: true,\n  marginLeft: true,\n  marginRight: true,\n  marginStart: true,\n  marginTop: true,\n  marginVertical: true,\n  overflow: true,\n  padding: true,\n  paddingBottom: true,\n  paddingInline: true,\n  paddingBlock: true,\n  paddingBlockStart: true,\n  paddingInlineEnd: true,\n  paddingInlineStart: true,\n  paddingEnd: true,\n  paddingHorizontal: true,\n  paddingLeft: true,\n  paddingRight: true,\n  paddingStart: true,\n  paddingTop: true,\n  paddingVertical: true,\n  position: true,\n  right: true,\n  start: true,\n  top: true,\n  inset: true,\n  insetBlock: true,\n  insetBlockEnd: true,\n  insetBlockStart: true,\n  insetInline: true,\n  insetInlineEnd: true,\n  insetInlineStart: true,\n  direction: true,\n  shadowOffset: true,\n  shadowRadius: true,\n  ...tokenCategories.color,\n  ...tokenCategories.radius,\n  ...tokenCategories.size,\n  ...tokenCategories.radius,\n  ...stylePropsTransform,\n  ...stylePropsUnitless,\n  boxShadow: true,\n  filter: true,\n  // RN doesn't support specific border styles per-edge\n  transition: true,\n  textWrap: true,\n  backdropFilter: true,\n  background: true,\n  backgroundAttachment: true,\n  backgroundBlendMode: true,\n  backgroundClip: true,\n  backgroundColor: true,\n  backgroundImage: true,\n  backgroundOrigin: true,\n  backgroundPosition: true,\n  backgroundRepeat: true,\n  backgroundSize: true,\n  borderBottomStyle: true,\n  borderImage: true,\n  borderLeftStyle: true,\n  borderRightStyle: true,\n  borderTopStyle: true,\n  boxSizing: true,\n  caretColor: true,\n  clipPath: true,\n  contain: true,\n  containerType: true,\n  content: true,\n  cursor: true,\n  float: true,\n  mask: true,\n  maskBorder: true,\n  maskBorderMode: true,\n  maskBorderOutset: true,\n  maskBorderRepeat: true,\n  maskBorderSlice: true,\n  maskBorderSource: true,\n  maskBorderWidth: true,\n  maskClip: true,\n  maskComposite: true,\n  maskImage: true,\n  maskMode: true,\n  maskOrigin: true,\n  maskPosition: true,\n  maskRepeat: true,\n  maskSize: true,\n  maskType: true,\n  mixBlendMode: true,\n  objectFit: true,\n  objectPosition: true,\n  outlineOffset: true,\n  outlineStyle: true,\n  outlineWidth: true,\n  overflowBlock: true,\n  overflowInline: true,\n  overflowX: true,\n  overflowY: true,\n  pointerEvents: true,\n  scrollbarWidth: true,\n  textEmphasis: true,\n  touchAction: true,\n  transformStyle: true,\n  userSelect: true,\n  ...isAndroid ? {\n    elevationAndroid: true\n  } : {}\n};\nvar stylePropsFont = {\n  fontFamily: true,\n  fontSize: true,\n  fontStyle: true,\n  fontWeight: true,\n  fontVariant: true,\n  letterSpacing: true,\n  lineHeight: true,\n  textTransform: true\n};\nvar stylePropsTextOnly = {\n  ...stylePropsFont,\n  textAlign: true,\n  textDecorationLine: true,\n  textDecorationStyle: true,\n  ...textColors,\n  textShadowOffset: true,\n  textShadowRadius: true,\n  userSelect: true,\n  selectable: true,\n  verticalAlign: true,\n  whiteSpace: true,\n  wordWrap: true,\n  textOverflow: true,\n  textDecorationDistance: true,\n  cursor: true,\n  WebkitLineClamp: true,\n  WebkitBoxOrient: true\n};\nvar stylePropsText = {\n  ...stylePropsView,\n  ...stylePropsTextOnly\n};\nvar stylePropsAll = stylePropsText;\nvar validPseudoKeys = {\n  enterStyle: true,\n  exitStyle: true,\n  hoverStyle: true,\n  pressStyle: true,\n  focusStyle: true,\n  disabledStyle: true,\n  focusWithinStyle: true,\n  focusVisibleStyle: true\n};\nvar validStyles = stylePropsView;\n\n// node_modules/@tamagui/helpers/dist/esm/withStaticProperties.mjs\nvar import_react5 = __toESM(require(\"react\"), 1);\nvar Decorated = Symbol();\nvar withStaticProperties = /* @__PURE__ */ __name((component, staticProps) => {\n  const next = (() => {\n    if (component[Decorated]) {\n      const _ = import_react5.default.forwardRef((props, ref) => import_react5.default.createElement(component, {\n        ...props,\n        ref\n      }));\n      for (const key in component) {\n        const v = component[key];\n        _[key] = v && typeof v == \"object\" ? {\n          ...v\n        } : v;\n      }\n    }\n    return component;\n  })();\n  return Object.assign(next, staticProps), next[Decorated] = true, next;\n}, \"withStaticProperties\");\n\n// node_modules/@tamagui/polyfill-dev/index.js\nif (typeof globalThis[\"__DEV__\"] === \"undefined\") {\n  globalThis[\"__DEV__\"] = process.env.NODE_ENV === \"development\";\n}\n\n// node_modules/@tamagui/stacks/dist/esm/Stacks.mjs\nvar import_core2 = require(\"@tamagui/core\");\n\n// node_modules/@tamagui/stacks/dist/esm/getElevation.mjs\nvar import_core = require(\"@tamagui/core\");\nvar getElevation = /* @__PURE__ */ __name((size4, extras) => {\n  if (!size4) return;\n  const {\n    tokens\n  } = extras, token = tokens.size[size4], sizeNum = (0, import_core.isVariable)(token) ? +token.val : size4;\n  return getSizedElevation(sizeNum, extras);\n}, \"getElevation\");\nvar getSizedElevation = /* @__PURE__ */ __name((val, {\n  theme,\n  tokens\n}) => {\n  let num = 0;\n  if (val === true) {\n    const val2 = (0, import_core.getVariableValue)(tokens.size.true);\n    typeof val2 == \"number\" ? num = val2 : num = 10;\n  } else num = +val;\n  if (num === 0) return;\n  const [height, shadowRadius] = [Math.round(num / 4 + 1), Math.round(num / 2 + 2)];\n  return {\n    shadowColor: theme.shadowColor,\n    shadowRadius,\n    shadowOffset: {\n      height,\n      width: 0\n    },\n    ...import_core.isAndroid ? {\n      elevationAndroid: 2 * height\n    } : {}\n  };\n}, \"getSizedElevation\");\n\n// node_modules/@tamagui/stacks/dist/esm/Stacks.mjs\nvar fullscreenStyle = {\n  position: \"absolute\",\n  top: 0,\n  left: 0,\n  right: 0,\n  bottom: 0\n};\nvar getInset = /* @__PURE__ */ __name((val) => val && typeof val == \"object\" ? val : {\n  top: val,\n  left: val,\n  bottom: val,\n  right: val\n}, \"getInset\");\nvar variants = {\n  fullscreen: {\n    true: fullscreenStyle\n  },\n  elevation: {\n    \"...size\": getElevation,\n    \":number\": getElevation\n  },\n  inset: getInset\n};\nvar YStack = (0, import_core2.styled)(import_core2.View, {\n  flexDirection: \"column\",\n  variants\n});\nYStack.displayName = \"YStack\";\nvar XStack = (0, import_core2.styled)(import_core2.View, {\n  flexDirection: \"row\",\n  variants\n});\nXStack.displayName = \"XStack\";\nvar ZStack = (0, import_core2.styled)(YStack, {\n  position: \"relative\"\n}, {\n  neverFlatten: true,\n  isZStack: true\n});\nZStack.displayName = \"ZStack\";\n\n// node_modules/@tamagui/stacks/dist/esm/SizableStack.mjs\nvar import_core3 = require(\"@tamagui/core\");\n\n// node_modules/@tamagui/get-token/dist/esm/index.mjs\nvar import_web = require(\"@tamagui/core\");\nvar defaultOptions = {\n  shift: 0,\n  bounds: [0]\n};\nvar getSize = /* @__PURE__ */ __name((size4, options) => getTokenRelative(\"size\", size4, options), \"getSize\");\nvar getSpace = /* @__PURE__ */ __name((space, options) => getTokenRelative(\"space\", space, options), \"getSpace\");\nvar cacheVariables = {};\nvar cacheWholeVariables = {};\nvar cacheKeys = {};\nvar cacheWholeKeys = {};\nvar stepTokenUpOrDown = /* @__PURE__ */ __name((type, current, options = defaultOptions) => {\n  const tokens = (0, import_web.getTokens)({\n    prefixed: true\n  })[type];\n  if (!(type in cacheVariables)) {\n    cacheKeys[type] = [], cacheVariables[type] = [], cacheWholeKeys[type] = [], cacheWholeVariables[type] = [];\n    const sorted = Object.keys(tokens).map((k) => tokens[k]).sort((a, b) => a.val - b.val);\n    for (const token of sorted) cacheKeys[type].push(token.key), cacheVariables[type].push(token);\n    const sortedExcludingHalfSteps = sorted.filter((x) => !x.key.endsWith(\".5\"));\n    for (const token of sortedExcludingHalfSteps) cacheWholeKeys[type].push(token.key), cacheWholeVariables[type].push(token);\n  }\n  const isString = typeof current == \"string\", tokensOrdered = (options.excludeHalfSteps ? isString ? cacheWholeKeys : cacheWholeVariables : isString ? cacheKeys : cacheVariables)[type], min2 = options.bounds?.[0] ?? 0, max2 = options.bounds?.[1] ?? tokensOrdered.length - 1, currentIndex = tokensOrdered.indexOf(current);\n  let shift4 = options.shift || 0;\n  shift4 && (current === \"$true\" || (0, import_web.isVariable)(current) && current.name === \"true\") && (shift4 += shift4 > 0 ? 1 : -1);\n  const index3 = Math.min(max2, Math.max(min2, currentIndex + shift4)), found = tokensOrdered[index3];\n  return (typeof found == \"string\" ? tokens[found] : found) || tokens.$true;\n}, \"stepTokenUpOrDown\");\nvar getTokenRelative = stepTokenUpOrDown;\n\n// node_modules/@tamagui/get-button-sized/dist/esm/index.mjs\nvar getButtonSized = /* @__PURE__ */ __name((val, {\n  tokens,\n  props\n}) => {\n  if (!val || props.circular) return;\n  if (typeof val == \"number\") return {\n    paddingHorizontal: val * 0.25,\n    height: val,\n    borderRadius: props.circular ? 1e5 : val * 0.2\n  };\n  const xSize = getSpace(val), radiusToken = tokens.radius[val] ?? tokens.radius.$true;\n  return {\n    paddingHorizontal: xSize,\n    height: val,\n    borderRadius: props.circular ? 1e5 : radiusToken\n  };\n}, \"getButtonSized\");\n\n// node_modules/@tamagui/stacks/dist/esm/variants.mjs\nvar elevate = {\n  true: /* @__PURE__ */ __name((_, extras) => getElevation(extras.props.size, extras), \"true\")\n};\nvar bordered = /* @__PURE__ */ __name((val, {\n  props\n}) => ({\n  // TODO size it with size in '...size'\n  borderWidth: typeof val == \"number\" ? val : 1,\n  borderColor: \"$borderColor\",\n  ...props.hoverTheme && {\n    hoverStyle: {\n      borderColor: \"$borderColorHover\"\n    }\n  },\n  ...props.pressTheme && {\n    pressStyle: {\n      borderColor: \"$borderColorPress\"\n    }\n  },\n  ...props.focusTheme && {\n    focusStyle: {\n      borderColor: \"$borderColorFocus\"\n    }\n  }\n}), \"bordered\");\nvar padded = {\n  true: /* @__PURE__ */ __name((_, extras) => {\n    const {\n      tokens,\n      props\n    } = extras;\n    return {\n      padding: tokens.space[props.size] || tokens.space.$true\n    };\n  }, \"true\")\n};\nvar radiused = {\n  true: /* @__PURE__ */ __name((_, extras) => {\n    const {\n      tokens,\n      props\n    } = extras;\n    return {\n      borderRadius: tokens.radius[props.size] || tokens.radius.$true\n    };\n  }, \"true\")\n};\nvar circularStyle = {\n  borderRadius: 1e5,\n  padding: 0\n};\nvar circular = {\n  true: /* @__PURE__ */ __name((_, {\n    props,\n    tokens\n  }) => {\n    if (!(\"size\" in props)) return circularStyle;\n    const size4 = typeof props.size == \"number\" ? props.size : tokens.size[props.size];\n    return {\n      ...circularStyle,\n      width: size4,\n      height: size4,\n      maxWidth: size4,\n      maxHeight: size4,\n      minWidth: size4,\n      minHeight: size4\n    };\n  }, \"true\")\n};\nvar hoverTheme = {\n  true: {\n    hoverStyle: {\n      backgroundColor: \"$backgroundHover\",\n      borderColor: \"$borderColorHover\"\n    }\n  },\n  false: {}\n};\nvar pressTheme = {\n  true: {\n    cursor: \"pointer\",\n    pressStyle: {\n      backgroundColor: \"$backgroundPress\",\n      borderColor: \"$borderColorPress\"\n    }\n  },\n  false: {}\n};\nvar focusTheme = {\n  true: {\n    focusStyle: {\n      backgroundColor: \"$backgroundFocus\",\n      borderColor: \"$borderColorFocus\"\n    }\n  },\n  false: {}\n};\n\n// node_modules/@tamagui/stacks/dist/esm/SizableStack.mjs\nvar SizableStack = (0, import_core3.styled)(XStack, {\n  name: \"SizableStack\",\n  variants: {\n    unstyled: {\n      true: {\n        hoverTheme: false,\n        pressTheme: false,\n        focusTheme: false,\n        elevate: false,\n        bordered: false\n      }\n    },\n    hoverTheme,\n    pressTheme,\n    focusTheme,\n    circular,\n    elevate,\n    bordered,\n    size: {\n      \"...size\": /* @__PURE__ */ __name((val, extras) => getButtonSized(val, extras), \"...size\")\n    }\n  }\n});\n\n// node_modules/@tamagui/stacks/dist/esm/ThemeableStack.mjs\nvar import_core4 = require(\"@tamagui/core\");\nvar chromelessStyle = {\n  backgroundColor: \"transparent\",\n  borderColor: \"transparent\",\n  shadowColor: \"transparent\",\n  hoverStyle: {\n    borderColor: \"transparent\"\n  }\n};\nvar themeableVariants = {\n  backgrounded: {\n    true: {\n      backgroundColor: \"$background\"\n    }\n  },\n  radiused,\n  hoverTheme,\n  pressTheme,\n  focusTheme,\n  circular,\n  padded,\n  elevate,\n  bordered,\n  transparent: {\n    true: {\n      backgroundColor: \"transparent\"\n    }\n  },\n  chromeless: {\n    true: chromelessStyle,\n    all: {\n      ...chromelessStyle,\n      hoverStyle: chromelessStyle,\n      pressStyle: chromelessStyle,\n      focusStyle: chromelessStyle\n    }\n  }\n};\nvar ThemeableStack = (0, import_core4.styled)(YStack, {\n  variants: themeableVariants\n});\n\n// node_modules/@tamagui/stacks/dist/esm/NestingContext.mjs\nvar import_react6 = __toESM(require(\"react\"), 1);\nvar ButtonNestingContext = import_react6.default.createContext(false);\n\n// node_modules/@tamagui/portal/dist/esm/Portal.mjs\nvar React3 = __toESM(require(\"react\"), 1);\nvar import_react_dom = require(\"react-dom\");\n\n// node_modules/@tamagui/portal/dist/esm/helpers.mjs\nvar import_web2 = require(\"@tamagui/core\");\nvar getStackedZIndexProps = /* @__PURE__ */ __name((propsIn) => ({\n  stackZIndex: propsIn.stackZIndex,\n  zIndex: resolveViewZIndex(propsIn.zIndex)\n}), \"getStackedZIndexProps\");\nvar resolveViewZIndex = /* @__PURE__ */ __name((zIndex) => typeof zIndex > \"u\" || zIndex === \"unset\" ? void 0 : typeof zIndex == \"number\" ? zIndex : (0, import_web2.getTokenValue)(zIndex, \"zIndex\"), \"resolveViewZIndex\");\n\n// node_modules/@tamagui/portal/dist/esm/Portal.mjs\nvar import_jsx_runtime2 = require(\"react/jsx-runtime\");\nvar Portal = React3.memo((propsIn) => {\n  if (isServer) return null;\n  const {\n    host = globalThis.document?.body,\n    stackZIndex,\n    children,\n    ...props\n  } = propsIn, zIndex = useStackedZIndex(getStackedZIndexProps(propsIn));\n  return (0, import_react_dom.createPortal)(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(YStack, {\n    contain: \"strict\",\n    fullscreen: true,\n    position: \"fixed\",\n    maxWidth: \"100vw\",\n    maxHeight: \"100vh\",\n    pointerEvents: \"none\",\n    ...props,\n    zIndex,\n    children\n  }), host);\n});\n\n// node_modules/@tamagui/start-transition/dist/esm/index.mjs\nvar import_react7 = require(\"react\");\nvar startTransition = /* @__PURE__ */ __name((callback) => {\n  (0, import_react7.startTransition)(callback);\n}, \"startTransition\");\n\n// node_modules/@tamagui/portal/dist/esm/GorhomPortal.mjs\nvar import_react8 = __toESM(require(\"react\"), 1);\n\n// node_modules/@tamagui/portal/dist/esm/constants.mjs\nvar IS_FABRIC = typeof global < \"u\" && !!(global._IS_FABRIC ?? global.nativeFabricUIManager);\nvar USE_NATIVE_PORTAL = process.env.TAMAGUI_USE_NATIVE_PORTAL && process.env.TAMAGUI_USE_NATIVE_PORTAL !== \"false\" ? true : !isAndroid && !IS_FABRIC;\nvar allPortalHosts = /* @__PURE__ */ new Map();\nvar portalListeners = {};\n\n// node_modules/@tamagui/portal/dist/esm/GorhomPortal.mjs\nvar import_jsx_runtime3 = require(\"react/jsx-runtime\");\nvar ACTIONS = /* @__PURE__ */ ((ACTIONS2) => (ACTIONS2[ACTIONS2.REGISTER_HOST = 0] = \"REGISTER_HOST\", ACTIONS2[ACTIONS2.DEREGISTER_HOST = 1] = \"DEREGISTER_HOST\", ACTIONS2[ACTIONS2.ADD_UPDATE_PORTAL = 2] = \"ADD_UPDATE_PORTAL\", ACTIONS2[ACTIONS2.REMOVE_PORTAL = 3] = \"REMOVE_PORTAL\", ACTIONS2))(ACTIONS || {});\nvar INITIAL_STATE = {};\nvar registerHost = /* @__PURE__ */ __name((state, hostName) => (hostName in state || (state[hostName] = []), state), \"registerHost\");\nvar deregisterHost = /* @__PURE__ */ __name((state, hostName) => (delete state[hostName], state), \"deregisterHost\");\nvar addUpdatePortal = /* @__PURE__ */ __name((state, hostName, portalName, node) => {\n  hostName in state || (state = registerHost(state, hostName));\n  const index3 = state[hostName].findIndex((item) => item.name === portalName);\n  return index3 !== -1 ? state[hostName][index3].node = node : state[hostName].push({\n    name: portalName,\n    node\n  }), state;\n}, \"addUpdatePortal\");\nvar removePortal = /* @__PURE__ */ __name((state, hostName, portalName) => {\n  if (!(hostName in state)) return console.info(`Failed to remove portal '${portalName}', '${hostName}' was not registered!`), state;\n  const index3 = state[hostName].findIndex((item) => item.name === portalName);\n  return index3 !== -1 && state[hostName].splice(index3, 1), state;\n}, \"removePortal\");\nvar reducer = /* @__PURE__ */ __name((state, action) => {\n  const {\n    type\n  } = action;\n  switch (type) {\n    case 0:\n      return registerHost({\n        ...state\n      }, action.hostName);\n    case 1:\n      return deregisterHost({\n        ...state\n      }, action.hostName);\n    case 2:\n      return addUpdatePortal({\n        ...state\n      }, action.hostName, action.portalName, action.node);\n    case 3:\n      return removePortal({\n        ...state\n      }, action.hostName, action.portalName);\n    default:\n      return state;\n  }\n}, \"reducer\");\nvar PortalStateContext = (0, import_react8.createContext)(null);\nvar PortalDispatchContext = (0, import_react8.createContext)(null);\nvar usePortalState = /* @__PURE__ */ __name((hostName) => {\n  const state = (0, import_react8.useContext)(PortalStateContext);\n  if (state === null) throw new Error(\"'PortalStateContext' cannot be null, please add 'PortalProvider' to the root component.\");\n  return state[hostName] || [];\n}, \"usePortalState\");\nvar usePortal = /* @__PURE__ */ __name((hostName = \"root\") => {\n  const dispatch = (0, import_react8.useContext)(PortalDispatchContext);\n  if (dispatch === null) throw new Error(\"'PortalDispatchContext' cannot be null, please add 'PortalProvider' to the root component.\");\n  const registerHost2 = (0, import_react8.useCallback)(() => {\n    dispatch({\n      type: 0,\n      hostName\n    });\n  }, []), deregisterHost2 = (0, import_react8.useCallback)(() => {\n    dispatch({\n      type: 1,\n      hostName\n    });\n  }, []), addUpdatePortal2 = (0, import_react8.useCallback)((name, node) => {\n    dispatch({\n      type: 2,\n      hostName,\n      portalName: name,\n      node\n    });\n  }, []), removePortal2 = (0, import_react8.useCallback)((name) => {\n    dispatch({\n      type: 3,\n      hostName,\n      portalName: name\n    });\n  }, []);\n  return {\n    registerHost: registerHost2,\n    deregisterHost: deregisterHost2,\n    addPortal: addUpdatePortal2,\n    updatePortal: addUpdatePortal2,\n    removePortal: removePortal2\n  };\n}, \"usePortal\");\nvar PortalProviderComponent = /* @__PURE__ */ __name(({\n  rootHostName = \"root\",\n  shouldAddRootHost = true,\n  children\n}) => {\n  const [state, dispatch] = (0, import_react8.useReducer)(reducer, INITIAL_STATE), transitionDispatch = (0, import_react8.useMemo)(() => (value) => {\n    startTransition(() => {\n      dispatch(value);\n    });\n  }, [dispatch]);\n  return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(PortalDispatchContext.Provider, {\n    value: transitionDispatch,\n    children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(PortalStateContext.Provider, {\n      value: state,\n      children: [children, shouldAddRootHost && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(PortalHost, {\n        name: rootHostName\n      })]\n    })\n  });\n}, \"PortalProviderComponent\");\nvar PortalProvider = (0, import_react8.memo)(PortalProviderComponent);\nPortalProvider.displayName = \"PortalProvider\";\nvar defaultRenderer = /* @__PURE__ */ __name((children) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, {\n  children\n}), \"defaultRenderer\");\nvar PortalHost = (0, import_react8.memo)(function(props) {\n  return isWeb ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(PortalHostWeb, {\n    ...props\n  }) : /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(PortalHostNonNative, {\n    ...props\n  });\n});\nfunction PortalHostWeb(props) {\n  const [mounted, setMounted] = (0, import_react8.useState)(false);\n  return (0, import_react8.useEffect)(() => (setMounted(true), () => {\n    setMounted(false), allPortalHosts.delete(props.name);\n  }), [props.name]), /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(\"div\", {\n    style: {\n      display: \"contents\"\n    },\n    ref: /* @__PURE__ */ __name((node) => {\n      node && mounted && (allPortalHosts.set(props.name, node), portalListeners[props.name]?.forEach((x) => x(node)));\n    }, \"ref\")\n  });\n}\n__name(PortalHostWeb, \"PortalHostWeb\");\nfunction PortalHostNonNative(props) {\n  const {\n    name,\n    forwardProps,\n    render = defaultRenderer\n  } = props, state = usePortalState(name), {\n    registerHost: registerHost2,\n    deregisterHost: deregisterHost2\n  } = usePortal(props.name);\n  return (0, import_react8.useEffect)(() => {\n    if (!(typeof window > \"u\")) return registerHost2(), () => {\n      deregisterHost2();\n    };\n  }, []), render(forwardProps ? state.map((item) => {\n    let next = item.node;\n    const {\n      children,\n      ...restForwardProps\n    } = forwardProps;\n    return forwardProps ? import_react8.default.Children.map(next, (child) => import_react8.default.isValidElement(child) ? import_react8.default.cloneElement(child, {\n      key: child.key,\n      ...restForwardProps\n    }) : child) : next;\n  }) : state.map((item) => item.node));\n}\n__name(PortalHostNonNative, \"PortalHostNonNative\");\n\n// node_modules/@tamagui/portal/dist/esm/GorhomPortalItem.mjs\nvar import_react9 = require(\"react\");\nvar import_react_dom2 = require(\"react-dom\");\nvar GorhomPortalItem = /* @__PURE__ */ __name((props) => {\n  if (!props.hostName) throw new Error(\"No hostName\");\n  const cur = allPortalHosts.get(props.hostName), [node, setNode] = (0, import_react9.useState)(cur);\n  return cur && node !== cur && setNode(cur), (0, import_react9.useEffect)(() => {\n    if (!props.hostName || node) return;\n    const listener = /* @__PURE__ */ __name((node2) => {\n      setNode(node2);\n    }, \"listener\");\n    return portalListeners[props.hostName] ||= /* @__PURE__ */ new Set(), portalListeners[props.hostName].add(listener), () => {\n      portalListeners[props.hostName]?.delete(listener);\n    };\n  }, [node]), node ? (0, import_react_dom2.createPortal)(props.children, node) : null;\n}, \"GorhomPortalItem\");\n\n// node_modules/@tamagui/adapt/dist/esm/Adapt.mjs\nvar import_react10 = __toESM(require(\"react\"), 1);\nvar import_jsx_runtime4 = require(\"react/jsx-runtime\");\nvar CurrentAdaptContextScope = (0, import_react10.createContext)(\"\");\nvar AdaptContext = (0, import_core5.createStyledContext)({\n  Contents: null,\n  scopeName: \"\",\n  portalName: \"\",\n  platform: null,\n  setPlatform: /* @__PURE__ */ __name((x) => {\n  }, \"setPlatform\"),\n  when: null,\n  setChildren: null,\n  setWhen: /* @__PURE__ */ __name(() => {\n  }, \"setWhen\")\n});\nvar ProvideAdaptContext = /* @__PURE__ */ __name(({\n  children,\n  ...context2\n}) => {\n  const scope = context2.scopeName || \"\";\n  return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(CurrentAdaptContextScope.Provider, {\n    value: scope,\n    children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(AdaptContext.Provider, {\n      scope,\n      ...context2,\n      children\n    })\n  });\n}, \"ProvideAdaptContext\");\nvar useAdaptContext = /* @__PURE__ */ __name((scope = \"\") => {\n  const contextScope = (0, import_react10.useContext)(CurrentAdaptContextScope);\n  return AdaptContext.useStyledContext(scope === \"\" && contextScope || scope);\n}, \"useAdaptContext\");\nvar AdaptPortals = /* @__PURE__ */ new Map();\nvar AdaptParent = /* @__PURE__ */ __name(({\n  children,\n  Contents,\n  scope,\n  portal\n}) => {\n  const portalName = `AdaptPortal${scope}`, id = (0, import_react10.useId)();\n  let FinalContents = Contents || AdaptPortals.get(id);\n  FinalContents || (FinalContents = /* @__PURE__ */ __name(() => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(PortalHost, {\n    name: portalName,\n    forwardProps: typeof portal == \"boolean\" ? void 0 : portal?.forwardProps\n  }), \"FinalContents\"), AdaptPortals.set(id, FinalContents)), (0, import_react10.useEffect)(() => () => {\n    AdaptPortals.delete(id);\n  }, []);\n  const [when, setWhen] = import_react10.default.useState(null), [platform2, setPlatform] = import_react10.default.useState(null), [children2, setChildren] = import_react10.default.useState(null);\n  return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(ProvideAdaptContext, {\n    Contents: FinalContents,\n    when,\n    platform: platform2,\n    setPlatform,\n    setWhen,\n    setChildren,\n    portalName,\n    scopeName: scope,\n    children\n  });\n}, \"AdaptParent\");\nvar AdaptContents = /* @__PURE__ */ __name(({\n  scope,\n  ...rest\n}) => {\n  const context2 = useAdaptContext(scope);\n  if (!context2?.Contents) throw new Error(process.env.NODE_ENV === \"production\" ? \"tamagui.dev/docs/intro/errors#warning-002\" : \"You're rendering a Tamagui <Adapt /> component without nesting it inside a parent that is able to adapt.\");\n  return import_react10.default.createElement(context2.Contents, {\n    ...rest,\n    key: \"stable\"\n  });\n}, \"AdaptContents\");\nAdaptContents.shouldForwardSpace = true;\nvar Adapt = withStaticProperties(function(props) {\n  const {\n    platform: platform2,\n    when,\n    children,\n    scope\n  } = props, context2 = useAdaptContext(scope), scopeName = scope ?? context2.scopeName, enabled = useAdaptIsActiveGiven(props);\n  useIsomorphicLayoutEffect(() => {\n    context2?.setWhen?.(when || enabled), context2?.setPlatform?.(platform2 || null);\n  }, [when, platform2, context2, enabled]), useIsomorphicLayoutEffect(() => () => {\n    context2?.setWhen?.(null), context2?.setPlatform?.(null);\n  }, []);\n  let output;\n  if (typeof children == \"function\") {\n    const Component = context2?.Contents;\n    output = children(Component ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Component, {}) : null);\n  } else output = children;\n  return useIsomorphicLayoutEffect(() => {\n    typeof children == \"function\" && output !== void 0 && context2?.setChildren(output);\n  }, [output]), /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(StackZIndexContext, {\n    children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(CurrentAdaptContextScope.Provider, {\n      value: scopeName,\n      children: enabled ? output : null\n    })\n  });\n}, {\n  Contents: AdaptContents\n});\nvar AdaptPortalContents = /* @__PURE__ */ __name((props) => {\n  const {\n    portalName\n  } = useAdaptContext(props.scope);\n  return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(GorhomPortalItem, {\n    hostName: portalName,\n    children: props.children\n  });\n}, \"AdaptPortalContents\");\nvar useAdaptIsActiveGiven = /* @__PURE__ */ __name(({\n  when,\n  platform: platform2\n}) => {\n  const media = (0, import_core5.useMedia)();\n  if (when == null && platform2 == null) return false;\n  let enabled = false;\n  return platform2 === \"touch\" ? enabled = isTouchable : platform2 === \"native\" ? enabled = !isWeb : platform2 === \"web\" ? enabled = isWeb : platform2 === \"ios\" ? enabled = isIos : platform2 === \"android\" && (enabled = isAndroid), platform2 && enabled == false ? false : (when && typeof when == \"string\" && (enabled = media[when]), enabled);\n}, \"useAdaptIsActiveGiven\");\nvar useAdaptIsActive = /* @__PURE__ */ __name((scope) => {\n  const props = useAdaptContext(scope);\n  return useAdaptIsActiveGiven(props);\n}, \"useAdaptIsActive\");\n\n// node_modules/@tamagui/compose-refs/dist/esm/compose-refs.mjs\nvar React6 = __toESM(require(\"react\"), 1);\nfunction setRef(ref, value) {\n  typeof ref == \"function\" ? ref(value) : ref && (ref.current = value);\n}\n__name(setRef, \"setRef\");\nfunction composeRefs(...refs) {\n  return (node) => refs.forEach((ref) => setRef(ref, node));\n}\n__name(composeRefs, \"composeRefs\");\nfunction useComposedRefs(...refs) {\n  return React6.useCallback(composeRefs(...refs), refs);\n}\n__name(useComposedRefs, \"useComposedRefs\");\n\n// node_modules/@tamagui/alert-dialog/dist/esm/AlertDialog.mjs\nvar import_core13 = require(\"@tamagui/core\");\n\n// node_modules/@tamagui/create-context/dist/esm/create-context.mjs\nvar React7 = __toESM(require(\"react\"), 1);\nvar import_jsx_runtime5 = require(\"react/jsx-runtime\");\nfunction createContext5(rootComponentName, defaultContext) {\n  const Context = React7.createContext(defaultContext);\n  function Provider(props) {\n    const {\n      children,\n      ...context2\n    } = props, value = React7.useMemo(() => context2, Object.values(context2));\n    return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Context.Provider, {\n      value,\n      children\n    });\n  }\n  __name(Provider, \"Provider\");\n  function useContext17(consumerName) {\n    const context2 = React7.useContext(Context);\n    if (context2) return context2;\n    if (defaultContext !== void 0) return defaultContext;\n    throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n  }\n  __name(useContext17, \"useContext\");\n  return [Provider, useContext17];\n}\n__name(createContext5, \"createContext\");\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n  let defaultContexts = [];\n  function createContext22(rootComponentName, defaultContext) {\n    const BaseContext = React7.createContext(defaultContext), index3 = defaultContexts.length;\n    defaultContexts = [...defaultContexts, defaultContext];\n    function Provider(props) {\n      const {\n        scope,\n        children,\n        ...context2\n      } = props, Context = scope?.[scopeName]?.[index3] || BaseContext, value = React7.useMemo(() => context2, Object.values(context2));\n      return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Context.Provider, {\n        value,\n        children\n      });\n    }\n    __name(Provider, \"Provider\");\n    function useContext17(consumerName, scope, options) {\n      const Context = scope?.[scopeName]?.[index3] || BaseContext, context2 = React7.useContext(Context);\n      if (context2) return context2;\n      if (defaultContext !== void 0) return defaultContext;\n      const missingContextMessage = `\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``;\n      if (options?.fallback) return options?.warn !== false && console.warn(missingContextMessage), options.fallback;\n      throw new Error(missingContextMessage);\n    }\n    __name(useContext17, \"useContext\");\n    return [Provider, useContext17];\n  }\n  __name(createContext22, \"createContext2\");\n  const createScope = /* @__PURE__ */ __name(() => {\n    const scopeContexts = defaultContexts.map((defaultContext) => React7.createContext(defaultContext));\n    return function(scope) {\n      const contexts = scope?.[scopeName] || scopeContexts;\n      return React7.useMemo(() => ({\n        [`__scope${scopeName}`]: {\n          ...scope,\n          [scopeName]: contexts\n        }\n      }), [scope, contexts]);\n    };\n  }, \"createScope\");\n  return createScope.scopeName = scopeName, [createContext22, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\n__name(createContextScope, \"createContextScope\");\nfunction composeContextScopes(...scopes) {\n  const baseScope = scopes[0];\n  if (scopes.length === 1) return baseScope;\n  const createScope = /* @__PURE__ */ __name(() => {\n    const scopeHooks = scopes.map((createScope2) => ({\n      useScope: createScope2(),\n      scopeName: createScope2.scopeName\n    }));\n    return function(overrideScopes) {\n      const nextScopes = scopeHooks.reduce((nextScopes2, {\n        useScope,\n        scopeName\n      }) => {\n        const currentScope = useScope(overrideScopes)[`__scope${scopeName}`];\n        return {\n          ...nextScopes2,\n          ...currentScope\n        };\n      }, {});\n      return React7.useMemo(() => ({\n        [`__scope${baseScope.scopeName}`]: nextScopes\n      }), [nextScopes]);\n    };\n  }, \"createScope\");\n  return createScope.scopeName = baseScope.scopeName, createScope;\n}\n__name(composeContextScopes, \"composeContextScopes\");\n\n// node_modules/@tamagui/use-force-update/dist/esm/index.mjs\nvar import_react11 = __toESM(require(\"react\"), 1);\nvar isServerSide = typeof window > \"u\";\nvar idFn = /* @__PURE__ */ __name(() => {\n}, \"idFn\");\nfunction useForceUpdate() {\n  return isServerSide ? idFn : import_react11.default.useReducer((x) => Math.random(), 0)[1];\n}\n__name(useForceUpdate, \"useForceUpdate\");\n\n// node_modules/@tamagui/animate-presence/dist/esm/AnimatePresence.mjs\nvar import_react14 = require(\"react\");\n\n// node_modules/@tamagui/animate-presence/dist/esm/LayoutGroupContext.mjs\nvar import_react12 = __toESM(require(\"react\"), 1);\nvar LayoutGroupContext = import_react12.default.createContext({});\n\n// node_modules/@tamagui/use-constant/dist/esm/index.mjs\nvar React10 = __toESM(require(\"react\"), 1);\nfunction useConstant(fn) {\n  if (typeof document > \"u\") return React10.useMemo(() => fn(), []);\n  const ref = React10.useRef();\n  return ref.current || (ref.current = {\n    v: fn()\n  }), ref.current.v;\n}\n__name(useConstant, \"useConstant\");\n\n// node_modules/@tamagui/use-presence/dist/esm/PresenceContext.mjs\nvar React11 = __toESM(require(\"react\"), 1);\nvar import_jsx_runtime6 = require(\"react/jsx-runtime\");\nvar PresenceContext = React11.createContext(null);\nvar ResetPresence = /* @__PURE__ */ __name((props) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(PresenceContext.Provider, {\n  value: null,\n  children: props.children\n}), \"ResetPresence\");\n\n// node_modules/@tamagui/use-presence/dist/esm/usePresence.mjs\nvar React12 = __toESM(require(\"react\"), 1);\nfunction usePresence() {\n  const context2 = React12.useContext(PresenceContext);\n  if (!context2) return [true, null, context2];\n  const {\n    id,\n    isPresent: isPresent2,\n    onExitComplete,\n    register\n  } = context2;\n  return React12.useEffect(() => register(id), []), !isPresent2 && onExitComplete ? [false, () => onExitComplete?.(id), context2] : [true, void 0, context2];\n}\n__name(usePresence, \"usePresence\");\nfunction useIsPresent() {\n  return isPresent(React12.useContext(PresenceContext));\n}\n__name(useIsPresent, \"useIsPresent\");\nfunction isPresent(context2) {\n  return context2 === null ? true : context2.isPresent;\n}\n__name(isPresent, \"isPresent\");\n\n// node_modules/@tamagui/animate-presence/dist/esm/PresenceChild.mjs\nvar React13 = __toESM(require(\"react\"), 1);\nvar import_react13 = require(\"react\");\nvar import_jsx_runtime7 = require(\"react/jsx-runtime\");\nvar PresenceChild = React13.memo(({\n  children,\n  initial,\n  isPresent: isPresent2,\n  onExitComplete,\n  exitVariant,\n  enterVariant,\n  enterExitVariant,\n  presenceAffectsLayout,\n  custom\n}) => {\n  const presenceChildren = useConstant(newChildrenMap), id = (0, import_react13.useId)() || \"\", context2 = React13.useMemo(\n    () => ({\n      id,\n      initial,\n      isPresent: isPresent2,\n      custom,\n      exitVariant,\n      enterVariant,\n      enterExitVariant,\n      onExitComplete: /* @__PURE__ */ __name(() => {\n        presenceChildren.set(id, true);\n        for (const isComplete of presenceChildren.values()) if (!isComplete) return;\n        onExitComplete?.();\n      }, \"onExitComplete\"),\n      register: /* @__PURE__ */ __name(() => (presenceChildren.set(id, false), () => presenceChildren.delete(id)), \"register\")\n    }),\n    /**\n     * If the presence of a child affects the layout of the components around it,\n     * we want to make a new context value to ensure they get re-rendered\n     * so they can detect that layout change.\n     */\n    // @ts-expect-error its ok\n    presenceAffectsLayout ? void 0 : [isPresent2, exitVariant, enterVariant]\n  );\n  return React13.useMemo(() => {\n    presenceChildren.forEach((_, key) => presenceChildren.set(key, false));\n  }, [isPresent2]), React13.useEffect(() => {\n    !isPresent2 && !presenceChildren.size && onExitComplete?.();\n  }, [isPresent2]), /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(PresenceContext.Provider, {\n    value: context2,\n    children\n  });\n});\nfunction newChildrenMap() {\n  return /* @__PURE__ */ new Map();\n}\n__name(newChildrenMap, \"newChildrenMap\");\n\n// node_modules/@tamagui/animate-presence/dist/esm/AnimatePresence.mjs\nvar import_jsx_runtime8 = require(\"react/jsx-runtime\");\nvar getChildKey = /* @__PURE__ */ __name((child) => child.key || \"\", \"getChildKey\");\nfunction updateChildLookup(children, allChildren) {\n  children.forEach((child) => {\n    const key = getChildKey(child);\n    allChildren.set(key, child);\n  });\n}\n__name(updateChildLookup, \"updateChildLookup\");\nfunction onlyElements(children) {\n  const filtered = [];\n  return import_react14.Children.forEach(children, (child) => {\n    (0, import_react14.isValidElement)(child) && filtered.push(child);\n  }), filtered;\n}\n__name(onlyElements, \"onlyElements\");\nvar AnimatePresence = /* @__PURE__ */ __name(({\n  children,\n  enterVariant,\n  exitVariant,\n  enterExitVariant,\n  initial = true,\n  onExitComplete,\n  exitBeforeEnter,\n  presenceAffectsLayout = true,\n  custom\n}) => {\n  let forceRender = (0, import_react14.useContext)(LayoutGroupContext).forceRender ?? useForceUpdate();\n  const filteredChildren = onlyElements(children), presentChildren = (0, import_react14.useRef)(filteredChildren), allChildren = (0, import_react14.useRef)(/* @__PURE__ */ new Map()).current, exiting = (0, import_react14.useRef)(/* @__PURE__ */ new Set()).current;\n  updateChildLookup(filteredChildren, allChildren);\n  const isInitialRender = (0, import_react14.useRef)(true);\n  if (isInitialRender.current) return isInitialRender.current = false, /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_jsx_runtime8.Fragment, {\n    children: filteredChildren.map((child) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(PresenceChild, {\n      isPresent: true,\n      enterExitVariant,\n      exitVariant,\n      enterVariant,\n      initial: initial ? void 0 : false,\n      presenceAffectsLayout,\n      custom,\n      children: child\n    }, getChildKey(child)))\n  });\n  let childrenToRender = [...filteredChildren];\n  const presentKeys = presentChildren.current.map(getChildKey), targetKeys = filteredChildren.map(getChildKey), numPresent = presentKeys.length;\n  for (let i = 0; i < numPresent; i++) {\n    const key = presentKeys[i];\n    targetKeys.indexOf(key) === -1 ? exiting.add(key) : exiting.delete(key);\n  }\n  return exitBeforeEnter && exiting.size && (childrenToRender = []), exiting.forEach((key) => {\n    if (targetKeys.indexOf(key) !== -1) return;\n    const child = allChildren.get(key);\n    if (!child) return;\n    const insertionIndex = presentKeys.indexOf(key), exitingComponent = /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(PresenceChild, {\n      isPresent: false,\n      onExitComplete: /* @__PURE__ */ __name(() => {\n        allChildren.delete(key), exiting.delete(key);\n        const removeIndex = presentChildren.current.findIndex((presentChild) => presentChild.key === key);\n        presentChildren.current.splice(removeIndex, 1), exiting.size || (presentChildren.current = filteredChildren, forceRender(), onExitComplete?.());\n      }, \"onExitComplete\"),\n      presenceAffectsLayout,\n      enterExitVariant,\n      enterVariant,\n      exitVariant,\n      custom,\n      children: child\n    }, getChildKey(child));\n    childrenToRender.splice(insertionIndex, 0, exitingComponent);\n  }), childrenToRender = childrenToRender.map((child) => {\n    const key = child.key;\n    return exiting.has(key) ? child : /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(PresenceChild, {\n      isPresent: true,\n      exitVariant,\n      enterVariant,\n      enterExitVariant,\n      presenceAffectsLayout,\n      custom,\n      children: child\n    }, getChildKey(child));\n  }), presentChildren.current = childrenToRender, /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_jsx_runtime8.Fragment, {\n    children: exiting.size ? childrenToRender : (\n      // biome-ignore lint/correctness/useJsxKeyInIterable: <explanation>\n      childrenToRender.map((child) => (0, import_react14.cloneElement)(child))\n    )\n  });\n}, \"AnimatePresence\");\nAnimatePresence.displayName = \"AnimatePresence\";\n\n// node_modules/@tamagui/aria-hidden/dist/esm/AriaHidden.mjs\nvar import_aria_hidden = __toESM(require_es5(), 1);\nvar hideOthers = import_aria_hidden.hideOthers;\n\n// node_modules/@tamagui/dialog/dist/esm/Dialog.mjs\nvar import_core12 = require(\"@tamagui/core\");\n\n// node_modules/@tamagui/use-callback-ref/dist/esm/index.mjs\nvar React14 = __toESM(require(\"react\"), 1);\nfunction useCallbackRef(callback) {\n  const callbackRef = React14.useRef(callback);\n  return React14.useEffect(() => {\n    callbackRef.current = callback;\n  }), React14.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\n__name(useCallbackRef, \"useCallbackRef\");\n\n// node_modules/@tamagui/use-escape-keydown/dist/esm/index.mjs\nvar import_react15 = __toESM(require(\"react\"), 1);\nfunction useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.document) {\n  const onEscapeKeyDown = useCallbackRef(onEscapeKeyDownProp);\n  import_react15.default.useEffect(() => {\n    const handleKeyDown = /* @__PURE__ */ __name((event) => {\n      event.key === \"Escape\" && onEscapeKeyDown(event);\n    }, \"handleKeyDown\");\n    return ownerDocument.addEventListener(\"keydown\", handleKeyDown), () => {\n      ownerDocument.removeEventListener(\"keydown\", handleKeyDown);\n    };\n  }, [onEscapeKeyDown, ownerDocument]);\n}\n__name(useEscapeKeydown, \"useEscapeKeydown\");\n\n// node_modules/@tamagui/use-event/dist/esm/useGet.mjs\nvar React16 = __toESM(require(\"react\"), 1);\nfunction useGet(currentValue, initialValue2, forwardToFunction) {\n  const curRef = React16.useRef(initialValue2 ?? currentValue);\n  return useIsomorphicLayoutEffect(() => {\n    curRef.current = currentValue;\n  }), React16.useCallback(forwardToFunction ? (...args) => curRef.current?.apply(null, args) : () => curRef.current, []);\n}\n__name(useGet, \"useGet\");\n\n// node_modules/@tamagui/use-event/dist/esm/useEvent.mjs\nfunction useEvent(callback) {\n  return useGet(callback, defaultValue, true);\n}\n__name(useEvent, \"useEvent\");\nvar defaultValue = /* @__PURE__ */ __name(() => {\n  throw new Error(\"Cannot call an event handler while rendering.\");\n}, \"defaultValue\");\n\n// node_modules/@tamagui/dismissable/dist/esm/Dismissable.mjs\nvar React17 = __toESM(require(\"react\"), 1);\nvar ReactDOM = __toESM(require(\"react-dom\"), 1);\nvar import_jsx_runtime9 = require(\"react/jsx-runtime\");\nfunction dispatchDiscreteCustomEvent(target, event) {\n  target && ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\n__name(dispatchDiscreteCustomEvent, \"dispatchDiscreteCustomEvent\");\nvar DISMISSABLE_LAYER_NAME = \"Dismissable\";\nvar CONTEXT_UPDATE = \"dismissable.update\";\nvar POINTER_DOWN_OUTSIDE = \"dismissable.pointerDownOutside\";\nvar FOCUS_OUTSIDE = \"dismissable.focusOutside\";\nvar originalBodyPointerEvents;\nvar DismissableContext = React17.createContext({\n  layers: /* @__PURE__ */ new Set(),\n  layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),\n  branches: /* @__PURE__ */ new Set()\n});\nvar Dismissable = React17.forwardRef((props, forwardedRef) => {\n  const {\n    disableOutsidePointerEvents = false,\n    forceUnmount,\n    onEscapeKeyDown,\n    onPointerDownOutside,\n    onFocusOutside,\n    onInteractOutside,\n    onDismiss,\n    ...layerProps\n  } = props, context2 = React17.useContext(DismissableContext), [node, setNode] = React17.useState(null), [, force] = React17.useState({}), composedRefs = useComposedRefs(forwardedRef, (node2) => setNode(node2)), layers = Array.from(context2.layers), [highestLayerWithOutsidePointerEventsDisabled] = [...context2.layersWithOutsidePointerEventsDisabled].slice(-1), highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled), index3 = node ? layers.indexOf(node) : -1, isBodyPointerEventsDisabled = context2.layersWithOutsidePointerEventsDisabled.size > 0, isPointerEventsEnabled = index3 >= highestLayerWithOutsidePointerEventsDisabledIndex, pointerDownOutside = usePointerDownOutside((event) => {\n    const target = event.target, isPointerDownOnBranch = [...context2.branches].some((branch) => branch.contains(target));\n    !isPointerEventsEnabled || isPointerDownOnBranch || (onPointerDownOutside?.(event), onInteractOutside?.(event), event.defaultPrevented || onDismiss?.());\n  }), focusOutside = useFocusOutside((event) => {\n    const target = event.target;\n    [...context2.branches].some((branch) => branch.contains(target)) || (onFocusOutside?.(event), onInteractOutside?.(event), event.defaultPrevented || onDismiss?.());\n  });\n  return useEscapeKeydown((event) => {\n    index3 === context2.layers.size - 1 && (onEscapeKeyDown?.(event), !event.defaultPrevented && onDismiss && (event.preventDefault(), onDismiss()));\n  }), React17.useEffect(() => {\n    if (node) return disableOutsidePointerEvents && (context2.layersWithOutsidePointerEventsDisabled.size === 0 && (originalBodyPointerEvents = document.body.style.pointerEvents, document.body.style.pointerEvents = \"none\"), context2.layersWithOutsidePointerEventsDisabled.add(node)), context2.layers.add(node), dispatchUpdate(), () => {\n      disableOutsidePointerEvents && context2.layersWithOutsidePointerEventsDisabled.size === 1 && (document.body.style.pointerEvents = originalBodyPointerEvents);\n    };\n  }, [node, disableOutsidePointerEvents, context2]), React17.useEffect(() => {\n    if (!forceUnmount) return () => {\n      node && (context2.layers.delete(node), context2.layersWithOutsidePointerEventsDisabled.delete(node), dispatchUpdate());\n    };\n  }, [node, context2, forceUnmount]), React17.useEffect(() => {\n    const handleUpdate = /* @__PURE__ */ __name(() => {\n      force({});\n    }, \"handleUpdate\");\n    return document.addEventListener(CONTEXT_UPDATE, handleUpdate), () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);\n  }, []), /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(\"div\", {\n    ...layerProps,\n    ref: composedRefs,\n    style: {\n      display: \"contents\",\n      pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? \"auto\" : \"none\" : void 0,\n      // @ts-ignore\n      ...props.style\n    },\n    onFocusCapture: composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),\n    onBlurCapture: composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),\n    onPointerDownCapture: composeEventHandlers(props.onPointerDownCapture, pointerDownOutside.onPointerDownCapture)\n  });\n});\nDismissable.displayName = DISMISSABLE_LAYER_NAME;\nvar BRANCH_NAME = \"DismissableBranch\";\nvar DismissableBranch = React17.forwardRef((props, forwardedRef) => {\n  const context2 = React17.useContext(DismissableContext), ref = React17.useRef(null), composedRefs = useComposedRefs(forwardedRef, ref);\n  return React17.useEffect(() => {\n    const node = ref.current;\n    if (node) return context2.branches.add(node), () => {\n      context2.branches.delete(node);\n    };\n  }, [context2.branches]), /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(\"div\", {\n    style: {\n      display: \"contents\"\n    },\n    ...props,\n    ref: composedRefs\n  });\n});\nDismissableBranch.displayName = BRANCH_NAME;\nfunction usePointerDownOutside(onPointerDownOutside) {\n  const handlePointerDownOutside = useEvent(onPointerDownOutside), isPointerInsideReactTreeRef = React17.useRef(false), handleClickRef = React17.useRef(() => {\n  });\n  return React17.useEffect(() => {\n    const handlePointerDown = /* @__PURE__ */ __name((event) => {\n      if (event.target && !isPointerInsideReactTreeRef.current) {\n        let handleAndDispatchPointerDownOutsideEvent = /* @__PURE__ */ __name(function() {\n          handleAndDispatchCustomEvent(POINTER_DOWN_OUTSIDE, handlePointerDownOutside, eventDetail, {\n            discrete: true\n          });\n        }, \"handleAndDispatchPointerDownOutsideEvent\");\n        const eventDetail = {\n          originalEvent: event\n        };\n        event.pointerType === \"touch\" ? (document.removeEventListener(\"click\", handleClickRef.current), handleClickRef.current = handleAndDispatchPointerDownOutsideEvent, document.addEventListener(\"click\", handleClickRef.current, {\n          once: true\n        })) : handleAndDispatchPointerDownOutsideEvent();\n      }\n      isPointerInsideReactTreeRef.current = false;\n    }, \"handlePointerDown\"), timerId = setTimeout(() => {\n      document.addEventListener(\"pointerdown\", handlePointerDown);\n    }, 0);\n    return () => {\n      window.clearTimeout(timerId), document.removeEventListener(\"pointerdown\", handlePointerDown), document.removeEventListener(\"click\", handleClickRef.current);\n    };\n  }, [handlePointerDownOutside]), {\n    // ensures we check React component tree (not just DOM tree)\n    onPointerDownCapture: /* @__PURE__ */ __name(() => {\n      isPointerInsideReactTreeRef.current = true;\n    }, \"onPointerDownCapture\")\n  };\n}\n__name(usePointerDownOutside, \"usePointerDownOutside\");\nfunction useFocusOutside(onFocusOutside) {\n  const handleFocusOutside = useEvent(onFocusOutside), isFocusInsideReactTreeRef = React17.useRef(false);\n  return React17.useEffect(() => {\n    const handleFocus = /* @__PURE__ */ __name((event) => {\n      event.target && !isFocusInsideReactTreeRef.current && handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, {\n        originalEvent: event\n      }, {\n        discrete: false\n      });\n    }, \"handleFocus\");\n    return document.addEventListener(\"focusin\", handleFocus), () => document.removeEventListener(\"focusin\", handleFocus);\n  }, [handleFocusOutside]), {\n    onFocusCapture: /* @__PURE__ */ __name(() => {\n      isFocusInsideReactTreeRef.current = true;\n    }, \"onFocusCapture\"),\n    onBlurCapture: /* @__PURE__ */ __name(() => {\n      isFocusInsideReactTreeRef.current = false;\n    }, \"onBlurCapture\")\n  };\n}\n__name(useFocusOutside, \"useFocusOutside\");\nfunction dispatchUpdate() {\n  const event = new CustomEvent(CONTEXT_UPDATE);\n  document.dispatchEvent(event);\n}\n__name(dispatchUpdate, \"dispatchUpdate\");\nfunction handleAndDispatchCustomEvent(name, handler, detail, {\n  discrete\n}) {\n  const target = detail.originalEvent.target, event = new CustomEvent(name, {\n    bubbles: false,\n    cancelable: true,\n    detail\n  });\n  handler && target.addEventListener(name, handler, {\n    once: true\n  }), discrete ? dispatchDiscreteCustomEvent(target, event) : target.dispatchEvent(event);\n}\n__name(handleAndDispatchCustomEvent, \"handleAndDispatchCustomEvent\");\n\n// node_modules/@tamagui/focus-scope/dist/esm/FocusScope.mjs\nvar React18 = __toESM(require(\"react\"), 1);\nvar import_jsx_runtime10 = require(\"react/jsx-runtime\");\nvar AUTOFOCUS_ON_MOUNT = \"focusScope.autoFocusOnMount\";\nvar AUTOFOCUS_ON_UNMOUNT = \"focusScope.autoFocusOnUnmount\";\nvar EVENT_OPTIONS = {\n  bubbles: false,\n  cancelable: true\n};\nvar FocusScope = React18.forwardRef(function(props, forwardedRef) {\n  const childProps = useFocusScope(props, forwardedRef);\n  return typeof props.children == \"function\" ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_jsx_runtime10.Fragment, {\n    children: props.children(childProps)\n  }) : React18.cloneElement(React18.Children.only(props.children), childProps);\n});\nfunction useFocusScope(props, forwardedRef) {\n  const {\n    loop = false,\n    enabled = true,\n    trapped = false,\n    onMountAutoFocus: onMountAutoFocusProp,\n    onUnmountAutoFocus: onUnmountAutoFocusProp,\n    forceUnmount,\n    children,\n    ...scopeProps\n  } = props, [container, setContainer] = React18.useState(null), onMountAutoFocus = useEvent(onMountAutoFocusProp), onUnmountAutoFocus = useEvent(onUnmountAutoFocusProp), lastFocusedElementRef = React18.useRef(null), setContainerTransition = React18.useCallback((node) => {\n    startTransition(() => {\n      setContainer(node);\n    });\n  }, [setContainer]), composedRefs = useComposedRefs(forwardedRef, setContainerTransition), focusScope = React18.useRef({\n    paused: false,\n    pause() {\n      this.paused = true;\n    },\n    resume() {\n      this.paused = false;\n    }\n  }).current;\n  React18.useEffect(() => {\n    if (!enabled || !trapped) return;\n    const controller = new AbortController();\n    function handleFocusIn(event) {\n      if (focusScope.paused || !container) return;\n      const target = event.target;\n      container.contains(target) ? (target?.addEventListener(\"blur\", handleBlur, {\n        signal: controller.signal\n      }), lastFocusedElementRef.current = target) : focus(lastFocusedElementRef.current, {\n        select: true\n      });\n    }\n    __name(handleFocusIn, \"handleFocusIn\");\n    function handleFocusOut(event) {\n      controller.abort(), !(focusScope.paused || !container) && (container.contains(event.relatedTarget) || focus(lastFocusedElementRef.current, {\n        select: true\n      }));\n    }\n    __name(handleFocusOut, \"handleFocusOut\");\n    function handleBlur() {\n      lastFocusedElementRef.current = container;\n    }\n    __name(handleBlur, \"handleBlur\");\n    return document.addEventListener(\"focusin\", handleFocusIn), document.addEventListener(\"focusout\", handleFocusOut), () => {\n      controller.abort(), document.removeEventListener(\"focusin\", handleFocusIn), document.removeEventListener(\"focusout\", handleFocusOut);\n    };\n  }, [trapped, forceUnmount, container, focusScope.paused]), React18.useEffect(() => {\n    if (!enabled || !container || forceUnmount) return;\n    focusScopesStack.add(focusScope);\n    const previouslyFocusedElement = document.activeElement;\n    if (!container.contains(previouslyFocusedElement)) {\n      const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);\n      if (container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus), container.dispatchEvent(mountEvent), !mountEvent.defaultPrevented) {\n        const candidates = removeLinks(getTabbableCandidates(container));\n        focusFirst(candidates, {\n          select: true\n        }), document.activeElement === previouslyFocusedElement && focus(container);\n      }\n    }\n    return () => {\n      container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n      const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);\n      container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus), container.dispatchEvent(unmountEvent), unmountEvent.defaultPrevented || focus(previouslyFocusedElement ?? document.body, {\n        select: true\n      }), container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus), focusScopesStack.remove(focusScope);\n    };\n  }, [enabled, container, forceUnmount, onMountAutoFocus, onUnmountAutoFocus, focusScope]);\n  const handleKeyDown = React18.useCallback((event) => {\n    if (!trapped || !loop || focusScope.paused) return;\n    const isTabKey = event.key === \"Tab\" && !event.altKey && !event.ctrlKey && !event.metaKey, focusedElement = document.activeElement;\n    if (isTabKey && focusedElement) {\n      const container2 = event.currentTarget, [first, last] = getTabbableEdges(container2);\n      first && last ? !event.shiftKey && focusedElement === last ? (event.preventDefault(), loop && focus(first, {\n        select: true\n      })) : event.shiftKey && focusedElement === first && (event.preventDefault(), loop && focus(last, {\n        select: true\n      })) : focusedElement === container2 && event.preventDefault();\n    }\n  }, [loop, trapped, focusScope.paused]);\n  return {\n    tabIndex: -1,\n    ...scopeProps,\n    ref: composedRefs,\n    onKeyDown: handleKeyDown\n  };\n}\n__name(useFocusScope, \"useFocusScope\");\nfunction focusFirst(candidates, {\n  select = false\n} = {}) {\n  const previouslyFocusedElement = document.activeElement;\n  for (const candidate of candidates) if (focus(candidate, {\n    select\n  }), document.activeElement !== previouslyFocusedElement) return;\n}\n__name(focusFirst, \"focusFirst\");\nfunction getTabbableEdges(container) {\n  const candidates = getTabbableCandidates(container), first = findVisible(candidates, container), last = findVisible(candidates.reverse(), container);\n  return [first, last];\n}\n__name(getTabbableEdges, \"getTabbableEdges\");\nfunction getTabbableCandidates(container) {\n  const nodes = [], walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n    acceptNode: /* @__PURE__ */ __name((node) => {\n      const isHiddenInput = node.tagName === \"INPUT\" && node.type === \"hidden\";\n      return node.disabled || node.hidden || isHiddenInput ? NodeFilter.FILTER_SKIP : node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n    }, \"acceptNode\")\n  });\n  for (; walker.nextNode(); ) nodes.push(walker.currentNode);\n  return nodes;\n}\n__name(getTabbableCandidates, \"getTabbableCandidates\");\nfunction findVisible(elements, container) {\n  for (const element of elements) if (!isHidden(element, {\n    upTo: container\n  })) return element;\n}\n__name(findVisible, \"findVisible\");\nfunction isHidden(node, {\n  upTo\n}) {\n  if (getComputedStyle(node).visibility === \"hidden\") return true;\n  for (; node; ) {\n    if (upTo !== void 0 && node === upTo) return false;\n    if (getComputedStyle(node).display === \"none\") return true;\n    node = node.parentElement;\n  }\n  return false;\n}\n__name(isHidden, \"isHidden\");\nfunction isSelectableInput(element) {\n  return element instanceof HTMLInputElement && \"select\" in element;\n}\n__name(isSelectableInput, \"isSelectableInput\");\nfunction focus(element, {\n  select = false\n} = {}) {\n  if (element?.focus) {\n    const previouslyFocusedElement = document.activeElement;\n    element.focus({\n      preventScroll: true\n    }), element !== previouslyFocusedElement && isSelectableInput(element) && select && element.select();\n  }\n}\n__name(focus, \"focus\");\nvar focusScopesStack = createFocusScopesStack();\nfunction createFocusScopesStack() {\n  let stack = [];\n  return {\n    add(focusScope) {\n      const activeFocusScope = stack[0];\n      focusScope !== activeFocusScope && activeFocusScope?.pause(), stack = arrayRemove(stack, focusScope), stack.unshift(focusScope);\n    },\n    remove(focusScope) {\n      stack = arrayRemove(stack, focusScope), stack[0]?.resume();\n    }\n  };\n}\n__name(createFocusScopesStack, \"createFocusScopesStack\");\nfunction arrayRemove(array, item) {\n  const updatedArray = [...array], index3 = updatedArray.indexOf(item);\n  return index3 !== -1 && updatedArray.splice(index3, 1), updatedArray;\n}\n__name(arrayRemove, \"arrayRemove\");\nfunction removeLinks(items) {\n  return items.filter((item) => item.tagName !== \"A\");\n}\n__name(removeLinks, \"removeLinks\");\n\n// node_modules/@tamagui/remove-scroll/dist/esm/RemoveScroll.mjs\nvar import_react16 = __toESM(require(\"react\"), 1);\nvar import_react_remove_scroll = __toESM(require_es57(), 1);\nvar import_jsx_runtime11 = require(\"react/jsx-runtime\");\nvar RemoveScroll = import_react16.default.memo((props) => props.children ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_remove_scroll.RemoveScroll, {\n  ...props\n}) : null);\nvar classNames = import_react_remove_scroll.RemoveScroll.classNames;\n\n// node_modules/@tamagui/sheet/dist/esm/Sheet.mjs\nvar import_core9 = require(\"@tamagui/core\");\n\n// node_modules/@tamagui/sheet/dist/esm/constants.mjs\nvar SHEET_NAME = \"Sheet\";\nvar SHEET_HANDLE_NAME = \"SheetHandle\";\nvar SHEET_OVERLAY_NAME = \"SheetOverlay\";\n\n// node_modules/@tamagui/sheet/dist/esm/createSheet.mjs\nvar import_core8 = require(\"@tamagui/core\");\n\n// node_modules/@tamagui/use-did-finish-ssr/dist/esm/index.mjs\nvar React20 = __toESM(require(\"react\"), 1);\nfunction useDidFinishSSR(value) {\n  return React20.useSyncExternalStore(subscribe, () => value ?? true, () => false);\n}\n__name(useDidFinishSSR, \"useDidFinishSSR\");\nvar subscribe = /* @__PURE__ */ __name(() => () => {\n}, \"subscribe\");\n\n// node_modules/@tamagui/sheet/dist/esm/createSheet.mjs\nvar import_react22 = require(\"react\");\nvar import_react_native_web3 = __toESM(require_cjs21(), 1);\n\n// node_modules/@tamagui/sheet/dist/esm/SheetContext.mjs\nvar [createSheetContext, createSheetScope] = createContextScope(SHEET_NAME);\nvar [SheetProvider, useSheetContext] = createSheetContext(SHEET_NAME, {});\n\n// node_modules/@tamagui/sheet/dist/esm/SheetImplementationCustom.mjs\nvar import_core7 = require(\"@tamagui/core\");\nvar import_react20 = __toESM(require(\"react\"), 1);\nvar import_react_native_web = __toESM(require_cjs21(), 1);\n\n// node_modules/@tamagui/sheet/dist/esm/contexts.mjs\nvar import_react17 = __toESM(require(\"react\"), 1);\nvar ParentSheetContext = import_react17.default.createContext({\n  zIndex: 1e5\n});\nvar SheetInsideSheetContext = import_react17.default.createContext(null);\n\n// node_modules/@tamagui/sheet/dist/esm/helpers.mjs\nfunction resisted(y, minY, maxOverflow = 25) {\n  if (y >= minY) return y;\n  const pastBoundary = minY - y, resistedDistance = Math.sqrt(pastBoundary) * 2;\n  return minY - resistedDistance;\n}\n__name(resisted, \"resisted\");\n\n// node_modules/@tamagui/use-controllable-state/dist/esm/useControllableState.mjs\nvar React22 = __toESM(require(\"react\"), 1);\nvar emptyCallbackFn = /* @__PURE__ */ __name((_) => _(), \"emptyCallbackFn\");\nfunction useControllableState({\n  prop,\n  defaultProp,\n  onChange,\n  strategy = \"prop-wins\",\n  preventUpdate,\n  transition\n}) {\n  const [state, setState] = React22.useState(prop ?? defaultProp), previous = React22.useRef(state), propWins = strategy === \"prop-wins\" && prop !== void 0, value = propWins ? prop : state, onChangeCb = useEvent(onChange || idFn2), transitionFn = transition ? startTransition : emptyCallbackFn;\n  React22.useEffect(() => {\n    prop !== void 0 && (previous.current = prop, transitionFn(() => {\n      setState(prop);\n    }));\n  }, [prop]), React22.useEffect(() => {\n    propWins || state !== previous.current && (previous.current = state, onChangeCb(state));\n  }, [onChangeCb, state, propWins]);\n  const setter = useEvent((next) => {\n    if (!preventUpdate) if (propWins) {\n      const nextValue = typeof next == \"function\" ? next(previous.current) : next;\n      onChangeCb(nextValue);\n    } else transitionFn(() => {\n      setState(next);\n    });\n  });\n  return [value, setter];\n}\n__name(useControllableState, \"useControllableState\");\nvar idFn2 = /* @__PURE__ */ __name(() => {\n}, \"idFn\");\n\n// node_modules/@tamagui/sheet/dist/esm/useSheetController.mjs\nvar import_react18 = __toESM(require(\"react\"), 1);\nvar useSheetController = /* @__PURE__ */ __name(() => {\n  const controller = import_react18.default.useContext(SheetControllerContext), isHidden2 = controller?.hidden, isShowingNonSheet = isHidden2 && controller?.open;\n  return {\n    controller,\n    isHidden: isHidden2,\n    isShowingNonSheet,\n    disableDrag: controller?.disableDrag\n  };\n}, \"useSheetController\");\nvar SheetControllerContext = import_react18.default.createContext(null);\n\n// node_modules/@tamagui/sheet/dist/esm/useSheetOpenState.mjs\nvar useSheetOpenState = /* @__PURE__ */ __name((props) => {\n  const {\n    isHidden: isHidden2,\n    controller\n  } = useSheetController(), onOpenChangeInternal = /* @__PURE__ */ __name((val) => {\n    controller?.onOpenChange?.(val), props.onOpenChange?.(val);\n  }, \"onOpenChangeInternal\"), [open, setOpen] = useControllableState({\n    prop: controller?.open ?? props.open,\n    defaultProp: props.defaultOpen ?? false,\n    onChange: onOpenChangeInternal,\n    strategy: \"most-recent-wins\",\n    transition: true\n  });\n  return {\n    open,\n    setOpen,\n    isHidden: isHidden2,\n    controller\n  };\n}, \"useSheetOpenState\");\n\n// node_modules/@tamagui/sheet/dist/esm/useSheetProviderProps.mjs\nvar import_react19 = __toESM(require(\"react\"), 1);\nvar import_core6 = require(\"@tamagui/core\");\nfunction useSheetProviderProps(props, state, options = {}) {\n  const handleRef = import_react19.default.useRef(null), contentRef = import_react19.default.useRef(null), [frameSize, setFrameSize] = import_react19.default.useState(0), [maxContentSize, setMaxContentSize] = import_react19.default.useState(0), snapPointsMode = props.snapPointsMode ?? \"percent\", snapPointsProp = props.snapPoints ?? (snapPointsMode === \"percent\" ? [80] : snapPointsMode === \"constant\" ? [256] : [\"fit\"]), hasFit = snapPointsProp[0] === \"fit\", snapPoints = import_react19.default.useMemo(() => props.dismissOnSnapToBottom ? [...snapPointsProp, 0] : snapPointsProp, [JSON.stringify(snapPointsProp), props.dismissOnSnapToBottom]), [position_, setPositionImmediate] = useControllableState({\n    prop: props.position,\n    defaultProp: props.defaultPosition || (state.open ? 0 : -1),\n    onChange: props.onPositionChange,\n    strategy: \"most-recent-wins\",\n    transition: true\n  }), position = state.open === false ? -1 : position_, {\n    open\n  } = state, setPosition = import_react19.default.useCallback((next) => {\n    props.dismissOnSnapToBottom && next === snapPoints.length - 1 ? state.setOpen(false) : setPositionImmediate(next);\n  }, [props.dismissOnSnapToBottom, snapPoints.length, setPositionImmediate, state.setOpen]);\n  process.env.NODE_ENV === \"development\" && (snapPointsMode === \"mixed\" && snapPoints.some((p) => {\n    if (typeof p == \"string\") {\n      if (p === \"fit\") return false;\n      if (p.endsWith(\"%\")) {\n        const n = Number(p.slice(0, -1));\n        return n < 0 || n > 100;\n      }\n      return true;\n    }\n    return typeof p != \"number\" || p < 0;\n  }) && console.warn('\\u26A0\\uFE0F Invalid snapPoint given, snapPoints must be positive numeric values, string percentages between 0-100%, or \"fit\" when snapPointsMode is mixed'), snapPointsMode === \"mixed\" && snapPoints.indexOf(\"fit\") > 0 && console.warn('\\u26A0\\uFE0F Invalid snapPoint given, \"fit\" must be the first/largest snap point when snapPointsMode is mixed'), snapPointsMode === \"fit\" && (snapPoints.length !== (props.dismissOnSnapToBottom ? 2 : 1) || snapPoints[0] !== \"fit\") && console.warn(\"\\u26A0\\uFE0F Invalid snapPoint given, there are no snap points when snapPointsMode is fit\"), snapPointsMode === \"constant\" && snapPoints.some((p) => typeof p != \"number\" || p < 0) && console.warn(\"\\u26A0\\uFE0F Invalid snapPoint given, snapPoints must be positive numeric values when snapPointsMode is constant\"), snapPointsMode === \"percent\" && snapPoints.some((p) => typeof p != \"number\" || p < 0 || p > 100) && console.warn(\"\\u26A0\\uFE0F Invalid snapPoint given, snapPoints must be numeric values between 0 and 100 when snapPointsMode is percent\")), open && props.dismissOnSnapToBottom && position === snapPoints.length - 1 && setPositionImmediate(0);\n  const shouldSetPositionOpen = open && position < 0;\n  import_react19.default.useEffect(() => {\n    shouldSetPositionOpen && setPosition(0);\n  }, [setPosition, shouldSetPositionOpen]);\n  const {\n    animationDriver\n  } = (0, import_core6.useConfiguration)();\n  if (!animationDriver) throw new Error(process.env.NODE_ENV === \"production\" ? \"\\u274C 008\" : \"Must set animations in tamagui.config.ts\");\n  const scrollBridge = useConstant(() => ({\n    enabled: false,\n    y: 0,\n    paneY: 0,\n    paneMinY: 0,\n    scrollStartY: -1,\n    drag: /* @__PURE__ */ __name(() => {\n    }, \"drag\"),\n    release: /* @__PURE__ */ __name(() => {\n    }, \"release\"),\n    scrollLock: false\n  })), removeScrollEnabled = props.forceRemoveScrollEnabled ?? (open && props.modal), maxSnapPoint = snapPoints[0];\n  return {\n    screenSize: snapPointsMode === \"percent\" ? frameSize / ((typeof maxSnapPoint == \"number\" ? maxSnapPoint : 100) / 100) : maxContentSize,\n    maxSnapPoint,\n    removeScrollEnabled,\n    scrollBridge,\n    modal: !!props.modal,\n    open: state.open,\n    setOpen: state.setOpen,\n    hidden: !!state.isHidden,\n    contentRef,\n    handleRef,\n    frameSize,\n    setFrameSize,\n    dismissOnOverlayPress: props.dismissOnOverlayPress ?? true,\n    dismissOnSnapToBottom: props.dismissOnSnapToBottom ?? false,\n    onOverlayComponent: options.onOverlayComponent,\n    scope: props.__scopeSheet,\n    hasFit,\n    position,\n    snapPoints,\n    snapPointsMode,\n    setMaxContentSize,\n    setPosition,\n    setPositionImmediate,\n    onlyShowFrame: false\n  };\n}\n__name(useSheetProviderProps, \"useSheetProviderProps\");\n\n// node_modules/@tamagui/sheet/dist/esm/SheetImplementationCustom.mjs\nvar import_jsx_runtime12 = require(\"react/jsx-runtime\");\nvar hiddenSize = 10000.1;\nvar sheetHiddenStyleSheet = null;\nvar relativeDimensionTo = isWeb ? \"window\" : \"screen\";\nvar SheetImplementationCustom = import_react20.default.forwardRef(function(props, forwardedRef) {\n  const parentSheet = import_react20.default.useContext(ParentSheetContext), {\n    animation,\n    animationConfig: animationConfigProp,\n    modal = false,\n    zIndex = parentSheet.zIndex + 1,\n    moveOnKeyboardChange = false,\n    unmountChildrenWhenHidden = false,\n    portalProps,\n    containerComponent: ContainerComponent = import_react20.default.Fragment\n  } = props, state = useSheetOpenState(props), [overlayComponent, setOverlayComponent] = import_react20.default.useState(null), providerProps = useSheetProviderProps(props, state, {\n    onOverlayComponent: setOverlayComponent\n  }), {\n    frameSize,\n    setFrameSize,\n    snapPoints,\n    snapPointsMode,\n    hasFit,\n    position,\n    setPosition,\n    scrollBridge,\n    screenSize,\n    setMaxContentSize,\n    maxSnapPoint\n  } = providerProps, {\n    open,\n    controller,\n    isHidden: isHidden2\n  } = state, sheetRef = import_react20.default.useRef(null), ref = useComposedRefs(forwardedRef, sheetRef, providerProps.contentRef), {\n    animationDriver\n  } = (0, import_core7.useConfiguration)(), animationConfig = (() => {\n    if (animationDriver.supportsCSSVars) return {};\n    const [animationProp, animationPropConfig] = animation ? Array.isArray(animation) ? animation : [animation] : [];\n    return animationConfigProp ?? (animationProp ? {\n      ...animationDriver.animations[animationProp],\n      ...animationPropConfig\n    } : null);\n  })(), [isShowingInnerSheet, setIsShowingInnerSheet] = import_react20.default.useState(false), shouldHideParentSheet = !isWeb && modal && isShowingInnerSheet && // if not using weird portal limitation we dont need to hide parent sheet\n  USE_NATIVE_PORTAL, sheetInsideSheet = import_react20.default.useContext(SheetInsideSheetContext), onInnerSheet = import_react20.default.useCallback((hasChild) => {\n    setIsShowingInnerSheet(hasChild);\n  }, []), positions = import_react20.default.useMemo(() => snapPoints.map((point) => getYPositions(snapPointsMode, point, screenSize, frameSize)), [screenSize, frameSize, snapPoints, snapPointsMode]), {\n    useAnimatedNumber,\n    useAnimatedNumberStyle,\n    useAnimatedNumberReaction\n  } = animationDriver, AnimatedView = animationDriver.View ?? import_core7.Stack;\n  useIsomorphicLayoutEffect(() => {\n    if (sheetInsideSheet && open) return sheetInsideSheet(true), () => {\n      sheetInsideSheet(false);\n    };\n  }, [sheetInsideSheet, open]);\n  const nextParentContext = import_react20.default.useMemo(() => ({\n    zIndex\n  }), [zIndex]), startPosition = (0, import_core7.useDidFinishSSR)() && screenSize ? screenSize : hiddenSize, animatedNumber = useAnimatedNumber(startPosition), at = import_react20.default.useRef(startPosition), hasntMeasured = at.current === hiddenSize, [disableAnimation, setDisableAnimation] = (0, import_react20.useState)(hasntMeasured), hasScrollView = import_react20.default.useRef(false);\n  useAnimatedNumberReaction({\n    value: animatedNumber,\n    hostRef: sheetRef\n  }, import_react20.default.useCallback((value) => {\n    at.current = value, scrollBridge.paneY = value;\n  }, [animationDriver]));\n  function stopSpring() {\n    animatedNumber.stop(), scrollBridge.onFinishAnimate && (scrollBridge.onFinishAnimate(), scrollBridge.onFinishAnimate = void 0);\n  }\n  __name(stopSpring, \"stopSpring\");\n  const animateTo = (0, import_core7.useEvent)((position2) => {\n    if (frameSize === 0) return;\n    let toValue = isHidden2 || position2 === -1 ? screenSize : positions[position2];\n    at.current !== toValue && (at.current = toValue, stopSpring(), animatedNumber.setValue(toValue, {\n      type: \"spring\",\n      ...animationConfig\n    }));\n  });\n  useIsomorphicLayoutEffect(() => {\n    if (hasntMeasured && screenSize) {\n      at.current = screenSize, animatedNumber.setValue(screenSize, {\n        type: \"timing\",\n        duration: 0\n      }, () => {\n        setTimeout(() => {\n          setDisableAnimation(false);\n        }, 10);\n      });\n      return;\n    }\n    disableAnimation || !frameSize || !screenSize || isHidden2 || hasntMeasured && !open || animateTo(position);\n  }, [hasntMeasured, disableAnimation, isHidden2, frameSize, screenSize, open, position]);\n  const disableDrag = props.disableDrag ?? controller?.disableDrag, themeName = (0, import_core7.useThemeName)(), [isDragging, setIsDragging] = import_react20.default.useState(false), scrollEnabled = (0, import_react20.useRef)(true), setScrollEnabled = import_react20.default.useCallback((val) => {\n    scrollEnabled.current = val;\n  }, []), panResponder = import_react20.default.useMemo(() => {\n    if (disableDrag || !frameSize || isShowingInnerSheet) return;\n    const minY = positions[0];\n    scrollBridge.paneMinY = minY;\n    let startY = at.current;\n    function setPanning(val) {\n      setIsDragging(val), isClient && (sheetHiddenStyleSheet || (sheetHiddenStyleSheet = document.createElement(\"style\"), typeof document.head < \"u\" && document.head.appendChild(sheetHiddenStyleSheet)), val ? sheetHiddenStyleSheet.innerText = \":root * { user-select: none !important; -webkit-user-select: none !important; }\" : sheetHiddenStyleSheet.innerText = \"\");\n    }\n    __name(setPanning, \"setPanning\");\n    const release = /* @__PURE__ */ __name(({\n      vy,\n      dragAt\n    }) => {\n      isExternalDrag = false, previouslyScrolling = false, setPanning(false);\n      const end = dragAt + startY + frameSize * vy * 0.2;\n      let closestPoint = 0, dist = Number.POSITIVE_INFINITY;\n      for (let i = 0; i < positions.length; i++) {\n        const position2 = positions[i], curDist = end > position2 ? end - position2 : position2 - end;\n        curDist < dist && (dist = curDist, closestPoint = i);\n      }\n      setPosition(closestPoint), animateTo(closestPoint), setScrollEnabled(closestPoint === 0 && dragAt <= 0);\n    }, \"release\"), finish = /* @__PURE__ */ __name((_e, state2) => {\n      release({\n        vy: state2.vy,\n        dragAt: state2.dy\n      });\n    }, \"finish\");\n    let previouslyScrolling = false;\n    const onMoveShouldSet = /* @__PURE__ */ __name((e, {\n      dy\n    }) => {\n      if (e.target === providerProps.handleRef.current || !scrollEnabled.current || !hasScrollView.current) return true;\n      const isScrolled = scrollBridge.y !== 0, isDraggingUp = dy < 0, isNearTop = scrollBridge.paneY - 5 <= scrollBridge.paneMinY;\n      return isScrolled ? (previouslyScrolling = true, false) : isNearTop && scrollEnabled.current && isDraggingUp ? false : Math.abs(dy) > 5;\n    }, \"onMoveShouldSet\"), grant = /* @__PURE__ */ __name(() => {\n      setScrollEnabled(false), setPanning(true), stopSpring(), startY = at.current;\n    }, \"grant\");\n    let isExternalDrag = false;\n    return scrollBridge.drag = (dy) => {\n      isExternalDrag || (isExternalDrag = true, grant());\n      const to = dy + startY;\n      animatedNumber.setValue(resisted(to, minY), {\n        type: \"direct\"\n      });\n    }, scrollBridge.release = release, import_react_native_web.PanResponder.create({\n      onMoveShouldSetPanResponder: onMoveShouldSet,\n      onPanResponderGrant: grant,\n      onPanResponderMove: /* @__PURE__ */ __name((_e, {\n        dy\n      }) => {\n        const toFull = dy + startY, to = resisted(toFull, minY);\n        animatedNumber.setValue(to, {\n          type: \"direct\"\n        });\n      }, \"onPanResponderMove\"),\n      onPanResponderEnd: finish,\n      onPanResponderTerminate: finish,\n      onPanResponderRelease: finish\n    });\n  }, [disableDrag, isShowingInnerSheet, animateTo, frameSize, positions, setPosition]), handleAnimationViewLayout = import_react20.default.useCallback((e) => {\n    const next = Math.min(e.nativeEvent?.layout.height, import_react_native_web.Dimensions.get(relativeDimensionTo).height);\n    next && setFrameSize(next);\n  }, []), handleMaxContentViewLayout = import_react20.default.useCallback((e) => {\n    const next = Math.min(e.nativeEvent?.layout.height, import_react_native_web.Dimensions.get(relativeDimensionTo).height);\n    next && setMaxContentSize(next);\n  }, []), animatedStyle = useAnimatedNumberStyle(animatedNumber, (val) => {\n    \"worklet\";\n    return {\n      transform: [{\n        translateY: frameSize === 0 ? hiddenSize : val\n      }]\n    };\n  }), sizeBeforeKeyboard = import_react20.default.useRef(null);\n  import_react20.default.useEffect(() => {\n    if (isWeb || !moveOnKeyboardChange) return;\n    const keyboardShowListener = import_react_native_web.Keyboard.addListener(currentPlatform === \"ios\" ? \"keyboardWillShow\" : \"keyboardDidShow\", (e) => {\n      sizeBeforeKeyboard.current === null && (sizeBeforeKeyboard.current = isHidden2 || position === -1 ? screenSize : positions[position], animatedNumber.setValue(Math.max(sizeBeforeKeyboard.current - e.endCoordinates.height, 0), {\n        type: \"timing\",\n        duration: 250\n      }));\n    }), keyboardDidHideListener = import_react_native_web.Keyboard.addListener(\"keyboardDidHide\", () => {\n      sizeBeforeKeyboard.current !== null && (animatedNumber.setValue(sizeBeforeKeyboard.current, {\n        type: \"timing\",\n        duration: 250\n      }), sizeBeforeKeyboard.current = null);\n    });\n    return () => {\n      keyboardDidHideListener.remove(), keyboardShowListener.remove();\n    };\n  }, [moveOnKeyboardChange, positions, position, isHidden2]);\n  const [opacity, setOpacity] = import_react20.default.useState(open ? 1 : 0);\n  open && opacity === 0 && setOpacity(1), import_react20.default.useEffect(() => {\n    if (!open) {\n      const tm = setTimeout(() => {\n        setOpacity(0);\n      }, 400);\n      return () => {\n        clearTimeout(tm);\n      };\n    }\n  }, [open]);\n  const forcedContentHeight = hasFit ? void 0 : snapPointsMode === \"percent\" ? `${maxSnapPoint}${isWeb ? \"dvh\" : \"%\"}` : maxSnapPoint, setHasScrollView = import_react20.default.useCallback((val) => {\n    hasScrollView.current = val;\n  }, []);\n  let contents = /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ParentSheetContext.Provider, {\n    value: nextParentContext,\n    children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(SheetProvider, {\n      ...providerProps,\n      scrollEnabled: scrollEnabled.current,\n      setHasScrollView,\n      children: [/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(AnimatePresence, {\n        custom: {\n          open\n        },\n        children: shouldHideParentSheet || !open ? null : overlayComponent\n      }), snapPointsMode !== \"percent\" && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native_web.View, {\n        style: {\n          opacity: 0,\n          position: \"absolute\",\n          top: 0,\n          left: 0,\n          right: 0,\n          bottom: 0,\n          pointerEvents: \"none\"\n        },\n        onLayout: handleMaxContentViewLayout\n      }), /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(AnimatedView, {\n        ref,\n        ...panResponder?.panHandlers,\n        onLayout: handleAnimationViewLayout,\n        ...!isDragging && {\n          // @ts-ignore for CSS driver this is necessary to attach the transition\n          animation: disableAnimation ? null : animation\n        },\n        disableClassName: true,\n        style: [{\n          position: \"absolute\",\n          zIndex,\n          width: \"100%\",\n          height: forcedContentHeight,\n          minHeight: forcedContentHeight,\n          opacity: shouldHideParentSheet ? 0 : opacity,\n          ...(shouldHideParentSheet || !open) && {\n            pointerEvents: \"none\"\n          }\n        }, animatedStyle],\n        children: props.children\n      })]\n    })\n  });\n  const shouldMountChildren = unmountChildrenWhenHidden ? !!opacity : true;\n  if (modal) {\n    const modalContents = /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Portal, {\n      stackZIndex: zIndex,\n      ...portalProps,\n      children: shouldMountChildren && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ContainerComponent, {\n        children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_core7.Theme, {\n          forceClassName: true,\n          name: themeName,\n          children: contents\n        })\n      })\n    });\n    return isWeb ? modalContents : /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SheetInsideSheetContext.Provider, {\n      value: onInnerSheet,\n      children: modalContents\n    });\n  }\n  return contents;\n});\nfunction getYPositions(mode, point, screenSize, frameSize) {\n  if (!screenSize || !frameSize) return 0;\n  if (mode === \"mixed\") {\n    if (typeof point == \"number\") return screenSize - Math.min(screenSize, Math.max(0, point));\n    if (point === \"fit\") return screenSize - Math.min(screenSize, frameSize);\n    if (point.endsWith(\"%\")) {\n      const pct2 = Math.min(100, Math.max(0, Number(point.slice(0, -1)))) / 100;\n      return Number.isNaN(pct2) ? (console.warn(\"Invalid snapPoint percentage string\"), 0) : Math.round(screenSize - pct2 * screenSize);\n    }\n    return console.warn(\"Invalid snapPoint unknown value\"), 0;\n  }\n  if (mode === \"fit\") return point === 0 ? screenSize : screenSize - Math.min(screenSize, frameSize);\n  if (mode === \"constant\" && typeof point == \"number\") return screenSize - Math.min(screenSize, Math.max(0, point));\n  const pct = Math.min(100, Math.max(0, Number(point))) / 100;\n  return Number.isNaN(pct) ? (console.warn(\"Invalid snapPoint percentage\"), 0) : Math.round(screenSize - pct * screenSize);\n}\n__name(getYPositions, \"getYPositions\");\n\n// node_modules/@tamagui/sheet/dist/esm/SheetScrollView.mjs\nvar import_react21 = __toESM(require(\"react\"), 1);\n\n// node_modules/@tamagui/scroll-view/dist/esm/ScrollView.mjs\nvar import_web3 = require(\"@tamagui/core\");\nvar import_react_native_web2 = __toESM(require_cjs21(), 1);\nvar ScrollView = (0, import_web3.styled)(import_react_native_web2.ScrollView, {\n  name: \"ScrollView\",\n  scrollEnabled: true,\n  variants: {\n    fullscreen: {\n      true: fullscreenStyle\n    }\n  }\n}, {\n  accept: {\n    contentContainerStyle: \"style\"\n  }\n});\n\n// node_modules/@tamagui/sheet/dist/esm/SheetScrollView.mjs\nvar import_jsx_runtime13 = require(\"react/jsx-runtime\");\nvar SHEET_SCROLL_VIEW_NAME = \"SheetScrollView\";\nvar SheetScrollView = import_react21.default.forwardRef(({\n  __scopeSheet,\n  children,\n  onScroll,\n  scrollEnabled,\n  ...props\n}, ref) => {\n  const context2 = useSheetContext(SHEET_SCROLL_VIEW_NAME, __scopeSheet), {\n    scrollBridge,\n    scrollEnabled: scrollEnabled_,\n    setHasScrollView\n  } = context2, scrollRef = import_react21.default.useRef(null), state = import_react21.default.useRef({\n    lastPageY: 0,\n    dragAt: 0,\n    dys: [],\n    // store a few recent dys to get velocity on release\n    isScrolling: false,\n    isDragging: false\n  });\n  (0, import_react21.useEffect)(() => (setHasScrollView(true), () => {\n    setHasScrollView(false);\n  }), []);\n  const release = /* @__PURE__ */ __name(() => {\n    if (!state.current.isDragging) return;\n    state.current.isDragging = false, scrollBridge.scrollStartY = -1, state.current.isScrolling = false;\n    let vy = 0;\n    if (state.current.dys.length) {\n      const recentDys = state.current.dys.slice(-10);\n      vy = (recentDys.length ? recentDys.reduce((a, b) => a + b, 0) : 0) / recentDys.length * 0.04;\n    }\n    state.current.dys = [], scrollBridge.release({\n      dragAt: state.current.dragAt,\n      vy\n    });\n  }, \"release\"), scrollable = scrollEnabled ?? scrollEnabled_;\n  return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(ScrollView, {\n    ref: composeRefs(scrollRef, ref),\n    flex: 1,\n    scrollEventThrottle: 8,\n    onResponderRelease: release,\n    className: \"_ovs-contain\",\n    scrollEnabled: scrollable,\n    onScroll: /* @__PURE__ */ __name((e) => {\n      const {\n        y\n      } = e.nativeEvent.contentOffset;\n      scrollBridge.y = y, y > 0 && (scrollBridge.scrollStartY = -1), onScroll?.(e);\n    }, \"onScroll\"),\n    onStartShouldSetResponder: /* @__PURE__ */ __name(() => (scrollBridge.scrollStartY = -1, state.current.isDragging = true, scrollable), \"onStartShouldSetResponder\"),\n    onMoveShouldSetResponder: /* @__PURE__ */ __name(() => scrollable, \"onMoveShouldSetResponder\"),\n    ...props,\n    children\n  });\n});\n\n// node_modules/@tamagui/sheet/dist/esm/useSheetOffscreenSize.mjs\nvar useSheetOffscreenSize = /* @__PURE__ */ __name(({\n  snapPoints,\n  position,\n  screenSize,\n  frameSize,\n  snapPointsMode\n}) => {\n  if (snapPointsMode === \"fit\") return 0;\n  if (snapPointsMode === \"constant\") {\n    const maxSize2 = Number(snapPoints[0]), currentSize2 = Number(snapPoints[position] ?? 0);\n    return maxSize2 - currentSize2;\n  }\n  if (snapPointsMode === \"percent\") {\n    const maxPercentOpened = Number(snapPoints[0]) / 100, percentOpened = Number(snapPoints[position] ?? 0) / 100;\n    return (maxPercentOpened - percentOpened) * screenSize;\n  }\n  const maxSnapPoint = snapPoints[0];\n  if (maxSnapPoint === \"fit\") return 0;\n  const maxSize = typeof maxSnapPoint == \"string\" ? Number(maxSnapPoint.slice(0, -1)) / 100 * screenSize : maxSnapPoint, currentSnapPoint = snapPoints[position] ?? 0, currentSize = typeof currentSnapPoint == \"string\" ? Number(currentSnapPoint.slice(0, -1)) / 100 * screenSize : currentSnapPoint, offscreenSize = maxSize - currentSize;\n  return Number.isNaN(offscreenSize) ? 0 : offscreenSize;\n}, \"useSheetOffscreenSize\");\n\n// node_modules/@tamagui/sheet/dist/esm/createSheet.mjs\nvar import_jsx_runtime14 = require(\"react/jsx-runtime\");\nfunction createSheet({\n  Handle: Handle2,\n  Frame: Frame2,\n  Overlay: Overlay2\n}) {\n  const SheetHandle = Handle2.styleable(({\n    __scopeSheet,\n    ...props\n  }, forwardedRef) => {\n    const context2 = useSheetContext(SHEET_HANDLE_NAME, __scopeSheet), composedRef = useComposedRefs(context2.handleRef, forwardedRef);\n    return context2.onlyShowFrame ? null : (\n      // @ts-ignore\n      /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Handle2, {\n        ref: composedRef,\n        onPress: /* @__PURE__ */ __name(() => {\n          const max2 = context2.snapPoints.length + (context2.dismissOnSnapToBottom ? -1 : 0), nextPos = (context2.position + 1) % max2;\n          context2.setPosition(nextPos);\n        }, \"onPress\"),\n        open: context2.open,\n        ...props\n      })\n    );\n  }), SheetOverlay = Overlay2.extractable((0, import_react22.memo)((propsIn) => {\n    const {\n      __scopeSheet,\n      ...props\n    } = propsIn, context2 = useSheetContext(SHEET_OVERLAY_NAME, __scopeSheet), element = (0, import_react22.useMemo)(() => (\n      // @ts-ignore\n      /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Overlay2, {\n        ...props,\n        onPress: composeEventHandlers(props.onPress, context2.dismissOnOverlayPress ? () => {\n          context2.setOpen(false);\n        } : void 0)\n      })\n    ), [props.onPress, props.opacity, context2.dismissOnOverlayPress]);\n    return useIsomorphicLayoutEffect(() => {\n      context2.onOverlayComponent?.(element);\n    }, [element]), context2.onlyShowFrame, null;\n  })), SheetFrame = Frame2.extractable((0, import_react22.forwardRef)(({\n    __scopeSheet,\n    adjustPaddingForOffscreenContent,\n    disableHideBottomOverflow,\n    children,\n    ...props\n  }, forwardedRef) => {\n    const context2 = useSheetContext(SHEET_NAME, __scopeSheet), {\n      hasFit,\n      removeScrollEnabled,\n      frameSize,\n      contentRef,\n      open\n    } = context2, composedContentRef = useComposedRefs(forwardedRef, contentRef), offscreenSize = useSheetOffscreenSize(context2), sheetContents = (0, import_react22.useMemo)(() => (\n      // @ts-expect-error\n      /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(Frame2, {\n        ref: composedContentRef,\n        flex: hasFit ? 0 : 1,\n        height: hasFit ? void 0 : frameSize,\n        pointerEvents: open ? \"auto\" : \"none\",\n        ...props,\n        children: [/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(StackZIndexContext, {\n          zIndex: resolveViewZIndex(props.zIndex),\n          children\n        }), adjustPaddingForOffscreenContent && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core8.Stack, {\n          \"data-sheet-offscreen-pad\": true,\n          height: offscreenSize,\n          width: \"100%\"\n        })]\n      })\n    ), [open, props, frameSize, offscreenSize, adjustPaddingForOffscreenContent, hasFit]);\n    return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, {\n      children: [/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(RemoveScroll, {\n        forwardProps: true,\n        enabled: removeScrollEnabled,\n        allowPinchZoom: true,\n        shards: [contentRef],\n        removeScrollBar: false,\n        children: sheetContents\n      }), !disableHideBottomOverflow && // @ts-ignore\n      /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Frame2, {\n        ...props,\n        componentName: \"SheetCover\",\n        children: null,\n        position: \"absolute\",\n        bottom: \"-100%\",\n        zIndex: -1,\n        height: context2.frameSize,\n        left: 0,\n        right: 0,\n        borderWidth: 0,\n        borderRadius: 0,\n        shadowOpacity: 0\n      })]\n    });\n  })), Sheet2 = (0, import_react22.forwardRef)(function(props, ref) {\n    const hydrated = useDidFinishSSR(), {\n      isShowingNonSheet\n    } = useSheetController();\n    let SheetImplementation = SheetImplementationCustom;\n    return props.native && import_react_native_web3.Platform.OS, isShowingNonSheet || !hydrated ? null : /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(SheetImplementation, {\n      ref,\n      ...props\n    });\n  }), components = {\n    Frame: SheetFrame,\n    Overlay: SheetOverlay,\n    Handle: SheetHandle,\n    ScrollView: SheetScrollView\n  }, Controlled = withStaticProperties(Sheet2, components);\n  return withStaticProperties(Sheet2, {\n    ...components,\n    Controlled\n  });\n}\n__name(createSheet, \"createSheet\");\n\n// node_modules/@tamagui/sheet/dist/esm/Sheet.mjs\nvar Handle = (0, import_core9.styled)(XStack, {\n  name: SHEET_HANDLE_NAME,\n  variants: {\n    open: {\n      true: {\n        opacity: 1,\n        pointerEvents: \"auto\"\n      },\n      false: {\n        opacity: 0,\n        pointerEvents: \"none\"\n      }\n    },\n    unstyled: {\n      false: {\n        height: 10,\n        borderRadius: 100,\n        backgroundColor: \"$background\",\n        zIndex: 10,\n        marginHorizontal: \"35%\",\n        marginBottom: \"$2\",\n        opacity: 0.5,\n        hoverStyle: {\n          opacity: 0.7\n        }\n      }\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar Overlay = (0, import_core9.styled)(ThemeableStack, {\n  name: SHEET_OVERLAY_NAME,\n  variants: {\n    open: {\n      true: {\n        pointerEvents: \"auto\"\n      },\n      false: {\n        pointerEvents: \"none\"\n      }\n    },\n    unstyled: {\n      false: {\n        fullscreen: true,\n        position: \"absolute\",\n        backgrounded: true,\n        zIndex: 99999,\n        pointerEvents: \"auto\"\n      }\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar Frame = (0, import_core9.styled)(YStack, {\n  name: SHEET_NAME,\n  variants: {\n    unstyled: {\n      false: {\n        flex: 1,\n        backgroundColor: \"$background\",\n        borderTopLeftRadius: \"$true\",\n        borderTopRightRadius: \"$true\",\n        width: \"100%\",\n        maxHeight: \"100%\",\n        overflow: \"hidden\"\n      }\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar Sheet = createSheet({\n  Frame,\n  Handle,\n  Overlay\n});\nvar SheetOverlayFrame = Overlay;\nvar SheetHandleFrame = Handle;\n\n// node_modules/@tamagui/sheet/dist/esm/useSheet.mjs\nvar useSheet = /* @__PURE__ */ __name(() => useSheetContext(\"\", void 0), \"useSheet\");\n\n// node_modules/@tamagui/sheet/dist/esm/SheetController.mjs\nvar import_react23 = __toESM(require(\"react\"), 1);\nvar import_core10 = require(\"@tamagui/core\");\nvar import_jsx_runtime15 = require(\"react/jsx-runtime\");\nvar SheetController = /* @__PURE__ */ __name(({\n  children,\n  onOpenChange: onOpenChangeProp,\n  ...value\n}) => {\n  const onOpenChange = (0, import_core10.useEvent)(onOpenChangeProp), memoValue = import_react23.default.useMemo(() => ({\n    open: value.open,\n    hidden: value.hidden,\n    disableDrag: value.disableDrag,\n    onOpenChange\n  }), [onOpenChange, value.open, value.hidden, value.disableDrag]);\n  return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(SheetControllerContext.Provider, {\n    value: memoValue,\n    children\n  });\n}, \"SheetController\");\n\n// node_modules/@tamagui/sheet/dist/esm/nativeSheet.mjs\nvar import_react24 = require(\"react\");\nvar import_react_native_web4 = __toESM(require_cjs21(), 1);\nvar import_jsx_runtime16 = require(\"react/jsx-runtime\");\nvar nativeSheets = {\n  ios: null\n};\nfunction getNativeSheet(platform2) {\n  return nativeSheets[platform2];\n}\n__name(getNativeSheet, \"getNativeSheet\");\nfunction setupNativeSheet(platform2, RNIOSModal) {\n  const {\n    ModalSheetView,\n    ModalSheetViewMainContent\n  } = RNIOSModal;\n  platform2 === \"ios\" && (nativeSheets[platform2] = (props) => {\n    const state = useSheetOpenState(props), providerProps = useSheetProviderProps(props, state), {\n      open,\n      setOpen\n    } = state, ref = (0, import_react24.useRef)();\n    (0, import_react24.useEffect)(() => {\n      open ? ref.current?.presentModal() : ref.current?.dismissModal();\n    }, [open]);\n    function setOpenInternal(next) {\n      props.onOpenChange?.(open), setOpen(next);\n    }\n    __name(setOpenInternal, \"setOpenInternal\");\n    return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_jsx_runtime16.Fragment, {\n      children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(SheetProvider, {\n        scrollEnabled: true,\n        setHasScrollView: emptyFn,\n        ...providerProps,\n        onlyShowFrame: true,\n        children: [/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(ModalSheetView, {\n          ref,\n          onModalDidDismiss: /* @__PURE__ */ __name(() => setOpenInternal(false), \"onModalDidDismiss\"),\n          children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(ModalSheetViewMainContent, {\n            children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_react_native_web4.View, {\n              style: {\n                flex: 1\n              },\n              children: props.children\n            })\n          })\n        }), /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(YStack, {\n          position: \"absolute\",\n          opacity: 0,\n          pointerEvents: \"none\",\n          width: 0,\n          height: 0,\n          children: props.children\n        })]\n      })\n    });\n  });\n}\n__name(setupNativeSheet, \"setupNativeSheet\");\nvar emptyFn = /* @__PURE__ */ __name(() => {\n}, \"emptyFn\");\n\n// node_modules/@tamagui/get-font-sized/dist/esm/index.mjs\nvar import_core11 = require(\"@tamagui/core\");\nvar getFontSized = /* @__PURE__ */ __name((sizeTokenIn = \"$true\", {\n  font,\n  fontFamily,\n  props\n}) => {\n  if (!font) return {\n    fontSize: sizeTokenIn\n  };\n  const sizeToken = sizeTokenIn === \"$true\" ? getDefaultSizeToken(font) : sizeTokenIn, style = {}, fontSize = font.size[sizeToken], lineHeight = font.lineHeight?.[sizeToken], fontWeight = font.weight?.[sizeToken], letterSpacing = font.letterSpacing?.[sizeToken], textTransform = font.transform?.[sizeToken], fontStyle = props.fontStyle ?? font.style?.[sizeToken], color = props.color ?? font.color?.[sizeToken];\n  return fontStyle && (style.fontStyle = fontStyle), textTransform && (style.textTransform = textTransform), fontFamily && (style.fontFamily = fontFamily), fontWeight && (style.fontWeight = fontWeight), letterSpacing && (style.letterSpacing = letterSpacing), fontSize && (style.fontSize = fontSize), lineHeight && (style.lineHeight = lineHeight), color && (style.color = color), process.env.NODE_ENV === \"development\" && props.debug && props.debug === \"verbose\" && (console.groupCollapsed(\"  \\u{1F539} getFontSized\", sizeTokenIn, sizeToken), isClient && console.info({\n    style,\n    props,\n    font\n  }), console.groupEnd()), style;\n}, \"getFontSized\");\nvar cache2 = /* @__PURE__ */ new WeakMap();\nfunction getDefaultSizeToken(font) {\n  if (typeof font == \"object\" && cache2.has(font)) return cache2.get(font);\n  const sizeTokens = \"$true\" in font.size ? font.size : (0, import_core11.getTokens)().size, sizeDefault = sizeTokens.$true, sizeDefaultSpecific = sizeDefault ? Object.keys(sizeTokens).find((x) => x !== \"$true\" && sizeTokens[x].val === sizeDefault.val) : null;\n  return !sizeDefault || !sizeDefaultSpecific ? (process.env.NODE_ENV === \"development\" && console.warn(`No default size is set in your tokens for the \"true\" key, fonts will be inconsistent.\n\n      Fix this by having consistent tokens across fonts and sizes and setting a true key for your size tokens, or\n      set true keys for all your font tokens: \"size\", \"lineHeight\", \"fontStyle\", etc.`), Object.keys(font.size)[3]) : (cache2.set(font, sizeDefaultSpecific), sizeDefaultSpecific);\n}\n__name(getDefaultSizeToken, \"getDefaultSizeToken\");\n\n// node_modules/@tamagui/text/dist/esm/SizableText.mjs\nvar import_web4 = require(\"@tamagui/core\");\nvar SizableText = (0, import_web4.styled)(import_web4.Text, {\n  name: \"SizableText\",\n  fontFamily: \"$body\",\n  variants: {\n    unstyled: {\n      false: {\n        size: \"$true\",\n        color: \"$color\"\n      }\n    },\n    size: getFontSized\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nSizableText.staticConfig.variants.fontFamily = {\n  \"...\": /* @__PURE__ */ __name((_val, extras) => {\n    const sizeProp = extras.props.size, fontSizeProp = extras.props.fontSize, size4 = sizeProp === \"$true\" && fontSizeProp ? fontSizeProp : extras.props.size || \"$true\";\n    return getFontSized(size4, extras);\n  }, \"...\")\n};\n\n// node_modules/@tamagui/text/dist/esm/Paragraph.mjs\nvar import_web5 = require(\"@tamagui/core\");\nvar Paragraph = (0, import_web5.styled)(SizableText, {\n  name: \"Paragraph\",\n  tag: \"p\",\n  userSelect: \"auto\",\n  color: \"$color\",\n  size: \"$true\",\n  whiteSpace: \"normal\"\n});\n\n// node_modules/@tamagui/text/dist/esm/Headings.mjs\nvar import_web6 = require(\"@tamagui/core\");\nvar Heading = (0, import_web6.styled)(Paragraph, {\n  tag: \"span\",\n  name: \"Heading\",\n  accessibilityRole: \"header\",\n  fontFamily: \"$heading\",\n  size: \"$8\",\n  margin: 0\n});\nvar H1 = (0, import_web6.styled)(Heading, {\n  name: \"H1\",\n  tag: \"h1\",\n  variants: {\n    unstyled: {\n      false: {\n        size: \"$10\"\n      }\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar H2 = (0, import_web6.styled)(Heading, {\n  name: \"H2\",\n  tag: \"h2\",\n  variants: {\n    unstyled: {\n      false: {\n        size: \"$9\"\n      }\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar H3 = (0, import_web6.styled)(Heading, {\n  name: \"H3\",\n  tag: \"h3\",\n  variants: {\n    unstyled: {\n      false: {\n        size: \"$8\"\n      }\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar H4 = (0, import_web6.styled)(Heading, {\n  name: \"H4\",\n  tag: \"h4\",\n  variants: {\n    unstyled: {\n      false: {\n        size: \"$7\"\n      }\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar H5 = (0, import_web6.styled)(Heading, {\n  name: \"H5\",\n  tag: \"h5\",\n  variants: {\n    unstyled: {\n      false: {\n        size: \"$6\"\n      }\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar H6 = (0, import_web6.styled)(Heading, {\n  name: \"H6\",\n  tag: \"h6\",\n  variants: {\n    unstyled: {\n      false: {\n        size: \"$5\"\n      }\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\n\n// node_modules/@tamagui/text/dist/esm/wrapChildrenInText.mjs\nvar import_react25 = __toESM(require(\"react\"), 1);\nvar import_jsx_runtime17 = require(\"react/jsx-runtime\");\nfunction wrapChildrenInText(TextComponent, propsIn, extraProps) {\n  const {\n    children,\n    textProps,\n    size: size4,\n    noTextWrap,\n    color,\n    fontFamily,\n    fontSize,\n    fontWeight,\n    letterSpacing,\n    textAlign,\n    fontStyle,\n    maxFontSizeMultiplier\n  } = propsIn;\n  if (noTextWrap || !children) return [children];\n  const props = {\n    ...extraProps\n  };\n  return color && (props.color = color), fontFamily && (props.fontFamily = fontFamily), fontSize && (props.fontSize = fontSize), fontWeight && (props.fontWeight = fontWeight), letterSpacing && (props.letterSpacing = letterSpacing), textAlign && (props.textAlign = textAlign), size4 && (props.size = size4), fontStyle && (props.fontStyle = fontStyle), maxFontSizeMultiplier && (props.maxFontSizeMultiplier = maxFontSizeMultiplier), import_react25.default.Children.toArray(children).map((child, index3) => typeof child == \"string\" ? (\n    // so \"data-disable-theme\" is a hack to fix themeInverse, don't ask me why\n    /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(TextComponent, {\n      ...props,\n      ...textProps,\n      children: child\n    }, index3)\n  ) : child);\n}\n__name(wrapChildrenInText, \"wrapChildrenInText\");\n\n// node_modules/@tamagui/dialog/dist/esm/Dialog.mjs\nvar React29 = __toESM(require(\"react\"), 1);\nvar import_jsx_runtime18 = require(\"react/jsx-runtime\");\nvar DIALOG_NAME = \"Dialog\";\nvar [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);\nvar [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);\nvar TRIGGER_NAME = \"DialogTrigger\";\nvar DialogTriggerFrame = (0, import_core12.styled)(import_core12.View, {\n  name: TRIGGER_NAME\n});\nvar DialogTrigger = DialogTriggerFrame.styleable(function(props, forwardedRef) {\n  const {\n    __scopeDialog,\n    ...triggerProps\n  } = props, isInsideButton = React29.useContext(ButtonNestingContext), context2 = useDialogContext(TRIGGER_NAME, __scopeDialog), composedTriggerRef = useComposedRefs(forwardedRef, context2.triggerRef);\n  return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ButtonNestingContext.Provider, {\n    value: true,\n    children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DialogTriggerFrame, {\n      tag: isInsideButton ? \"span\" : \"button\",\n      \"aria-haspopup\": \"dialog\",\n      \"aria-expanded\": context2.open,\n      \"aria-controls\": context2.contentId,\n      \"data-state\": getState(context2.open),\n      ...triggerProps,\n      ref: composedTriggerRef,\n      onPress: composeEventHandlers(props.onPress, context2.onOpenToggle)\n    })\n  });\n});\nvar PORTAL_NAME = \"DialogPortal\";\nvar [PortalProvider2, usePortalContext] = createDialogContext(PORTAL_NAME, {\n  forceMount: void 0\n});\nvar DialogPortalFrame = (0, import_core12.styled)(YStack, {\n  pointerEvents: \"none\",\n  variants: {\n    unstyled: {\n      false: {\n        alignItems: \"center\",\n        justifyContent: \"center\",\n        fullscreen: true,\n        ...isWeb && {\n          maxHeight: \"100vh\",\n          position: \"fixed\"\n        }\n      }\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar DialogPortalItem = /* @__PURE__ */ __name((props) => {\n  const {\n    __scopeDialog,\n    children,\n    space,\n    spaceDirection,\n    separator\n  } = props, themeName = (0, import_core12.useThemeName)(), context2 = useDialogContext(PORTAL_NAME, props.__scopeDialog), isAdapted = useAdaptIsActive();\n  let childrenSpaced = children;\n  (space || separator) && (childrenSpaced = (0, import_core12.spacedChildren)({\n    children,\n    separator,\n    space,\n    direction: spaceDirection\n  }));\n  const content = /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DialogProvider, {\n    scope: __scopeDialog,\n    ...context2,\n    children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core12.Theme, {\n      name: themeName,\n      children: childrenSpaced\n    })\n  });\n  return isAdapted ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(AdaptPortalContents, {\n    children: content\n  }) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(GorhomPortalItem, {\n    hostName: context2.adaptName,\n    children: content\n  });\n}, \"DialogPortalItem\");\nvar DialogPortal = /* @__PURE__ */ __name((props) => {\n  const {\n    __scopeDialog,\n    forceMount,\n    children,\n    ...frameProps\n  } = props, context2 = useDialogContext(PORTAL_NAME, __scopeDialog), isShowing = forceMount || context2.open, [isFullyHidden, setIsFullyHidden] = React29.useState(!isShowing), isAdapted = useAdaptIsActive();\n  isShowing && isFullyHidden && setIsFullyHidden(false);\n  const handleExitComplete = React29.useCallback(() => {\n    setIsFullyHidden(true);\n  }, []), zIndex = (0, import_core12.getExpandedShorthand)(\"zIndex\", props);\n  if (context2.modal) {\n    const contents = /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(StackZIndexContext, {\n      zIndex: resolveViewZIndex(zIndex),\n      children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(AnimatePresence, {\n        onExitComplete: handleExitComplete,\n        children: isShowing || isAdapted ? children : null\n      })\n    });\n    if (isFullyHidden && !isAdapted) return null;\n    const framedContents = /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(PortalProvider2, {\n      scope: __scopeDialog,\n      forceMount,\n      children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DialogPortalFrame, {\n        pointerEvents: isShowing ? \"auto\" : \"none\",\n        ...frameProps,\n        children: contents\n      })\n    });\n    return isWeb ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Portal, {\n      zIndex,\n      stackZIndex: 1e3,\n      children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(PassthroughTheme, {\n        children: framedContents\n      })\n    }) : isAdapted ? framedContents : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DialogPortalItem, {\n      __scopeDialog,\n      children: framedContents\n    });\n  }\n  return children;\n}, \"DialogPortal\");\nvar PassthroughTheme = /* @__PURE__ */ __name(({\n  children\n}) => {\n  const themeName = (0, import_core12.useThemeName)();\n  return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core12.Theme, {\n    name: themeName,\n    forceClassName: true,\n    children\n  });\n}, \"PassthroughTheme\");\nvar OVERLAY_NAME = \"DialogOverlay\";\nvar DialogOverlayFrame = (0, import_core12.styled)(Overlay, {\n  name: OVERLAY_NAME\n});\nvar DialogOverlay = DialogOverlayFrame.extractable(React29.forwardRef(function({\n  __scopeDialog,\n  ...props\n}, forwardedRef) {\n  const portalContext = usePortalContext(OVERLAY_NAME, __scopeDialog), {\n    forceMount = portalContext.forceMount,\n    ...overlayProps\n  } = props, context2 = useDialogContext(OVERLAY_NAME, __scopeDialog), isAdapted = useAdaptIsActive();\n  return !forceMount && (!context2.modal || isAdapted) ? null : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DialogOverlayFrame, {\n    \"data-state\": getState(context2.open),\n    pointerEvents: context2.open ? \"auto\" : \"none\",\n    ...overlayProps,\n    ref: forwardedRef\n  });\n}));\nvar CONTENT_NAME = \"DialogContent\";\nvar DialogContentFrame = (0, import_core12.styled)(ThemeableStack, {\n  name: CONTENT_NAME,\n  tag: \"dialog\",\n  variants: {\n    size: {\n      \"...size\": /* @__PURE__ */ __name((val, extras) => ({}), \"...size\")\n    },\n    unstyled: {\n      false: {\n        position: \"relative\",\n        backgrounded: true,\n        padded: true,\n        radiused: true,\n        elevate: true,\n        zIndex: 1e5\n      }\n    }\n  },\n  defaultVariants: {\n    size: \"$true\",\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar DialogContent = DialogContentFrame.extractable(React29.forwardRef(function({\n  __scopeDialog,\n  ...props\n}, forwardedRef) {\n  const portalContext = usePortalContext(CONTENT_NAME, __scopeDialog), {\n    forceMount = portalContext.forceMount,\n    ...contentProps\n  } = props, context2 = useDialogContext(CONTENT_NAME, __scopeDialog), contents = /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_jsx_runtime18.Fragment, {\n    children: context2.modal ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DialogContentModal, {\n      context: context2,\n      ...contentProps,\n      ref: forwardedRef\n    }) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DialogContentNonModal, {\n      context: context2,\n      ...contentProps,\n      ref: forwardedRef\n    })\n  });\n  return !isWeb || context2.disableRemoveScroll ? contents : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(RemoveScroll, {\n    forwardProps: true,\n    enabled: context2.open,\n    allowPinchZoom: context2.allowPinchZoom,\n    shards: [context2.contentRef],\n    removeScrollBar: false,\n    children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(\"div\", {\n      \"data-remove-scroll-container\": true,\n      className: \"_dsp_contents\",\n      children: contents\n    })\n  });\n}));\nvar DialogContentModal = React29.forwardRef(({\n  children,\n  context: context2,\n  ...props\n}, forwardedRef) => {\n  const contentRef = React29.useRef(null), composedRefs = useComposedRefs(forwardedRef, context2.contentRef, contentRef);\n  return React29.useEffect(() => {\n    if (!isWeb || !context2.open) return;\n    const content = contentRef.current;\n    if (content) return hideOthers(content);\n  }, [context2.open]), /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DialogContentImpl, {\n    ...props,\n    context: context2,\n    ref: composedRefs,\n    trapFocus: context2.open,\n    disableOutsidePointerEvents: true,\n    onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n      event.preventDefault(), context2.triggerRef.current?.focus();\n    }),\n    onPointerDownOutside: composeEventHandlers(props.onPointerDownOutside, (event) => {\n      const originalEvent = event.detail.originalEvent, ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n      (originalEvent.button === 2 || ctrlLeftClick) && event.preventDefault();\n    }),\n    onFocusOutside: composeEventHandlers(props.onFocusOutside, (event) => event.preventDefault()),\n    ...!props.unstyled && {\n      outlineStyle: \"none\"\n    },\n    children\n  });\n});\nvar DialogContentNonModal = React29.forwardRef((props, forwardedRef) => {\n  const hasInteractedOutsideRef = React29.useRef(false);\n  return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DialogContentImpl, {\n    ...props,\n    ref: forwardedRef,\n    trapFocus: false,\n    disableOutsidePointerEvents: false,\n    onCloseAutoFocus: /* @__PURE__ */ __name((event) => {\n      props.onCloseAutoFocus?.(event), event.defaultPrevented || (hasInteractedOutsideRef.current || props.context.triggerRef.current?.focus(), event.preventDefault()), hasInteractedOutsideRef.current = false;\n    }, \"onCloseAutoFocus\"),\n    onInteractOutside: /* @__PURE__ */ __name((event) => {\n      props.onInteractOutside?.(event), event.defaultPrevented || (hasInteractedOutsideRef.current = true);\n      const target = event.target, trigger = props.context.triggerRef.current;\n      if (!(trigger instanceof HTMLElement)) return;\n      trigger.contains(target) && event.preventDefault();\n    }, \"onInteractOutside\")\n  });\n});\nvar DialogContentImpl = React29.forwardRef((props, forwardedRef) => {\n  const {\n    __scopeDialog,\n    trapFocus,\n    onOpenAutoFocus,\n    onCloseAutoFocus,\n    disableOutsidePointerEvents,\n    onEscapeKeyDown,\n    onPointerDownOutside,\n    onFocusOutside,\n    onInteractOutside,\n    context: context2,\n    ...contentProps\n  } = props, contentRef = React29.useRef(null), composedRefs = useComposedRefs(forwardedRef, contentRef);\n  if (useAdaptIsActive()) return !isWeb && !context2.open ? null : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DialogPortalItem, {\n    children: contentProps.children\n  });\n  const contents = /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DialogContentFrame, {\n    id: context2.contentId,\n    \"aria-describedby\": context2.descriptionId,\n    \"aria-labelledby\": context2.titleId,\n    \"data-state\": getState(context2.open),\n    ...contentProps\n  });\n  return isWeb ? /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, {\n    children: [/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Dismissable, {\n      disableOutsidePointerEvents: context2.open && disableOutsidePointerEvents,\n      forceUnmount: !context2.open,\n      onEscapeKeyDown,\n      onPointerDownOutside,\n      onFocusOutside,\n      onInteractOutside,\n      ref: composedRefs,\n      onDismiss: /* @__PURE__ */ __name(() => context2.onOpenChange(false), \"onDismiss\"),\n      children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(FocusScope, {\n        loop: true,\n        enabled: context2.open,\n        trapped: trapFocus,\n        onMountAutoFocus: onOpenAutoFocus,\n        forceUnmount: !context2.open,\n        onUnmountAutoFocus: onCloseAutoFocus,\n        children: contents\n      })\n    }), process.env.NODE_ENV === \"development\" && /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, {\n      children: [/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(TitleWarning, {\n        titleId: context2.titleId\n      }), /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DescriptionWarning, {\n        contentRef,\n        descriptionId: context2.descriptionId\n      })]\n    })]\n  }) : contents;\n});\nvar DialogTitleFrame = (0, import_core12.styled)(H2, {\n  name: \"DialogTitle\"\n});\nvar DialogTitle = DialogTitleFrame.styleable(function(props, forwardedRef) {\n  const {\n    __scopeDialog,\n    ...titleProps\n  } = props, context2 = useDialogContext(\"DialogTitle\", __scopeDialog);\n  return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DialogTitleFrame, {\n    id: context2.titleId,\n    ...titleProps,\n    ref: forwardedRef\n  });\n});\nvar DialogDescriptionFrame = (0, import_core12.styled)(Paragraph, {\n  name: \"DialogDescription\"\n});\nvar DESCRIPTION_NAME = \"DialogDescription\";\nvar DialogDescription = DialogDescriptionFrame.styleable(function(props, forwardedRef) {\n  const {\n    __scopeDialog,\n    ...descriptionProps\n  } = props, context2 = useDialogContext(DESCRIPTION_NAME, __scopeDialog);\n  return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DialogDescriptionFrame, {\n    id: context2.descriptionId,\n    ...descriptionProps,\n    ref: forwardedRef\n  });\n});\nvar CLOSE_NAME = \"DialogClose\";\nvar DialogCloseFrame = (0, import_core12.styled)(import_core12.View, {\n  name: CLOSE_NAME,\n  tag: \"button\"\n});\nvar DialogClose = DialogCloseFrame.styleable((props, forwardedRef) => {\n  const {\n    __scopeDialog,\n    displayWhenAdapted,\n    ...closeProps\n  } = props, context2 = useDialogContext(CLOSE_NAME, __scopeDialog, {\n    warn: false,\n    fallback: {}\n  }), isAdapted = useAdaptIsActive(), isInsideButton = React29.useContext(ButtonNestingContext);\n  return isAdapted && !displayWhenAdapted ? null : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DialogCloseFrame, {\n    accessibilityLabel: \"Dialog Close\",\n    tag: isInsideButton ? \"span\" : \"button\",\n    ...closeProps,\n    ref: forwardedRef,\n    onPress: composeEventHandlers(props.onPress, () => {\n      context2.onOpenChange(false);\n    })\n  });\n});\nfunction getState(open) {\n  return open ? \"open\" : \"closed\";\n}\n__name(getState, \"getState\");\nvar TITLE_WARNING_NAME = \"DialogTitleWarning\";\nvar [DialogWarningProvider, useWarningContext] = createContext5(TITLE_WARNING_NAME, {\n  contentName: CONTENT_NAME,\n  titleName: \"DialogTitle\",\n  docsSlug: \"dialog\"\n});\nvar TitleWarning = /* @__PURE__ */ __name(({\n  titleId\n}) => {\n  if (process.env.NODE_ENV === \"development\") {\n    const titleWarningContext = useWarningContext(TITLE_WARNING_NAME), MESSAGE = `\\`${titleWarningContext.contentName}\\` requires a \\`${titleWarningContext.titleName}\\` for the component to be accessible for screen reader users.\n\nIf you want to hide the \\`${titleWarningContext.titleName}\\`, you can wrap it with our VisuallyHidden component.`;\n    React29.useEffect(() => {\n      isWeb && titleId && (document.getElementById(titleId) || console.warn(MESSAGE));\n    }, [MESSAGE, titleId]);\n  }\n  return null;\n}, \"TitleWarning\");\nvar DESCRIPTION_WARNING_NAME = \"DialogDescriptionWarning\";\nvar DescriptionWarning = /* @__PURE__ */ __name(({\n  contentRef,\n  descriptionId\n}) => {\n  if (process.env.NODE_ENV === \"development\") {\n    const MESSAGE = `Warning: Missing \\`Description\\` or \\`aria-describedby={undefined}\\` for {${useWarningContext(DESCRIPTION_WARNING_NAME).contentName}}.`;\n    React29.useEffect(() => {\n      if (!isWeb) return;\n      const contentNode = contentRef.current;\n      if (!(contentNode instanceof HTMLElement)) return;\n      const describedById = contentNode.getAttribute(\"aria-describedby\");\n      descriptionId && describedById && (document.getElementById(descriptionId) || console.warn(MESSAGE));\n    }, [MESSAGE, contentRef, descriptionId]);\n  }\n  return null;\n}, \"DescriptionWarning\");\nvar Dialog = withStaticProperties(React29.forwardRef(function(props, ref) {\n  const {\n    __scopeDialog,\n    children,\n    open: openProp,\n    defaultOpen = false,\n    onOpenChange,\n    modal = true,\n    allowPinchZoom = false,\n    disableRemoveScroll = false\n  } = props, baseId = React29.useId(), scopeId = `scope-${baseId}`, contentId = `content-${baseId}`, titleId = `title-${baseId}`, descriptionId = `description-${baseId}`, scopeKey = __scopeDialog ? Object.keys(__scopeDialog)[0] : scopeId, adaptName = getAdaptName({\n    scopeKey,\n    contentId\n  }), triggerRef = React29.useRef(null), contentRef = React29.useRef(null), [open, setOpen] = useControllableState({\n    prop: openProp,\n    defaultProp: defaultOpen,\n    onChange: onOpenChange\n  }), onOpenToggle = React29.useCallback(() => {\n    setOpen((prevOpen) => !prevOpen);\n  }, [setOpen]), context2 = {\n    scope: __scopeDialog,\n    scopeKey,\n    triggerRef,\n    contentRef,\n    contentId,\n    titleId,\n    descriptionId,\n    open,\n    onOpenChange: setOpen,\n    onOpenToggle,\n    modal,\n    allowPinchZoom,\n    disableRemoveScroll,\n    adaptName\n  };\n  return React29.useImperativeHandle(ref, () => ({\n    open: setOpen\n  }), [setOpen]), /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(AdaptParent, {\n    scope: adaptName,\n    portal: {\n      forwardProps: props\n    },\n    children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DialogProvider, {\n      ...context2,\n      children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DialogSheetController, {\n        onOpenChange: setOpen,\n        __scopeDialog,\n        children\n      })\n    })\n  });\n}), {\n  Trigger: DialogTrigger,\n  Portal: DialogPortal,\n  Overlay: DialogOverlay,\n  Content: DialogContent,\n  Title: DialogTitle,\n  Description: DialogDescription,\n  Close: DialogClose,\n  Sheet: Sheet.Controlled,\n  Adapt\n});\nvar getAdaptName = /* @__PURE__ */ __name(({\n  scopeKey,\n  contentId\n}) => `${scopeKey || contentId}DialogAdapt`, \"getAdaptName\");\nvar DialogSheetController = /* @__PURE__ */ __name((props) => {\n  const context2 = useDialogContext(\"DialogSheetController\", props.__scopeDialog), isAdapted = useAdaptIsActive();\n  return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(SheetController, {\n    onOpenChange: /* @__PURE__ */ __name((val) => {\n      isAdapted && props.onOpenChange?.(val);\n    }, \"onOpenChange\"),\n    open: context2.open,\n    hidden: !isAdapted,\n    children: props.children\n  });\n}, \"DialogSheetController\");\n\n// node_modules/@tamagui/alert-dialog/dist/esm/AlertDialog.mjs\nvar React30 = __toESM(require(\"react\"), 1);\nvar import_jsx_runtime19 = require(\"react/jsx-runtime\");\nvar ROOT_NAME = \"AlertDialog\";\nvar [createAlertDialogContext, createAlertDialogScope] = createContextScope(ROOT_NAME, [createDialogScope]);\nvar useDialogScope = createDialogScope();\nvar TRIGGER_NAME2 = \"AlertDialogTrigger\";\nvar NativeAlertDialogTriggerFrame = (0, import_core13.styled)(import_core13.View, {\n  name: TRIGGER_NAME2\n});\nvar AlertDialogTrigger = React30.forwardRef((props, forwardedRef) => {\n  if (props.__native) {\n    const {\n      __native,\n      onPress,\n      __onPress,\n      ...rest\n    } = props;\n    return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(NativeAlertDialogTriggerFrame, {\n      ...rest,\n      onPress: composeEventHandlers(onPress, __onPress)\n    });\n  }\n  const {\n    __scopeAlertDialog,\n    ...triggerProps\n  } = props, dialogScope = useDialogScope(__scopeAlertDialog);\n  return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(DialogTrigger, {\n    ...dialogScope,\n    ...triggerProps,\n    ref: forwardedRef\n  });\n});\nAlertDialogTrigger.displayName = TRIGGER_NAME2;\nvar PORTAL_NAME2 = \"AlertDialogPortal\";\nvar AlertDialogPortal = /* @__PURE__ */ __name((props) => {\n  const {\n    __scopeAlertDialog,\n    ...portalProps\n  } = props, dialogScope = useDialogScope(__scopeAlertDialog);\n  return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(DialogPortal, {\n    ...dialogScope,\n    ...portalProps\n  });\n}, \"AlertDialogPortal\");\nAlertDialogPortal.displayName = PORTAL_NAME2;\nvar OVERLAY_NAME2 = \"AlertDialogOverlay\";\nvar AlertDialogOverlayFrame = (0, import_core13.styled)(DialogOverlayFrame, {\n  name: OVERLAY_NAME2\n});\nvar AlertDialogOverlay = AlertDialogOverlayFrame.extractable(React30.forwardRef((props, forwardedRef) => {\n  const {\n    __scopeAlertDialog,\n    ...overlayProps\n  } = props, dialogScope = useDialogScope(__scopeAlertDialog);\n  return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(DialogOverlay, {\n    ...dialogScope,\n    ...overlayProps,\n    ref: forwardedRef\n  });\n}));\nAlertDialogOverlay.displayName = OVERLAY_NAME2;\nvar CONTENT_NAME2 = \"AlertDialogContent\";\nvar [AlertDialogContentProvider, useAlertDialogContentContext] = createAlertDialogContext(CONTENT_NAME2);\nvar AlertDialogContent = React30.forwardRef((props, forwardedRef) => {\n  const {\n    __scopeAlertDialog,\n    children,\n    ...contentProps\n  } = props, dialogScope = useDialogScope(__scopeAlertDialog), contentRef = React30.useRef(null), composedRefs = useComposedRefs(forwardedRef, contentRef), cancelRef = React30.useRef(null);\n  return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(DialogWarningProvider, {\n    contentName: CONTENT_NAME2,\n    titleName: TITLE_NAME,\n    docsSlug: \"alert-dialog\",\n    children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(AlertDialogContentProvider, {\n      scope: __scopeAlertDialog,\n      cancelRef,\n      children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(DialogContent, {\n        role: \"alertdialog\",\n        ...dialogScope,\n        ...contentProps,\n        ref: composedRefs,\n        onOpenAutoFocus: composeEventHandlers(contentProps.onOpenAutoFocus, (event) => {\n          event.preventDefault(), isWeb && cancelRef.current?.focus({\n            preventScroll: true\n          });\n        }),\n        onPointerDownOutside: /* @__PURE__ */ __name((event) => event.preventDefault(), \"onPointerDownOutside\"),\n        onInteractOutside: /* @__PURE__ */ __name((event) => event.preventDefault(), \"onInteractOutside\"),\n        children: [/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_core13.Slottable, {\n          children\n        }), process.env.NODE_ENV === \"development\" && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(DescriptionWarning2, {\n          contentRef\n        })]\n      })\n    })\n  });\n});\nAlertDialogContent.displayName = CONTENT_NAME2;\nvar TITLE_NAME = \"AlertDialogTitle\";\nvar AlertDialogTitle = React30.forwardRef((props, forwardedRef) => {\n  const {\n    __scopeAlertDialog,\n    ...titleProps\n  } = props, dialogScope = useDialogScope(__scopeAlertDialog);\n  return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(DialogTitle, {\n    ...dialogScope,\n    ...titleProps,\n    ref: forwardedRef\n  });\n});\nAlertDialogTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME2 = \"AlertDialogDescription\";\nvar AlertDialogDescription = React30.forwardRef((props, forwardedRef) => {\n  const {\n    __scopeAlertDialog,\n    ...descriptionProps\n  } = props, dialogScope = useDialogScope(__scopeAlertDialog);\n  return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(DialogDescription, {\n    ...dialogScope,\n    ...descriptionProps,\n    ref: forwardedRef\n  });\n});\nAlertDialogDescription.displayName = DESCRIPTION_NAME2;\nvar ACTION_NAME = \"AlertDialogAction\";\nvar AlertDialogAction = React30.forwardRef((props, forwardedRef) => {\n  const {\n    __scopeAlertDialog,\n    ...actionProps\n  } = props, dialogScope = useDialogScope(__scopeAlertDialog);\n  return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(DialogClose, {\n    ...dialogScope,\n    ...actionProps,\n    ref: forwardedRef\n  });\n});\nAlertDialogAction.displayName = ACTION_NAME;\nvar CANCEL_NAME = \"AlertDialogCancel\";\nvar AlertDialogCancel = React30.forwardRef((props, forwardedRef) => {\n  const {\n    __scopeAlertDialog,\n    ...cancelProps\n  } = props, {\n    cancelRef\n  } = useAlertDialogContentContext(CANCEL_NAME, __scopeAlertDialog), dialogScope = useDialogScope(__scopeAlertDialog), ref = useComposedRefs(forwardedRef, cancelRef);\n  return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(DialogClose, {\n    ...dialogScope,\n    ...cancelProps,\n    ref\n  });\n});\nAlertDialogCancel.displayName = CANCEL_NAME;\nvar DescriptionWarning2 = /* @__PURE__ */ __name(({\n  contentRef\n}) => (process.env.NODE_ENV === \"development\" && React30.useEffect(() => {\n  if (!isWeb) return;\n  document.getElementById(\n    // @ts-ignore\n    contentRef.current?.getAttribute(\"aria-describedby\")\n  ) || console.warn(`\\`${CONTENT_NAME2}\\` requires a description for the component to be accessible for screen reader users.\n  \n        You can add a description to the \\`${CONTENT_NAME2}\\` by passing a \\`${DESCRIPTION_NAME2}\\` component as a child, which also benefits sighted users by adding visible context to the dialog.\n        \n        Alternatively, you can use your own component as a description by assigning it an \\`id\\` and passing the same value to the \\`aria-describedby\\` prop in \\`${CONTENT_NAME2}\\`. If the description is confusing or duplicative for sighted users, you can use the \\`@radix-ui/react-visually-hidden\\` primitive as a wrapper around your description component.\n        \n        For more information, see https://tamagui.dev/docs/components/alert-dialog`);\n}, [contentRef]), null), \"DescriptionWarning\");\nvar AlertDialogInner = /* @__PURE__ */ __name((props) => {\n  const {\n    __scopeAlertDialog,\n    native,\n    ...alertDialogProps\n  } = props, dialogScope = useDialogScope(__scopeAlertDialog);\n  return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Dialog, {\n    ...dialogScope,\n    ...alertDialogProps,\n    modal: true\n  });\n}, \"AlertDialogInner\");\nvar AlertDialog = withStaticProperties(AlertDialogInner, {\n  Trigger: AlertDialogTrigger,\n  Portal: AlertDialogPortal,\n  Overlay: AlertDialogOverlay,\n  Content: AlertDialogContent,\n  Action: AlertDialogAction,\n  Cancel: AlertDialogCancel,\n  Title: AlertDialogTitle,\n  Description: AlertDialogDescription\n});\nAlertDialog.displayName = ROOT_NAME;\n\n// node_modules/@tamagui/avatar/dist/esm/Avatar.mjs\nvar import_core15 = require(\"@tamagui/core\");\n\n// node_modules/@tamagui/image/dist/esm/Image.mjs\nvar import_react26 = __toESM(require(\"react\"), 1);\nvar import_core14 = require(\"@tamagui/core\");\nvar import_react_native_web5 = __toESM(require_cjs21(), 1);\nvar import_jsx_runtime20 = require(\"react/jsx-runtime\");\nvar StyledImage = (0, import_core14.styled)(import_react_native_web5.Image, {\n  name: \"Image\"\n});\nvar hasWarned = false;\nvar Image = StyledImage.styleable((inProps, ref) => {\n  const [props, style] = (0, import_core14.usePropsAndStyle)(inProps), {\n    src,\n    source,\n    objectFit,\n    ...rest\n  } = props;\n  process.env.NODE_ENV === \"development\" && typeof src == \"string\" && (typeof props.width == \"string\" && props.width[0] !== \"$\" || typeof props.height == \"string\" && props.height[0] !== \"$\") && (hasWarned || (hasWarned = true, console.warn('React Native expects a numerical width/height. If you want to use a percent you must define the \"source\" prop with width, height, and uri.')));\n  let finalSource = typeof src == \"string\" ? {\n    uri: src,\n    ...isWeb && {\n      width: props.width || style?.width,\n      height: props.height || style?.height\n    }\n  } : source ?? src;\n  return finalSource && typeof finalSource == \"object\" && (process.env.NODE_ENV === \"development\" && process.env.TAMAGUI_IMAGE_CHECK_ERROR && import_react26.default.useEffect(() => {\n    async function run() {\n      if (typeof src == \"string\") try {\n        await fetch(src).then((res) => res.text());\n      } catch {\n        console.error(`Error loading image: ${src}`, {\n          props\n        });\n      }\n    }\n    __name(run, \"run\");\n    run();\n  }, [src]), finalSource.default && (finalSource = finalSource.default)), /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native_web5.Image, {\n    resizeMode: objectFit,\n    ref,\n    source: finalSource,\n    style,\n    ...rest\n  });\n});\nImage.getSize = import_react_native_web5.Image.getSize;\nImage.getSizeWithHeaders = import_react_native_web5.Image.getSizeWithHeaders;\nImage.prefetch = import_react_native_web5.Image.prefetch;\nImage.prefetchWithMetadata = import_react_native_web5.Image.prefetchWithMetadata;\nImage.abortPrefetch = import_react_native_web5.Image.abortPrefetch;\nImage.queryCache = import_react_native_web5.Image.queryCache;\n\n// node_modules/@tamagui/shapes/dist/esm/Square.mjs\nvar import_web7 = require(\"@tamagui/core\");\n\n// node_modules/@tamagui/shapes/dist/esm/getShapeSize.mjs\nvar getShapeSize = /* @__PURE__ */ __name((size4, {\n  tokens\n}) => {\n  const width = tokens.size[size4] ?? size4, height = tokens.size[size4] ?? size4;\n  return {\n    width,\n    height,\n    minWidth: width,\n    maxWidth: width,\n    maxHeight: height,\n    minHeight: height\n  };\n}, \"getShapeSize\");\n\n// node_modules/@tamagui/shapes/dist/esm/Square.mjs\nvar Square = (0, import_web7.styled)(ThemeableStack, {\n  name: \"Square\",\n  alignItems: \"center\",\n  justifyContent: \"center\",\n  variants: {\n    size: {\n      \"...size\": getShapeSize,\n      \":number\": getShapeSize\n    }\n  }\n});\n\n// node_modules/@tamagui/shapes/dist/esm/Circle.mjs\nvar import_web8 = require(\"@tamagui/core\");\nvar Circle = (0, import_web8.styled)(Square, {\n  name: \"Circle\",\n  circular: true\n});\n\n// node_modules/@tamagui/avatar/dist/esm/Avatar.mjs\nvar React32 = __toESM(require(\"react\"), 1);\nvar import_jsx_runtime21 = require(\"react/jsx-runtime\");\nvar AVATAR_NAME = \"Avatar\";\nvar [createAvatarContext, createAvatarScope] = createContextScope(AVATAR_NAME);\nvar [AvatarProvider, useAvatarContext] = createAvatarContext(AVATAR_NAME);\nvar IMAGE_NAME = \"AvatarImage\";\nvar AvatarImage = React32.forwardRef((props, forwardedRef) => {\n  const {\n    __scopeAvatar,\n    src,\n    onLoadingStatusChange = /* @__PURE__ */ __name(() => {\n    }, \"onLoadingStatusChange\"),\n    ...imageProps\n  } = props, context2 = useAvatarContext(IMAGE_NAME, __scopeAvatar), [status, setStatus] = React32.useState(\"idle\"), shapeSize = (0, import_core15.getVariableValue)(getShapeSize(\n    context2.size,\n    // @ts-expect-error\n    {\n      tokens: (0, import_core15.getTokens)()\n    }\n  )?.width);\n  return React32.useEffect(() => {\n    setStatus(\"idle\");\n  }, [JSON.stringify(src)]), React32.useEffect(() => {\n    onLoadingStatusChange(status), context2.onImageLoadingStatusChange(status);\n  }, [status]), /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(YStack, {\n    fullscreen: true,\n    zIndex: 1,\n    children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Image, {\n      fullscreen: true,\n      ...typeof shapeSize == \"number\" && !Number.isNaN(shapeSize) && {\n        width: shapeSize,\n        height: shapeSize\n      },\n      ...imageProps,\n      ref: forwardedRef,\n      src,\n      onError: /* @__PURE__ */ __name(() => {\n        setStatus(\"error\");\n      }, \"onError\"),\n      onLoad: /* @__PURE__ */ __name(() => {\n        setStatus(\"loaded\");\n      }, \"onLoad\")\n    })\n  });\n});\nAvatarImage.displayName = IMAGE_NAME;\nvar FALLBACK_NAME = \"AvatarFallback\";\nvar AvatarFallbackFrame = (0, import_core15.styled)(YStack, {\n  name: FALLBACK_NAME,\n  position: \"absolute\",\n  fullscreen: true,\n  zIndex: 0\n});\nvar AvatarFallback = AvatarFallbackFrame.extractable(React32.forwardRef((props, forwardedRef) => {\n  const {\n    __scopeAvatar,\n    delayMs,\n    ...fallbackProps\n  } = props, context2 = useAvatarContext(FALLBACK_NAME, __scopeAvatar), [canRender, setCanRender] = React32.useState(delayMs === void 0);\n  return React32.useEffect(() => {\n    if (delayMs !== void 0) {\n      const timerId = setTimeout(() => setCanRender(true), delayMs);\n      return () => clearTimeout(timerId);\n    }\n  }, [delayMs]), canRender && context2.imageLoadingStatus !== \"loaded\" ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(AvatarFallbackFrame, {\n    ...fallbackProps,\n    ref: forwardedRef\n  }) : null;\n}));\nAvatarFallback.displayName = FALLBACK_NAME;\nvar AvatarFrame = (0, import_core15.styled)(Square, {\n  name: AVATAR_NAME,\n  position: \"relative\",\n  overflow: \"hidden\"\n});\nvar Avatar = withStaticProperties(React32.forwardRef((props, forwardedRef) => {\n  const {\n    __scopeAvatar,\n    size: size4 = \"$true\",\n    ...avatarProps\n  } = props, [imageLoadingStatus, setImageLoadingStatus] = React32.useState(\"idle\");\n  return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(AvatarProvider, {\n    size: size4,\n    scope: __scopeAvatar,\n    imageLoadingStatus,\n    onImageLoadingStatusChange: setImageLoadingStatus,\n    children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(AvatarFrame, {\n      size: size4,\n      ...avatarProps,\n      ref: forwardedRef\n    })\n  });\n}), {\n  Image: AvatarImage,\n  Fallback: AvatarFallback\n});\nAvatar.displayName = AVATAR_NAME;\n\n// node_modules/@tamagui/font-size/dist/esm/getFontSize.mjs\nvar import_core16 = require(\"@tamagui/core\");\nvar getFontSize = /* @__PURE__ */ __name((inSize, opts) => {\n  const res = getFontSizeVariable(inSize, opts);\n  return (0, import_core16.isVariable)(res) ? +res.val : res ? +res : 16;\n}, \"getFontSize\");\nvar getFontSizeVariable = /* @__PURE__ */ __name((inSize, opts) => {\n  const token = getFontSizeToken(inSize, opts);\n  if (!token) return inSize;\n  const conf = (0, import_core16.getConfig)();\n  return conf.fontsParsed[opts?.font || conf.defaultFontToken]?.size[token];\n}, \"getFontSizeVariable\");\nvar getFontSizeToken = /* @__PURE__ */ __name((inSize, opts) => {\n  if (typeof inSize == \"number\") return null;\n  const relativeSize = opts?.relativeSize || 0, conf = (0, import_core16.getConfig)(), fontSize = conf.fontsParsed[opts?.font || conf.defaultFontToken]?.size || // fallback to size tokens\n  conf.tokensParsed.size, size4 = (inSize === \"$true\" && !(\"$true\" in fontSize) ? \"$4\" : inSize) ?? (\"$true\" in fontSize ? \"$true\" : \"$4\"), sizeTokens = Object.keys(fontSize);\n  let foundIndex = sizeTokens.indexOf(size4);\n  foundIndex === -1 && size4.endsWith(\".5\") && (foundIndex = sizeTokens.indexOf(size4.replace(\".5\", \"\"))), process.env.NODE_ENV === \"development\" && foundIndex === -1 && console.warn(\"No font size found\", size4, opts, \"in size tokens\", sizeTokens);\n  const tokenIndex = Math.min(Math.max(0, foundIndex + relativeSize), sizeTokens.length - 1);\n  return sizeTokens[tokenIndex] ?? size4;\n}, \"getFontSizeToken\");\n\n// node_modules/@tamagui/helpers-tamagui/dist/esm/prevent.mjs\nvar prevent = /* @__PURE__ */ __name((e) => [e.preventDefault(), e.stopPropagation()], \"prevent\");\n\n// node_modules/@tamagui/helpers-tamagui/dist/esm/useCurrentColor.mjs\nvar import_web9 = require(\"@tamagui/core\");\nvar useCurrentColor = /* @__PURE__ */ __name((colorProp) => {\n  const theme = (0, import_web9.useTheme)();\n  return colorProp ? (0, import_web9.getVariable)(colorProp) : theme[colorProp]?.get() || theme.color?.get();\n}, \"useCurrentColor\");\n\n// node_modules/@tamagui/helpers-tamagui/dist/esm/useGetThemedIcon.mjs\nvar import_react27 = __toESM(require(\"react\"), 1);\nvar useGetThemedIcon = /* @__PURE__ */ __name((props) => {\n  const color = useCurrentColor(props.color);\n  return (el) => el && (import_react27.default.isValidElement(el) ? import_react27.default.cloneElement(el, {\n    ...props,\n    color,\n    // @ts-expect-error\n    ...el.props\n  }) : import_react27.default.createElement(el, props));\n}, \"useGetThemedIcon\");\n\n// node_modules/@tamagui/button/dist/esm/Button.mjs\nvar import_web10 = require(\"@tamagui/core\");\nvar import_react28 = require(\"react\");\nvar import_jsx_runtime22 = require(\"react/jsx-runtime\");\nvar ButtonContext = (0, import_web10.createStyledContext)({\n  // keeping these here means they work with styled() passing down color to text\n  color: void 0,\n  ellipse: void 0,\n  fontFamily: void 0,\n  fontSize: void 0,\n  fontStyle: void 0,\n  fontWeight: void 0,\n  letterSpacing: void 0,\n  maxFontSizeMultiplier: void 0,\n  size: void 0,\n  textAlign: void 0,\n  variant: void 0\n});\nvar BUTTON_NAME = \"Button\";\nvar ButtonFrame = (0, import_web10.styled)(ThemeableStack, {\n  name: BUTTON_NAME,\n  tag: \"button\",\n  context: ButtonContext,\n  role: \"button\",\n  focusable: true,\n  variants: {\n    unstyled: {\n      false: {\n        size: \"$true\",\n        justifyContent: \"center\",\n        alignItems: \"center\",\n        flexWrap: \"nowrap\",\n        flexDirection: \"row\",\n        cursor: \"pointer\",\n        hoverTheme: true,\n        pressTheme: true,\n        backgrounded: true,\n        borderWidth: 1,\n        borderColor: \"transparent\",\n        focusVisibleStyle: {\n          outlineColor: \"$outlineColor\",\n          outlineStyle: \"solid\",\n          outlineWidth: 2\n        }\n      }\n    },\n    variant: {\n      outlined: {\n        backgroundColor: \"transparent\",\n        borderWidth: 2,\n        borderColor: \"$borderColor\",\n        hoverStyle: {\n          backgroundColor: \"transparent\",\n          borderColor: \"$borderColorHover\"\n        },\n        pressStyle: {\n          backgroundColor: \"transparent\",\n          borderColor: \"$borderColorPress\"\n        },\n        focusVisibleStyle: {\n          backgroundColor: \"transparent\",\n          borderColor: \"$borderColorFocus\"\n        }\n      }\n    },\n    size: {\n      \"...size\": getButtonSized,\n      \":number\": getButtonSized\n    },\n    disabled: {\n      true: {\n        pointerEvents: \"none\"\n      }\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar ButtonText = (0, import_web10.styled)(SizableText, {\n  name: \"Button\",\n  context: ButtonContext,\n  variants: {\n    unstyled: {\n      false: {\n        userSelect: \"none\",\n        cursor: \"pointer\",\n        // flexGrow 1 leads to inconsistent native style where text pushes to start of view\n        flexGrow: 0,\n        flexShrink: 1,\n        ellipse: true,\n        color: \"$color\"\n      }\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar ButtonIcon = /* @__PURE__ */ __name((props) => {\n  const {\n    children,\n    scaleIcon = 1\n  } = props, {\n    size: size4,\n    color\n  } = (0, import_react28.useContext)(ButtonContext), iconSize = (typeof size4 == \"number\" ? size4 * 0.5 : getFontSize(size4)) * scaleIcon;\n  return useGetThemedIcon({\n    size: iconSize,\n    color\n  })(children);\n}, \"ButtonIcon\");\nvar ButtonComponent = ButtonFrame.styleable(function(props, ref) {\n  const {\n    props: buttonProps\n  } = useButton(props);\n  return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(ButtonFrame, {\n    \"data-disable-theme\": true,\n    ...buttonProps,\n    ref\n  });\n});\nvar Button2 = withStaticProperties(ButtonComponent, {\n  Text: ButtonText,\n  Icon: ButtonIcon\n});\nfunction useButton({\n  textProps,\n  ...propsIn\n}, {\n  Text: Text5 = Button2.Text\n} = {\n  Text: Button2.Text\n}) {\n  const isNested = (0, import_react28.useContext)(ButtonNestingContext), propsActive = (0, import_web10.useProps)(propsIn, {\n    noNormalize: true,\n    noExpand: true\n  }), {\n    icon,\n    iconAfter,\n    space,\n    spaceFlex,\n    scaleIcon = 1,\n    scaleSpace = 0.66,\n    separator,\n    noTextWrap,\n    fontFamily,\n    fontSize,\n    fontWeight,\n    fontStyle,\n    letterSpacing,\n    tag,\n    ellipse,\n    maxFontSizeMultiplier,\n    ...restProps\n  } = propsActive, size4 = propsActive.size || (propsActive.unstyled ? void 0 : \"$true\"), color = propsActive.color, iconSize = (typeof size4 == \"number\" ? size4 * 0.5 : getFontSize(size4, {\n    font: fontFamily?.[0] === \"$\" ? fontFamily : void 0\n  })) * scaleIcon, getThemedIcon = useGetThemedIcon({\n    size: iconSize,\n    color\n  }), [themedIcon, themedIconAfter] = [icon, iconAfter].map(getThemedIcon), spaceSize = space ?? (0, import_web10.getVariableValue)(iconSize) * scaleSpace, contents = noTextWrap ? [propsIn.children] : wrapChildrenInText(Text5, {\n    children: propsIn.children,\n    fontFamily,\n    fontSize,\n    textProps,\n    fontWeight,\n    fontStyle,\n    letterSpacing,\n    ellipse,\n    maxFontSizeMultiplier\n  }, Text5 === ButtonText && propsActive.unstyled !== true ? {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\",\n    size: size4\n  } : void 0), inner2 = (0, import_web10.spacedChildren)({\n    // a bit arbitrary but scaling to font size is necessary so long as button does\n    space: spaceSize === false ? 0 : spaceSize == true ? \"$true\" : spaceSize,\n    spaceFlex,\n    ensureKeys: true,\n    separator,\n    direction: propsActive.flexDirection === \"column\" || propsActive.flexDirection === \"column-reverse\" ? \"vertical\" : \"horizontal\",\n    // for keys to stay the same we keep indices as similar a possible\n    // so even if icons are undefined we still pass them\n    children: [themedIcon, ...contents, themedIconAfter]\n  }), props = {\n    size: size4,\n    ...propsIn.disabled && {\n      // in rnw - false still has keyboard tabIndex, undefined = not actually focusable\n      focusable: void 0,\n      // even with tabIndex unset, it will keep focusVisibleStyle on web so disable it here\n      focusVisibleStyle: {\n        borderColor: \"$background\"\n      }\n    },\n    // fixes SSR issue + DOM nesting issue of not allowing button in button\n    tag: tag ?? (isNested ? \"span\" : (\n      // defaults to <a /> when accessibilityRole = link\n      // see https://github.com/tamagui/tamagui/issues/505\n      propsActive.accessibilityRole === \"link\" || propsActive.role === \"link\" ? \"a\" : \"button\"\n    )),\n    ...restProps,\n    children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(ButtonNestingContext.Provider, {\n      value: true,\n      children: inner2\n    }),\n    // forces it to be a runtime pressStyle so it passes through context text colors\n    disableClassName: true\n  };\n  return {\n    spaceSize,\n    isNested,\n    props\n  };\n}\n__name(useButton, \"useButton\");\n\n// node_modules/@tamagui/card/dist/esm/Card.mjs\nvar import_web11 = require(\"@tamagui/core\");\nvar CardContext = (0, import_web11.createStyledContext)({\n  size: \"$true\"\n});\nvar CardFrame = (0, import_web11.styled)(ThemeableStack, {\n  name: \"Card\",\n  context: CardContext,\n  variants: {\n    unstyled: {\n      false: {\n        size: \"$true\",\n        backgroundColor: \"$background\",\n        position: \"relative\"\n      }\n    },\n    size: {\n      \"...size\": /* @__PURE__ */ __name((val, {\n        tokens\n      }) => ({\n        borderRadius: tokens.radius[val] ?? val\n      }), \"...size\")\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar CardHeader = (0, import_web11.styled)(ThemeableStack, {\n  name: \"CardHeader\",\n  context: CardContext,\n  variants: {\n    unstyled: {\n      false: {\n        zIndex: 10,\n        backgroundColor: \"transparent\",\n        marginBottom: \"auto\"\n      }\n    },\n    size: {\n      \"...size\": /* @__PURE__ */ __name((val, {\n        tokens\n      }) => ({\n        padding: tokens.space[val] ?? val\n      }), \"...size\")\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar CardFooter = (0, import_web11.styled)(CardHeader, {\n  name: \"CardFooter\",\n  variants: {\n    unstyled: {\n      false: {\n        zIndex: 5,\n        flexDirection: \"row\",\n        marginTop: \"auto\",\n        marginBottom: 0\n      }\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar CardBackground = (0, import_web11.styled)(ThemeableStack, {\n  name: \"CardBackground\",\n  variants: {\n    unstyled: {\n      false: {\n        zIndex: 0,\n        fullscreen: true,\n        overflow: \"hidden\",\n        pointerEvents: \"none\",\n        padding: 0\n      }\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar Card = (0, import_web11.withStaticProperties)(CardFrame, {\n  Header: CardHeader,\n  Footer: CardFooter,\n  Background: CardBackground\n});\n\n// node_modules/@tamagui/checkbox/dist/esm/Checkbox.mjs\nvar import_core18 = require(\"@tamagui/core\");\n\n// node_modules/@tamagui/checkbox/dist/esm/CheckboxStyledContext.mjs\nvar import_core17 = require(\"@tamagui/core\");\nvar CheckboxStyledContext = (0, import_core17.createStyledContext)({\n  size: \"$true\",\n  scaleIcon: 1\n});\n\n// node_modules/@tamagui/checkbox/dist/esm/Checkbox.mjs\nvar INDICATOR_NAME = \"CheckboxIndicator\";\nvar CheckboxIndicatorFrame = (0, import_core18.styled)(ThemeableStack, {\n  // use Checkbox for easier themes\n  name: INDICATOR_NAME,\n  context: CheckboxStyledContext,\n  variants: {\n    unstyled: {\n      false: {}\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar CHECKBOX_NAME = \"Checkbox\";\nvar CheckboxFrame = (0, import_core18.styled)(ThemeableStack, {\n  name: CHECKBOX_NAME,\n  tag: \"button\",\n  context: CheckboxStyledContext,\n  variants: {\n    unstyled: {\n      false: {\n        size: \"$true\",\n        backgroundColor: \"$background\",\n        alignItems: \"center\",\n        justifyContent: \"center\",\n        pressTheme: true,\n        focusable: true,\n        borderWidth: 1,\n        borderColor: \"$borderColor\",\n        hoverStyle: {\n          borderColor: \"$borderColorHover\"\n        },\n        focusStyle: {\n          borderColor: \"$borderColorFocus\"\n        },\n        focusVisibleStyle: {\n          outlineStyle: \"solid\",\n          outlineWidth: 2,\n          outlineColor: \"$outlineColor\"\n        }\n      }\n    },\n    disabled: {\n      true: {\n        pointerEvents: \"none\",\n        userSelect: \"none\",\n        cursor: \"not-allowed\",\n        hoverStyle: {\n          borderColor: \"$borderColor\",\n          backgroundColor: \"$background\"\n        },\n        pressStyle: {\n          borderColor: \"$borderColor\",\n          backgroundColor: \"$background\"\n        },\n        focusStyle: {\n          outlineWidth: 0\n        }\n      }\n    },\n    size: {\n      \"...size\": /* @__PURE__ */ __name((val) => ({\n        borderRadius: (0, import_core18.getVariableValue)(getSize(val)) / 8\n      }), \"...size\")\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\n\n// node_modules/@tamagui/checkbox/dist/esm/createCheckbox.mjs\nvar import_react31 = __toESM(require(\"react\"), 1);\n\n// node_modules/@tamagui/focusable/dist/esm/registerFocusable.mjs\nvar registerFocusable = /* @__PURE__ */ __name((id, input) => () => {\n}, \"registerFocusable\");\nvar focusFocusable = /* @__PURE__ */ __name((id) => {\n}, \"focusFocusable\");\n\n// node_modules/@tamagui/focusable/dist/esm/focusableInputHOC.mjs\nvar import_web12 = require(\"@tamagui/core\");\nvar import_react29 = __toESM(require(\"react\"), 1);\nfunction useFocusable({\n  isInput,\n  props,\n  ref\n}) {\n  const {\n    id,\n    onChangeText,\n    value,\n    defaultValue: defaultValue2\n  } = props, inputValue = import_react29.default.useRef(value || defaultValue2 || \"\"), unregisterFocusable = import_react29.default.useRef(), focusAndSelect = import_react29.default.useCallback((input) => {\n    input.focus(), input.setSelection && typeof inputValue.current == \"string\" && input.setSelection(0, inputValue.current.length);\n  }, []), registerFocusableHandler = import_react29.default.useCallback((input) => {\n    !id || !input || (unregisterFocusable.current?.(), unregisterFocusable.current = registerFocusable(id, {\n      focus: input.focus,\n      ...isInput && {\n        focusAndSelect: /* @__PURE__ */ __name(() => focusAndSelect(input), \"focusAndSelect\")\n      }\n    }));\n  }, [id, isInput, focusAndSelect]), inputRef = import_react29.default.useCallback((input) => {\n    input && registerFocusableHandler(input);\n  }, [registerFocusableHandler]), handleChangeText = (0, import_web12.useEvent)((value2) => {\n    inputValue.current = value2, onChangeText?.(value2);\n  });\n  return import_react29.default.useEffect(() => () => {\n    unregisterFocusable.current?.();\n  }, []), {\n    ref: import_react29.default.useMemo(() => composeRefs(ref, inputRef), [ref, inputRef]),\n    onChangeText: handleChangeText\n  };\n}\n__name(useFocusable, \"useFocusable\");\n\n// node_modules/@tamagui/label/dist/esm/Label.mjs\nvar import_web13 = require(\"@tamagui/core\");\nvar React35 = __toESM(require(\"react\"), 1);\nvar import_jsx_runtime23 = require(\"react/jsx-runtime\");\nvar NAME = \"Label\";\nvar [LabelProvider, useLabelContextImpl] = createContext5(NAME, {\n  id: void 0,\n  controlRef: {\n    current: null\n  }\n});\nvar LabelFrame = (0, import_web13.styled)(SizableText, {\n  name: \"Label\",\n  tag: \"label\",\n  variants: {\n    unstyled: {\n      false: {\n        size: \"$true\",\n        color: \"$color\",\n        backgroundColor: \"transparent\",\n        display: \"flex\",\n        alignItems: \"center\",\n        userSelect: \"none\",\n        cursor: \"default\",\n        pressStyle: {\n          color: \"$colorPress\"\n        }\n      }\n    },\n    size: {\n      \"...size\": /* @__PURE__ */ __name((val, extras) => {\n        const buttonHeight = getButtonSized(val, extras)?.height;\n        return {\n          ...getFontSized(val, extras),\n          lineHeight: buttonHeight ? extras.tokens.size[buttonHeight] : void 0\n        };\n      }, \"...size\")\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar LabelComponent = React35.forwardRef((props, forwardedRef) => {\n  const {\n    htmlFor,\n    id: idProp,\n    ...labelProps\n  } = props, controlRef = React35.useRef(null), ref = React35.useRef(null), composedRefs = useComposedRefs(forwardedRef, ref), backupId = React35.useId(), id = idProp ?? backupId;\n  return isWeb && React35.useEffect(() => {\n    if (htmlFor) {\n      const element = document.getElementById(htmlFor);\n      if (ref.current && element) {\n        const getAriaLabel = /* @__PURE__ */ __name(() => element.getAttribute(\"aria-labelledby\"), \"getAriaLabel\"), ariaLabelledBy = [id, getAriaLabel()].filter(Boolean).join(\" \");\n        return element.setAttribute(\"aria-labelledby\", ariaLabelledBy), controlRef.current = element, () => {\n          if (!id) return;\n          const ariaLabelledBy2 = getAriaLabel()?.replace(id, \"\");\n          ariaLabelledBy2 === \"\" ? element.removeAttribute(\"aria-labelledby\") : ariaLabelledBy2 && element.setAttribute(\"aria-labelledby\", ariaLabelledBy2);\n        };\n      }\n    }\n  }, [id, htmlFor]), /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(LabelProvider, {\n    id,\n    controlRef,\n    children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(LabelFrame, {\n      id,\n      htmlFor,\n      ...labelProps,\n      ref: composedRefs,\n      onMouseDown: /* @__PURE__ */ __name((event) => {\n        props.onMouseDown?.(event), !event.defaultPrevented && event.detail > 1 && event.preventDefault();\n      }, \"onMouseDown\"),\n      onPress: /* @__PURE__ */ __name((event) => {\n        if (props.onPress?.(event), isWeb) {\n          if (htmlFor || !controlRef.current || event.defaultPrevented) return;\n          const isClickingControl = controlRef.current.contains(event.target), isUserClick = event.isTrusted === true;\n          !isClickingControl && isUserClick && (controlRef.current.click(), controlRef.current.focus());\n        } else props.htmlFor && focusFocusable(props.htmlFor);\n      }, \"onPress\")\n    })\n  });\n});\nLabelComponent.displayName = NAME;\nvar Label = LabelFrame.extractable((0, import_web13.themeable)(LabelComponent), {\n  neverFlatten: true\n});\nvar useLabelContext = /* @__PURE__ */ __name((element) => {\n  const context2 = useLabelContextImpl(\"LabelConsumer\"), {\n    controlRef\n  } = context2;\n  return React35.useEffect(() => {\n    element && (controlRef.current = element);\n  }, [element, controlRef]), context2.id;\n}, \"useLabelContext\");\n\n// node_modules/@tamagui/checkbox-headless/dist/esm/useCheckbox.mjs\nvar import_react30 = __toESM(require(\"react\"), 1);\n\n// node_modules/@tamagui/use-previous/dist/esm/index.mjs\nvar React36 = __toESM(require(\"react\"), 1);\nfunction usePrevious(value) {\n  const ref = React36.useRef({\n    value,\n    previous: value\n  });\n  return React36.useMemo(() => (ref.current.value !== value && (ref.current.previous = ref.current.value, ref.current.value = value), ref.current.previous), [value]);\n}\n__name(usePrevious, \"usePrevious\");\n\n// node_modules/@tamagui/checkbox-headless/dist/esm/BubbleInput.mjs\nvar React37 = __toESM(require(\"react\"), 1);\n\n// node_modules/@tamagui/checkbox-headless/dist/esm/utils.mjs\nfunction isIndeterminate(checked) {\n  return checked === \"indeterminate\";\n}\n__name(isIndeterminate, \"isIndeterminate\");\nfunction getState2(checked) {\n  return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\n__name(getState2, \"getState\");\n\n// node_modules/@tamagui/checkbox-headless/dist/esm/BubbleInput.mjs\nvar import_jsx_runtime24 = require(\"react/jsx-runtime\");\nvar BubbleInput = /* @__PURE__ */ __name((props) => {\n  const {\n    checked,\n    bubbles = true,\n    control,\n    isHidden: isHidden2,\n    ...inputProps\n  } = props, ref = React37.useRef(null), prevChecked = usePrevious(checked);\n  return React37.useEffect(() => {\n    const input = ref.current, inputProto = window.HTMLInputElement.prototype, setChecked = Object.getOwnPropertyDescriptor(inputProto, \"checked\").set;\n    if (prevChecked !== checked && setChecked) {\n      const event = new Event(\"click\", {\n        bubbles\n      });\n      input.indeterminate = isIndeterminate(checked), setChecked.call(input, isIndeterminate(checked) ? false : checked), input.dispatchEvent(event);\n    }\n  }, [prevChecked, checked, bubbles]), /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(\"input\", {\n    type: \"checkbox\",\n    defaultChecked: isIndeterminate(checked) ? false : checked,\n    ...inputProps,\n    tabIndex: -1,\n    ref,\n    \"aria-hidden\": isHidden2,\n    style: {\n      ...isHidden2 ? {\n        // ...controlSize,\n        position: \"absolute\",\n        pointerEvents: \"none\",\n        opacity: 0,\n        margin: 0\n      } : {\n        appearance: \"auto\",\n        accentColor: \"var(--color6)\"\n      },\n      ...props.style\n    }\n  });\n}, \"BubbleInput\");\n\n// node_modules/@tamagui/checkbox-headless/dist/esm/useCheckbox.mjs\nvar import_jsx_runtime25 = require(\"react/jsx-runtime\");\nfunction useCheckbox(props, [checked, setChecked], ref) {\n  const {\n    labelledBy: ariaLabelledby,\n    name,\n    required,\n    disabled,\n    value = \"on\",\n    onCheckedChange,\n    ...checkboxProps\n  } = props, [button, setButton] = import_react30.default.useState(null), composedRefs = useComposedRefs(ref, setButton), hasConsumerStoppedPropagationRef = import_react30.default.useRef(false), isFormControl = isWeb ? button ? !!button.closest(\"form\") : true : false, labelId = useLabelContext(button), labelledBy = ariaLabelledby || labelId, parentKeyDown = props.onKeyDown, handleKeyDown = (0, import_react30.useMemo)(() => composeEventHandlers(parentKeyDown, (event) => {\n    event.key === \"Enter\" && event.preventDefault();\n  }), [parentKeyDown]), handlePress = (0, import_react30.useMemo)(() => composeEventHandlers(props.onPress, (event) => {\n    setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked), isFormControl && \"isPropagationStopped\" in event && (hasConsumerStoppedPropagationRef.current = event.isPropagationStopped(), hasConsumerStoppedPropagationRef.current || event.stopPropagation());\n  }), [isFormControl]);\n  return {\n    bubbleInput: isWeb && isFormControl ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(BubbleInput, {\n      isHidden: true,\n      control: button,\n      bubbles: !hasConsumerStoppedPropagationRef.current,\n      name,\n      value,\n      checked,\n      required,\n      disabled\n    }) : null,\n    checkboxRef: composedRefs,\n    checkboxProps: {\n      role: \"checkbox\",\n      \"aria-labelledby\": labelledBy,\n      \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n      ...checkboxProps,\n      ...isWeb && {\n        type: \"button\",\n        value,\n        \"data-state\": getState2(checked),\n        \"data-disabled\": disabled ? \"\" : void 0,\n        disabled,\n        onKeyDown: disabled ? void 0 : handleKeyDown\n      },\n      onPress: disabled ? void 0 : handlePress\n    }\n  };\n}\n__name(useCheckbox, \"useCheckbox\");\n\n// node_modules/@tamagui/checkbox/dist/esm/createCheckbox.mjs\nvar import_core19 = require(\"@tamagui/core\");\nvar import_jsx_runtime26 = require(\"react/jsx-runtime\");\nvar CheckboxContext = import_react31.default.createContext({\n  checked: false,\n  disabled: false\n});\nvar ensureContext = /* @__PURE__ */ __name((x) => {\n  x.context || (x.context = CheckboxContext);\n}, \"ensureContext\");\nfunction createCheckbox(createProps) {\n  const {\n    disableActiveTheme,\n    Frame: Frame2 = CheckboxFrame,\n    Indicator = CheckboxIndicatorFrame\n  } = createProps;\n  ensureContext(Frame2), ensureContext(Indicator);\n  const FrameComponent = Frame2.styleable(function(_props, forwardedRef) {\n    const {\n      scaleSize = 0.45,\n      sizeAdjust = 0,\n      scaleIcon,\n      checked: checkedProp,\n      defaultChecked,\n      onCheckedChange,\n      native,\n      unstyled = false,\n      ...props\n    } = _props, propsActive = (0, import_core19.useProps)(props), styledContext = import_react31.default.useContext(CheckboxStyledContext);\n    let adjustedSize = 0, size4 = 0;\n    unstyled || (adjustedSize = (0, import_core19.getVariableValue)(getSize(propsActive.size ?? styledContext?.size ?? \"$true\", {\n      shift: sizeAdjust\n    })), size4 = scaleSize ? Math.round(adjustedSize * scaleSize) : adjustedSize);\n    const [checked = false, setChecked] = useControllableState({\n      prop: checkedProp,\n      defaultProp: defaultChecked,\n      onChange: onCheckedChange\n    }), {\n      checkboxProps,\n      checkboxRef,\n      bubbleInput\n    } = useCheckbox(\n      // @ts-ignore\n      propsActive,\n      [checked, setChecked],\n      forwardedRef\n    );\n    if ((0, import_core19.shouldRenderNativePlatform)(native) === \"web\") return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(\"input\", {\n      type: \"checkbox\",\n      defaultChecked: isIndeterminate(checked) ? false : checked,\n      tabIndex: -1,\n      ref: checkboxRef,\n      disabled: checkboxProps.disabled,\n      style: {\n        appearance: \"auto\",\n        accentColor: \"var(--color6)\",\n        ...checkboxProps.style\n        // TODO: any\n      }\n    });\n    const memoizedContext = (0, import_react31.useMemo)(() => ({\n      checked,\n      disabled: checkboxProps.disabled\n    }), [checked, checkboxProps.disabled]);\n    return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(CheckboxContext.Provider, {\n      value: memoizedContext,\n      children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(CheckboxStyledContext.Provider, {\n        size: propsActive.size ?? styledContext?.size ?? \"$true\",\n        scaleIcon: scaleIcon ?? styledContext?.scaleIcon ?? 1,\n        children: [/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Frame2, {\n          ...!unstyled && {\n            width: size4,\n            height: size4\n          },\n          tag: \"button\",\n          ref: checkboxRef,\n          unstyled,\n          ...unstyled === false && {\n            size: size4,\n            theme: checked ? \"active\" : null\n          },\n          checked,\n          disabled: checkboxProps.disabled,\n          ...checkboxProps,\n          style: checkboxProps.style,\n          children: propsActive.children\n        }), bubbleInput]\n      })\n    });\n  }), IndicatorComponent = Indicator.styleable((props, forwardedRef) => {\n    const {\n      // __scopeCheckbox,\n      children: childrenProp,\n      forceMount,\n      disablePassStyles,\n      unstyled = false,\n      ...indicatorProps\n    } = props, styledContext = import_react31.default.useContext(CheckboxStyledContext);\n    let children = childrenProp;\n    if (!unstyled) {\n      const iconSize = (typeof styledContext.size == \"number\" ? styledContext.size * 0.65 : getFontSize(styledContext.size)) * styledContext.scaleIcon, theme = (0, import_core19.useTheme)(), getThemedIcon = useGetThemedIcon({\n        size: iconSize,\n        color: theme.color\n      });\n      children = import_react31.default.Children.toArray(childrenProp).map((child) => disablePassStyles || !import_react31.default.isValidElement(child) ? child : getThemedIcon(child));\n    }\n    const context2 = import_react31.default.useContext(CheckboxContext);\n    return forceMount || isIndeterminate(context2.checked) || context2.checked === true ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Indicator, {\n      pointerEvents: \"none\",\n      ...indicatorProps,\n      ref: forwardedRef,\n      children\n    }) : null;\n  });\n  return (0, import_core19.withStaticProperties)(FrameComponent, {\n    Indicator: IndicatorComponent\n  });\n}\n__name(createCheckbox, \"createCheckbox\");\n\n// node_modules/@tamagui/checkbox/dist/esm/index.mjs\nvar Checkbox = createCheckbox({\n  Frame: CheckboxFrame,\n  Indicator: CheckboxIndicatorFrame\n});\n\n// node_modules/@tamagui/form/dist/esm/Form.mjs\nvar import_core20 = require(\"@tamagui/core\");\nvar import_jsx_runtime27 = require(\"react/jsx-runtime\");\nvar FORM_NAME = \"Form\";\nvar FormFrame = (0, import_core20.styled)(import_core20.Stack, {\n  name: FORM_NAME,\n  tag: \"form\"\n});\nvar [createFormContext] = createContextScope(FORM_NAME);\nvar [FormProvider, useFormContext] = createFormContext(FORM_NAME);\nvar TRIGGER_NAME3 = \"FormTrigger\";\nvar FormTriggerFrame = (0, import_core20.styled)(import_core20.View, {\n  name: TRIGGER_NAME3\n});\nvar FormTrigger = FormTriggerFrame.styleable((props, forwardedRef) => {\n  const {\n    __scopeForm,\n    children,\n    onPress,\n    ...triggerProps\n  } = props, context2 = useFormContext(TRIGGER_NAME3, __scopeForm);\n  return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(FormTriggerFrame, {\n    tag: \"button\",\n    ...triggerProps,\n    ref: forwardedRef,\n    onPress: composeEventHandlers(onPress, context2.onSubmit),\n    children\n  });\n});\nvar FormComponent = FormFrame.extractable(function({\n  onSubmit,\n  ...props\n}) {\n  return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(FormProvider, {\n    scope: props.__scopeForm,\n    onSubmit,\n    children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(FormFrame, {\n      ...props,\n      onSubmit: /* @__PURE__ */ __name((e) => e.preventDefault(), \"onSubmit\")\n    })\n  });\n});\nvar Form2 = withStaticProperties(FormComponent, {\n  Trigger: FormTrigger\n});\n\n// node_modules/@tamagui/group/dist/esm/Group.mjs\nvar import_core21 = require(\"@tamagui/core\");\nvar import_react32 = __toESM(require(\"react\"), 1);\nvar import_react_native_web6 = __toESM(require_cjs21(), 1);\n\n// node_modules/@tamagui/group/dist/esm/useIndexedChildren.mjs\nvar React40 = __toESM(require(\"react\"), 1);\nvar import_jsx_runtime28 = require(\"react/jsx-runtime\");\nvar MaxIndexContext = React40.createContext([]);\nvar IndexContext = React40.createContext(null);\nfunction useIndex() {\n  const maxIndexPath = React40.useContext(MaxIndexContext), indexPathString = React40.useContext(IndexContext);\n  return React40.useMemo(() => {\n    if (indexPathString === null) return null;\n    const indexPath = parseIndexPath(indexPathString), maxIndex = maxIndexPath[maxIndexPath.length - 1], index3 = indexPath[indexPath.length - 1];\n    return {\n      maxIndex,\n      maxIndexPath,\n      index: index3,\n      indexPath,\n      indexPathString,\n      isFirst: index3 === 0,\n      isLast: index3 === maxIndex,\n      isEven: index3 % 2 === 0,\n      isOdd: Math.abs(index3 % 2) === 1\n    };\n  }, [maxIndexPath, indexPathString]);\n}\n__name(useIndex, \"useIndex\");\nfunction useIndexedChildren(children) {\n  const parentMaxIndexPath = React40.useContext(MaxIndexContext), indexPathString = React40.useContext(IndexContext), childrenCount = React40.Children.count(children), maxIndexPath = React40.useMemo(() => parentMaxIndexPath.concat(childrenCount - 1), [childrenCount]);\n  return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(MaxIndexContext.Provider, {\n    value: maxIndexPath,\n    children: React40.Children.map(children, (child, index3) => React40.isValidElement(child) ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(IndexContext.Provider, {\n      value: indexPathString ? `${indexPathString}.${index3.toString()}` : index3.toString(),\n      children: child\n    }, child.key) : child)\n  });\n}\n__name(useIndexedChildren, \"useIndexedChildren\");\nfunction parseIndexPath(indexPathString) {\n  return indexPathString.split(\".\").map((index3) => Number.parseInt(index3, 10));\n}\n__name(parseIndexPath, \"parseIndexPath\");\n\n// node_modules/@tamagui/group/dist/esm/Group.mjs\nvar import_jsx_runtime29 = require(\"react/jsx-runtime\");\nvar GROUP_NAME = \"Group\";\nvar [createGroupContext, createGroupScope] = createContextScope(GROUP_NAME);\nvar [GroupProvider, useGroupContext] = createGroupContext(GROUP_NAME);\nvar GroupFrame = (0, import_core21.styled)(ThemeableStack, {\n  name: \"GroupFrame\",\n  variants: {\n    unstyled: {\n      false: {\n        size: \"$true\"\n      }\n    },\n    size: /* @__PURE__ */ __name((val, {\n      tokens\n    }) => ({\n      borderRadius: tokens.radius[val] ?? val ?? tokens.radius.$true\n    }), \"size\")\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nfunction createGroup(verticalDefault) {\n  return withStaticProperties(GroupFrame.styleable((props, ref) => {\n    const activeProps = (0, import_core21.useProps)(props), {\n      __scopeGroup,\n      children: childrenProp,\n      space,\n      size: size4 = \"$true\",\n      spaceDirection,\n      separator,\n      scrollable,\n      axis = verticalDefault ? \"vertical\" : \"horizontal\",\n      orientation = axis,\n      disabled: disabledProp,\n      disablePassBorderRadius: disablePassBorderRadiusProp,\n      borderRadius,\n      forceUseItem,\n      ...restProps\n    } = activeProps, vertical = orientation === \"vertical\", [itemChildrenCount, setItemChildrenCount] = useControllableState({\n      defaultProp: forceUseItem ? 1 : 0\n    }), isUsingItems = itemChildrenCount > 0, radius = borderRadius ?? (size4 ? (0, import_core21.getVariableValue)((0, import_core21.getTokens)().radius[size4]) - 1 : void 0), disablePassBorderRadius = disablePassBorderRadiusProp ?? !(radius !== void 0), childrenArray = import_react32.default.Children.toArray(childrenProp), children = isUsingItems ? import_react32.default.Children.toArray(childrenProp).filter(import_react32.default.isValidElement) : childrenArray.map((child, i) => {\n      if (!import_react32.default.isValidElement(child) || child.type === import_react32.default.Fragment) return child;\n      const disabled = child.props.disabled ?? disabledProp, isFirst = i === 0, isLast = i === childrenArray.length - 1, radiusStyles = disablePassBorderRadius === true ? null : getBorderRadius({\n        isFirst,\n        isLast,\n        radius,\n        vertical,\n        disable: disablePassBorderRadius\n      }), props2 = {\n        disabled,\n        ...radiusStyles\n      };\n      return cloneElementWithPropOrder(child, props2);\n    }), indexedChildren = useIndexedChildren((0, import_core21.spacedChildren)({\n      direction: spaceDirection,\n      separator,\n      space,\n      children\n    })), onItemMount = import_react32.default.useCallback(() => setItemChildrenCount((prev) => prev + 1), []), onItemUnmount = import_react32.default.useCallback(() => setItemChildrenCount((prev) => prev - 1), []);\n    return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(GroupProvider, {\n      disablePassBorderRadius,\n      vertical: orientation === \"vertical\",\n      radius,\n      disabled: disabledProp,\n      onItemMount,\n      onItemUnmount,\n      scope: __scopeGroup,\n      children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(GroupFrame, {\n        ref,\n        size: size4,\n        flexDirection: orientation === \"horizontal\" ? \"row\" : \"column\",\n        borderRadius,\n        ...restProps,\n        children: wrapScroll({\n          ...activeProps,\n          orientation\n        }, indexedChildren)\n      })\n    });\n  }), {\n    Item: GroupItem\n  });\n}\n__name(createGroup, \"createGroup\");\nvar GroupItem = import_react32.default.forwardRef((props, _ref) => {\n  const {\n    __scopeGroup,\n    children,\n    forcePlacement\n  } = props, groupItemProps = useGroupItem({\n    disabled: import_react32.default.isValidElement(children) ? children.props.disabled : void 0\n  }, forcePlacement, __scopeGroup);\n  return !import_react32.default.isValidElement(children) || children.type === import_react32.default.Fragment ? children : import_react32.default.cloneElement(children, groupItemProps);\n});\nvar useGroupItem = /* @__PURE__ */ __name((childrenProps, forcePlacement, __scopeGroup) => {\n  const treeIndex = useIndex(), context2 = useGroupContext(\"GroupItem\", __scopeGroup);\n  if (import_react32.default.useEffect(() => (context2.onItemMount(), () => {\n    context2.onItemUnmount();\n  }), []), !treeIndex) throw Error(\"<Group.Item/> should only be used within a <Group/>\");\n  const isFirst = forcePlacement === \"first\" || forcePlacement !== \"last\" && treeIndex.index === 0, isLast = forcePlacement === \"last\" || forcePlacement !== \"first\" && treeIndex.index === treeIndex.maxIndex;\n  let propsToPass = {\n    disabled: childrenProps.disabled ?? context2.disabled\n  };\n  if (context2.disablePassBorderRadius !== true) {\n    const borderRadius = getBorderRadius({\n      radius: context2.radius,\n      isFirst,\n      isLast,\n      vertical: context2.vertical,\n      disable: context2.disablePassBorderRadius\n    });\n    return {\n      ...propsToPass,\n      ...borderRadius\n    };\n  }\n  return propsToPass;\n}, \"useGroupItem\");\nvar Group = createGroup(true);\nvar YGroup = Group;\nvar XGroup = createGroup(false);\nvar wrapScroll = /* @__PURE__ */ __name(({\n  scrollable,\n  orientation,\n  showScrollIndicator = false\n}, children) => scrollable ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_native_web6.ScrollView, {\n  ...orientation === \"vertical\" && {\n    showsVerticalScrollIndicator: showScrollIndicator\n  },\n  ...orientation === \"horizontal\" && {\n    horizontal: true,\n    showsHorizontalScrollIndicator: showScrollIndicator\n  },\n  children\n}) : children, \"wrapScroll\");\nvar getBorderRadius = /* @__PURE__ */ __name(({\n  isFirst,\n  isLast,\n  radius,\n  vertical,\n  disable\n}) => ({\n  borderTopLeftRadius: isFirst && disable !== \"top\" && disable !== \"start\" ? radius : 0,\n  borderTopRightRadius: disable !== \"top\" && disable !== \"end\" && (vertical && isFirst || !vertical && isLast) ? radius : 0,\n  borderBottomLeftRadius: disable !== \"bottom\" && disable !== \"start\" && (vertical && isLast || !vertical && isFirst) ? radius : 0,\n  borderBottomRightRadius: isLast && disable !== \"bottom\" && disable !== \"end\" ? radius : 0\n}), \"getBorderRadius\");\nvar cloneElementWithPropOrder = /* @__PURE__ */ __name((child, props) => import_react32.default.cloneElement({\n  ...child,\n  props: null\n}, {\n  ...child.props,\n  ...props\n}), \"cloneElementWithPropOrder\");\n\n// node_modules/@tamagui/react-native-media-driver/dist/esm/createMedia.mjs\nvar import_web14 = require(\"@tamagui/core\");\n\n// node_modules/@tamagui/react-native-media-driver/dist/esm/matchMedia.mjs\nvar matchMedia = globalThis.matchMedia;\n\n// node_modules/@tamagui/react-native-media-driver/dist/esm/createMedia.mjs\nfunction createMedia(media) {\n  return (0, import_web14.setupMatchMedia)(matchMedia), media;\n}\n__name(createMedia, \"createMedia\");\n\n// node_modules/@tamagui/elements/dist/esm/index.mjs\nvar import_core22 = require(\"@tamagui/core\");\nvar Section = (0, import_core22.styled)(import_core22.View, {\n  name: \"Section\",\n  tag: \"section\",\n  flexDirection: \"column\",\n  accessibilityRole: \"summary\"\n});\nvar Article = (0, import_core22.styled)(import_core22.View, {\n  name: \"Article\",\n  tag: \"article\",\n  flexDirection: \"column\"\n});\nvar Main = (0, import_core22.styled)(import_core22.View, {\n  name: \"Main\",\n  tag: \"main\",\n  flexDirection: \"column\"\n});\nvar Header = (0, import_core22.styled)(import_core22.View, {\n  name: \"Header\",\n  tag: \"header\",\n  accessibilityRole: \"header\",\n  flexDirection: \"column\"\n});\nvar Aside = (0, import_core22.styled)(import_core22.View, {\n  name: \"Aside\",\n  tag: \"aside\",\n  flexDirection: \"column\"\n  // accessibilityRole: 'complementary',\n});\nvar Footer = (0, import_core22.styled)(import_core22.View, {\n  name: \"Footer\",\n  tag: \"footer\",\n  flexDirection: \"column\"\n  // accessibilityRole: 'contentinfo',\n});\nvar Nav = (0, import_core22.styled)(import_core22.View, {\n  name: \"Nav\",\n  tag: \"nav\",\n  flexDirection: \"column\"\n  // accessibilityRole: 'navigation',\n});\n\n// node_modules/@tamagui/list-item/dist/esm/ListItem.mjs\nvar import_web15 = require(\"@tamagui/core\");\nvar import_jsx_runtime30 = require(\"react/jsx-runtime\");\nvar NAME2 = \"ListItem\";\nvar ListItemFrame = (0, import_web15.styled)(ThemeableStack, {\n  name: NAME2,\n  tag: \"li\",\n  variants: {\n    unstyled: {\n      false: {\n        size: \"$true\",\n        alignItems: \"center\",\n        justifyContent: \"space-between\",\n        flexWrap: \"nowrap\",\n        width: \"100%\",\n        borderColor: \"$borderColor\",\n        maxWidth: \"100%\",\n        overflow: \"hidden\",\n        flexDirection: \"row\",\n        backgroundColor: \"$background\",\n        cursor: \"default\"\n      }\n    },\n    size: {\n      \"...size\": /* @__PURE__ */ __name((val, {\n        tokens\n      }) => ({\n        minHeight: tokens.size[val],\n        paddingHorizontal: tokens.space[val],\n        paddingVertical: getSpace(tokens.space[val], {\n          shift: -4\n        })\n      }), \"...size\")\n    },\n    active: {\n      true: {\n        hoverStyle: {\n          backgroundColor: \"$background\"\n        }\n      }\n    },\n    disabled: {\n      true: {\n        opacity: 0.5,\n        // TODO breaking types\n        pointerEvents: \"none\"\n      }\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar ListItemText = (0, import_web15.styled)(SizableText, {\n  name: \"ListItemText\",\n  variants: {\n    unstyled: {\n      false: {\n        color: \"$color\",\n        size: \"$true\",\n        flexGrow: 1,\n        flexShrink: 1,\n        ellipse: true,\n        cursor: \"inherit\"\n      }\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar ListItemSubtitle = (0, import_web15.styled)(ListItemText, {\n  name: \"ListItemSubtitle\",\n  variants: {\n    unstyled: {\n      false: {\n        opacity: 0.6,\n        maxWidth: \"100%\",\n        color: \"$color\"\n      }\n    },\n    size: {\n      \"...size\": /* @__PURE__ */ __name((val, extras) => {\n        const oneSmaller = getSize(val, {\n          shift: -1,\n          excludeHalfSteps: true\n        });\n        return getFontSized(oneSmaller.key, extras);\n      }, \"...size\")\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar ListItemTitle = (0, import_web15.styled)(ListItemText, {\n  name: \"ListItemTitle\"\n});\nvar useListItem = /* @__PURE__ */ __name((propsIn, {\n  Text: Text5 = ListItemText,\n  Subtitle = ListItemSubtitle,\n  Title = ListItemTitle\n} = {\n  Text: ListItemText,\n  Subtitle: ListItemSubtitle,\n  Title: ListItemTitle\n}) => {\n  const props = (0, import_web15.useProps)(propsIn, {\n    resolveValues: \"none\"\n  }), {\n    children,\n    icon,\n    iconAfter,\n    noTextWrap,\n    theme: themeName,\n    space,\n    spaceFlex,\n    scaleIcon = 1,\n    scaleSpace = 1,\n    unstyled = false,\n    subTitle,\n    title,\n    // text props\n    color,\n    fontWeight,\n    fontSize,\n    fontFamily,\n    letterSpacing,\n    textAlign,\n    ellipse,\n    ...rest\n  } = props, textProps = {\n    color,\n    fontWeight,\n    fontSize,\n    fontFamily,\n    letterSpacing,\n    textAlign,\n    ellipse,\n    children\n  }, size4 = props.size || \"$true\", iconSize = getFontSize(size4) * scaleIcon, getThemedIcon = useGetThemedIcon({\n    size: iconSize,\n    color\n  }), [themedIcon, themedIconAfter] = [icon, iconAfter].map(getThemedIcon), sizeToken = (0, import_web15.getTokens)().space[props.space] ?? iconSize, spaceSize = (0, import_web15.getVariableValue)(sizeToken) * scaleSpace, contents = wrapChildrenInText(Text5, textProps);\n  return {\n    props: {\n      ...rest,\n      children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_jsx_runtime30.Fragment, {\n        children: [themedIcon ? /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_jsx_runtime30.Fragment, {\n          children: [themedIcon, /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_web15.Spacer, {\n            size: spaceSize\n          })]\n        }) : null, title || subTitle ? /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(YStack, {\n          flex: 1,\n          children: [noTextWrap === \"all\" ? title : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Title, {\n            size: size4,\n            children: title\n          }), subTitle ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_jsx_runtime30.Fragment, {\n            children: typeof subTitle == \"string\" && noTextWrap !== \"all\" ? (\n              // TODO can use theme but we need to standardize to alt themes\n              // or standardize on subtle colors in themes\n              /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Subtitle, {\n                unstyled,\n                size: size4,\n                children: subTitle\n              })\n            ) : subTitle\n          }) : null, contents]\n        }) : contents, themedIconAfter ? /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_jsx_runtime30.Fragment, {\n          children: [/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_web15.Spacer, {\n            size: spaceSize\n          }), themedIconAfter]\n        }) : null]\n      })\n    }\n  };\n}, \"useListItem\");\nvar ListItemComponent = ListItemFrame.styleable(function(props, ref) {\n  const {\n    props: listItemProps\n  } = useListItem(props);\n  return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(ListItemFrame, {\n    ref,\n    ...listItemProps\n  });\n});\nvar ListItem2 = withStaticProperties(ListItemComponent, {\n  Text: ListItemText,\n  Subtitle: ListItemSubtitle\n});\n\n// node_modules/@tamagui/animate/dist/esm/Animate.mjs\nvar import_jsx_runtime31 = require(\"react/jsx-runtime\");\nfunction Animate({\n  children,\n  type,\n  ...props\n}) {\n  return type === \"presence\" ? props.keepChildrenMounted ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(PresenceChild, {\n    initial: props.initial ? void 0 : false,\n    onExitComplete: props.onExitComplete,\n    enterVariant: props.enterVariant,\n    exitVariant: props.exitVariant,\n    enterExitVariant: props.enterExitVariant,\n    presenceAffectsLayout: false,\n    isPresent: props.present,\n    custom: props.custom,\n    children\n  }) : /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(AnimatePresence, {\n    ...props,\n    children: props.present ? children : null\n  }) : /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_jsx_runtime31.Fragment, {\n    children\n  });\n}\n__name(Animate, \"Animate\");\n\n// node_modules/@tamagui/popover/dist/esm/Popover.mjs\nvar import_core25 = require(\"@tamagui/core\");\n\n// node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs\nvar min = Math.min;\nvar max = Math.max;\nvar round = Math.round;\nvar floor = Math.floor;\nvar createCoords = /* @__PURE__ */ __name((v) => ({\n  x: v,\n  y: v\n}), \"createCoords\");\nvar oppositeSideMap = {\n  left: \"right\",\n  right: \"left\",\n  bottom: \"top\",\n  top: \"bottom\"\n};\nvar oppositeAlignmentMap = {\n  start: \"end\",\n  end: \"start\"\n};\nfunction clamp2(start, value, end) {\n  return max(start, min(value, end));\n}\n__name(clamp2, \"clamp\");\nfunction evaluate(value, param) {\n  return typeof value === \"function\" ? value(param) : value;\n}\n__name(evaluate, \"evaluate\");\nfunction getSide(placement) {\n  return placement.split(\"-\")[0];\n}\n__name(getSide, \"getSide\");\nfunction getAlignment(placement) {\n  return placement.split(\"-\")[1];\n}\n__name(getAlignment, \"getAlignment\");\nfunction getOppositeAxis(axis) {\n  return axis === \"x\" ? \"y\" : \"x\";\n}\n__name(getOppositeAxis, \"getOppositeAxis\");\nfunction getAxisLength(axis) {\n  return axis === \"y\" ? \"height\" : \"width\";\n}\n__name(getAxisLength, \"getAxisLength\");\nfunction getSideAxis(placement) {\n  return [\"top\", \"bottom\"].includes(getSide(placement)) ? \"y\" : \"x\";\n}\n__name(getSideAxis, \"getSideAxis\");\nfunction getAlignmentAxis(placement) {\n  return getOppositeAxis(getSideAxis(placement));\n}\n__name(getAlignmentAxis, \"getAlignmentAxis\");\nfunction getAlignmentSides(placement, rects, rtl) {\n  if (rtl === void 0) {\n    rtl = false;\n  }\n  const alignment = getAlignment(placement);\n  const alignmentAxis = getAlignmentAxis(placement);\n  const length = getAxisLength(alignmentAxis);\n  let mainAlignmentSide = alignmentAxis === \"x\" ? alignment === (rtl ? \"end\" : \"start\") ? \"right\" : \"left\" : alignment === \"start\" ? \"bottom\" : \"top\";\n  if (rects.reference[length] > rects.floating[length]) {\n    mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n  }\n  return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\n__name(getAlignmentSides, \"getAlignmentSides\");\nfunction getExpandedPlacements(placement) {\n  const oppositePlacement = getOppositePlacement(placement);\n  return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\n__name(getExpandedPlacements, \"getExpandedPlacements\");\nfunction getOppositeAlignmentPlacement(placement) {\n  return placement.replace(/start|end/g, (alignment) => oppositeAlignmentMap[alignment]);\n}\n__name(getOppositeAlignmentPlacement, \"getOppositeAlignmentPlacement\");\nfunction getSideList(side, isStart, rtl) {\n  const lr = [\"left\", \"right\"];\n  const rl = [\"right\", \"left\"];\n  const tb = [\"top\", \"bottom\"];\n  const bt = [\"bottom\", \"top\"];\n  switch (side) {\n    case \"top\":\n    case \"bottom\":\n      if (rtl) return isStart ? rl : lr;\n      return isStart ? lr : rl;\n    case \"left\":\n    case \"right\":\n      return isStart ? tb : bt;\n    default:\n      return [];\n  }\n}\n__name(getSideList, \"getSideList\");\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n  const alignment = getAlignment(placement);\n  let list = getSideList(getSide(placement), direction === \"start\", rtl);\n  if (alignment) {\n    list = list.map((side) => side + \"-\" + alignment);\n    if (flipAlignment) {\n      list = list.concat(list.map(getOppositeAlignmentPlacement));\n    }\n  }\n  return list;\n}\n__name(getOppositeAxisPlacements, \"getOppositeAxisPlacements\");\nfunction getOppositePlacement(placement) {\n  return placement.replace(/left|right|bottom|top/g, (side) => oppositeSideMap[side]);\n}\n__name(getOppositePlacement, \"getOppositePlacement\");\nfunction expandPaddingObject(padding) {\n  return {\n    top: 0,\n    right: 0,\n    bottom: 0,\n    left: 0,\n    ...padding\n  };\n}\n__name(expandPaddingObject, \"expandPaddingObject\");\nfunction getPaddingObject(padding) {\n  return typeof padding !== \"number\" ? expandPaddingObject(padding) : {\n    top: padding,\n    right: padding,\n    bottom: padding,\n    left: padding\n  };\n}\n__name(getPaddingObject, \"getPaddingObject\");\nfunction rectToClientRect(rect) {\n  const {\n    x,\n    y,\n    width,\n    height\n  } = rect;\n  return {\n    width,\n    height,\n    top: y,\n    left: x,\n    right: x + width,\n    bottom: y + height,\n    x,\n    y\n  };\n}\n__name(rectToClientRect, \"rectToClientRect\");\n\n// node_modules/@floating-ui/core/dist/floating-ui.core.mjs\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n  let {\n    reference,\n    floating\n  } = _ref;\n  const sideAxis = getSideAxis(placement);\n  const alignmentAxis = getAlignmentAxis(placement);\n  const alignLength = getAxisLength(alignmentAxis);\n  const side = getSide(placement);\n  const isVertical = sideAxis === \"y\";\n  const commonX = reference.x + reference.width / 2 - floating.width / 2;\n  const commonY = reference.y + reference.height / 2 - floating.height / 2;\n  const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n  let coords;\n  switch (side) {\n    case \"top\":\n      coords = {\n        x: commonX,\n        y: reference.y - floating.height\n      };\n      break;\n    case \"bottom\":\n      coords = {\n        x: commonX,\n        y: reference.y + reference.height\n      };\n      break;\n    case \"right\":\n      coords = {\n        x: reference.x + reference.width,\n        y: commonY\n      };\n      break;\n    case \"left\":\n      coords = {\n        x: reference.x - floating.width,\n        y: commonY\n      };\n      break;\n    default:\n      coords = {\n        x: reference.x,\n        y: reference.y\n      };\n  }\n  switch (getAlignment(placement)) {\n    case \"start\":\n      coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n      break;\n    case \"end\":\n      coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n      break;\n  }\n  return coords;\n}\n__name(computeCoordsFromPlacement, \"computeCoordsFromPlacement\");\nvar computePosition = /* @__PURE__ */ __name(async (reference, floating, config) => {\n  const {\n    placement = \"bottom\",\n    strategy = \"absolute\",\n    middleware = [],\n    platform: platform2\n  } = config;\n  const validMiddleware = middleware.filter(Boolean);\n  const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(floating));\n  let rects = await platform2.getElementRects({\n    reference,\n    floating,\n    strategy\n  });\n  let {\n    x,\n    y\n  } = computeCoordsFromPlacement(rects, placement, rtl);\n  let statefulPlacement = placement;\n  let middlewareData = {};\n  let resetCount = 0;\n  for (let i = 0; i < validMiddleware.length; i++) {\n    const {\n      name,\n      fn\n    } = validMiddleware[i];\n    const {\n      x: nextX,\n      y: nextY,\n      data,\n      reset\n    } = await fn({\n      x,\n      y,\n      initialPlacement: placement,\n      placement: statefulPlacement,\n      strategy,\n      middlewareData,\n      rects,\n      platform: platform2,\n      elements: {\n        reference,\n        floating\n      }\n    });\n    x = nextX != null ? nextX : x;\n    y = nextY != null ? nextY : y;\n    middlewareData = {\n      ...middlewareData,\n      [name]: {\n        ...middlewareData[name],\n        ...data\n      }\n    };\n    if (reset && resetCount <= 50) {\n      resetCount++;\n      if (typeof reset === \"object\") {\n        if (reset.placement) {\n          statefulPlacement = reset.placement;\n        }\n        if (reset.rects) {\n          rects = reset.rects === true ? await platform2.getElementRects({\n            reference,\n            floating,\n            strategy\n          }) : reset.rects;\n        }\n        ({\n          x,\n          y\n        } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n      }\n      i = -1;\n    }\n  }\n  return {\n    x,\n    y,\n    placement: statefulPlacement,\n    strategy,\n    middlewareData\n  };\n}, \"computePosition\");\nasync function detectOverflow(state, options) {\n  var _await$platform$isEle;\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    x,\n    y,\n    platform: platform2,\n    rects,\n    elements,\n    strategy\n  } = state;\n  const {\n    boundary = \"clippingAncestors\",\n    rootBoundary = \"viewport\",\n    elementContext = \"floating\",\n    altBoundary = false,\n    padding = 0\n  } = evaluate(options, state);\n  const paddingObject = getPaddingObject(padding);\n  const altContext = elementContext === \"floating\" ? \"reference\" : \"floating\";\n  const element = elements[altBoundary ? altContext : elementContext];\n  const clippingClientRect = rectToClientRect(await platform2.getClippingRect({\n    element: ((_await$platform$isEle = await (platform2.isElement == null ? void 0 : platform2.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || await (platform2.getDocumentElement == null ? void 0 : platform2.getDocumentElement(elements.floating)),\n    boundary,\n    rootBoundary,\n    strategy\n  }));\n  const rect = elementContext === \"floating\" ? {\n    x,\n    y,\n    width: rects.floating.width,\n    height: rects.floating.height\n  } : rects.reference;\n  const offsetParent = await (platform2.getOffsetParent == null ? void 0 : platform2.getOffsetParent(elements.floating));\n  const offsetScale = await (platform2.isElement == null ? void 0 : platform2.isElement(offsetParent)) ? await (platform2.getScale == null ? void 0 : platform2.getScale(offsetParent)) || {\n    x: 1,\n    y: 1\n  } : {\n    x: 1,\n    y: 1\n  };\n  const elementClientRect = rectToClientRect(platform2.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform2.convertOffsetParentRelativeRectToViewportRelativeRect({\n    elements,\n    rect,\n    offsetParent,\n    strategy\n  }) : rect);\n  return {\n    top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n    bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n    left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n    right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n  };\n}\n__name(detectOverflow, \"detectOverflow\");\nvar arrow = /* @__PURE__ */ __name((options) => ({\n  name: \"arrow\",\n  options,\n  async fn(state) {\n    const {\n      x,\n      y,\n      placement,\n      rects,\n      platform: platform2,\n      elements,\n      middlewareData\n    } = state;\n    const {\n      element,\n      padding = 0\n    } = evaluate(options, state) || {};\n    if (element == null) {\n      return {};\n    }\n    const paddingObject = getPaddingObject(padding);\n    const coords = {\n      x,\n      y\n    };\n    const axis = getAlignmentAxis(placement);\n    const length = getAxisLength(axis);\n    const arrowDimensions = await platform2.getDimensions(element);\n    const isYAxis = axis === \"y\";\n    const minProp = isYAxis ? \"top\" : \"left\";\n    const maxProp = isYAxis ? \"bottom\" : \"right\";\n    const clientProp = isYAxis ? \"clientHeight\" : \"clientWidth\";\n    const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n    const startDiff = coords[axis] - rects.reference[axis];\n    const arrowOffsetParent = await (platform2.getOffsetParent == null ? void 0 : platform2.getOffsetParent(element));\n    let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n    if (!clientSize || !await (platform2.isElement == null ? void 0 : platform2.isElement(arrowOffsetParent))) {\n      clientSize = elements.floating[clientProp] || rects.floating[length];\n    }\n    const centerToReference = endDiff / 2 - startDiff / 2;\n    const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n    const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n    const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n    const min$1 = minPadding;\n    const max2 = clientSize - arrowDimensions[length] - maxPadding;\n    const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n    const offset4 = clamp2(min$1, center, max2);\n    const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset4 && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n    const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max2 : 0;\n    return {\n      [axis]: coords[axis] + alignmentOffset,\n      data: {\n        [axis]: offset4,\n        centerOffset: center - offset4 - alignmentOffset,\n        ...shouldAddOffset && {\n          alignmentOffset\n        }\n      },\n      reset: shouldAddOffset\n    };\n  }\n}), \"arrow\");\nvar flip = /* @__PURE__ */ __name(function(options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: \"flip\",\n    options,\n    async fn(state) {\n      var _middlewareData$arrow, _middlewareData$flip;\n      const {\n        placement,\n        middlewareData,\n        rects,\n        initialPlacement,\n        platform: platform2,\n        elements\n      } = state;\n      const {\n        mainAxis: checkMainAxis = true,\n        crossAxis: checkCrossAxis = true,\n        fallbackPlacements: specifiedFallbackPlacements,\n        fallbackStrategy = \"bestFit\",\n        fallbackAxisSideDirection = \"none\",\n        flipAlignment = true,\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n      if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n        return {};\n      }\n      const side = getSide(placement);\n      const initialSideAxis = getSideAxis(initialPlacement);\n      const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n      const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements.floating));\n      const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n      const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== \"none\";\n      if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n        fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n      }\n      const placements2 = [initialPlacement, ...fallbackPlacements];\n      const overflow = await detectOverflow(state, detectOverflowOptions);\n      const overflows = [];\n      let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n      if (checkMainAxis) {\n        overflows.push(overflow[side]);\n      }\n      if (checkCrossAxis) {\n        const sides2 = getAlignmentSides(placement, rects, rtl);\n        overflows.push(overflow[sides2[0]], overflow[sides2[1]]);\n      }\n      overflowsData = [...overflowsData, {\n        placement,\n        overflows\n      }];\n      if (!overflows.every((side2) => side2 <= 0)) {\n        var _middlewareData$flip2, _overflowsData$filter;\n        const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n        const nextPlacement = placements2[nextIndex];\n        if (nextPlacement) {\n          return {\n            data: {\n              index: nextIndex,\n              overflows: overflowsData\n            },\n            reset: {\n              placement: nextPlacement\n            }\n          };\n        }\n        let resetPlacement = (_overflowsData$filter = overflowsData.filter((d) => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n        if (!resetPlacement) {\n          switch (fallbackStrategy) {\n            case \"bestFit\": {\n              var _overflowsData$filter2;\n              const placement2 = (_overflowsData$filter2 = overflowsData.filter((d) => {\n                if (hasFallbackAxisSideDirection) {\n                  const currentSideAxis = getSideAxis(d.placement);\n                  return currentSideAxis === initialSideAxis || // Create a bias to the `y` side axis due to horizontal\n                  // reading directions favoring greater width.\n                  currentSideAxis === \"y\";\n                }\n                return true;\n              }).map((d) => [d.placement, d.overflows.filter((overflow2) => overflow2 > 0).reduce((acc, overflow2) => acc + overflow2, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n              if (placement2) {\n                resetPlacement = placement2;\n              }\n              break;\n            }\n            case \"initialPlacement\":\n              resetPlacement = initialPlacement;\n              break;\n          }\n        }\n        if (placement !== resetPlacement) {\n          return {\n            reset: {\n              placement: resetPlacement\n            }\n          };\n        }\n      }\n      return {};\n    }\n  };\n}, \"flip\");\nasync function convertValueToCoords(state, options) {\n  const {\n    placement,\n    platform: platform2,\n    elements\n  } = state;\n  const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements.floating));\n  const side = getSide(placement);\n  const alignment = getAlignment(placement);\n  const isVertical = getSideAxis(placement) === \"y\";\n  const mainAxisMulti = [\"left\", \"top\"].includes(side) ? -1 : 1;\n  const crossAxisMulti = rtl && isVertical ? -1 : 1;\n  const rawValue = evaluate(options, state);\n  let {\n    mainAxis,\n    crossAxis,\n    alignmentAxis\n  } = typeof rawValue === \"number\" ? {\n    mainAxis: rawValue,\n    crossAxis: 0,\n    alignmentAxis: null\n  } : {\n    mainAxis: rawValue.mainAxis || 0,\n    crossAxis: rawValue.crossAxis || 0,\n    alignmentAxis: rawValue.alignmentAxis\n  };\n  if (alignment && typeof alignmentAxis === \"number\") {\n    crossAxis = alignment === \"end\" ? alignmentAxis * -1 : alignmentAxis;\n  }\n  return isVertical ? {\n    x: crossAxis * crossAxisMulti,\n    y: mainAxis * mainAxisMulti\n  } : {\n    x: mainAxis * mainAxisMulti,\n    y: crossAxis * crossAxisMulti\n  };\n}\n__name(convertValueToCoords, \"convertValueToCoords\");\nvar offset = /* @__PURE__ */ __name(function(options) {\n  if (options === void 0) {\n    options = 0;\n  }\n  return {\n    name: \"offset\",\n    options,\n    async fn(state) {\n      var _middlewareData$offse, _middlewareData$arrow;\n      const {\n        x,\n        y,\n        placement,\n        middlewareData\n      } = state;\n      const diffCoords = await convertValueToCoords(state, options);\n      if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n        return {};\n      }\n      return {\n        x: x + diffCoords.x,\n        y: y + diffCoords.y,\n        data: {\n          ...diffCoords,\n          placement\n        }\n      };\n    }\n  };\n}, \"offset\");\nvar shift = /* @__PURE__ */ __name(function(options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: \"shift\",\n    options,\n    async fn(state) {\n      const {\n        x,\n        y,\n        placement\n      } = state;\n      const {\n        mainAxis: checkMainAxis = true,\n        crossAxis: checkCrossAxis = false,\n        limiter = {\n          fn: /* @__PURE__ */ __name((_ref) => {\n            let {\n              x: x2,\n              y: y2\n            } = _ref;\n            return {\n              x: x2,\n              y: y2\n            };\n          }, \"fn\")\n        },\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n      const coords = {\n        x,\n        y\n      };\n      const overflow = await detectOverflow(state, detectOverflowOptions);\n      const crossAxis = getSideAxis(getSide(placement));\n      const mainAxis = getOppositeAxis(crossAxis);\n      let mainAxisCoord = coords[mainAxis];\n      let crossAxisCoord = coords[crossAxis];\n      if (checkMainAxis) {\n        const minSide = mainAxis === \"y\" ? \"top\" : \"left\";\n        const maxSide = mainAxis === \"y\" ? \"bottom\" : \"right\";\n        const min2 = mainAxisCoord + overflow[minSide];\n        const max2 = mainAxisCoord - overflow[maxSide];\n        mainAxisCoord = clamp2(min2, mainAxisCoord, max2);\n      }\n      if (checkCrossAxis) {\n        const minSide = crossAxis === \"y\" ? \"top\" : \"left\";\n        const maxSide = crossAxis === \"y\" ? \"bottom\" : \"right\";\n        const min2 = crossAxisCoord + overflow[minSide];\n        const max2 = crossAxisCoord - overflow[maxSide];\n        crossAxisCoord = clamp2(min2, crossAxisCoord, max2);\n      }\n      const limitedCoords = limiter.fn({\n        ...state,\n        [mainAxis]: mainAxisCoord,\n        [crossAxis]: crossAxisCoord\n      });\n      return {\n        ...limitedCoords,\n        data: {\n          x: limitedCoords.x - x,\n          y: limitedCoords.y - y,\n          enabled: {\n            [mainAxis]: checkMainAxis,\n            [crossAxis]: checkCrossAxis\n          }\n        }\n      };\n    }\n  };\n}, \"shift\");\nvar size = /* @__PURE__ */ __name(function(options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: \"size\",\n    options,\n    async fn(state) {\n      var _state$middlewareData, _state$middlewareData2;\n      const {\n        placement,\n        rects,\n        platform: platform2,\n        elements\n      } = state;\n      const {\n        apply = /* @__PURE__ */ __name(() => {\n        }, \"apply\"),\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n      const overflow = await detectOverflow(state, detectOverflowOptions);\n      const side = getSide(placement);\n      const alignment = getAlignment(placement);\n      const isYAxis = getSideAxis(placement) === \"y\";\n      const {\n        width,\n        height\n      } = rects.floating;\n      let heightSide;\n      let widthSide;\n      if (side === \"top\" || side === \"bottom\") {\n        heightSide = side;\n        widthSide = alignment === (await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements.floating)) ? \"start\" : \"end\") ? \"left\" : \"right\";\n      } else {\n        widthSide = side;\n        heightSide = alignment === \"end\" ? \"top\" : \"bottom\";\n      }\n      const maximumClippingHeight = height - overflow.top - overflow.bottom;\n      const maximumClippingWidth = width - overflow.left - overflow.right;\n      const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n      const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n      const noShift = !state.middlewareData.shift;\n      let availableHeight = overflowAvailableHeight;\n      let availableWidth = overflowAvailableWidth;\n      if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n        availableWidth = maximumClippingWidth;\n      }\n      if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n        availableHeight = maximumClippingHeight;\n      }\n      if (noShift && !alignment) {\n        const xMin = max(overflow.left, 0);\n        const xMax = max(overflow.right, 0);\n        const yMin = max(overflow.top, 0);\n        const yMax = max(overflow.bottom, 0);\n        if (isYAxis) {\n          availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n        } else {\n          availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n        }\n      }\n      await apply({\n        ...state,\n        availableWidth,\n        availableHeight\n      });\n      const nextDimensions = await platform2.getDimensions(elements.floating);\n      if (width !== nextDimensions.width || height !== nextDimensions.height) {\n        return {\n          reset: {\n            rects: true\n          }\n        };\n      }\n      return {};\n    }\n  };\n}, \"size\");\n\n// node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs\nfunction hasWindow() {\n  return typeof window !== \"undefined\";\n}\n__name(hasWindow, \"hasWindow\");\nfunction getNodeName(node) {\n  if (isNode(node)) {\n    return (node.nodeName || \"\").toLowerCase();\n  }\n  return \"#document\";\n}\n__name(getNodeName, \"getNodeName\");\nfunction getWindow(node) {\n  var _node$ownerDocument;\n  return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\n__name(getWindow, \"getWindow\");\nfunction getDocumentElement(node) {\n  var _ref;\n  return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\n__name(getDocumentElement, \"getDocumentElement\");\nfunction isNode(value) {\n  if (!hasWindow()) {\n    return false;\n  }\n  return value instanceof Node || value instanceof getWindow(value).Node;\n}\n__name(isNode, \"isNode\");\nfunction isElement(value) {\n  if (!hasWindow()) {\n    return false;\n  }\n  return value instanceof Element || value instanceof getWindow(value).Element;\n}\n__name(isElement, \"isElement\");\nfunction isHTMLElement(value) {\n  if (!hasWindow()) {\n    return false;\n  }\n  return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\n__name(isHTMLElement, \"isHTMLElement\");\nfunction isShadowRoot(value) {\n  if (!hasWindow() || typeof ShadowRoot === \"undefined\") {\n    return false;\n  }\n  return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\n__name(isShadowRoot, \"isShadowRoot\");\nfunction isOverflowElement(element) {\n  const {\n    overflow,\n    overflowX,\n    overflowY,\n    display\n  } = getComputedStyle2(element);\n  return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && ![\"inline\", \"contents\"].includes(display);\n}\n__name(isOverflowElement, \"isOverflowElement\");\nfunction isTableElement(element) {\n  return [\"table\", \"td\", \"th\"].includes(getNodeName(element));\n}\n__name(isTableElement, \"isTableElement\");\nfunction isTopLayer(element) {\n  return [\":popover-open\", \":modal\"].some((selector) => {\n    try {\n      return element.matches(selector);\n    } catch (e) {\n      return false;\n    }\n  });\n}\n__name(isTopLayer, \"isTopLayer\");\nfunction isContainingBlock(elementOrCss) {\n  const webkit = isWebKit();\n  const css = isElement(elementOrCss) ? getComputedStyle2(elementOrCss) : elementOrCss;\n  return [\"transform\", \"translate\", \"scale\", \"rotate\", \"perspective\"].some((value) => css[value] ? css[value] !== \"none\" : false) || (css.containerType ? css.containerType !== \"normal\" : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== \"none\" : false) || !webkit && (css.filter ? css.filter !== \"none\" : false) || [\"transform\", \"translate\", \"scale\", \"rotate\", \"perspective\", \"filter\"].some((value) => (css.willChange || \"\").includes(value)) || [\"paint\", \"layout\", \"strict\", \"content\"].some((value) => (css.contain || \"\").includes(value));\n}\n__name(isContainingBlock, \"isContainingBlock\");\nfunction getContainingBlock(element) {\n  let currentNode = getParentNode(element);\n  while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n    if (isContainingBlock(currentNode)) {\n      return currentNode;\n    } else if (isTopLayer(currentNode)) {\n      return null;\n    }\n    currentNode = getParentNode(currentNode);\n  }\n  return null;\n}\n__name(getContainingBlock, \"getContainingBlock\");\nfunction isWebKit() {\n  if (typeof CSS === \"undefined\" || !CSS.supports) return false;\n  return CSS.supports(\"-webkit-backdrop-filter\", \"none\");\n}\n__name(isWebKit, \"isWebKit\");\nfunction isLastTraversableNode(node) {\n  return [\"html\", \"body\", \"#document\"].includes(getNodeName(node));\n}\n__name(isLastTraversableNode, \"isLastTraversableNode\");\nfunction getComputedStyle2(element) {\n  return getWindow(element).getComputedStyle(element);\n}\n__name(getComputedStyle2, \"getComputedStyle\");\nfunction getNodeScroll(element) {\n  if (isElement(element)) {\n    return {\n      scrollLeft: element.scrollLeft,\n      scrollTop: element.scrollTop\n    };\n  }\n  return {\n    scrollLeft: element.scrollX,\n    scrollTop: element.scrollY\n  };\n}\n__name(getNodeScroll, \"getNodeScroll\");\nfunction getParentNode(node) {\n  if (getNodeName(node) === \"html\") {\n    return node;\n  }\n  const result = (\n    // Step into the shadow DOM of the parent of a slotted node.\n    node.assignedSlot || // DOM Element detected.\n    node.parentNode || // ShadowRoot detected.\n    isShadowRoot(node) && node.host || // Fallback.\n    getDocumentElement(node)\n  );\n  return isShadowRoot(result) ? result.host : result;\n}\n__name(getParentNode, \"getParentNode\");\nfunction getNearestOverflowAncestor(node) {\n  const parentNode = getParentNode(node);\n  if (isLastTraversableNode(parentNode)) {\n    return node.ownerDocument ? node.ownerDocument.body : node.body;\n  }\n  if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n    return parentNode;\n  }\n  return getNearestOverflowAncestor(parentNode);\n}\n__name(getNearestOverflowAncestor, \"getNearestOverflowAncestor\");\nfunction getOverflowAncestors(node, list, traverseIframes) {\n  var _node$ownerDocument2;\n  if (list === void 0) {\n    list = [];\n  }\n  if (traverseIframes === void 0) {\n    traverseIframes = true;\n  }\n  const scrollableAncestor = getNearestOverflowAncestor(node);\n  const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n  const win = getWindow(scrollableAncestor);\n  if (isBody) {\n    const frameElement = getFrameElement(win);\n    return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n  }\n  return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\n__name(getOverflowAncestors, \"getOverflowAncestors\");\nfunction getFrameElement(win) {\n  return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n__name(getFrameElement, \"getFrameElement\");\n\n// node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs\nfunction getCssDimensions(element) {\n  const css = getComputedStyle2(element);\n  let width = parseFloat(css.width) || 0;\n  let height = parseFloat(css.height) || 0;\n  const hasOffset = isHTMLElement(element);\n  const offsetWidth = hasOffset ? element.offsetWidth : width;\n  const offsetHeight = hasOffset ? element.offsetHeight : height;\n  const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n  if (shouldFallback) {\n    width = offsetWidth;\n    height = offsetHeight;\n  }\n  return {\n    width,\n    height,\n    $: shouldFallback\n  };\n}\n__name(getCssDimensions, \"getCssDimensions\");\nfunction unwrapElement(element) {\n  return !isElement(element) ? element.contextElement : element;\n}\n__name(unwrapElement, \"unwrapElement\");\nfunction getScale(element) {\n  const domElement = unwrapElement(element);\n  if (!isHTMLElement(domElement)) {\n    return createCoords(1);\n  }\n  const rect = domElement.getBoundingClientRect();\n  const {\n    width,\n    height,\n    $\n  } = getCssDimensions(domElement);\n  let x = ($ ? round(rect.width) : rect.width) / width;\n  let y = ($ ? round(rect.height) : rect.height) / height;\n  if (!x || !Number.isFinite(x)) {\n    x = 1;\n  }\n  if (!y || !Number.isFinite(y)) {\n    y = 1;\n  }\n  return {\n    x,\n    y\n  };\n}\n__name(getScale, \"getScale\");\nvar noOffsets = /* @__PURE__ */ createCoords(0);\nfunction getVisualOffsets(element) {\n  const win = getWindow(element);\n  if (!isWebKit() || !win.visualViewport) {\n    return noOffsets;\n  }\n  return {\n    x: win.visualViewport.offsetLeft,\n    y: win.visualViewport.offsetTop\n  };\n}\n__name(getVisualOffsets, \"getVisualOffsets\");\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n  if (isFixed === void 0) {\n    isFixed = false;\n  }\n  if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n    return false;\n  }\n  return isFixed;\n}\n__name(shouldAddVisualOffsets, \"shouldAddVisualOffsets\");\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n  if (includeScale === void 0) {\n    includeScale = false;\n  }\n  if (isFixedStrategy === void 0) {\n    isFixedStrategy = false;\n  }\n  const clientRect = element.getBoundingClientRect();\n  const domElement = unwrapElement(element);\n  let scale = createCoords(1);\n  if (includeScale) {\n    if (offsetParent) {\n      if (isElement(offsetParent)) {\n        scale = getScale(offsetParent);\n      }\n    } else {\n      scale = getScale(element);\n    }\n  }\n  const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n  let x = (clientRect.left + visualOffsets.x) / scale.x;\n  let y = (clientRect.top + visualOffsets.y) / scale.y;\n  let width = clientRect.width / scale.x;\n  let height = clientRect.height / scale.y;\n  if (domElement) {\n    const win = getWindow(domElement);\n    const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n    let currentWin = win;\n    let currentIFrame = getFrameElement(currentWin);\n    while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n      const iframeScale = getScale(currentIFrame);\n      const iframeRect = currentIFrame.getBoundingClientRect();\n      const css = getComputedStyle2(currentIFrame);\n      const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n      const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n      x *= iframeScale.x;\n      y *= iframeScale.y;\n      width *= iframeScale.x;\n      height *= iframeScale.y;\n      x += left;\n      y += top;\n      currentWin = getWindow(currentIFrame);\n      currentIFrame = getFrameElement(currentWin);\n    }\n  }\n  return rectToClientRect({\n    width,\n    height,\n    x,\n    y\n  });\n}\n__name(getBoundingClientRect, \"getBoundingClientRect\");\nfunction getWindowScrollBarX(element, rect) {\n  const leftScroll = getNodeScroll(element).scrollLeft;\n  if (!rect) {\n    return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n  }\n  return rect.left + leftScroll;\n}\n__name(getWindowScrollBarX, \"getWindowScrollBarX\");\nfunction getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {\n  if (ignoreScrollbarX === void 0) {\n    ignoreScrollbarX = false;\n  }\n  const htmlRect = documentElement.getBoundingClientRect();\n  const x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 : (\n    // RTL <body> scrollbar.\n    getWindowScrollBarX(documentElement, htmlRect)\n  ));\n  const y = htmlRect.top + scroll.scrollTop;\n  return {\n    x,\n    y\n  };\n}\n__name(getHTMLOffset, \"getHTMLOffset\");\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n  let {\n    elements,\n    rect,\n    offsetParent,\n    strategy\n  } = _ref;\n  const isFixed = strategy === \"fixed\";\n  const documentElement = getDocumentElement(offsetParent);\n  const topLayer = elements ? isTopLayer(elements.floating) : false;\n  if (offsetParent === documentElement || topLayer && isFixed) {\n    return rect;\n  }\n  let scroll = {\n    scrollLeft: 0,\n    scrollTop: 0\n  };\n  let scale = createCoords(1);\n  const offsets = createCoords(0);\n  const isOffsetParentAnElement = isHTMLElement(offsetParent);\n  if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n    if (getNodeName(offsetParent) !== \"body\" || isOverflowElement(documentElement)) {\n      scroll = getNodeScroll(offsetParent);\n    }\n    if (isHTMLElement(offsetParent)) {\n      const offsetRect = getBoundingClientRect(offsetParent);\n      scale = getScale(offsetParent);\n      offsets.x = offsetRect.x + offsetParent.clientLeft;\n      offsets.y = offsetRect.y + offsetParent.clientTop;\n    }\n  }\n  const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll, true) : createCoords(0);\n  return {\n    width: rect.width * scale.x,\n    height: rect.height * scale.y,\n    x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n    y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n  };\n}\n__name(convertOffsetParentRelativeRectToViewportRelativeRect, \"convertOffsetParentRelativeRectToViewportRelativeRect\");\nfunction getClientRects(element) {\n  return Array.from(element.getClientRects());\n}\n__name(getClientRects, \"getClientRects\");\nfunction getDocumentRect(element) {\n  const html = getDocumentElement(element);\n  const scroll = getNodeScroll(element);\n  const body = element.ownerDocument.body;\n  const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n  const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n  let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n  const y = -scroll.scrollTop;\n  if (getComputedStyle2(body).direction === \"rtl\") {\n    x += max(html.clientWidth, body.clientWidth) - width;\n  }\n  return {\n    width,\n    height,\n    x,\n    y\n  };\n}\n__name(getDocumentRect, \"getDocumentRect\");\nfunction getViewportRect(element, strategy) {\n  const win = getWindow(element);\n  const html = getDocumentElement(element);\n  const visualViewport = win.visualViewport;\n  let width = html.clientWidth;\n  let height = html.clientHeight;\n  let x = 0;\n  let y = 0;\n  if (visualViewport) {\n    width = visualViewport.width;\n    height = visualViewport.height;\n    const visualViewportBased = isWebKit();\n    if (!visualViewportBased || visualViewportBased && strategy === \"fixed\") {\n      x = visualViewport.offsetLeft;\n      y = visualViewport.offsetTop;\n    }\n  }\n  return {\n    width,\n    height,\n    x,\n    y\n  };\n}\n__name(getViewportRect, \"getViewportRect\");\nfunction getInnerBoundingClientRect(element, strategy) {\n  const clientRect = getBoundingClientRect(element, true, strategy === \"fixed\");\n  const top = clientRect.top + element.clientTop;\n  const left = clientRect.left + element.clientLeft;\n  const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n  const width = element.clientWidth * scale.x;\n  const height = element.clientHeight * scale.y;\n  const x = left * scale.x;\n  const y = top * scale.y;\n  return {\n    width,\n    height,\n    x,\n    y\n  };\n}\n__name(getInnerBoundingClientRect, \"getInnerBoundingClientRect\");\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n  let rect;\n  if (clippingAncestor === \"viewport\") {\n    rect = getViewportRect(element, strategy);\n  } else if (clippingAncestor === \"document\") {\n    rect = getDocumentRect(getDocumentElement(element));\n  } else if (isElement(clippingAncestor)) {\n    rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n  } else {\n    const visualOffsets = getVisualOffsets(element);\n    rect = {\n      x: clippingAncestor.x - visualOffsets.x,\n      y: clippingAncestor.y - visualOffsets.y,\n      width: clippingAncestor.width,\n      height: clippingAncestor.height\n    };\n  }\n  return rectToClientRect(rect);\n}\n__name(getClientRectFromClippingAncestor, \"getClientRectFromClippingAncestor\");\nfunction hasFixedPositionAncestor(element, stopNode) {\n  const parentNode = getParentNode(element);\n  if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n    return false;\n  }\n  return getComputedStyle2(parentNode).position === \"fixed\" || hasFixedPositionAncestor(parentNode, stopNode);\n}\n__name(hasFixedPositionAncestor, \"hasFixedPositionAncestor\");\nfunction getClippingElementAncestors(element, cache3) {\n  const cachedResult = cache3.get(element);\n  if (cachedResult) {\n    return cachedResult;\n  }\n  let result = getOverflowAncestors(element, [], false).filter((el) => isElement(el) && getNodeName(el) !== \"body\");\n  let currentContainingBlockComputedStyle = null;\n  const elementIsFixed = getComputedStyle2(element).position === \"fixed\";\n  let currentNode = elementIsFixed ? getParentNode(element) : element;\n  while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n    const computedStyle = getComputedStyle2(currentNode);\n    const currentNodeIsContaining = isContainingBlock(currentNode);\n    if (!currentNodeIsContaining && computedStyle.position === \"fixed\") {\n      currentContainingBlockComputedStyle = null;\n    }\n    const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === \"static\" && !!currentContainingBlockComputedStyle && [\"absolute\", \"fixed\"].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n    if (shouldDropCurrentNode) {\n      result = result.filter((ancestor) => ancestor !== currentNode);\n    } else {\n      currentContainingBlockComputedStyle = computedStyle;\n    }\n    currentNode = getParentNode(currentNode);\n  }\n  cache3.set(element, result);\n  return result;\n}\n__name(getClippingElementAncestors, \"getClippingElementAncestors\");\nfunction getClippingRect(_ref) {\n  let {\n    element,\n    boundary,\n    rootBoundary,\n    strategy\n  } = _ref;\n  const elementClippingAncestors = boundary === \"clippingAncestors\" ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n  const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n  const firstClippingAncestor = clippingAncestors[0];\n  const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n    const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n    accRect.top = max(rect.top, accRect.top);\n    accRect.right = min(rect.right, accRect.right);\n    accRect.bottom = min(rect.bottom, accRect.bottom);\n    accRect.left = max(rect.left, accRect.left);\n    return accRect;\n  }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n  return {\n    width: clippingRect.right - clippingRect.left,\n    height: clippingRect.bottom - clippingRect.top,\n    x: clippingRect.left,\n    y: clippingRect.top\n  };\n}\n__name(getClippingRect, \"getClippingRect\");\nfunction getDimensions(element) {\n  const {\n    width,\n    height\n  } = getCssDimensions(element);\n  return {\n    width,\n    height\n  };\n}\n__name(getDimensions, \"getDimensions\");\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n  const isOffsetParentAnElement = isHTMLElement(offsetParent);\n  const documentElement = getDocumentElement(offsetParent);\n  const isFixed = strategy === \"fixed\";\n  const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n  let scroll = {\n    scrollLeft: 0,\n    scrollTop: 0\n  };\n  const offsets = createCoords(0);\n  if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n    if (getNodeName(offsetParent) !== \"body\" || isOverflowElement(documentElement)) {\n      scroll = getNodeScroll(offsetParent);\n    }\n    if (isOffsetParentAnElement) {\n      const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n      offsets.x = offsetRect.x + offsetParent.clientLeft;\n      offsets.y = offsetRect.y + offsetParent.clientTop;\n    } else if (documentElement) {\n      offsets.x = getWindowScrollBarX(documentElement);\n    }\n  }\n  const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n  const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n  const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n  return {\n    x,\n    y,\n    width: rect.width,\n    height: rect.height\n  };\n}\n__name(getRectRelativeToOffsetParent, \"getRectRelativeToOffsetParent\");\nfunction isStaticPositioned(element) {\n  return getComputedStyle2(element).position === \"static\";\n}\n__name(isStaticPositioned, \"isStaticPositioned\");\nfunction getTrueOffsetParent(element, polyfill) {\n  if (!isHTMLElement(element) || getComputedStyle2(element).position === \"fixed\") {\n    return null;\n  }\n  if (polyfill) {\n    return polyfill(element);\n  }\n  let rawOffsetParent = element.offsetParent;\n  if (getDocumentElement(element) === rawOffsetParent) {\n    rawOffsetParent = rawOffsetParent.ownerDocument.body;\n  }\n  return rawOffsetParent;\n}\n__name(getTrueOffsetParent, \"getTrueOffsetParent\");\nfunction getOffsetParent(element, polyfill) {\n  const win = getWindow(element);\n  if (isTopLayer(element)) {\n    return win;\n  }\n  if (!isHTMLElement(element)) {\n    let svgOffsetParent = getParentNode(element);\n    while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n      if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n        return svgOffsetParent;\n      }\n      svgOffsetParent = getParentNode(svgOffsetParent);\n    }\n    return win;\n  }\n  let offsetParent = getTrueOffsetParent(element, polyfill);\n  while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n    offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n  }\n  if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n    return win;\n  }\n  return offsetParent || getContainingBlock(element) || win;\n}\n__name(getOffsetParent, \"getOffsetParent\");\nvar getElementRects = /* @__PURE__ */ __name(async function(data) {\n  const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n  const getDimensionsFn = this.getDimensions;\n  const floatingDimensions = await getDimensionsFn(data.floating);\n  return {\n    reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n    floating: {\n      x: 0,\n      y: 0,\n      width: floatingDimensions.width,\n      height: floatingDimensions.height\n    }\n  };\n}, \"getElementRects\");\nfunction isRTL(element) {\n  return getComputedStyle2(element).direction === \"rtl\";\n}\n__name(isRTL, \"isRTL\");\nvar platform = {\n  convertOffsetParentRelativeRectToViewportRelativeRect,\n  getDocumentElement,\n  getClippingRect,\n  getOffsetParent,\n  getElementRects,\n  getClientRects,\n  getDimensions,\n  getScale,\n  isElement,\n  isRTL\n};\nfunction rectsAreEqual(a, b) {\n  return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n__name(rectsAreEqual, \"rectsAreEqual\");\nfunction observeMove(element, onMove) {\n  let io = null;\n  let timeoutId;\n  const root = getDocumentElement(element);\n  function cleanup2() {\n    var _io;\n    clearTimeout(timeoutId);\n    (_io = io) == null || _io.disconnect();\n    io = null;\n  }\n  __name(cleanup2, \"cleanup\");\n  function refresh(skip, threshold) {\n    if (skip === void 0) {\n      skip = false;\n    }\n    if (threshold === void 0) {\n      threshold = 1;\n    }\n    cleanup2();\n    const elementRectForRootMargin = element.getBoundingClientRect();\n    const {\n      left,\n      top,\n      width,\n      height\n    } = elementRectForRootMargin;\n    if (!skip) {\n      onMove();\n    }\n    if (!width || !height) {\n      return;\n    }\n    const insetTop = floor(top);\n    const insetRight = floor(root.clientWidth - (left + width));\n    const insetBottom = floor(root.clientHeight - (top + height));\n    const insetLeft = floor(left);\n    const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n    const options = {\n      rootMargin,\n      threshold: max(0, min(1, threshold)) || 1\n    };\n    let isFirstUpdate = true;\n    function handleObserve(entries) {\n      const ratio = entries[0].intersectionRatio;\n      if (ratio !== threshold) {\n        if (!isFirstUpdate) {\n          return refresh();\n        }\n        if (!ratio) {\n          timeoutId = setTimeout(() => {\n            refresh(false, 1e-7);\n          }, 1e3);\n        } else {\n          refresh(false, ratio);\n        }\n      }\n      if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n        refresh();\n      }\n      isFirstUpdate = false;\n    }\n    __name(handleObserve, \"handleObserve\");\n    try {\n      io = new IntersectionObserver(handleObserve, {\n        ...options,\n        // Handle <iframe>s\n        root: root.ownerDocument\n      });\n    } catch (e) {\n      io = new IntersectionObserver(handleObserve, options);\n    }\n    io.observe(element);\n  }\n  __name(refresh, \"refresh\");\n  refresh(true);\n  return cleanup2;\n}\n__name(observeMove, \"observeMove\");\nfunction autoUpdate(reference, floating, update, options) {\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    ancestorScroll = true,\n    ancestorResize = true,\n    elementResize = typeof ResizeObserver === \"function\",\n    layoutShift = typeof IntersectionObserver === \"function\",\n    animationFrame = false\n  } = options;\n  const referenceEl = unwrapElement(reference);\n  const ancestors = ancestorScroll || ancestorResize ? [...referenceEl ? getOverflowAncestors(referenceEl) : [], ...getOverflowAncestors(floating)] : [];\n  ancestors.forEach((ancestor) => {\n    ancestorScroll && ancestor.addEventListener(\"scroll\", update, {\n      passive: true\n    });\n    ancestorResize && ancestor.addEventListener(\"resize\", update);\n  });\n  const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n  let reobserveFrame = -1;\n  let resizeObserver = null;\n  if (elementResize) {\n    resizeObserver = new ResizeObserver((_ref) => {\n      let [firstEntry] = _ref;\n      if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n        resizeObserver.unobserve(floating);\n        cancelAnimationFrame(reobserveFrame);\n        reobserveFrame = requestAnimationFrame(() => {\n          var _resizeObserver;\n          (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n        });\n      }\n      update();\n    });\n    if (referenceEl && !animationFrame) {\n      resizeObserver.observe(referenceEl);\n    }\n    resizeObserver.observe(floating);\n  }\n  let frameId;\n  let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n  if (animationFrame) {\n    frameLoop();\n  }\n  function frameLoop() {\n    const nextRefRect = getBoundingClientRect(reference);\n    if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n      update();\n    }\n    prevRefRect = nextRefRect;\n    frameId = requestAnimationFrame(frameLoop);\n  }\n  __name(frameLoop, \"frameLoop\");\n  update();\n  return () => {\n    var _resizeObserver2;\n    ancestors.forEach((ancestor) => {\n      ancestorScroll && ancestor.removeEventListener(\"scroll\", update);\n      ancestorResize && ancestor.removeEventListener(\"resize\", update);\n    });\n    cleanupIo == null || cleanupIo();\n    (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n    resizeObserver = null;\n    if (animationFrame) {\n      cancelAnimationFrame(frameId);\n    }\n  };\n}\n__name(autoUpdate, \"autoUpdate\");\nvar detectOverflow2 = detectOverflow;\nvar offset2 = offset;\nvar shift2 = shift;\nvar flip2 = flip;\nvar size2 = size;\nvar arrow2 = arrow;\nvar computePosition2 = /* @__PURE__ */ __name((reference, floating, options) => {\n  const cache3 = /* @__PURE__ */ new Map();\n  const mergedOptions = {\n    platform,\n    ...options\n  };\n  const platformWithCache = {\n    ...mergedOptions.platform,\n    _c: cache3\n  };\n  return computePosition(reference, floating, {\n    ...mergedOptions,\n    platform: platformWithCache\n  });\n}, \"computePosition\");\n\n// node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs\nvar React42 = __toESM(require(\"react\"), 1);\nvar import_react33 = require(\"react\");\nvar ReactDOM2 = __toESM(require(\"react-dom\"), 1);\nvar index = typeof document !== \"undefined\" ? import_react33.useLayoutEffect : import_react33.useEffect;\nfunction deepEqual(a, b) {\n  if (a === b) {\n    return true;\n  }\n  if (typeof a !== typeof b) {\n    return false;\n  }\n  if (typeof a === \"function\" && a.toString() === b.toString()) {\n    return true;\n  }\n  let length;\n  let i;\n  let keys;\n  if (a && b && typeof a === \"object\") {\n    if (Array.isArray(a)) {\n      length = a.length;\n      if (length !== b.length) return false;\n      for (i = length; i-- !== 0; ) {\n        if (!deepEqual(a[i], b[i])) {\n          return false;\n        }\n      }\n      return true;\n    }\n    keys = Object.keys(a);\n    length = keys.length;\n    if (length !== Object.keys(b).length) {\n      return false;\n    }\n    for (i = length; i-- !== 0; ) {\n      if (!{}.hasOwnProperty.call(b, keys[i])) {\n        return false;\n      }\n    }\n    for (i = length; i-- !== 0; ) {\n      const key = keys[i];\n      if (key === \"_owner\" && a.$$typeof) {\n        continue;\n      }\n      if (!deepEqual(a[key], b[key])) {\n        return false;\n      }\n    }\n    return true;\n  }\n  return a !== a && b !== b;\n}\n__name(deepEqual, \"deepEqual\");\nfunction getDPR(element) {\n  if (typeof window === \"undefined\") {\n    return 1;\n  }\n  const win = element.ownerDocument.defaultView || window;\n  return win.devicePixelRatio || 1;\n}\n__name(getDPR, \"getDPR\");\nfunction roundByDPR(element, value) {\n  const dpr = getDPR(element);\n  return Math.round(value * dpr) / dpr;\n}\n__name(roundByDPR, \"roundByDPR\");\nfunction useLatestRef(value) {\n  const ref = React42.useRef(value);\n  index(() => {\n    ref.current = value;\n  });\n  return ref;\n}\n__name(useLatestRef, \"useLatestRef\");\nfunction useFloating(options) {\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    placement = \"bottom\",\n    strategy = \"absolute\",\n    middleware = [],\n    platform: platform2,\n    elements: {\n      reference: externalReference,\n      floating: externalFloating\n    } = {},\n    transform = true,\n    whileElementsMounted,\n    open\n  } = options;\n  const [data, setData] = React42.useState({\n    x: 0,\n    y: 0,\n    strategy,\n    placement,\n    middlewareData: {},\n    isPositioned: false\n  });\n  const [latestMiddleware, setLatestMiddleware] = React42.useState(middleware);\n  if (!deepEqual(latestMiddleware, middleware)) {\n    setLatestMiddleware(middleware);\n  }\n  const [_reference, _setReference] = React42.useState(null);\n  const [_floating, _setFloating] = React42.useState(null);\n  const setReference = React42.useCallback((node) => {\n    if (node !== referenceRef.current) {\n      referenceRef.current = node;\n      _setReference(node);\n    }\n  }, []);\n  const setFloating = React42.useCallback((node) => {\n    if (node !== floatingRef.current) {\n      floatingRef.current = node;\n      _setFloating(node);\n    }\n  }, []);\n  const referenceEl = externalReference || _reference;\n  const floatingEl = externalFloating || _floating;\n  const referenceRef = React42.useRef(null);\n  const floatingRef = React42.useRef(null);\n  const dataRef = React42.useRef(data);\n  const hasWhileElementsMounted = whileElementsMounted != null;\n  const whileElementsMountedRef = useLatestRef(whileElementsMounted);\n  const platformRef = useLatestRef(platform2);\n  const openRef = useLatestRef(open);\n  const update = React42.useCallback(() => {\n    if (!referenceRef.current || !floatingRef.current) {\n      return;\n    }\n    const config = {\n      placement,\n      strategy,\n      middleware: latestMiddleware\n    };\n    if (platformRef.current) {\n      config.platform = platformRef.current;\n    }\n    computePosition2(referenceRef.current, floatingRef.current, config).then((data2) => {\n      const fullData = {\n        ...data2,\n        // The floating element's position may be recomputed while it's closed\n        // but still mounted (such as when transitioning out). To ensure\n        // `isPositioned` will be `false` initially on the next open, avoid\n        // setting it to `true` when `open === false` (must be specified).\n        isPositioned: openRef.current !== false\n      };\n      if (isMountedRef.current && !deepEqual(dataRef.current, fullData)) {\n        dataRef.current = fullData;\n        ReactDOM2.flushSync(() => {\n          setData(fullData);\n        });\n      }\n    });\n  }, [latestMiddleware, placement, strategy, platformRef, openRef]);\n  index(() => {\n    if (open === false && dataRef.current.isPositioned) {\n      dataRef.current.isPositioned = false;\n      setData((data2) => ({\n        ...data2,\n        isPositioned: false\n      }));\n    }\n  }, [open]);\n  const isMountedRef = React42.useRef(false);\n  index(() => {\n    isMountedRef.current = true;\n    return () => {\n      isMountedRef.current = false;\n    };\n  }, []);\n  index(() => {\n    if (referenceEl) referenceRef.current = referenceEl;\n    if (floatingEl) floatingRef.current = floatingEl;\n    if (referenceEl && floatingEl) {\n      if (whileElementsMountedRef.current) {\n        return whileElementsMountedRef.current(referenceEl, floatingEl, update);\n      }\n      update();\n    }\n  }, [referenceEl, floatingEl, update, whileElementsMountedRef, hasWhileElementsMounted]);\n  const refs = React42.useMemo(() => ({\n    reference: referenceRef,\n    floating: floatingRef,\n    setReference,\n    setFloating\n  }), [setReference, setFloating]);\n  const elements = React42.useMemo(() => ({\n    reference: referenceEl,\n    floating: floatingEl\n  }), [referenceEl, floatingEl]);\n  const floatingStyles = React42.useMemo(() => {\n    const initialStyles = {\n      position: strategy,\n      left: 0,\n      top: 0\n    };\n    if (!elements.floating) {\n      return initialStyles;\n    }\n    const x = roundByDPR(elements.floating, data.x);\n    const y = roundByDPR(elements.floating, data.y);\n    if (transform) {\n      return {\n        ...initialStyles,\n        transform: \"translate(\" + x + \"px, \" + y + \"px)\",\n        ...getDPR(elements.floating) >= 1.5 && {\n          willChange: \"transform\"\n        }\n      };\n    }\n    return {\n      position: strategy,\n      left: x,\n      top: y\n    };\n  }, [strategy, transform, elements.floating, data.x, data.y]);\n  return React42.useMemo(() => ({\n    ...data,\n    update,\n    refs,\n    elements,\n    floatingStyles\n  }), [data, update, refs, elements, floatingStyles]);\n}\n__name(useFloating, \"useFloating\");\nvar arrow$1 = /* @__PURE__ */ __name((options) => {\n  function isRef(value) {\n    return {}.hasOwnProperty.call(value, \"current\");\n  }\n  __name(isRef, \"isRef\");\n  return {\n    name: \"arrow\",\n    options,\n    fn(state) {\n      const {\n        element,\n        padding\n      } = typeof options === \"function\" ? options(state) : options;\n      if (element && isRef(element)) {\n        if (element.current != null) {\n          return arrow2({\n            element: element.current,\n            padding\n          }).fn(state);\n        }\n        return {};\n      }\n      if (element) {\n        return arrow2({\n          element,\n          padding\n        }).fn(state);\n      }\n      return {};\n    }\n  };\n}, \"arrow$1\");\nvar offset3 = /* @__PURE__ */ __name((options, deps) => ({\n  ...offset2(options),\n  options: [options, deps]\n}), \"offset\");\nvar shift3 = /* @__PURE__ */ __name((options, deps) => ({\n  ...shift2(options),\n  options: [options, deps]\n}), \"shift\");\nvar flip3 = /* @__PURE__ */ __name((options, deps) => ({\n  ...flip2(options),\n  options: [options, deps]\n}), \"flip\");\nvar size3 = /* @__PURE__ */ __name((options, deps) => ({\n  ...size2(options),\n  options: [options, deps]\n}), \"size\");\nvar arrow3 = /* @__PURE__ */ __name((options, deps) => ({\n  ...arrow$1(options),\n  options: [options, deps]\n}), \"arrow\");\n\n// node_modules/@tamagui/floating/dist/esm/useFloating.mjs\nvar import_react34 = __toESM(require(\"react\"), 1);\nvar FloatingOverrideContext = import_react34.default.createContext(null);\nvar useFloating2 = /* @__PURE__ */ __name((props) => (import_react34.default.useContext(FloatingOverrideContext) || useFloating)?.(props), \"useFloating\");\n\n// node_modules/@tamagui/popper/dist/esm/Popper.mjs\nvar import_core24 = require(\"@tamagui/core\");\nvar React44 = __toESM(require(\"react\"), 1);\nvar import_jsx_runtime32 = require(\"react/jsx-runtime\");\nvar PopperContext = (0, import_core24.createStyledContext)({});\nvar {\n  useStyledContext: usePopperContext,\n  Provider: PopperProvider\n} = PopperContext;\nvar checkFloating = void 0;\nvar setupOptions = {};\nfunction setupPopper(options) {\n  Object.assign(setupOptions, options);\n}\n__name(setupPopper, \"setupPopper\");\nfunction Popper(props) {\n  const {\n    children,\n    size: size4,\n    strategy = \"absolute\",\n    placement = \"bottom\",\n    stayInFrame,\n    allowFlip,\n    offset: offset4,\n    disableRTL,\n    resize,\n    __scopePopper\n  } = props, [arrowEl, setArrow] = React44.useState(null), [arrowSize, setArrowSize] = React44.useState(0), offsetOptions = offset4 ?? arrowSize, floatingStyle = React44.useRef({});\n  let floating = useFloating2({\n    strategy,\n    placement,\n    sameScrollView: false,\n    // this only takes effect on native\n    whileElementsMounted: autoUpdate,\n    platform: disableRTL ?? setupOptions.disableRTL ? {\n      ...platform,\n      isRTL(element) {\n        return false;\n      }\n    } : platform,\n    middleware: [stayInFrame ? shift3(typeof stayInFrame == \"boolean\" ? {} : stayInFrame) : null, allowFlip ? flip3(typeof allowFlip == \"boolean\" ? {} : allowFlip) : null, arrowEl ? arrow3({\n      element: arrowEl\n    }) : null, typeof offsetOptions < \"u\" ? offset3(offsetOptions) : null, checkFloating, resize ? size3({\n      apply({\n        availableHeight,\n        availableWidth\n      }) {\n        Object.assign(floatingStyle.current, {\n          maxHeight: `${availableHeight}px`,\n          maxWidth: `${availableWidth}px`\n        });\n        const floatingChild = floating.refs.floating.current?.firstChild;\n        floatingChild && floatingChild instanceof HTMLElement && Object.assign(floatingChild.style, floatingStyle.current);\n      },\n      ...typeof resize == \"object\" && resize\n    }) : null].filter(Boolean)\n  });\n  floating = React44.useMemo(() => {\n    const og = floating.getFloatingProps;\n    return resize && og && (floating.getFloatingProps = (props2) => og({\n      ...props2,\n      style: {\n        ...props2.style,\n        ...floatingStyle.current\n      }\n    })), floating;\n  }, [floating, resize ? JSON.stringify(resize) : null]);\n  const {\n    middlewareData\n  } = floating, popperContext = {\n    size: size4,\n    arrowRef: setArrow,\n    arrowStyle: middlewareData.arrow,\n    onArrowSize: setArrowSize,\n    scope: __scopePopper,\n    hasFloating: middlewareData.checkFloating?.hasFloating,\n    ...floating\n  };\n  return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(PopperProvider, {\n    ...popperContext,\n    children\n  });\n}\n__name(Popper, \"Popper\");\nvar PopperAnchor = YStack.extractable(React44.forwardRef(function(props, forwardedRef) {\n  const {\n    virtualRef,\n    __scopePopper,\n    ...anchorProps\n  } = props, {\n    getReferenceProps,\n    refs\n  } = usePopperContext(__scopePopper), ref = React44.useRef(null), composedRefs = useComposedRefs(forwardedRef, ref, refs.setReference);\n  React44.useEffect(() => {\n    virtualRef && refs.setReference(virtualRef.current);\n  }, [virtualRef]);\n  const stackProps = {\n    ref: composedRefs,\n    ...anchorProps\n  };\n  return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core24.View, {\n    ...getReferenceProps ? getReferenceProps(stackProps) : stackProps\n  });\n}));\nvar PopperContentFrame = (0, import_core24.styled)(ThemeableStack, {\n  name: \"PopperContent\",\n  variants: {\n    unstyled: {\n      false: {\n        size: \"$true\",\n        backgroundColor: \"$background\",\n        alignItems: \"center\",\n        radiused: true\n      }\n    },\n    size: {\n      \"...size\": /* @__PURE__ */ __name((val, {\n        tokens\n      }) => ({\n        padding: tokens.space[val],\n        borderRadius: tokens.radius[val]\n      }), \"...size\")\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar PopperContent = React44.forwardRef(function(props, forwardedRef) {\n  const {\n    __scopePopper,\n    enableAnimationForPositionChange,\n    ...rest\n  } = props, {\n    strategy,\n    placement,\n    refs,\n    x,\n    y,\n    getFloatingProps,\n    size: size4\n  } = usePopperContext(__scopePopper), contentRefs = useComposedRefs(refs.setFloating, forwardedRef), [needsMeasure, setNeedsMeasure] = React44.useState(enableAnimationForPositionChange);\n  useIsomorphicLayoutEffect(() => {\n    x && y && setNeedsMeasure(false);\n  }, [enableAnimationForPositionChange, x, y]);\n  const frameProps = {\n    ref: contentRefs,\n    x: x || 0,\n    y: y || 0,\n    top: 0,\n    left: 0,\n    position: strategy,\n    opacity: true ? 1 : 0,\n    ...enableAnimationForPositionChange && {\n      // apply animation but disable it on initial render to avoid animating from 0 to the first position\n      animation: rest.animation,\n      animateOnly: needsMeasure ? [] : rest.animateOnly,\n      animatePresence: false\n    },\n    ...x === 0 && y === 0 && {\n      opacity: 0,\n      animateOnly: []\n    }\n  }, {\n    style,\n    ...floatingProps\n  } = getFloatingProps ? getFloatingProps(frameProps) : frameProps;\n  return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core24.Stack, {\n    ...floatingProps,\n    children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(PopperContentFrame, {\n      \"data-placement\": placement,\n      \"data-strategy\": strategy,\n      contain: \"layout\",\n      size: size4,\n      ...style,\n      ...rest\n    }, \"popper-content-frame\")\n  });\n});\nvar PopperArrowFrame = (0, import_core24.styled)(YStack, {\n  name: \"PopperArrow\",\n  variants: {\n    unstyled: {\n      false: {\n        borderColor: \"$borderColor\",\n        backgroundColor: \"$background\",\n        position: \"relative\"\n      }\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar PopperArrowOuterFrame = (0, import_core24.styled)(YStack, {\n  name: \"PopperArrowOuter\",\n  variants: {\n    unstyled: {\n      false: {\n        position: \"absolute\",\n        zIndex: 1e6,\n        pointerEvents: \"none\",\n        overflow: \"hidden\",\n        alignItems: \"center\",\n        justifyContent: \"center\"\n      }\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar opposites = {\n  top: \"bottom\",\n  right: \"left\",\n  bottom: \"top\",\n  left: \"right\"\n};\nvar PopperArrow = PopperArrowFrame.styleable(function(propsIn, forwardedRef) {\n  const {\n    __scopePopper,\n    ...rest\n  } = propsIn, props = (0, import_core24.useProps)(rest), {\n    offset: offset4,\n    size: sizeProp,\n    borderWidth = 0,\n    ...arrowProps\n  } = props, context2 = usePopperContext(__scopePopper), sizeVal = typeof sizeProp == \"number\" ? sizeProp : (0, import_core24.getVariableValue)(getSpace(sizeProp ?? context2.size, {\n    shift: -2,\n    bounds: [2]\n  })), size4 = Math.max(0, +sizeVal), {\n    placement\n  } = context2, refs = useComposedRefs(context2.arrowRef, forwardedRef), x = context2.arrowStyle?.x || 0, y = context2.arrowStyle?.y || 0, primaryPlacement = placement ? placement.split(\"-\")[0] : \"top\", arrowStyle = {\n    x,\n    y,\n    width: size4,\n    height: size4\n  }, innerArrowStyle = {}, isVertical = primaryPlacement === \"bottom\" || primaryPlacement === \"top\";\n  if (primaryPlacement) {\n    arrowStyle[isVertical ? \"width\" : \"height\"] = size4 * 2;\n    const oppSide = opposites[primaryPlacement];\n    oppSide && (arrowStyle[oppSide] = -size4, innerArrowStyle[oppSide] = size4 / 2), (oppSide === \"top\" || oppSide === \"bottom\") && (arrowStyle.left = 0), (oppSide === \"left\" || oppSide === \"right\") && (arrowStyle.top = 0), useIsomorphicLayoutEffect(() => {\n      context2.onArrowSize?.(size4);\n    }, [size4, context2.onArrowSize]);\n  }\n  return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(PopperArrowOuterFrame, {\n    ref: refs,\n    ...arrowStyle,\n    children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(PopperArrowFrame, {\n      width: size4,\n      height: size4,\n      ...arrowProps,\n      ...innerArrowStyle,\n      rotate: \"45deg\",\n      ...primaryPlacement === \"bottom\" && {\n        borderLeftWidth: borderWidth,\n        borderTopWidth: borderWidth\n      },\n      ...primaryPlacement === \"top\" && {\n        borderBottomWidth: borderWidth,\n        borderRightWidth: borderWidth\n      },\n      ...primaryPlacement === \"right\" && {\n        borderLeftWidth: borderWidth,\n        borderBottomWidth: borderWidth\n      },\n      ...primaryPlacement === \"left\" && {\n        borderTopWidth: borderWidth,\n        borderRightWidth: borderWidth\n      }\n    })\n  });\n});\n\n// node_modules/@tamagui/popover/dist/esm/Popover.mjs\nvar React47 = __toESM(require(\"react\"), 1);\nvar import_react_native_web7 = __toESM(require_cjs21(), 1);\n\n// node_modules/@tamagui/popover/dist/esm/useFloatingContext.mjs\nvar import_react36 = __toESM(require(\"react\"), 1);\n\n// node_modules/@floating-ui/react/dist/floating-ui.react.mjs\nvar React45 = __toESM(require(\"react\"), 1);\nvar import_react35 = require(\"react\");\n\n// node_modules/@floating-ui/react/dist/floating-ui.react.utils.mjs\nfunction activeElement(doc) {\n  let activeElement2 = doc.activeElement;\n  while (((_activeElement = activeElement2) == null || (_activeElement = _activeElement.shadowRoot) == null ? void 0 : _activeElement.activeElement) != null) {\n    var _activeElement;\n    activeElement2 = activeElement2.shadowRoot.activeElement;\n  }\n  return activeElement2;\n}\n__name(activeElement, \"activeElement\");\nfunction contains(parent, child) {\n  if (!parent || !child) {\n    return false;\n  }\n  const rootNode = child.getRootNode == null ? void 0 : child.getRootNode();\n  if (parent.contains(child)) {\n    return true;\n  }\n  if (rootNode && isShadowRoot(rootNode)) {\n    let next = child;\n    while (next) {\n      if (parent === next) {\n        return true;\n      }\n      next = next.parentNode || next.host;\n    }\n  }\n  return false;\n}\n__name(contains, \"contains\");\nfunction getPlatform() {\n  const uaData = navigator.userAgentData;\n  if (uaData != null && uaData.platform) {\n    return uaData.platform;\n  }\n  return navigator.platform;\n}\n__name(getPlatform, \"getPlatform\");\nfunction getUserAgent() {\n  const uaData = navigator.userAgentData;\n  if (uaData && Array.isArray(uaData.brands)) {\n    return uaData.brands.map((_ref) => {\n      let {\n        brand,\n        version\n      } = _ref;\n      return brand + \"/\" + version;\n    }).join(\" \");\n  }\n  return navigator.userAgent;\n}\n__name(getUserAgent, \"getUserAgent\");\nfunction isVirtualClick(event) {\n  if (event.mozInputSource === 0 && event.isTrusted) {\n    return true;\n  }\n  if (isAndroid3() && event.pointerType) {\n    return event.type === \"click\" && event.buttons === 1;\n  }\n  return event.detail === 0 && !event.pointerType;\n}\n__name(isVirtualClick, \"isVirtualClick\");\nfunction isVirtualPointerEvent(event) {\n  if (isJSDOM()) return false;\n  return !isAndroid3() && event.width === 0 && event.height === 0 || isAndroid3() && event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === \"mouse\" || // iOS VoiceOver returns 0.333• for width/height.\n  event.width < 1 && event.height < 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === \"touch\";\n}\n__name(isVirtualPointerEvent, \"isVirtualPointerEvent\");\nfunction isSafari() {\n  return /apple/i.test(navigator.vendor);\n}\n__name(isSafari, \"isSafari\");\nfunction isAndroid3() {\n  const re = /android/i;\n  return re.test(getPlatform()) || re.test(getUserAgent());\n}\n__name(isAndroid3, \"isAndroid\");\nfunction isMac() {\n  return getPlatform().toLowerCase().startsWith(\"mac\") && !navigator.maxTouchPoints;\n}\n__name(isMac, \"isMac\");\nfunction isJSDOM() {\n  return getUserAgent().includes(\"jsdom/\");\n}\n__name(isJSDOM, \"isJSDOM\");\nfunction isMouseLikePointerType(pointerType, strict) {\n  const values = [\"mouse\", \"pen\"];\n  if (!strict) {\n    values.push(\"\", void 0);\n  }\n  return values.includes(pointerType);\n}\n__name(isMouseLikePointerType, \"isMouseLikePointerType\");\nfunction isReactEvent(event) {\n  return \"nativeEvent\" in event;\n}\n__name(isReactEvent, \"isReactEvent\");\nfunction isRootElement(element) {\n  return element.matches(\"html,body\");\n}\n__name(isRootElement, \"isRootElement\");\nfunction getDocument(node) {\n  return (node == null ? void 0 : node.ownerDocument) || document;\n}\n__name(getDocument, \"getDocument\");\nfunction isEventTargetWithin(event, node) {\n  if (node == null) {\n    return false;\n  }\n  if (\"composedPath\" in event) {\n    return event.composedPath().includes(node);\n  }\n  const e = event;\n  return e.target != null && node.contains(e.target);\n}\n__name(isEventTargetWithin, \"isEventTargetWithin\");\nfunction getTarget(event) {\n  if (\"composedPath\" in event) {\n    return event.composedPath()[0];\n  }\n  return event.target;\n}\n__name(getTarget, \"getTarget\");\nvar TYPEABLE_SELECTOR = \"input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])\";\nfunction isTypeableElement(element) {\n  return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);\n}\n__name(isTypeableElement, \"isTypeableElement\");\nfunction stopEvent(event) {\n  event.preventDefault();\n  event.stopPropagation();\n}\n__name(stopEvent, \"stopEvent\");\nfunction isTypeableCombobox(element) {\n  if (!element) return false;\n  return element.getAttribute(\"role\") === \"combobox\" && isTypeableElement(element);\n}\n__name(isTypeableCombobox, \"isTypeableCombobox\");\n\n// node_modules/@floating-ui/react/dist/floating-ui.react.mjs\nvar import_jsx_runtime33 = require(\"react/jsx-runtime\");\nvar import_tabbable = __toESM(require_dist(), 1);\nvar ReactDOM3 = __toESM(require(\"react-dom\"), 1);\nvar SafeReact = {\n  ...React45\n};\nvar useInsertionEffect = SafeReact.useInsertionEffect;\nvar useSafeInsertionEffect = useInsertionEffect || ((fn) => fn());\nfunction useEffectEvent(callback) {\n  const ref = React45.useRef(() => {\n    if (process.env.NODE_ENV !== \"production\") {\n      throw new Error(\"Cannot call an event handler while rendering.\");\n    }\n  });\n  useSafeInsertionEffect(() => {\n    ref.current = callback;\n  });\n  return React45.useCallback(function() {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    return ref.current == null ? void 0 : ref.current(...args);\n  }, []);\n}\n__name(useEffectEvent, \"useEffectEvent\");\nvar ARROW_UP = \"ArrowUp\";\nvar ARROW_DOWN = \"ArrowDown\";\nvar ARROW_LEFT = \"ArrowLeft\";\nvar ARROW_RIGHT = \"ArrowRight\";\nfunction isDifferentRow(index3, cols, prevRow) {\n  return Math.floor(index3 / cols) !== prevRow;\n}\n__name(isDifferentRow, \"isDifferentRow\");\nfunction isIndexOutOfBounds(listRef, index3) {\n  return index3 < 0 || index3 >= listRef.current.length;\n}\n__name(isIndexOutOfBounds, \"isIndexOutOfBounds\");\nfunction getMinIndex(listRef, disabledIndices) {\n  return findNonDisabledIndex(listRef, {\n    disabledIndices\n  });\n}\n__name(getMinIndex, \"getMinIndex\");\nfunction getMaxIndex(listRef, disabledIndices) {\n  return findNonDisabledIndex(listRef, {\n    decrement: true,\n    startingIndex: listRef.current.length,\n    disabledIndices\n  });\n}\n__name(getMaxIndex, \"getMaxIndex\");\nfunction findNonDisabledIndex(listRef, _temp) {\n  let {\n    startingIndex = -1,\n    decrement = false,\n    disabledIndices,\n    amount = 1\n  } = _temp === void 0 ? {} : _temp;\n  const list = listRef.current;\n  let index3 = startingIndex;\n  do {\n    index3 += decrement ? -amount : amount;\n  } while (index3 >= 0 && index3 <= list.length - 1 && isDisabled(list, index3, disabledIndices));\n  return index3;\n}\n__name(findNonDisabledIndex, \"findNonDisabledIndex\");\nfunction getGridNavigatedIndex(elementsRef, _ref) {\n  let {\n    event,\n    orientation,\n    loop,\n    rtl,\n    cols,\n    disabledIndices,\n    minIndex,\n    maxIndex,\n    prevIndex,\n    stopEvent: stop = false\n  } = _ref;\n  let nextIndex = prevIndex;\n  if (event.key === ARROW_UP) {\n    stop && stopEvent(event);\n    if (prevIndex === -1) {\n      nextIndex = maxIndex;\n    } else {\n      nextIndex = findNonDisabledIndex(elementsRef, {\n        startingIndex: nextIndex,\n        amount: cols,\n        decrement: true,\n        disabledIndices\n      });\n      if (loop && (prevIndex - cols < minIndex || nextIndex < 0)) {\n        const col = prevIndex % cols;\n        const maxCol = maxIndex % cols;\n        const offset4 = maxIndex - (maxCol - col);\n        if (maxCol === col) {\n          nextIndex = maxIndex;\n        } else {\n          nextIndex = maxCol > col ? offset4 : offset4 - cols;\n        }\n      }\n    }\n    if (isIndexOutOfBounds(elementsRef, nextIndex)) {\n      nextIndex = prevIndex;\n    }\n  }\n  if (event.key === ARROW_DOWN) {\n    stop && stopEvent(event);\n    if (prevIndex === -1) {\n      nextIndex = minIndex;\n    } else {\n      nextIndex = findNonDisabledIndex(elementsRef, {\n        startingIndex: prevIndex,\n        amount: cols,\n        disabledIndices\n      });\n      if (loop && prevIndex + cols > maxIndex) {\n        nextIndex = findNonDisabledIndex(elementsRef, {\n          startingIndex: prevIndex % cols - cols,\n          amount: cols,\n          disabledIndices\n        });\n      }\n    }\n    if (isIndexOutOfBounds(elementsRef, nextIndex)) {\n      nextIndex = prevIndex;\n    }\n  }\n  if (orientation === \"both\") {\n    const prevRow = floor(prevIndex / cols);\n    if (event.key === (rtl ? ARROW_LEFT : ARROW_RIGHT)) {\n      stop && stopEvent(event);\n      if (prevIndex % cols !== cols - 1) {\n        nextIndex = findNonDisabledIndex(elementsRef, {\n          startingIndex: prevIndex,\n          disabledIndices\n        });\n        if (loop && isDifferentRow(nextIndex, cols, prevRow)) {\n          nextIndex = findNonDisabledIndex(elementsRef, {\n            startingIndex: prevIndex - prevIndex % cols - 1,\n            disabledIndices\n          });\n        }\n      } else if (loop) {\n        nextIndex = findNonDisabledIndex(elementsRef, {\n          startingIndex: prevIndex - prevIndex % cols - 1,\n          disabledIndices\n        });\n      }\n      if (isDifferentRow(nextIndex, cols, prevRow)) {\n        nextIndex = prevIndex;\n      }\n    }\n    if (event.key === (rtl ? ARROW_RIGHT : ARROW_LEFT)) {\n      stop && stopEvent(event);\n      if (prevIndex % cols !== 0) {\n        nextIndex = findNonDisabledIndex(elementsRef, {\n          startingIndex: prevIndex,\n          decrement: true,\n          disabledIndices\n        });\n        if (loop && isDifferentRow(nextIndex, cols, prevRow)) {\n          nextIndex = findNonDisabledIndex(elementsRef, {\n            startingIndex: prevIndex + (cols - prevIndex % cols),\n            decrement: true,\n            disabledIndices\n          });\n        }\n      } else if (loop) {\n        nextIndex = findNonDisabledIndex(elementsRef, {\n          startingIndex: prevIndex + (cols - prevIndex % cols),\n          decrement: true,\n          disabledIndices\n        });\n      }\n      if (isDifferentRow(nextIndex, cols, prevRow)) {\n        nextIndex = prevIndex;\n      }\n    }\n    const lastRow = floor(maxIndex / cols) === prevRow;\n    if (isIndexOutOfBounds(elementsRef, nextIndex)) {\n      if (loop && lastRow) {\n        nextIndex = event.key === (rtl ? ARROW_RIGHT : ARROW_LEFT) ? maxIndex : findNonDisabledIndex(elementsRef, {\n          startingIndex: prevIndex - prevIndex % cols - 1,\n          disabledIndices\n        });\n      } else {\n        nextIndex = prevIndex;\n      }\n    }\n  }\n  return nextIndex;\n}\n__name(getGridNavigatedIndex, \"getGridNavigatedIndex\");\nfunction buildCellMap(sizes, cols, dense) {\n  const cellMap = [];\n  let startIndex = 0;\n  sizes.forEach((_ref2, index3) => {\n    let {\n      width,\n      height\n    } = _ref2;\n    if (width > cols) {\n      if (process.env.NODE_ENV !== \"production\") {\n        throw new Error(\"[Floating UI]: Invalid grid - item width at index \" + index3 + \" is greater than grid columns\");\n      }\n    }\n    let itemPlaced = false;\n    if (dense) {\n      startIndex = 0;\n    }\n    while (!itemPlaced) {\n      const targetCells = [];\n      for (let i = 0; i < width; i++) {\n        for (let j = 0; j < height; j++) {\n          targetCells.push(startIndex + i + j * cols);\n        }\n      }\n      if (startIndex % cols + width <= cols && targetCells.every((cell) => cellMap[cell] == null)) {\n        targetCells.forEach((cell) => {\n          cellMap[cell] = index3;\n        });\n        itemPlaced = true;\n      } else {\n        startIndex++;\n      }\n    }\n  });\n  return [...cellMap];\n}\n__name(buildCellMap, \"buildCellMap\");\nfunction getCellIndexOfCorner(index3, sizes, cellMap, cols, corner) {\n  if (index3 === -1) return -1;\n  const firstCellIndex = cellMap.indexOf(index3);\n  const sizeItem = sizes[index3];\n  switch (corner) {\n    case \"tl\":\n      return firstCellIndex;\n    case \"tr\":\n      if (!sizeItem) {\n        return firstCellIndex;\n      }\n      return firstCellIndex + sizeItem.width - 1;\n    case \"bl\":\n      if (!sizeItem) {\n        return firstCellIndex;\n      }\n      return firstCellIndex + (sizeItem.height - 1) * cols;\n    case \"br\":\n      return cellMap.lastIndexOf(index3);\n  }\n}\n__name(getCellIndexOfCorner, \"getCellIndexOfCorner\");\nfunction getCellIndices(indices, cellMap) {\n  return cellMap.flatMap((index3, cellIndex) => indices.includes(index3) ? [cellIndex] : []);\n}\n__name(getCellIndices, \"getCellIndices\");\nfunction isDisabled(list, index3, disabledIndices) {\n  if (disabledIndices) {\n    return disabledIndices.includes(index3);\n  }\n  const element = list[index3];\n  return element == null || element.hasAttribute(\"disabled\") || element.getAttribute(\"aria-disabled\") === \"true\";\n}\n__name(isDisabled, \"isDisabled\");\nvar index2 = typeof document !== \"undefined\" ? import_react35.useLayoutEffect : import_react35.useEffect;\nvar horizontalKeys = [ARROW_LEFT, ARROW_RIGHT];\nvar verticalKeys = [ARROW_UP, ARROW_DOWN];\nvar allKeys = [...horizontalKeys, ...verticalKeys];\nvar serverHandoffComplete = false;\nvar count = 0;\nvar genId = /* @__PURE__ */ __name(() => (\n  // Ensure the id is unique with multiple independent versions of Floating UI\n  // on <React 18\n  \"floating-ui-\" + Math.random().toString(36).slice(2, 6) + count++\n), \"genId\");\nfunction useFloatingId() {\n  const [id, setId] = React45.useState(() => serverHandoffComplete ? genId() : void 0);\n  index2(() => {\n    if (id == null) {\n      setId(genId());\n    }\n  }, []);\n  React45.useEffect(() => {\n    serverHandoffComplete = true;\n  }, []);\n  return id;\n}\n__name(useFloatingId, \"useFloatingId\");\nvar useReactId = SafeReact.useId;\nvar useId6 = useReactId || useFloatingId;\nvar devMessageSet;\nif (process.env.NODE_ENV !== \"production\") {\n  devMessageSet = /* @__PURE__ */ new Set();\n}\nfunction warn() {\n  var _devMessageSet;\n  for (var _len = arguments.length, messages = new Array(_len), _key = 0; _key < _len; _key++) {\n    messages[_key] = arguments[_key];\n  }\n  const message = \"Floating UI: \" + messages.join(\" \");\n  if (!((_devMessageSet = devMessageSet) != null && _devMessageSet.has(message))) {\n    var _devMessageSet2;\n    (_devMessageSet2 = devMessageSet) == null || _devMessageSet2.add(message);\n    console.warn(message);\n  }\n}\n__name(warn, \"warn\");\nfunction error() {\n  var _devMessageSet3;\n  for (var _len2 = arguments.length, messages = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n    messages[_key2] = arguments[_key2];\n  }\n  const message = \"Floating UI: \" + messages.join(\" \");\n  if (!((_devMessageSet3 = devMessageSet) != null && _devMessageSet3.has(message))) {\n    var _devMessageSet4;\n    (_devMessageSet4 = devMessageSet) == null || _devMessageSet4.add(message);\n    console.error(message);\n  }\n}\n__name(error, \"error\");\nfunction createPubSub() {\n  const map = /* @__PURE__ */ new Map();\n  return {\n    emit(event, data) {\n      var _map$get;\n      (_map$get = map.get(event)) == null || _map$get.forEach((handler) => handler(data));\n    },\n    on(event, listener) {\n      map.set(event, [...map.get(event) || [], listener]);\n    },\n    off(event, listener) {\n      var _map$get2;\n      map.set(event, ((_map$get2 = map.get(event)) == null ? void 0 : _map$get2.filter((l) => l !== listener)) || []);\n    }\n  };\n}\n__name(createPubSub, \"createPubSub\");\nvar FloatingNodeContext = /* @__PURE__ */ React45.createContext(null);\nvar FloatingTreeContext = /* @__PURE__ */ React45.createContext(null);\nvar useFloatingParentNodeId = /* @__PURE__ */ __name(() => {\n  var _React$useContext;\n  return ((_React$useContext = React45.useContext(FloatingNodeContext)) == null ? void 0 : _React$useContext.id) || null;\n}, \"useFloatingParentNodeId\");\nvar useFloatingTree = /* @__PURE__ */ __name(() => React45.useContext(FloatingTreeContext), \"useFloatingTree\");\nfunction createAttribute(name) {\n  return \"data-floating-ui-\" + name;\n}\n__name(createAttribute, \"createAttribute\");\nfunction clearTimeoutIfSet(timeoutRef) {\n  if (timeoutRef.current !== -1) {\n    clearTimeout(timeoutRef.current);\n    timeoutRef.current = -1;\n  }\n}\n__name(clearTimeoutIfSet, \"clearTimeoutIfSet\");\nfunction useLatestRef2(value) {\n  const ref = (0, import_react35.useRef)(value);\n  index2(() => {\n    ref.current = value;\n  });\n  return ref;\n}\n__name(useLatestRef2, \"useLatestRef\");\nvar safePolygonIdentifier = /* @__PURE__ */ createAttribute(\"safe-polygon\");\nfunction getDelay(value, prop, pointerType) {\n  if (pointerType && !isMouseLikePointerType(pointerType)) {\n    return 0;\n  }\n  if (typeof value === \"number\") {\n    return value;\n  }\n  return value == null ? void 0 : value[prop];\n}\n__name(getDelay, \"getDelay\");\nfunction useHover(context2, props) {\n  if (props === void 0) {\n    props = {};\n  }\n  const {\n    open,\n    onOpenChange,\n    dataRef,\n    events,\n    elements\n  } = context2;\n  const {\n    enabled = true,\n    delay = 0,\n    handleClose = null,\n    mouseOnly = false,\n    restMs = 0,\n    move = true\n  } = props;\n  const tree = useFloatingTree();\n  const parentId = useFloatingParentNodeId();\n  const handleCloseRef = useLatestRef2(handleClose);\n  const delayRef = useLatestRef2(delay);\n  const openRef = useLatestRef2(open);\n  const pointerTypeRef = React45.useRef();\n  const timeoutRef = React45.useRef(-1);\n  const handlerRef = React45.useRef();\n  const restTimeoutRef = React45.useRef(-1);\n  const blockMouseMoveRef = React45.useRef(true);\n  const performedPointerEventsMutationRef = React45.useRef(false);\n  const unbindMouseMoveRef = React45.useRef(() => {\n  });\n  const restTimeoutPendingRef = React45.useRef(false);\n  const isHoverOpen = React45.useCallback(() => {\n    var _dataRef$current$open;\n    const type = (_dataRef$current$open = dataRef.current.openEvent) == null ? void 0 : _dataRef$current$open.type;\n    return (type == null ? void 0 : type.includes(\"mouse\")) && type !== \"mousedown\";\n  }, [dataRef]);\n  React45.useEffect(() => {\n    if (!enabled) return;\n    function onOpenChange2(_ref) {\n      let {\n        open: open2\n      } = _ref;\n      if (!open2) {\n        clearTimeoutIfSet(timeoutRef);\n        clearTimeoutIfSet(restTimeoutRef);\n        blockMouseMoveRef.current = true;\n        restTimeoutPendingRef.current = false;\n      }\n    }\n    __name(onOpenChange2, \"onOpenChange\");\n    events.on(\"openchange\", onOpenChange2);\n    return () => {\n      events.off(\"openchange\", onOpenChange2);\n    };\n  }, [enabled, events]);\n  React45.useEffect(() => {\n    if (!enabled) return;\n    if (!handleCloseRef.current) return;\n    if (!open) return;\n    function onLeave(event) {\n      if (isHoverOpen()) {\n        onOpenChange(false, event, \"hover\");\n      }\n    }\n    __name(onLeave, \"onLeave\");\n    const html = getDocument(elements.floating).documentElement;\n    html.addEventListener(\"mouseleave\", onLeave);\n    return () => {\n      html.removeEventListener(\"mouseleave\", onLeave);\n    };\n  }, [elements.floating, open, onOpenChange, enabled, handleCloseRef, isHoverOpen]);\n  const closeWithDelay = React45.useCallback(function(event, runElseBranch, reason) {\n    if (runElseBranch === void 0) {\n      runElseBranch = true;\n    }\n    if (reason === void 0) {\n      reason = \"hover\";\n    }\n    const closeDelay = getDelay(delayRef.current, \"close\", pointerTypeRef.current);\n    if (closeDelay && !handlerRef.current) {\n      clearTimeoutIfSet(timeoutRef);\n      timeoutRef.current = window.setTimeout(() => onOpenChange(false, event, reason), closeDelay);\n    } else if (runElseBranch) {\n      clearTimeoutIfSet(timeoutRef);\n      onOpenChange(false, event, reason);\n    }\n  }, [delayRef, onOpenChange]);\n  const cleanupMouseMoveHandler = useEffectEvent(() => {\n    unbindMouseMoveRef.current();\n    handlerRef.current = void 0;\n  });\n  const clearPointerEvents = useEffectEvent(() => {\n    if (performedPointerEventsMutationRef.current) {\n      const body = getDocument(elements.floating).body;\n      body.style.pointerEvents = \"\";\n      body.removeAttribute(safePolygonIdentifier);\n      performedPointerEventsMutationRef.current = false;\n    }\n  });\n  const isClickLikeOpenEvent = useEffectEvent(() => {\n    return dataRef.current.openEvent ? [\"click\", \"mousedown\"].includes(dataRef.current.openEvent.type) : false;\n  });\n  React45.useEffect(() => {\n    if (!enabled) return;\n    function onMouseEnter(event) {\n      clearTimeoutIfSet(timeoutRef);\n      blockMouseMoveRef.current = false;\n      if (mouseOnly && !isMouseLikePointerType(pointerTypeRef.current) || restMs > 0 && !getDelay(delayRef.current, \"open\")) {\n        return;\n      }\n      const openDelay = getDelay(delayRef.current, \"open\", pointerTypeRef.current);\n      if (openDelay) {\n        timeoutRef.current = window.setTimeout(() => {\n          if (!openRef.current) {\n            onOpenChange(true, event, \"hover\");\n          }\n        }, openDelay);\n      } else if (!open) {\n        onOpenChange(true, event, \"hover\");\n      }\n    }\n    __name(onMouseEnter, \"onMouseEnter\");\n    function onMouseLeave(event) {\n      if (isClickLikeOpenEvent()) return;\n      unbindMouseMoveRef.current();\n      const doc = getDocument(elements.floating);\n      clearTimeoutIfSet(restTimeoutRef);\n      restTimeoutPendingRef.current = false;\n      if (handleCloseRef.current && dataRef.current.floatingContext) {\n        if (!open) {\n          clearTimeoutIfSet(timeoutRef);\n        }\n        handlerRef.current = handleCloseRef.current({\n          ...dataRef.current.floatingContext,\n          tree,\n          x: event.clientX,\n          y: event.clientY,\n          onClose() {\n            clearPointerEvents();\n            cleanupMouseMoveHandler();\n            if (!isClickLikeOpenEvent()) {\n              closeWithDelay(event, true, \"safe-polygon\");\n            }\n          }\n        });\n        const handler = handlerRef.current;\n        doc.addEventListener(\"mousemove\", handler);\n        unbindMouseMoveRef.current = () => {\n          doc.removeEventListener(\"mousemove\", handler);\n        };\n        return;\n      }\n      const shouldClose = pointerTypeRef.current === \"touch\" ? !contains(elements.floating, event.relatedTarget) : true;\n      if (shouldClose) {\n        closeWithDelay(event);\n      }\n    }\n    __name(onMouseLeave, \"onMouseLeave\");\n    function onScrollMouseLeave(event) {\n      if (isClickLikeOpenEvent()) return;\n      if (!dataRef.current.floatingContext) return;\n      handleCloseRef.current == null || handleCloseRef.current({\n        ...dataRef.current.floatingContext,\n        tree,\n        x: event.clientX,\n        y: event.clientY,\n        onClose() {\n          clearPointerEvents();\n          cleanupMouseMoveHandler();\n          if (!isClickLikeOpenEvent()) {\n            closeWithDelay(event);\n          }\n        }\n      })(event);\n    }\n    __name(onScrollMouseLeave, \"onScrollMouseLeave\");\n    if (isElement(elements.domReference)) {\n      var _elements$floating;\n      const ref = elements.domReference;\n      open && ref.addEventListener(\"mouseleave\", onScrollMouseLeave);\n      (_elements$floating = elements.floating) == null || _elements$floating.addEventListener(\"mouseleave\", onScrollMouseLeave);\n      move && ref.addEventListener(\"mousemove\", onMouseEnter, {\n        once: true\n      });\n      ref.addEventListener(\"mouseenter\", onMouseEnter);\n      ref.addEventListener(\"mouseleave\", onMouseLeave);\n      return () => {\n        var _elements$floating2;\n        open && ref.removeEventListener(\"mouseleave\", onScrollMouseLeave);\n        (_elements$floating2 = elements.floating) == null || _elements$floating2.removeEventListener(\"mouseleave\", onScrollMouseLeave);\n        move && ref.removeEventListener(\"mousemove\", onMouseEnter);\n        ref.removeEventListener(\"mouseenter\", onMouseEnter);\n        ref.removeEventListener(\"mouseleave\", onMouseLeave);\n      };\n    }\n  }, [elements, enabled, context2, mouseOnly, restMs, move, closeWithDelay, cleanupMouseMoveHandler, clearPointerEvents, onOpenChange, open, openRef, tree, delayRef, handleCloseRef, dataRef, isClickLikeOpenEvent]);\n  index2(() => {\n    var _handleCloseRef$curre;\n    if (!enabled) return;\n    if (open && (_handleCloseRef$curre = handleCloseRef.current) != null && _handleCloseRef$curre.__options.blockPointerEvents && isHoverOpen()) {\n      performedPointerEventsMutationRef.current = true;\n      const floatingEl = elements.floating;\n      if (isElement(elements.domReference) && floatingEl) {\n        var _tree$nodesRef$curren;\n        const body = getDocument(elements.floating).body;\n        body.setAttribute(safePolygonIdentifier, \"\");\n        const ref = elements.domReference;\n        const parentFloating = tree == null || (_tree$nodesRef$curren = tree.nodesRef.current.find((node) => node.id === parentId)) == null || (_tree$nodesRef$curren = _tree$nodesRef$curren.context) == null ? void 0 : _tree$nodesRef$curren.elements.floating;\n        if (parentFloating) {\n          parentFloating.style.pointerEvents = \"\";\n        }\n        body.style.pointerEvents = \"none\";\n        ref.style.pointerEvents = \"auto\";\n        floatingEl.style.pointerEvents = \"auto\";\n        return () => {\n          body.style.pointerEvents = \"\";\n          ref.style.pointerEvents = \"\";\n          floatingEl.style.pointerEvents = \"\";\n        };\n      }\n    }\n  }, [enabled, open, parentId, elements, tree, handleCloseRef, isHoverOpen]);\n  index2(() => {\n    if (!open) {\n      pointerTypeRef.current = void 0;\n      restTimeoutPendingRef.current = false;\n      cleanupMouseMoveHandler();\n      clearPointerEvents();\n    }\n  }, [open, cleanupMouseMoveHandler, clearPointerEvents]);\n  React45.useEffect(() => {\n    return () => {\n      cleanupMouseMoveHandler();\n      clearTimeoutIfSet(timeoutRef);\n      clearTimeoutIfSet(restTimeoutRef);\n      clearPointerEvents();\n    };\n  }, [enabled, elements.domReference, cleanupMouseMoveHandler, clearPointerEvents]);\n  const reference = React45.useMemo(() => {\n    function setPointerRef(event) {\n      pointerTypeRef.current = event.pointerType;\n    }\n    __name(setPointerRef, \"setPointerRef\");\n    return {\n      onPointerDown: setPointerRef,\n      onPointerEnter: setPointerRef,\n      onMouseMove(event) {\n        const {\n          nativeEvent\n        } = event;\n        function handleMouseMove() {\n          if (!blockMouseMoveRef.current && !openRef.current) {\n            onOpenChange(true, nativeEvent, \"hover\");\n          }\n        }\n        __name(handleMouseMove, \"handleMouseMove\");\n        if (mouseOnly && !isMouseLikePointerType(pointerTypeRef.current)) {\n          return;\n        }\n        if (open || restMs === 0) {\n          return;\n        }\n        if (restTimeoutPendingRef.current && event.movementX ** 2 + event.movementY ** 2 < 2) {\n          return;\n        }\n        clearTimeoutIfSet(restTimeoutRef);\n        if (pointerTypeRef.current === \"touch\") {\n          handleMouseMove();\n        } else {\n          restTimeoutPendingRef.current = true;\n          restTimeoutRef.current = window.setTimeout(handleMouseMove, restMs);\n        }\n      }\n    };\n  }, [mouseOnly, onOpenChange, open, openRef, restMs]);\n  const floating = React45.useMemo(() => ({\n    onMouseEnter() {\n      clearTimeoutIfSet(timeoutRef);\n    },\n    onMouseLeave(event) {\n      if (!isClickLikeOpenEvent()) {\n        closeWithDelay(event.nativeEvent, false);\n      }\n    }\n  }), [closeWithDelay, isClickLikeOpenEvent]);\n  return React45.useMemo(() => enabled ? {\n    reference,\n    floating\n  } : {}, [enabled, reference, floating]);\n}\n__name(useHover, \"useHover\");\nvar NOOP = /* @__PURE__ */ __name(() => {\n}, \"NOOP\");\nvar FloatingDelayGroupContext = /* @__PURE__ */ React45.createContext({\n  delay: 0,\n  initialDelay: 0,\n  timeoutMs: 0,\n  currentId: null,\n  setCurrentId: NOOP,\n  setState: NOOP,\n  isInstantPhase: false\n});\nvar useDelayGroupContext = /* @__PURE__ */ __name(() => React45.useContext(FloatingDelayGroupContext), \"useDelayGroupContext\");\nfunction FloatingDelayGroup(props) {\n  const {\n    children,\n    delay,\n    timeoutMs = 0\n  } = props;\n  const [state, setState] = React45.useReducer((prev, next) => ({\n    ...prev,\n    ...next\n  }), {\n    delay,\n    timeoutMs,\n    initialDelay: delay,\n    currentId: null,\n    isInstantPhase: false\n  });\n  const initialCurrentIdRef = React45.useRef(null);\n  const setCurrentId = React45.useCallback((currentId) => {\n    setState({\n      currentId\n    });\n  }, []);\n  index2(() => {\n    if (state.currentId) {\n      if (initialCurrentIdRef.current === null) {\n        initialCurrentIdRef.current = state.currentId;\n      } else if (!state.isInstantPhase) {\n        setState({\n          isInstantPhase: true\n        });\n      }\n    } else {\n      if (state.isInstantPhase) {\n        setState({\n          isInstantPhase: false\n        });\n      }\n      initialCurrentIdRef.current = null;\n    }\n  }, [state.currentId, state.isInstantPhase]);\n  return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(FloatingDelayGroupContext.Provider, {\n    value: React45.useMemo(() => ({\n      ...state,\n      setState,\n      setCurrentId\n    }), [state, setCurrentId]),\n    children\n  });\n}\n__name(FloatingDelayGroup, \"FloatingDelayGroup\");\nfunction useDelayGroup(context2, options) {\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    open,\n    onOpenChange,\n    floatingId\n  } = context2;\n  const {\n    id: optionId,\n    enabled = true\n  } = options;\n  const id = optionId != null ? optionId : floatingId;\n  const groupContext = useDelayGroupContext();\n  const {\n    currentId,\n    setCurrentId,\n    initialDelay,\n    setState,\n    timeoutMs\n  } = groupContext;\n  index2(() => {\n    if (!enabled) return;\n    if (!currentId) return;\n    setState({\n      delay: {\n        open: 1,\n        close: getDelay(initialDelay, \"close\")\n      }\n    });\n    if (currentId !== id) {\n      onOpenChange(false);\n    }\n  }, [enabled, id, onOpenChange, setState, currentId, initialDelay]);\n  index2(() => {\n    function unset() {\n      onOpenChange(false);\n      setState({\n        delay: initialDelay,\n        currentId: null\n      });\n    }\n    __name(unset, \"unset\");\n    if (!enabled) return;\n    if (!currentId) return;\n    if (!open && currentId === id) {\n      if (timeoutMs) {\n        const timeout = window.setTimeout(unset, timeoutMs);\n        return () => {\n          clearTimeout(timeout);\n        };\n      }\n      unset();\n    }\n  }, [enabled, open, setState, currentId, id, onOpenChange, initialDelay, timeoutMs]);\n  index2(() => {\n    if (!enabled) return;\n    if (setCurrentId === NOOP || !open) return;\n    setCurrentId(id);\n  }, [enabled, open, setCurrentId, id]);\n  return groupContext;\n}\n__name(useDelayGroup, \"useDelayGroup\");\nvar rafId = 0;\nfunction enqueueFocus(el, options) {\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    preventScroll = false,\n    cancelPrevious = true,\n    sync = false\n  } = options;\n  cancelPrevious && cancelAnimationFrame(rafId);\n  const exec = /* @__PURE__ */ __name(() => el == null ? void 0 : el.focus({\n    preventScroll\n  }), \"exec\");\n  if (sync) {\n    exec();\n  } else {\n    rafId = requestAnimationFrame(exec);\n  }\n}\n__name(enqueueFocus, \"enqueueFocus\");\nfunction getAncestors(nodes, id) {\n  var _nodes$find;\n  let allAncestors = [];\n  let currentParentId = (_nodes$find = nodes.find((node) => node.id === id)) == null ? void 0 : _nodes$find.parentId;\n  while (currentParentId) {\n    const currentNode = nodes.find((node) => node.id === currentParentId);\n    currentParentId = currentNode == null ? void 0 : currentNode.parentId;\n    if (currentNode) {\n      allAncestors = allAncestors.concat(currentNode);\n    }\n  }\n  return allAncestors;\n}\n__name(getAncestors, \"getAncestors\");\nfunction getChildren(nodes, id) {\n  let allChildren = nodes.filter((node) => {\n    var _node$context;\n    return node.parentId === id && ((_node$context = node.context) == null ? void 0 : _node$context.open);\n  });\n  let currentChildren = allChildren;\n  while (currentChildren.length) {\n    currentChildren = nodes.filter((node) => {\n      var _currentChildren;\n      return (_currentChildren = currentChildren) == null ? void 0 : _currentChildren.some((n) => {\n        var _node$context2;\n        return node.parentId === n.id && ((_node$context2 = node.context) == null ? void 0 : _node$context2.open);\n      });\n    });\n    allChildren = allChildren.concat(currentChildren);\n  }\n  return allChildren;\n}\n__name(getChildren, \"getChildren\");\nfunction getDeepestNode(nodes, id) {\n  let deepestNodeId;\n  let maxDepth = -1;\n  function findDeepest(nodeId, depth) {\n    if (depth > maxDepth) {\n      deepestNodeId = nodeId;\n      maxDepth = depth;\n    }\n    const children = getChildren(nodes, nodeId);\n    children.forEach((child) => {\n      findDeepest(child.id, depth + 1);\n    });\n  }\n  __name(findDeepest, \"findDeepest\");\n  findDeepest(id, 0);\n  return nodes.find((node) => node.id === deepestNodeId);\n}\n__name(getDeepestNode, \"getDeepestNode\");\nvar counterMap = /* @__PURE__ */ new WeakMap();\nvar uncontrolledElementsSet = /* @__PURE__ */ new WeakSet();\nvar markerMap = {};\nvar lockCount$1 = 0;\nvar supportsInert = /* @__PURE__ */ __name(() => typeof HTMLElement !== \"undefined\" && \"inert\" in HTMLElement.prototype, \"supportsInert\");\nvar unwrapHost = /* @__PURE__ */ __name((node) => node && (node.host || unwrapHost(node.parentNode)), \"unwrapHost\");\nvar correctElements = /* @__PURE__ */ __name((parent, targets) => targets.map((target) => {\n  if (parent.contains(target)) {\n    return target;\n  }\n  const correctedTarget = unwrapHost(target);\n  if (parent.contains(correctedTarget)) {\n    return correctedTarget;\n  }\n  return null;\n}).filter((x) => x != null), \"correctElements\");\nfunction applyAttributeToOthers(uncorrectedAvoidElements, body, ariaHidden, inert) {\n  const markerName = \"data-floating-ui-inert\";\n  const controlAttribute = inert ? \"inert\" : ariaHidden ? \"aria-hidden\" : null;\n  const avoidElements = correctElements(body, uncorrectedAvoidElements);\n  const elementsToKeep = /* @__PURE__ */ new Set();\n  const elementsToStop = new Set(avoidElements);\n  const hiddenElements = [];\n  if (!markerMap[markerName]) {\n    markerMap[markerName] = /* @__PURE__ */ new WeakMap();\n  }\n  const markerCounter = markerMap[markerName];\n  avoidElements.forEach(keep);\n  deep(body);\n  elementsToKeep.clear();\n  function keep(el) {\n    if (!el || elementsToKeep.has(el)) {\n      return;\n    }\n    elementsToKeep.add(el);\n    el.parentNode && keep(el.parentNode);\n  }\n  __name(keep, \"keep\");\n  function deep(parent) {\n    if (!parent || elementsToStop.has(parent)) {\n      return;\n    }\n    [].forEach.call(parent.children, (node) => {\n      if (getNodeName(node) === \"script\") return;\n      if (elementsToKeep.has(node)) {\n        deep(node);\n      } else {\n        const attr2 = controlAttribute ? node.getAttribute(controlAttribute) : null;\n        const alreadyHidden = attr2 !== null && attr2 !== \"false\";\n        const currentCounterValue = counterMap.get(node) || 0;\n        const counterValue = controlAttribute ? currentCounterValue + 1 : currentCounterValue;\n        const markerValue = (markerCounter.get(node) || 0) + 1;\n        counterMap.set(node, counterValue);\n        markerCounter.set(node, markerValue);\n        hiddenElements.push(node);\n        if (counterValue === 1 && alreadyHidden) {\n          uncontrolledElementsSet.add(node);\n        }\n        if (markerValue === 1) {\n          node.setAttribute(markerName, \"\");\n        }\n        if (!alreadyHidden && controlAttribute) {\n          node.setAttribute(controlAttribute, controlAttribute === \"inert\" ? \"\" : \"true\");\n        }\n      }\n    });\n  }\n  __name(deep, \"deep\");\n  lockCount$1++;\n  return () => {\n    hiddenElements.forEach((element) => {\n      const currentCounterValue = counterMap.get(element) || 0;\n      const counterValue = controlAttribute ? currentCounterValue - 1 : currentCounterValue;\n      const markerValue = (markerCounter.get(element) || 0) - 1;\n      counterMap.set(element, counterValue);\n      markerCounter.set(element, markerValue);\n      if (!counterValue) {\n        if (!uncontrolledElementsSet.has(element) && controlAttribute) {\n          element.removeAttribute(controlAttribute);\n        }\n        uncontrolledElementsSet.delete(element);\n      }\n      if (!markerValue) {\n        element.removeAttribute(markerName);\n      }\n    });\n    lockCount$1--;\n    if (!lockCount$1) {\n      counterMap = /* @__PURE__ */ new WeakMap();\n      counterMap = /* @__PURE__ */ new WeakMap();\n      uncontrolledElementsSet = /* @__PURE__ */ new WeakSet();\n      markerMap = {};\n    }\n  };\n}\n__name(applyAttributeToOthers, \"applyAttributeToOthers\");\nfunction markOthers(avoidElements, ariaHidden, inert) {\n  if (ariaHidden === void 0) {\n    ariaHidden = false;\n  }\n  if (inert === void 0) {\n    inert = false;\n  }\n  const body = getDocument(avoidElements[0]).body;\n  return applyAttributeToOthers(avoidElements.concat(Array.from(body.querySelectorAll(\"[aria-live]\"))), body, ariaHidden, inert);\n}\n__name(markOthers, \"markOthers\");\nvar getTabbableOptions = /* @__PURE__ */ __name(() => ({\n  getShadowRoot: true,\n  displayCheck: (\n    // JSDOM does not support the `tabbable` library. To solve this we can\n    // check if `ResizeObserver` is a real function (not polyfilled), which\n    // determines if the current environment is JSDOM-like.\n    typeof ResizeObserver === \"function\" && ResizeObserver.toString().includes(\"[native code]\") ? \"full\" : \"none\"\n  )\n}), \"getTabbableOptions\");\nfunction getTabbableIn(container, direction) {\n  const allTabbable = (0, import_tabbable.tabbable)(container, getTabbableOptions());\n  if (direction === \"prev\") {\n    allTabbable.reverse();\n  }\n  const activeIndex = allTabbable.indexOf(activeElement(getDocument(container)));\n  const nextTabbableElements = allTabbable.slice(activeIndex + 1);\n  return nextTabbableElements[0];\n}\n__name(getTabbableIn, \"getTabbableIn\");\nfunction getNextTabbable(referenceElement) {\n  return getTabbableIn(getDocument(referenceElement).body, \"next\") || referenceElement;\n}\n__name(getNextTabbable, \"getNextTabbable\");\nfunction getPreviousTabbable(referenceElement) {\n  return getTabbableIn(getDocument(referenceElement).body, \"prev\") || referenceElement;\n}\n__name(getPreviousTabbable, \"getPreviousTabbable\");\nfunction isOutsideEvent(event, container) {\n  const containerElement = container || event.currentTarget;\n  const relatedTarget = event.relatedTarget;\n  return !relatedTarget || !contains(containerElement, relatedTarget);\n}\n__name(isOutsideEvent, \"isOutsideEvent\");\nfunction disableFocusInside(container) {\n  const tabbableElements = (0, import_tabbable.tabbable)(container, getTabbableOptions());\n  tabbableElements.forEach((element) => {\n    element.dataset.tabindex = element.getAttribute(\"tabindex\") || \"\";\n    element.setAttribute(\"tabindex\", \"-1\");\n  });\n}\n__name(disableFocusInside, \"disableFocusInside\");\nfunction enableFocusInside(container) {\n  const elements = container.querySelectorAll(\"[data-tabindex]\");\n  elements.forEach((element) => {\n    const tabindex = element.dataset.tabindex;\n    delete element.dataset.tabindex;\n    if (tabindex) {\n      element.setAttribute(\"tabindex\", tabindex);\n    } else {\n      element.removeAttribute(\"tabindex\");\n    }\n  });\n}\n__name(enableFocusInside, \"enableFocusInside\");\nvar HIDDEN_STYLES = {\n  border: 0,\n  clip: \"rect(0 0 0 0)\",\n  height: \"1px\",\n  margin: \"-1px\",\n  overflow: \"hidden\",\n  padding: 0,\n  position: \"fixed\",\n  whiteSpace: \"nowrap\",\n  width: \"1px\",\n  top: 0,\n  left: 0\n};\nvar FocusGuard = /* @__PURE__ */ React45.forwardRef(/* @__PURE__ */ __name(function FocusGuard2(props, ref) {\n  const [role, setRole] = React45.useState();\n  index2(() => {\n    if (isSafari()) {\n      setRole(\"button\");\n    }\n  }, []);\n  const restProps = {\n    ref,\n    tabIndex: 0,\n    // Role is only for VoiceOver\n    role,\n    \"aria-hidden\": role ? void 0 : true,\n    [createAttribute(\"focus-guard\")]: \"\",\n    style: HIDDEN_STYLES\n  };\n  return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(\"span\", {\n    ...props,\n    ...restProps\n  });\n}, \"FocusGuard\"));\nvar PortalContext = /* @__PURE__ */ React45.createContext(null);\nvar attr = /* @__PURE__ */ createAttribute(\"portal\");\nfunction useFloatingPortalNode(props) {\n  if (props === void 0) {\n    props = {};\n  }\n  const {\n    id,\n    root\n  } = props;\n  const uniqueId = useId6();\n  const portalContext = usePortalContext2();\n  const [portalNode, setPortalNode] = React45.useState(null);\n  const portalNodeRef = React45.useRef(null);\n  index2(() => {\n    return () => {\n      portalNode == null || portalNode.remove();\n      queueMicrotask(() => {\n        portalNodeRef.current = null;\n      });\n    };\n  }, [portalNode]);\n  index2(() => {\n    if (!uniqueId) return;\n    if (portalNodeRef.current) return;\n    const existingIdRoot = id ? document.getElementById(id) : null;\n    if (!existingIdRoot) return;\n    const subRoot = document.createElement(\"div\");\n    subRoot.id = uniqueId;\n    subRoot.setAttribute(attr, \"\");\n    existingIdRoot.appendChild(subRoot);\n    portalNodeRef.current = subRoot;\n    setPortalNode(subRoot);\n  }, [id, uniqueId]);\n  index2(() => {\n    if (root === null) return;\n    if (!uniqueId) return;\n    if (portalNodeRef.current) return;\n    let container = root || (portalContext == null ? void 0 : portalContext.portalNode);\n    if (container && !isElement(container)) container = container.current;\n    container = container || document.body;\n    let idWrapper = null;\n    if (id) {\n      idWrapper = document.createElement(\"div\");\n      idWrapper.id = id;\n      container.appendChild(idWrapper);\n    }\n    const subRoot = document.createElement(\"div\");\n    subRoot.id = uniqueId;\n    subRoot.setAttribute(attr, \"\");\n    container = idWrapper || container;\n    container.appendChild(subRoot);\n    portalNodeRef.current = subRoot;\n    setPortalNode(subRoot);\n  }, [id, root, uniqueId, portalContext]);\n  return portalNode;\n}\n__name(useFloatingPortalNode, \"useFloatingPortalNode\");\nfunction FloatingPortal(props) {\n  const {\n    children,\n    id,\n    root,\n    preserveTabOrder = true\n  } = props;\n  const portalNode = useFloatingPortalNode({\n    id,\n    root\n  });\n  const [focusManagerState, setFocusManagerState] = React45.useState(null);\n  const beforeOutsideRef = React45.useRef(null);\n  const afterOutsideRef = React45.useRef(null);\n  const beforeInsideRef = React45.useRef(null);\n  const afterInsideRef = React45.useRef(null);\n  const modal = focusManagerState == null ? void 0 : focusManagerState.modal;\n  const open = focusManagerState == null ? void 0 : focusManagerState.open;\n  const shouldRenderGuards = (\n    // The FocusManager and therefore floating element are currently open/\n    // rendered.\n    !!focusManagerState && // Guards are only for non-modal focus management.\n    !focusManagerState.modal && // Don't render if unmount is transitioning.\n    focusManagerState.open && preserveTabOrder && !!(root || portalNode)\n  );\n  React45.useEffect(() => {\n    if (!portalNode || !preserveTabOrder || modal) {\n      return;\n    }\n    function onFocus(event) {\n      if (portalNode && isOutsideEvent(event)) {\n        const focusing = event.type === \"focusin\";\n        const manageFocus = focusing ? enableFocusInside : disableFocusInside;\n        manageFocus(portalNode);\n      }\n    }\n    __name(onFocus, \"onFocus\");\n    portalNode.addEventListener(\"focusin\", onFocus, true);\n    portalNode.addEventListener(\"focusout\", onFocus, true);\n    return () => {\n      portalNode.removeEventListener(\"focusin\", onFocus, true);\n      portalNode.removeEventListener(\"focusout\", onFocus, true);\n    };\n  }, [portalNode, preserveTabOrder, modal]);\n  React45.useEffect(() => {\n    if (!portalNode) return;\n    if (open) return;\n    enableFocusInside(portalNode);\n  }, [open, portalNode]);\n  return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(PortalContext.Provider, {\n    value: React45.useMemo(() => ({\n      preserveTabOrder,\n      beforeOutsideRef,\n      afterOutsideRef,\n      beforeInsideRef,\n      afterInsideRef,\n      portalNode,\n      setFocusManagerState\n    }), [preserveTabOrder, portalNode]),\n    children: [shouldRenderGuards && portalNode && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(FocusGuard, {\n      \"data-type\": \"outside\",\n      ref: beforeOutsideRef,\n      onFocus: /* @__PURE__ */ __name((event) => {\n        if (isOutsideEvent(event, portalNode)) {\n          var _beforeInsideRef$curr;\n          (_beforeInsideRef$curr = beforeInsideRef.current) == null || _beforeInsideRef$curr.focus();\n        } else {\n          const domReference = focusManagerState ? focusManagerState.domReference : null;\n          const prevTabbable = getPreviousTabbable(domReference);\n          prevTabbable == null || prevTabbable.focus();\n        }\n      }, \"onFocus\")\n    }), shouldRenderGuards && portalNode && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(\"span\", {\n      \"aria-owns\": portalNode.id,\n      style: HIDDEN_STYLES\n    }), portalNode && /* @__PURE__ */ ReactDOM3.createPortal(children, portalNode), shouldRenderGuards && portalNode && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(FocusGuard, {\n      \"data-type\": \"outside\",\n      ref: afterOutsideRef,\n      onFocus: /* @__PURE__ */ __name((event) => {\n        if (isOutsideEvent(event, portalNode)) {\n          var _afterInsideRef$curre;\n          (_afterInsideRef$curre = afterInsideRef.current) == null || _afterInsideRef$curre.focus();\n        } else {\n          const domReference = focusManagerState ? focusManagerState.domReference : null;\n          const nextTabbable = getNextTabbable(domReference);\n          nextTabbable == null || nextTabbable.focus();\n          (focusManagerState == null ? void 0 : focusManagerState.closeOnFocusOut) && (focusManagerState == null ? void 0 : focusManagerState.onOpenChange(false, event.nativeEvent, \"focus-out\"));\n        }\n      }, \"onFocus\")\n    })]\n  });\n}\n__name(FloatingPortal, \"FloatingPortal\");\nvar usePortalContext2 = /* @__PURE__ */ __name(() => React45.useContext(PortalContext), \"usePortalContext\");\nvar FOCUSABLE_ATTRIBUTE = \"data-floating-ui-focusable\";\nfunction getFloatingFocusElement(floatingElement) {\n  if (!floatingElement) {\n    return null;\n  }\n  return floatingElement.hasAttribute(FOCUSABLE_ATTRIBUTE) ? floatingElement : floatingElement.querySelector(\"[\" + FOCUSABLE_ATTRIBUTE + \"]\") || floatingElement;\n}\n__name(getFloatingFocusElement, \"getFloatingFocusElement\");\nfunction useLiteMergeRefs(refs) {\n  return React45.useMemo(() => {\n    return (value) => {\n      refs.forEach((ref) => {\n        if (ref) {\n          ref.current = value;\n        }\n      });\n    };\n  }, refs);\n}\n__name(useLiteMergeRefs, \"useLiteMergeRefs\");\nvar LIST_LIMIT = 20;\nvar previouslyFocusedElements = [];\nfunction addPreviouslyFocusedElement(element) {\n  previouslyFocusedElements = previouslyFocusedElements.filter((el) => el.isConnected);\n  if (element && getNodeName(element) !== \"body\") {\n    previouslyFocusedElements.push(element);\n    if (previouslyFocusedElements.length > LIST_LIMIT) {\n      previouslyFocusedElements = previouslyFocusedElements.slice(-20);\n    }\n  }\n}\n__name(addPreviouslyFocusedElement, \"addPreviouslyFocusedElement\");\nfunction getPreviouslyFocusedElement() {\n  return previouslyFocusedElements.slice().reverse().find((el) => el.isConnected);\n}\n__name(getPreviouslyFocusedElement, \"getPreviouslyFocusedElement\");\nfunction getFirstTabbableElement(container) {\n  const tabbableOptions = getTabbableOptions();\n  if ((0, import_tabbable.isTabbable)(container, tabbableOptions)) {\n    return container;\n  }\n  return (0, import_tabbable.tabbable)(container, tabbableOptions)[0] || container;\n}\n__name(getFirstTabbableElement, \"getFirstTabbableElement\");\nvar VisuallyHiddenDismiss = /* @__PURE__ */ React45.forwardRef(/* @__PURE__ */ __name(function VisuallyHiddenDismiss2(props, ref) {\n  return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(\"button\", {\n    ...props,\n    type: \"button\",\n    ref,\n    tabIndex: -1,\n    style: HIDDEN_STYLES\n  });\n}, \"VisuallyHiddenDismiss\"));\nfunction FloatingFocusManager(props) {\n  const {\n    context: context2,\n    children,\n    disabled = false,\n    order = [\"content\"],\n    guards: _guards = true,\n    initialFocus = 0,\n    returnFocus = true,\n    restoreFocus = false,\n    modal = true,\n    visuallyHiddenDismiss = false,\n    closeOnFocusOut = true,\n    outsideElementsInert = false,\n    getInsideElements: _getInsideElements = /* @__PURE__ */ __name(() => [], \"_getInsideElements\")\n  } = props;\n  const {\n    open,\n    onOpenChange,\n    events,\n    dataRef,\n    elements: {\n      domReference,\n      floating\n    }\n  } = context2;\n  const getNodeId = useEffectEvent(() => {\n    var _dataRef$current$floa;\n    return (_dataRef$current$floa = dataRef.current.floatingContext) == null ? void 0 : _dataRef$current$floa.nodeId;\n  });\n  const getInsideElements = useEffectEvent(_getInsideElements);\n  const ignoreInitialFocus = typeof initialFocus === \"number\" && initialFocus < 0;\n  const isUntrappedTypeableCombobox = isTypeableCombobox(domReference) && ignoreInitialFocus;\n  const inertSupported = supportsInert();\n  const guards = inertSupported ? _guards : true;\n  const useInert = !guards || inertSupported && outsideElementsInert;\n  const orderRef = useLatestRef2(order);\n  const initialFocusRef = useLatestRef2(initialFocus);\n  const returnFocusRef = useLatestRef2(returnFocus);\n  const tree = useFloatingTree();\n  const portalContext = usePortalContext2();\n  const startDismissButtonRef = React45.useRef(null);\n  const endDismissButtonRef = React45.useRef(null);\n  const preventReturnFocusRef = React45.useRef(false);\n  const isPointerDownRef = React45.useRef(false);\n  const tabbableIndexRef = React45.useRef(-1);\n  const isInsidePortal = portalContext != null;\n  const floatingFocusElement = getFloatingFocusElement(floating);\n  const getTabbableContent = useEffectEvent(function(container) {\n    if (container === void 0) {\n      container = floatingFocusElement;\n    }\n    return container ? (0, import_tabbable.tabbable)(container, getTabbableOptions()) : [];\n  });\n  const getTabbableElements = useEffectEvent((container) => {\n    const content = getTabbableContent(container);\n    return orderRef.current.map((type) => {\n      if (domReference && type === \"reference\") {\n        return domReference;\n      }\n      if (floatingFocusElement && type === \"floating\") {\n        return floatingFocusElement;\n      }\n      return content;\n    }).filter(Boolean).flat();\n  });\n  React45.useEffect(() => {\n    if (disabled) return;\n    if (!modal) return;\n    function onKeyDown(event) {\n      if (event.key === \"Tab\") {\n        if (contains(floatingFocusElement, activeElement(getDocument(floatingFocusElement))) && getTabbableContent().length === 0 && !isUntrappedTypeableCombobox) {\n          stopEvent(event);\n        }\n        const els = getTabbableElements();\n        const target = getTarget(event);\n        if (orderRef.current[0] === \"reference\" && target === domReference) {\n          stopEvent(event);\n          if (event.shiftKey) {\n            enqueueFocus(els[els.length - 1]);\n          } else {\n            enqueueFocus(els[1]);\n          }\n        }\n        if (orderRef.current[1] === \"floating\" && target === floatingFocusElement && event.shiftKey) {\n          stopEvent(event);\n          enqueueFocus(els[0]);\n        }\n      }\n    }\n    __name(onKeyDown, \"onKeyDown\");\n    const doc = getDocument(floatingFocusElement);\n    doc.addEventListener(\"keydown\", onKeyDown);\n    return () => {\n      doc.removeEventListener(\"keydown\", onKeyDown);\n    };\n  }, [disabled, domReference, floatingFocusElement, modal, orderRef, isUntrappedTypeableCombobox, getTabbableContent, getTabbableElements]);\n  React45.useEffect(() => {\n    if (disabled) return;\n    if (!floating) return;\n    function handleFocusIn(event) {\n      const target = getTarget(event);\n      const tabbableContent = getTabbableContent();\n      const tabbableIndex = tabbableContent.indexOf(target);\n      if (tabbableIndex !== -1) {\n        tabbableIndexRef.current = tabbableIndex;\n      }\n    }\n    __name(handleFocusIn, \"handleFocusIn\");\n    floating.addEventListener(\"focusin\", handleFocusIn);\n    return () => {\n      floating.removeEventListener(\"focusin\", handleFocusIn);\n    };\n  }, [disabled, floating, getTabbableContent]);\n  React45.useEffect(() => {\n    if (disabled) return;\n    if (!closeOnFocusOut) return;\n    function handlePointerDown() {\n      isPointerDownRef.current = true;\n      setTimeout(() => {\n        isPointerDownRef.current = false;\n      });\n    }\n    __name(handlePointerDown, \"handlePointerDown\");\n    function handleFocusOutside(event) {\n      const relatedTarget = event.relatedTarget;\n      queueMicrotask(() => {\n        const nodeId = getNodeId();\n        const movedToUnrelatedNode = !(contains(domReference, relatedTarget) || contains(floating, relatedTarget) || contains(relatedTarget, floating) || contains(portalContext == null ? void 0 : portalContext.portalNode, relatedTarget) || relatedTarget != null && relatedTarget.hasAttribute(createAttribute(\"focus-guard\")) || tree && (getChildren(tree.nodesRef.current, nodeId).find((node) => {\n          var _node$context, _node$context2;\n          return contains((_node$context = node.context) == null ? void 0 : _node$context.elements.floating, relatedTarget) || contains((_node$context2 = node.context) == null ? void 0 : _node$context2.elements.domReference, relatedTarget);\n        }) || getAncestors(tree.nodesRef.current, nodeId).find((node) => {\n          var _node$context3, _node$context4, _node$context5;\n          return [(_node$context3 = node.context) == null ? void 0 : _node$context3.elements.floating, getFloatingFocusElement((_node$context4 = node.context) == null ? void 0 : _node$context4.elements.floating)].includes(relatedTarget) || ((_node$context5 = node.context) == null ? void 0 : _node$context5.elements.domReference) === relatedTarget;\n        })));\n        if (restoreFocus && movedToUnrelatedNode && activeElement(getDocument(floatingFocusElement)) === getDocument(floatingFocusElement).body) {\n          if (isHTMLElement(floatingFocusElement)) {\n            floatingFocusElement.focus();\n          }\n          const prevTabbableIndex = tabbableIndexRef.current;\n          const tabbableContent = getTabbableContent();\n          const nodeToFocus = tabbableContent[prevTabbableIndex] || tabbableContent[tabbableContent.length - 1] || floatingFocusElement;\n          if (isHTMLElement(nodeToFocus)) {\n            nodeToFocus.focus();\n          }\n        }\n        if ((isUntrappedTypeableCombobox ? true : !modal) && relatedTarget && movedToUnrelatedNode && !isPointerDownRef.current && // Fix React 18 Strict Mode returnFocus due to double rendering.\n        relatedTarget !== getPreviouslyFocusedElement()) {\n          preventReturnFocusRef.current = true;\n          onOpenChange(false, event, \"focus-out\");\n        }\n      });\n    }\n    __name(handleFocusOutside, \"handleFocusOutside\");\n    if (floating && isHTMLElement(domReference)) {\n      domReference.addEventListener(\"focusout\", handleFocusOutside);\n      domReference.addEventListener(\"pointerdown\", handlePointerDown);\n      floating.addEventListener(\"focusout\", handleFocusOutside);\n      return () => {\n        domReference.removeEventListener(\"focusout\", handleFocusOutside);\n        domReference.removeEventListener(\"pointerdown\", handlePointerDown);\n        floating.removeEventListener(\"focusout\", handleFocusOutside);\n      };\n    }\n  }, [disabled, domReference, floating, floatingFocusElement, modal, tree, portalContext, onOpenChange, closeOnFocusOut, restoreFocus, getTabbableContent, isUntrappedTypeableCombobox, getNodeId]);\n  const beforeGuardRef = React45.useRef(null);\n  const afterGuardRef = React45.useRef(null);\n  const mergedBeforeGuardRef = useLiteMergeRefs([beforeGuardRef, portalContext == null ? void 0 : portalContext.beforeInsideRef]);\n  const mergedAfterGuardRef = useLiteMergeRefs([afterGuardRef, portalContext == null ? void 0 : portalContext.afterInsideRef]);\n  React45.useEffect(() => {\n    var _portalContext$portal, _ancestors$find;\n    if (disabled) return;\n    if (!floating) return;\n    const portalNodes = Array.from((portalContext == null || (_portalContext$portal = portalContext.portalNode) == null ? void 0 : _portalContext$portal.querySelectorAll(\"[\" + createAttribute(\"portal\") + \"]\")) || []);\n    const ancestors = tree ? getAncestors(tree.nodesRef.current, getNodeId()) : [];\n    const ancestorFloatingNodes = tree && !modal ? ancestors.map((node) => {\n      var _node$context6;\n      return (_node$context6 = node.context) == null ? void 0 : _node$context6.elements.floating;\n    }) : [];\n    const rootAncestorComboboxDomReference = (_ancestors$find = ancestors.find((node) => {\n      var _node$context7;\n      return isTypeableCombobox(((_node$context7 = node.context) == null ? void 0 : _node$context7.elements.domReference) || null);\n    })) == null || (_ancestors$find = _ancestors$find.context) == null ? void 0 : _ancestors$find.elements.domReference;\n    const insideElements = [floating, rootAncestorComboboxDomReference, ...portalNodes, ...ancestorFloatingNodes, ...getInsideElements(), startDismissButtonRef.current, endDismissButtonRef.current, beforeGuardRef.current, afterGuardRef.current, portalContext == null ? void 0 : portalContext.beforeOutsideRef.current, portalContext == null ? void 0 : portalContext.afterOutsideRef.current, orderRef.current.includes(\"reference\") || isUntrappedTypeableCombobox ? domReference : null].filter((x) => x != null);\n    const cleanup2 = modal || isUntrappedTypeableCombobox ? markOthers(insideElements, !useInert, useInert) : markOthers(insideElements);\n    return () => {\n      cleanup2();\n    };\n  }, [disabled, domReference, floating, modal, orderRef, portalContext, isUntrappedTypeableCombobox, guards, useInert, tree, getNodeId, getInsideElements]);\n  index2(() => {\n    if (disabled || !isHTMLElement(floatingFocusElement)) return;\n    const doc = getDocument(floatingFocusElement);\n    const previouslyFocusedElement = activeElement(doc);\n    queueMicrotask(() => {\n      const focusableElements = getTabbableElements(floatingFocusElement);\n      const initialFocusValue = initialFocusRef.current;\n      const elToFocus = (typeof initialFocusValue === \"number\" ? focusableElements[initialFocusValue] : initialFocusValue.current) || floatingFocusElement;\n      const focusAlreadyInsideFloatingEl = contains(floatingFocusElement, previouslyFocusedElement);\n      if (!ignoreInitialFocus && !focusAlreadyInsideFloatingEl && open) {\n        enqueueFocus(elToFocus, {\n          preventScroll: elToFocus === floatingFocusElement\n        });\n      }\n    });\n  }, [disabled, open, floatingFocusElement, ignoreInitialFocus, getTabbableElements, initialFocusRef]);\n  index2(() => {\n    if (disabled || !floatingFocusElement) return;\n    let preventReturnFocusScroll = false;\n    let focusReference = false;\n    const doc = getDocument(floatingFocusElement);\n    const previouslyFocusedElement = activeElement(doc);\n    const contextData = dataRef.current;\n    let openEvent = contextData.openEvent;\n    addPreviouslyFocusedElement(previouslyFocusedElement);\n    function onOpenChange2(_ref) {\n      let {\n        open: open2,\n        reason,\n        event,\n        nested\n      } = _ref;\n      if (open2) {\n        openEvent = event;\n      }\n      if (reason === \"escape-key\") {\n        focusReference = true;\n      }\n      if ([\"hover\", \"safe-polygon\"].includes(reason) && event.type === \"mouseleave\") {\n        preventReturnFocusRef.current = true;\n      }\n      if (reason !== \"outside-press\") return;\n      if (nested) {\n        preventReturnFocusRef.current = false;\n        preventReturnFocusScroll = true;\n      } else if (isVirtualClick(event) || isVirtualPointerEvent(event)) {\n        preventReturnFocusRef.current = false;\n      } else {\n        let isPreventScrollSupported = false;\n        document.createElement(\"div\").focus({\n          get preventScroll() {\n            isPreventScrollSupported = true;\n            return false;\n          }\n        });\n        if (isPreventScrollSupported) {\n          preventReturnFocusRef.current = false;\n          preventReturnFocusScroll = true;\n        } else {\n          preventReturnFocusRef.current = true;\n        }\n      }\n    }\n    __name(onOpenChange2, \"onOpenChange\");\n    events.on(\"openchange\", onOpenChange2);\n    const fallbackEl = doc.createElement(\"span\");\n    fallbackEl.setAttribute(\"tabindex\", \"-1\");\n    fallbackEl.setAttribute(\"aria-hidden\", \"true\");\n    Object.assign(fallbackEl.style, HIDDEN_STYLES);\n    if (isInsidePortal && domReference) {\n      domReference.insertAdjacentElement(\"afterend\", fallbackEl);\n    }\n    function getReturnElement() {\n      if (typeof returnFocusRef.current === \"boolean\") {\n        return focusReference && domReference ? domReference : getPreviouslyFocusedElement() || fallbackEl;\n      }\n      return returnFocusRef.current.current || fallbackEl;\n    }\n    __name(getReturnElement, \"getReturnElement\");\n    return () => {\n      events.off(\"openchange\", onOpenChange2);\n      const activeEl = activeElement(doc);\n      const isFocusInsideFloatingTree = contains(floating, activeEl) || tree && getChildren(tree.nodesRef.current, getNodeId()).some((node) => {\n        var _node$context8;\n        return contains((_node$context8 = node.context) == null ? void 0 : _node$context8.elements.floating, activeEl);\n      });\n      if (isFocusInsideFloatingTree || !!openEvent && [\"click\", \"mousedown\"].includes(openEvent.type)) {\n        focusReference = true;\n      }\n      const returnElement = getReturnElement();\n      queueMicrotask(() => {\n        const tabbableReturnElement = getFirstTabbableElement(returnElement);\n        if (\n          // eslint-disable-next-line react-hooks/exhaustive-deps\n          returnFocusRef.current && !preventReturnFocusRef.current && isHTMLElement(tabbableReturnElement) && // If the focus moved somewhere else after mount, avoid returning focus\n          // since it likely entered a different element which should be\n          // respected: https://github.com/floating-ui/floating-ui/issues/2607\n          (tabbableReturnElement !== activeEl && activeEl !== doc.body ? isFocusInsideFloatingTree : true)\n        ) {\n          tabbableReturnElement.focus({\n            preventScroll: preventReturnFocusScroll\n          });\n        }\n        fallbackEl.remove();\n      });\n    };\n  }, [disabled, floating, floatingFocusElement, returnFocusRef, dataRef, events, tree, isInsidePortal, domReference, getNodeId]);\n  React45.useEffect(() => {\n    queueMicrotask(() => {\n      preventReturnFocusRef.current = false;\n    });\n  }, [disabled]);\n  index2(() => {\n    if (disabled) return;\n    if (!portalContext) return;\n    portalContext.setFocusManagerState({\n      modal,\n      closeOnFocusOut,\n      open,\n      onOpenChange,\n      domReference\n    });\n    return () => {\n      portalContext.setFocusManagerState(null);\n    };\n  }, [disabled, portalContext, modal, open, onOpenChange, closeOnFocusOut, domReference]);\n  index2(() => {\n    if (disabled) return;\n    if (!floatingFocusElement) return;\n    if (typeof MutationObserver !== \"function\") return;\n    if (ignoreInitialFocus) return;\n    const handleMutation = /* @__PURE__ */ __name(() => {\n      const tabIndex = floatingFocusElement.getAttribute(\"tabindex\");\n      const tabbableContent = getTabbableContent();\n      const activeEl = activeElement(getDocument(floating));\n      const tabbableIndex = tabbableContent.indexOf(activeEl);\n      if (tabbableIndex !== -1) {\n        tabbableIndexRef.current = tabbableIndex;\n      }\n      if (orderRef.current.includes(\"floating\") || activeEl !== domReference && tabbableContent.length === 0) {\n        if (tabIndex !== \"0\") {\n          floatingFocusElement.setAttribute(\"tabindex\", \"0\");\n        }\n      } else if (tabIndex !== \"-1\") {\n        floatingFocusElement.setAttribute(\"tabindex\", \"-1\");\n      }\n    }, \"handleMutation\");\n    handleMutation();\n    const observer = new MutationObserver(handleMutation);\n    observer.observe(floatingFocusElement, {\n      childList: true,\n      subtree: true,\n      attributes: true\n    });\n    return () => {\n      observer.disconnect();\n    };\n  }, [disabled, floating, floatingFocusElement, domReference, orderRef, getTabbableContent, ignoreInitialFocus]);\n  function renderDismissButton(location) {\n    if (disabled || !visuallyHiddenDismiss || !modal) {\n      return null;\n    }\n    return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(VisuallyHiddenDismiss, {\n      ref: location === \"start\" ? startDismissButtonRef : endDismissButtonRef,\n      onClick: /* @__PURE__ */ __name((event) => onOpenChange(false, event.nativeEvent), \"onClick\"),\n      children: typeof visuallyHiddenDismiss === \"string\" ? visuallyHiddenDismiss : \"Dismiss\"\n    });\n  }\n  __name(renderDismissButton, \"renderDismissButton\");\n  const shouldRenderGuards = !disabled && guards && (modal ? !isUntrappedTypeableCombobox : true) && (isInsidePortal || modal);\n  return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_jsx_runtime33.Fragment, {\n    children: [shouldRenderGuards && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(FocusGuard, {\n      \"data-type\": \"inside\",\n      ref: mergedBeforeGuardRef,\n      onFocus: /* @__PURE__ */ __name((event) => {\n        if (modal) {\n          const els = getTabbableElements();\n          enqueueFocus(order[0] === \"reference\" ? els[0] : els[els.length - 1]);\n        } else if (portalContext != null && portalContext.preserveTabOrder && portalContext.portalNode) {\n          preventReturnFocusRef.current = false;\n          if (isOutsideEvent(event, portalContext.portalNode)) {\n            const nextTabbable = getNextTabbable(domReference);\n            nextTabbable == null || nextTabbable.focus();\n          } else {\n            var _portalContext$before;\n            (_portalContext$before = portalContext.beforeOutsideRef.current) == null || _portalContext$before.focus();\n          }\n        }\n      }, \"onFocus\")\n    }), !isUntrappedTypeableCombobox && renderDismissButton(\"start\"), children, renderDismissButton(\"end\"), shouldRenderGuards && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(FocusGuard, {\n      \"data-type\": \"inside\",\n      ref: mergedAfterGuardRef,\n      onFocus: /* @__PURE__ */ __name((event) => {\n        if (modal) {\n          enqueueFocus(getTabbableElements()[0]);\n        } else if (portalContext != null && portalContext.preserveTabOrder && portalContext.portalNode) {\n          if (closeOnFocusOut) {\n            preventReturnFocusRef.current = true;\n          }\n          if (isOutsideEvent(event, portalContext.portalNode)) {\n            const prevTabbable = getPreviousTabbable(domReference);\n            prevTabbable == null || prevTabbable.focus();\n          } else {\n            var _portalContext$afterO;\n            (_portalContext$afterO = portalContext.afterOutsideRef.current) == null || _portalContext$afterO.focus();\n          }\n        }\n      }, \"onFocus\")\n    })]\n  });\n}\n__name(FloatingFocusManager, \"FloatingFocusManager\");\nvar lockCount = 0;\nfunction enableScrollLock() {\n  const isIOS = /iP(hone|ad|od)|iOS/.test(getPlatform());\n  const bodyStyle = document.body.style;\n  const scrollbarX = Math.round(document.documentElement.getBoundingClientRect().left) + document.documentElement.scrollLeft;\n  const paddingProp = scrollbarX ? \"paddingLeft\" : \"paddingRight\";\n  const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n  const scrollX = bodyStyle.left ? parseFloat(bodyStyle.left) : window.scrollX;\n  const scrollY = bodyStyle.top ? parseFloat(bodyStyle.top) : window.scrollY;\n  bodyStyle.overflow = \"hidden\";\n  if (scrollbarWidth) {\n    bodyStyle[paddingProp] = scrollbarWidth + \"px\";\n  }\n  if (isIOS) {\n    var _window$visualViewpor, _window$visualViewpor2;\n    const offsetLeft = ((_window$visualViewpor = window.visualViewport) == null ? void 0 : _window$visualViewpor.offsetLeft) || 0;\n    const offsetTop = ((_window$visualViewpor2 = window.visualViewport) == null ? void 0 : _window$visualViewpor2.offsetTop) || 0;\n    Object.assign(bodyStyle, {\n      position: \"fixed\",\n      top: -(scrollY - Math.floor(offsetTop)) + \"px\",\n      left: -(scrollX - Math.floor(offsetLeft)) + \"px\",\n      right: \"0\"\n    });\n  }\n  return () => {\n    Object.assign(bodyStyle, {\n      overflow: \"\",\n      [paddingProp]: \"\"\n    });\n    if (isIOS) {\n      Object.assign(bodyStyle, {\n        position: \"\",\n        top: \"\",\n        left: \"\",\n        right: \"\"\n      });\n      window.scrollTo(scrollX, scrollY);\n    }\n  };\n}\n__name(enableScrollLock, \"enableScrollLock\");\nvar cleanup = /* @__PURE__ */ __name(() => {\n}, \"cleanup\");\nvar FloatingOverlay = /* @__PURE__ */ React45.forwardRef(/* @__PURE__ */ __name(function FloatingOverlay2(props, ref) {\n  const {\n    lockScroll = false,\n    ...rest\n  } = props;\n  index2(() => {\n    if (!lockScroll) return;\n    lockCount++;\n    if (lockCount === 1) {\n      cleanup = enableScrollLock();\n    }\n    return () => {\n      lockCount--;\n      if (lockCount === 0) {\n        cleanup();\n      }\n    };\n  }, [lockScroll]);\n  return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(\"div\", {\n    ref,\n    ...rest,\n    style: {\n      position: \"fixed\",\n      overflow: \"auto\",\n      top: 0,\n      right: 0,\n      bottom: 0,\n      left: 0,\n      ...rest.style\n    }\n  });\n}, \"FloatingOverlay\"));\nfunction isButtonTarget(event) {\n  return isHTMLElement(event.target) && event.target.tagName === \"BUTTON\";\n}\n__name(isButtonTarget, \"isButtonTarget\");\nfunction isAnchorTarget(event) {\n  return isHTMLElement(event.target) && event.target.tagName === \"A\";\n}\n__name(isAnchorTarget, \"isAnchorTarget\");\nfunction isSpaceIgnored(element) {\n  return isTypeableElement(element);\n}\n__name(isSpaceIgnored, \"isSpaceIgnored\");\nfunction useClick(context2, props) {\n  if (props === void 0) {\n    props = {};\n  }\n  const {\n    open,\n    onOpenChange,\n    dataRef,\n    elements: {\n      domReference\n    }\n  } = context2;\n  const {\n    enabled = true,\n    event: eventOption = \"click\",\n    toggle = true,\n    ignoreMouse = false,\n    keyboardHandlers = true,\n    stickIfOpen = true\n  } = props;\n  const pointerTypeRef = React45.useRef();\n  const didKeyDownRef = React45.useRef(false);\n  const reference = React45.useMemo(() => ({\n    onPointerDown(event) {\n      pointerTypeRef.current = event.pointerType;\n    },\n    onMouseDown(event) {\n      const pointerType = pointerTypeRef.current;\n      if (event.button !== 0) return;\n      if (eventOption === \"click\") return;\n      if (isMouseLikePointerType(pointerType, true) && ignoreMouse) return;\n      if (open && toggle && (dataRef.current.openEvent && stickIfOpen ? dataRef.current.openEvent.type === \"mousedown\" : true)) {\n        onOpenChange(false, event.nativeEvent, \"click\");\n      } else {\n        event.preventDefault();\n        onOpenChange(true, event.nativeEvent, \"click\");\n      }\n    },\n    onClick(event) {\n      const pointerType = pointerTypeRef.current;\n      if (eventOption === \"mousedown\" && pointerTypeRef.current) {\n        pointerTypeRef.current = void 0;\n        return;\n      }\n      if (isMouseLikePointerType(pointerType, true) && ignoreMouse) return;\n      if (open && toggle && (dataRef.current.openEvent && stickIfOpen ? dataRef.current.openEvent.type === \"click\" : true)) {\n        onOpenChange(false, event.nativeEvent, \"click\");\n      } else {\n        onOpenChange(true, event.nativeEvent, \"click\");\n      }\n    },\n    onKeyDown(event) {\n      pointerTypeRef.current = void 0;\n      if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event)) {\n        return;\n      }\n      if (event.key === \" \" && !isSpaceIgnored(domReference)) {\n        event.preventDefault();\n        didKeyDownRef.current = true;\n      }\n      if (isAnchorTarget(event)) {\n        return;\n      }\n      if (event.key === \"Enter\") {\n        if (open && toggle) {\n          onOpenChange(false, event.nativeEvent, \"click\");\n        } else {\n          onOpenChange(true, event.nativeEvent, \"click\");\n        }\n      }\n    },\n    onKeyUp(event) {\n      if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event) || isSpaceIgnored(domReference)) {\n        return;\n      }\n      if (event.key === \" \" && didKeyDownRef.current) {\n        didKeyDownRef.current = false;\n        if (open && toggle) {\n          onOpenChange(false, event.nativeEvent, \"click\");\n        } else {\n          onOpenChange(true, event.nativeEvent, \"click\");\n        }\n      }\n    }\n  }), [dataRef, domReference, eventOption, ignoreMouse, keyboardHandlers, onOpenChange, open, stickIfOpen, toggle]);\n  return React45.useMemo(() => enabled ? {\n    reference\n  } : {}, [enabled, reference]);\n}\n__name(useClick, \"useClick\");\nvar bubbleHandlerKeys = {\n  pointerdown: \"onPointerDown\",\n  mousedown: \"onMouseDown\",\n  click: \"onClick\"\n};\nvar captureHandlerKeys = {\n  pointerdown: \"onPointerDownCapture\",\n  mousedown: \"onMouseDownCapture\",\n  click: \"onClickCapture\"\n};\nvar normalizeProp = /* @__PURE__ */ __name((normalizable) => {\n  var _normalizable$escapeK, _normalizable$outside;\n  return {\n    escapeKey: typeof normalizable === \"boolean\" ? normalizable : (_normalizable$escapeK = normalizable == null ? void 0 : normalizable.escapeKey) != null ? _normalizable$escapeK : false,\n    outsidePress: typeof normalizable === \"boolean\" ? normalizable : (_normalizable$outside = normalizable == null ? void 0 : normalizable.outsidePress) != null ? _normalizable$outside : true\n  };\n}, \"normalizeProp\");\nfunction useDismiss(context2, props) {\n  if (props === void 0) {\n    props = {};\n  }\n  const {\n    open,\n    onOpenChange,\n    elements,\n    dataRef\n  } = context2;\n  const {\n    enabled = true,\n    escapeKey = true,\n    outsidePress: unstable_outsidePress = true,\n    outsidePressEvent = \"pointerdown\",\n    referencePress = false,\n    referencePressEvent = \"pointerdown\",\n    ancestorScroll = false,\n    bubbles,\n    capture\n  } = props;\n  const tree = useFloatingTree();\n  const outsidePressFn = useEffectEvent(typeof unstable_outsidePress === \"function\" ? unstable_outsidePress : () => false);\n  const outsidePress = typeof unstable_outsidePress === \"function\" ? outsidePressFn : unstable_outsidePress;\n  const insideReactTreeRef = React45.useRef(false);\n  const endedOrStartedInsideRef = React45.useRef(false);\n  const {\n    escapeKey: escapeKeyBubbles,\n    outsidePress: outsidePressBubbles\n  } = normalizeProp(bubbles);\n  const {\n    escapeKey: escapeKeyCapture,\n    outsidePress: outsidePressCapture\n  } = normalizeProp(capture);\n  const isComposingRef = React45.useRef(false);\n  const closeOnEscapeKeyDown = useEffectEvent((event) => {\n    var _dataRef$current$floa;\n    if (!open || !enabled || !escapeKey || event.key !== \"Escape\") {\n      return;\n    }\n    if (isComposingRef.current) {\n      return;\n    }\n    const nodeId = (_dataRef$current$floa = dataRef.current.floatingContext) == null ? void 0 : _dataRef$current$floa.nodeId;\n    const children = tree ? getChildren(tree.nodesRef.current, nodeId) : [];\n    if (!escapeKeyBubbles) {\n      event.stopPropagation();\n      if (children.length > 0) {\n        let shouldDismiss = true;\n        children.forEach((child) => {\n          var _child$context;\n          if ((_child$context = child.context) != null && _child$context.open && !child.context.dataRef.current.__escapeKeyBubbles) {\n            shouldDismiss = false;\n            return;\n          }\n        });\n        if (!shouldDismiss) {\n          return;\n        }\n      }\n    }\n    onOpenChange(false, isReactEvent(event) ? event.nativeEvent : event, \"escape-key\");\n  });\n  const closeOnEscapeKeyDownCapture = useEffectEvent((event) => {\n    var _getTarget2;\n    const callback = /* @__PURE__ */ __name(() => {\n      var _getTarget;\n      closeOnEscapeKeyDown(event);\n      (_getTarget = getTarget(event)) == null || _getTarget.removeEventListener(\"keydown\", callback);\n    }, \"callback\");\n    (_getTarget2 = getTarget(event)) == null || _getTarget2.addEventListener(\"keydown\", callback);\n  });\n  const closeOnPressOutside = useEffectEvent((event) => {\n    var _dataRef$current$floa2;\n    const insideReactTree = insideReactTreeRef.current;\n    insideReactTreeRef.current = false;\n    const endedOrStartedInside = endedOrStartedInsideRef.current;\n    endedOrStartedInsideRef.current = false;\n    if (outsidePressEvent === \"click\" && endedOrStartedInside) {\n      return;\n    }\n    if (insideReactTree) {\n      return;\n    }\n    if (typeof outsidePress === \"function\" && !outsidePress(event)) {\n      return;\n    }\n    const target = getTarget(event);\n    const inertSelector = \"[\" + createAttribute(\"inert\") + \"]\";\n    const markers = getDocument(elements.floating).querySelectorAll(inertSelector);\n    let targetRootAncestor = isElement(target) ? target : null;\n    while (targetRootAncestor && !isLastTraversableNode(targetRootAncestor)) {\n      const nextParent = getParentNode(targetRootAncestor);\n      if (isLastTraversableNode(nextParent) || !isElement(nextParent)) {\n        break;\n      }\n      targetRootAncestor = nextParent;\n    }\n    if (markers.length && isElement(target) && !isRootElement(target) && // Clicked on a direct ancestor (e.g. FloatingOverlay).\n    !contains(target, elements.floating) && // If the target root element contains none of the markers, then the\n    // element was injected after the floating element rendered.\n    Array.from(markers).every((marker) => !contains(targetRootAncestor, marker))) {\n      return;\n    }\n    if (isHTMLElement(target) && floating) {\n      const lastTraversableNode = isLastTraversableNode(target);\n      const style = getComputedStyle2(target);\n      const scrollRe = /auto|scroll/;\n      const isScrollableX = lastTraversableNode || scrollRe.test(style.overflowX);\n      const isScrollableY = lastTraversableNode || scrollRe.test(style.overflowY);\n      const canScrollX = isScrollableX && target.clientWidth > 0 && target.scrollWidth > target.clientWidth;\n      const canScrollY = isScrollableY && target.clientHeight > 0 && target.scrollHeight > target.clientHeight;\n      const isRTL2 = style.direction === \"rtl\";\n      const pressedVerticalScrollbar = canScrollY && (isRTL2 ? event.offsetX <= target.offsetWidth - target.clientWidth : event.offsetX > target.clientWidth);\n      const pressedHorizontalScrollbar = canScrollX && event.offsetY > target.clientHeight;\n      if (pressedVerticalScrollbar || pressedHorizontalScrollbar) {\n        return;\n      }\n    }\n    const nodeId = (_dataRef$current$floa2 = dataRef.current.floatingContext) == null ? void 0 : _dataRef$current$floa2.nodeId;\n    const targetIsInsideChildren = tree && getChildren(tree.nodesRef.current, nodeId).some((node) => {\n      var _node$context;\n      return isEventTargetWithin(event, (_node$context = node.context) == null ? void 0 : _node$context.elements.floating);\n    });\n    if (isEventTargetWithin(event, elements.floating) || isEventTargetWithin(event, elements.domReference) || targetIsInsideChildren) {\n      return;\n    }\n    const children = tree ? getChildren(tree.nodesRef.current, nodeId) : [];\n    if (children.length > 0) {\n      let shouldDismiss = true;\n      children.forEach((child) => {\n        var _child$context2;\n        if ((_child$context2 = child.context) != null && _child$context2.open && !child.context.dataRef.current.__outsidePressBubbles) {\n          shouldDismiss = false;\n          return;\n        }\n      });\n      if (!shouldDismiss) {\n        return;\n      }\n    }\n    onOpenChange(false, event, \"outside-press\");\n  });\n  const closeOnPressOutsideCapture = useEffectEvent((event) => {\n    var _getTarget4;\n    const callback = /* @__PURE__ */ __name(() => {\n      var _getTarget3;\n      closeOnPressOutside(event);\n      (_getTarget3 = getTarget(event)) == null || _getTarget3.removeEventListener(outsidePressEvent, callback);\n    }, \"callback\");\n    (_getTarget4 = getTarget(event)) == null || _getTarget4.addEventListener(outsidePressEvent, callback);\n  });\n  React45.useEffect(() => {\n    if (!open || !enabled) {\n      return;\n    }\n    dataRef.current.__escapeKeyBubbles = escapeKeyBubbles;\n    dataRef.current.__outsidePressBubbles = outsidePressBubbles;\n    let compositionTimeout = -1;\n    function onScroll(event) {\n      onOpenChange(false, event, \"ancestor-scroll\");\n    }\n    __name(onScroll, \"onScroll\");\n    function handleCompositionStart() {\n      window.clearTimeout(compositionTimeout);\n      isComposingRef.current = true;\n    }\n    __name(handleCompositionStart, \"handleCompositionStart\");\n    function handleCompositionEnd() {\n      compositionTimeout = window.setTimeout(\n        () => {\n          isComposingRef.current = false;\n        },\n        // 0ms or 1ms don't work in Safari. 5ms appears to consistently work.\n        // Only apply to WebKit for the test to remain 0ms.\n        isWebKit() ? 5 : 0\n      );\n    }\n    __name(handleCompositionEnd, \"handleCompositionEnd\");\n    const doc = getDocument(elements.floating);\n    if (escapeKey) {\n      doc.addEventListener(\"keydown\", escapeKeyCapture ? closeOnEscapeKeyDownCapture : closeOnEscapeKeyDown, escapeKeyCapture);\n      doc.addEventListener(\"compositionstart\", handleCompositionStart);\n      doc.addEventListener(\"compositionend\", handleCompositionEnd);\n    }\n    outsidePress && doc.addEventListener(outsidePressEvent, outsidePressCapture ? closeOnPressOutsideCapture : closeOnPressOutside, outsidePressCapture);\n    let ancestors = [];\n    if (ancestorScroll) {\n      if (isElement(elements.domReference)) {\n        ancestors = getOverflowAncestors(elements.domReference);\n      }\n      if (isElement(elements.floating)) {\n        ancestors = ancestors.concat(getOverflowAncestors(elements.floating));\n      }\n      if (!isElement(elements.reference) && elements.reference && elements.reference.contextElement) {\n        ancestors = ancestors.concat(getOverflowAncestors(elements.reference.contextElement));\n      }\n    }\n    ancestors = ancestors.filter((ancestor) => {\n      var _doc$defaultView;\n      return ancestor !== ((_doc$defaultView = doc.defaultView) == null ? void 0 : _doc$defaultView.visualViewport);\n    });\n    ancestors.forEach((ancestor) => {\n      ancestor.addEventListener(\"scroll\", onScroll, {\n        passive: true\n      });\n    });\n    return () => {\n      if (escapeKey) {\n        doc.removeEventListener(\"keydown\", escapeKeyCapture ? closeOnEscapeKeyDownCapture : closeOnEscapeKeyDown, escapeKeyCapture);\n        doc.removeEventListener(\"compositionstart\", handleCompositionStart);\n        doc.removeEventListener(\"compositionend\", handleCompositionEnd);\n      }\n      outsidePress && doc.removeEventListener(outsidePressEvent, outsidePressCapture ? closeOnPressOutsideCapture : closeOnPressOutside, outsidePressCapture);\n      ancestors.forEach((ancestor) => {\n        ancestor.removeEventListener(\"scroll\", onScroll);\n      });\n      window.clearTimeout(compositionTimeout);\n    };\n  }, [dataRef, elements, escapeKey, outsidePress, outsidePressEvent, open, onOpenChange, ancestorScroll, enabled, escapeKeyBubbles, outsidePressBubbles, closeOnEscapeKeyDown, escapeKeyCapture, closeOnEscapeKeyDownCapture, closeOnPressOutside, outsidePressCapture, closeOnPressOutsideCapture]);\n  React45.useEffect(() => {\n    insideReactTreeRef.current = false;\n  }, [outsidePress, outsidePressEvent]);\n  const reference = React45.useMemo(() => ({\n    onKeyDown: closeOnEscapeKeyDown,\n    ...referencePress && {\n      [bubbleHandlerKeys[referencePressEvent]]: (event) => {\n        onOpenChange(false, event.nativeEvent, \"reference-press\");\n      },\n      ...referencePressEvent !== \"click\" && {\n        onClick(event) {\n          onOpenChange(false, event.nativeEvent, \"reference-press\");\n        }\n      }\n    }\n  }), [closeOnEscapeKeyDown, onOpenChange, referencePress, referencePressEvent]);\n  const floating = React45.useMemo(() => ({\n    onKeyDown: closeOnEscapeKeyDown,\n    onMouseDown() {\n      endedOrStartedInsideRef.current = true;\n    },\n    onMouseUp() {\n      endedOrStartedInsideRef.current = true;\n    },\n    [captureHandlerKeys[outsidePressEvent]]: () => {\n      insideReactTreeRef.current = true;\n    }\n  }), [closeOnEscapeKeyDown, outsidePressEvent]);\n  return React45.useMemo(() => enabled ? {\n    reference,\n    floating\n  } : {}, [enabled, reference, floating]);\n}\n__name(useDismiss, \"useDismiss\");\nfunction useFloatingRootContext(options) {\n  const {\n    open = false,\n    onOpenChange: onOpenChangeProp,\n    elements: elementsProp\n  } = options;\n  const floatingId = useId6();\n  const dataRef = React45.useRef({});\n  const [events] = React45.useState(() => createPubSub());\n  const nested = useFloatingParentNodeId() != null;\n  if (process.env.NODE_ENV !== \"production\") {\n    const optionDomReference = elementsProp.reference;\n    if (optionDomReference && !isElement(optionDomReference)) {\n      error(\"Cannot pass a virtual element to the `elements.reference` option,\", \"as it must be a real DOM element. Use `refs.setPositionReference()`\", \"instead.\");\n    }\n  }\n  const [positionReference, setPositionReference] = React45.useState(elementsProp.reference);\n  const onOpenChange = useEffectEvent((open2, event, reason) => {\n    dataRef.current.openEvent = open2 ? event : void 0;\n    events.emit(\"openchange\", {\n      open: open2,\n      event,\n      reason,\n      nested\n    });\n    onOpenChangeProp == null || onOpenChangeProp(open2, event, reason);\n  });\n  const refs = React45.useMemo(() => ({\n    setPositionReference\n  }), []);\n  const elements = React45.useMemo(() => ({\n    reference: positionReference || elementsProp.reference || null,\n    floating: elementsProp.floating || null,\n    domReference: elementsProp.reference\n  }), [positionReference, elementsProp.reference, elementsProp.floating]);\n  return React45.useMemo(() => ({\n    dataRef,\n    open,\n    onOpenChange,\n    elements,\n    events,\n    floatingId,\n    refs\n  }), [open, onOpenChange, elements, events, floatingId, refs]);\n}\n__name(useFloatingRootContext, \"useFloatingRootContext\");\nfunction useFloating3(options) {\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    nodeId\n  } = options;\n  const internalRootContext = useFloatingRootContext({\n    ...options,\n    elements: {\n      reference: null,\n      floating: null,\n      ...options.elements\n    }\n  });\n  const rootContext = options.rootContext || internalRootContext;\n  const computedElements = rootContext.elements;\n  const [_domReference, setDomReference] = React45.useState(null);\n  const [positionReference, _setPositionReference] = React45.useState(null);\n  const optionDomReference = computedElements == null ? void 0 : computedElements.domReference;\n  const domReference = optionDomReference || _domReference;\n  const domReferenceRef = React45.useRef(null);\n  const tree = useFloatingTree();\n  index2(() => {\n    if (domReference) {\n      domReferenceRef.current = domReference;\n    }\n  }, [domReference]);\n  const position = useFloating({\n    ...options,\n    elements: {\n      ...computedElements,\n      ...positionReference && {\n        reference: positionReference\n      }\n    }\n  });\n  const setPositionReference = React45.useCallback((node) => {\n    const computedPositionReference = isElement(node) ? {\n      getBoundingClientRect: /* @__PURE__ */ __name(() => node.getBoundingClientRect(), \"getBoundingClientRect\"),\n      getClientRects: /* @__PURE__ */ __name(() => node.getClientRects(), \"getClientRects\"),\n      contextElement: node\n    } : node;\n    _setPositionReference(computedPositionReference);\n    position.refs.setReference(computedPositionReference);\n  }, [position.refs]);\n  const setReference = React45.useCallback((node) => {\n    if (isElement(node) || node === null) {\n      domReferenceRef.current = node;\n      setDomReference(node);\n    }\n    if (isElement(position.refs.reference.current) || position.refs.reference.current === null || // Don't allow setting virtual elements using the old technique back to\n    // `null` to support `positionReference` + an unstable `reference`\n    // callback ref.\n    node !== null && !isElement(node)) {\n      position.refs.setReference(node);\n    }\n  }, [position.refs]);\n  const refs = React45.useMemo(() => ({\n    ...position.refs,\n    setReference,\n    setPositionReference,\n    domReference: domReferenceRef\n  }), [position.refs, setReference, setPositionReference]);\n  const elements = React45.useMemo(() => ({\n    ...position.elements,\n    domReference\n  }), [position.elements, domReference]);\n  const context2 = React45.useMemo(() => ({\n    ...position,\n    ...rootContext,\n    refs,\n    elements,\n    nodeId\n  }), [position, refs, elements, nodeId, rootContext]);\n  index2(() => {\n    rootContext.dataRef.current.floatingContext = context2;\n    const node = tree == null ? void 0 : tree.nodesRef.current.find((node2) => node2.id === nodeId);\n    if (node) {\n      node.context = context2;\n    }\n  });\n  return React45.useMemo(() => ({\n    ...position,\n    context: context2,\n    refs,\n    elements\n  }), [position, refs, elements, context2]);\n}\n__name(useFloating3, \"useFloating\");\nfunction getUserAgent2() {\n  const uaData = navigator.userAgentData;\n  if (uaData && Array.isArray(uaData.brands)) {\n    return uaData.brands.map((_ref) => {\n      let {\n        brand,\n        version\n      } = _ref;\n      return brand + \"/\" + version;\n    }).join(\" \");\n  }\n  return navigator.userAgent;\n}\n__name(getUserAgent2, \"getUserAgent\");\nfunction isJSDOM2() {\n  return getUserAgent2().includes(\"jsdom/\");\n}\n__name(isJSDOM2, \"isJSDOM\");\nfunction matchesFocusVisible(element) {\n  if (!element || isJSDOM2()) return true;\n  try {\n    return element.matches(\":focus-visible\");\n  } catch (_e) {\n    return true;\n  }\n}\n__name(matchesFocusVisible, \"matchesFocusVisible\");\nfunction isMacSafari() {\n  return isMac() && isSafari();\n}\n__name(isMacSafari, \"isMacSafari\");\nfunction useFocus(context2, props) {\n  if (props === void 0) {\n    props = {};\n  }\n  const {\n    open,\n    onOpenChange,\n    events,\n    dataRef,\n    elements\n  } = context2;\n  const {\n    enabled = true,\n    visibleOnly = true\n  } = props;\n  const blockFocusRef = React45.useRef(false);\n  const timeoutRef = React45.useRef(-1);\n  const keyboardModalityRef = React45.useRef(true);\n  React45.useEffect(() => {\n    if (!enabled) return;\n    const win = getWindow(elements.domReference);\n    function onBlur() {\n      if (!open && isHTMLElement(elements.domReference) && elements.domReference === activeElement(getDocument(elements.domReference))) {\n        blockFocusRef.current = true;\n      }\n    }\n    __name(onBlur, \"onBlur\");\n    function onKeyDown() {\n      keyboardModalityRef.current = true;\n    }\n    __name(onKeyDown, \"onKeyDown\");\n    function onPointerDown() {\n      keyboardModalityRef.current = false;\n    }\n    __name(onPointerDown, \"onPointerDown\");\n    win.addEventListener(\"blur\", onBlur);\n    if (isMacSafari()) {\n      win.addEventListener(\"keydown\", onKeyDown, true);\n      win.addEventListener(\"pointerdown\", onPointerDown, true);\n    }\n    return () => {\n      win.removeEventListener(\"blur\", onBlur);\n      if (isMacSafari()) {\n        win.removeEventListener(\"keydown\", onKeyDown, true);\n        win.removeEventListener(\"pointerdown\", onPointerDown, true);\n      }\n    };\n  }, [elements.domReference, open, enabled]);\n  React45.useEffect(() => {\n    if (!enabled) return;\n    function onOpenChange2(_ref) {\n      let {\n        reason\n      } = _ref;\n      if (reason === \"reference-press\" || reason === \"escape-key\") {\n        blockFocusRef.current = true;\n      }\n    }\n    __name(onOpenChange2, \"onOpenChange\");\n    events.on(\"openchange\", onOpenChange2);\n    return () => {\n      events.off(\"openchange\", onOpenChange2);\n    };\n  }, [events, enabled]);\n  React45.useEffect(() => {\n    return () => {\n      clearTimeoutIfSet(timeoutRef);\n    };\n  }, []);\n  const reference = React45.useMemo(() => ({\n    onMouseLeave() {\n      blockFocusRef.current = false;\n    },\n    onFocus(event) {\n      if (blockFocusRef.current) return;\n      const target = getTarget(event.nativeEvent);\n      if (visibleOnly && isElement(target)) {\n        if (isMacSafari() && !event.relatedTarget) {\n          if (!keyboardModalityRef.current && !isTypeableElement(target)) {\n            return;\n          }\n        } else if (!matchesFocusVisible(target)) {\n          return;\n        }\n      }\n      onOpenChange(true, event.nativeEvent, \"focus\");\n    },\n    onBlur(event) {\n      blockFocusRef.current = false;\n      const relatedTarget = event.relatedTarget;\n      const nativeEvent = event.nativeEvent;\n      const movedToFocusGuard = isElement(relatedTarget) && relatedTarget.hasAttribute(createAttribute(\"focus-guard\")) && relatedTarget.getAttribute(\"data-type\") === \"outside\";\n      timeoutRef.current = window.setTimeout(() => {\n        var _dataRef$current$floa;\n        const activeEl = activeElement(elements.domReference ? elements.domReference.ownerDocument : document);\n        if (!relatedTarget && activeEl === elements.domReference) return;\n        if (contains((_dataRef$current$floa = dataRef.current.floatingContext) == null ? void 0 : _dataRef$current$floa.refs.floating.current, activeEl) || contains(elements.domReference, activeEl) || movedToFocusGuard) {\n          return;\n        }\n        onOpenChange(false, nativeEvent, \"focus\");\n      });\n    }\n  }), [dataRef, elements.domReference, onOpenChange, visibleOnly]);\n  return React45.useMemo(() => enabled ? {\n    reference\n  } : {}, [enabled, reference]);\n}\n__name(useFocus, \"useFocus\");\nvar ACTIVE_KEY = \"active\";\nvar SELECTED_KEY = \"selected\";\nfunction mergeProps(userProps, propsList, elementKey) {\n  const map = /* @__PURE__ */ new Map();\n  const isItem = elementKey === \"item\";\n  let domUserProps = userProps;\n  if (isItem && userProps) {\n    const {\n      [ACTIVE_KEY]: _,\n      [SELECTED_KEY]: __,\n      ...validProps\n    } = userProps;\n    domUserProps = validProps;\n  }\n  return {\n    ...elementKey === \"floating\" && {\n      tabIndex: -1,\n      [FOCUSABLE_ATTRIBUTE]: \"\"\n    },\n    ...domUserProps,\n    ...propsList.map((value) => {\n      const propsOrGetProps = value ? value[elementKey] : null;\n      if (typeof propsOrGetProps === \"function\") {\n        return userProps ? propsOrGetProps(userProps) : null;\n      }\n      return propsOrGetProps;\n    }).concat(userProps).reduce((acc, props) => {\n      if (!props) {\n        return acc;\n      }\n      Object.entries(props).forEach((_ref) => {\n        let [key, value] = _ref;\n        if (isItem && [ACTIVE_KEY, SELECTED_KEY].includes(key)) {\n          return;\n        }\n        if (key.indexOf(\"on\") === 0) {\n          if (!map.has(key)) {\n            map.set(key, []);\n          }\n          if (typeof value === \"function\") {\n            var _map$get;\n            (_map$get = map.get(key)) == null || _map$get.push(value);\n            acc[key] = function() {\n              var _map$get2;\n              for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n                args[_key] = arguments[_key];\n              }\n              return (_map$get2 = map.get(key)) == null ? void 0 : _map$get2.map((fn) => fn(...args)).find((val) => val !== void 0);\n            };\n          }\n        } else {\n          acc[key] = value;\n        }\n      });\n      return acc;\n    }, {})\n  };\n}\n__name(mergeProps, \"mergeProps\");\nfunction useInteractions(propsList) {\n  if (propsList === void 0) {\n    propsList = [];\n  }\n  const referenceDeps = propsList.map((key) => key == null ? void 0 : key.reference);\n  const floatingDeps = propsList.map((key) => key == null ? void 0 : key.floating);\n  const itemDeps = propsList.map((key) => key == null ? void 0 : key.item);\n  const getReferenceProps = React45.useCallback(\n    (userProps) => mergeProps(userProps, propsList, \"reference\"),\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n    referenceDeps\n  );\n  const getFloatingProps = React45.useCallback(\n    (userProps) => mergeProps(userProps, propsList, \"floating\"),\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n    floatingDeps\n  );\n  const getItemProps = React45.useCallback(\n    (userProps) => mergeProps(userProps, propsList, \"item\"),\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n    itemDeps\n  );\n  return React45.useMemo(() => ({\n    getReferenceProps,\n    getFloatingProps,\n    getItemProps\n  }), [getReferenceProps, getFloatingProps, getItemProps]);\n}\n__name(useInteractions, \"useInteractions\");\nvar ESCAPE = \"Escape\";\nfunction doSwitch(orientation, vertical, horizontal) {\n  switch (orientation) {\n    case \"vertical\":\n      return vertical;\n    case \"horizontal\":\n      return horizontal;\n    default:\n      return vertical || horizontal;\n  }\n}\n__name(doSwitch, \"doSwitch\");\nfunction isMainOrientationKey(key, orientation) {\n  const vertical = key === ARROW_UP || key === ARROW_DOWN;\n  const horizontal = key === ARROW_LEFT || key === ARROW_RIGHT;\n  return doSwitch(orientation, vertical, horizontal);\n}\n__name(isMainOrientationKey, \"isMainOrientationKey\");\nfunction isMainOrientationToEndKey(key, orientation, rtl) {\n  const vertical = key === ARROW_DOWN;\n  const horizontal = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n  return doSwitch(orientation, vertical, horizontal) || key === \"Enter\" || key === \" \" || key === \"\";\n}\n__name(isMainOrientationToEndKey, \"isMainOrientationToEndKey\");\nfunction isCrossOrientationOpenKey(key, orientation, rtl) {\n  const vertical = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n  const horizontal = key === ARROW_DOWN;\n  return doSwitch(orientation, vertical, horizontal);\n}\n__name(isCrossOrientationOpenKey, \"isCrossOrientationOpenKey\");\nfunction isCrossOrientationCloseKey(key, orientation, rtl, cols) {\n  const vertical = rtl ? key === ARROW_RIGHT : key === ARROW_LEFT;\n  const horizontal = key === ARROW_UP;\n  if (orientation === \"both\" || orientation === \"horizontal\" && cols && cols > 1) {\n    return key === ESCAPE;\n  }\n  return doSwitch(orientation, vertical, horizontal);\n}\n__name(isCrossOrientationCloseKey, \"isCrossOrientationCloseKey\");\nfunction useListNavigation(context2, props) {\n  const {\n    open,\n    onOpenChange,\n    elements\n  } = context2;\n  const {\n    listRef,\n    activeIndex,\n    onNavigate: unstable_onNavigate = /* @__PURE__ */ __name(() => {\n    }, \"unstable_onNavigate\"),\n    enabled = true,\n    selectedIndex = null,\n    allowEscape = false,\n    loop = false,\n    nested = false,\n    rtl = false,\n    virtual = false,\n    focusItemOnOpen = \"auto\",\n    focusItemOnHover = true,\n    openOnArrowKeyDown = true,\n    disabledIndices = void 0,\n    orientation = \"vertical\",\n    cols = 1,\n    scrollItemIntoView = true,\n    virtualItemRef,\n    itemSizes,\n    dense = false\n  } = props;\n  if (process.env.NODE_ENV !== \"production\") {\n    if (allowEscape) {\n      if (!loop) {\n        warn(\"`useListNavigation` looping must be enabled to allow escaping.\");\n      }\n      if (!virtual) {\n        warn(\"`useListNavigation` must be virtual to allow escaping.\");\n      }\n    }\n    if (orientation === \"vertical\" && cols > 1) {\n      warn(\"In grid list navigation mode (`cols` > 1), the `orientation` should\", 'be either \"horizontal\" or \"both\".');\n    }\n  }\n  const floatingFocusElement = getFloatingFocusElement(elements.floating);\n  const floatingFocusElementRef = useLatestRef2(floatingFocusElement);\n  const parentId = useFloatingParentNodeId();\n  const tree = useFloatingTree();\n  index2(() => {\n    context2.dataRef.current.orientation = orientation;\n  }, [context2, orientation]);\n  const onNavigate = useEffectEvent(() => {\n    unstable_onNavigate(indexRef.current === -1 ? null : indexRef.current);\n  });\n  const typeableComboboxReference = isTypeableCombobox(elements.domReference);\n  const focusItemOnOpenRef = React45.useRef(focusItemOnOpen);\n  const indexRef = React45.useRef(selectedIndex != null ? selectedIndex : -1);\n  const keyRef = React45.useRef(null);\n  const isPointerModalityRef = React45.useRef(true);\n  const previousOnNavigateRef = React45.useRef(onNavigate);\n  const previousMountedRef = React45.useRef(!!elements.floating);\n  const previousOpenRef = React45.useRef(open);\n  const forceSyncFocusRef = React45.useRef(false);\n  const forceScrollIntoViewRef = React45.useRef(false);\n  const disabledIndicesRef = useLatestRef2(disabledIndices);\n  const latestOpenRef = useLatestRef2(open);\n  const scrollItemIntoViewRef = useLatestRef2(scrollItemIntoView);\n  const selectedIndexRef = useLatestRef2(selectedIndex);\n  const [activeId, setActiveId] = React45.useState();\n  const [virtualId, setVirtualId] = React45.useState();\n  const focusItem = useEffectEvent(() => {\n    function runFocus(item2) {\n      if (virtual) {\n        setActiveId(item2.id);\n        tree == null || tree.events.emit(\"virtualfocus\", item2);\n        if (virtualItemRef) {\n          virtualItemRef.current = item2;\n        }\n      } else {\n        enqueueFocus(item2, {\n          sync: forceSyncFocusRef.current,\n          preventScroll: true\n        });\n      }\n    }\n    __name(runFocus, \"runFocus\");\n    const initialItem = listRef.current[indexRef.current];\n    if (initialItem) {\n      runFocus(initialItem);\n    }\n    const scheduler = forceSyncFocusRef.current ? (v) => v() : requestAnimationFrame;\n    scheduler(() => {\n      const waitedItem = listRef.current[indexRef.current] || initialItem;\n      if (!waitedItem) return;\n      if (!initialItem) {\n        runFocus(waitedItem);\n      }\n      const scrollIntoViewOptions = scrollItemIntoViewRef.current;\n      const shouldScrollIntoView = scrollIntoViewOptions && item && (forceScrollIntoViewRef.current || !isPointerModalityRef.current);\n      if (shouldScrollIntoView) {\n        waitedItem.scrollIntoView == null || waitedItem.scrollIntoView(typeof scrollIntoViewOptions === \"boolean\" ? {\n          block: \"nearest\",\n          inline: \"nearest\"\n        } : scrollIntoViewOptions);\n      }\n    });\n  });\n  index2(() => {\n    if (!enabled) return;\n    if (open && elements.floating) {\n      if (focusItemOnOpenRef.current && selectedIndex != null) {\n        forceScrollIntoViewRef.current = true;\n        indexRef.current = selectedIndex;\n        onNavigate();\n      }\n    } else if (previousMountedRef.current) {\n      indexRef.current = -1;\n      previousOnNavigateRef.current();\n    }\n  }, [enabled, open, elements.floating, selectedIndex, onNavigate]);\n  index2(() => {\n    if (!enabled) return;\n    if (!open) return;\n    if (!elements.floating) return;\n    if (activeIndex == null) {\n      forceSyncFocusRef.current = false;\n      if (selectedIndexRef.current != null) {\n        return;\n      }\n      if (previousMountedRef.current) {\n        indexRef.current = -1;\n        focusItem();\n      }\n      if ((!previousOpenRef.current || !previousMountedRef.current) && focusItemOnOpenRef.current && (keyRef.current != null || focusItemOnOpenRef.current === true && keyRef.current == null)) {\n        let runs = 0;\n        const waitForListPopulated = /* @__PURE__ */ __name(() => {\n          if (listRef.current[0] == null) {\n            if (runs < 2) {\n              const scheduler = runs ? requestAnimationFrame : queueMicrotask;\n              scheduler(waitForListPopulated);\n            }\n            runs++;\n          } else {\n            indexRef.current = keyRef.current == null || isMainOrientationToEndKey(keyRef.current, orientation, rtl) || nested ? getMinIndex(listRef, disabledIndicesRef.current) : getMaxIndex(listRef, disabledIndicesRef.current);\n            keyRef.current = null;\n            onNavigate();\n          }\n        }, \"waitForListPopulated\");\n        waitForListPopulated();\n      }\n    } else if (!isIndexOutOfBounds(listRef, activeIndex)) {\n      indexRef.current = activeIndex;\n      focusItem();\n      forceScrollIntoViewRef.current = false;\n    }\n  }, [enabled, open, elements.floating, activeIndex, selectedIndexRef, nested, listRef, orientation, rtl, onNavigate, focusItem, disabledIndicesRef]);\n  index2(() => {\n    var _nodes$find;\n    if (!enabled || elements.floating || !tree || virtual || !previousMountedRef.current) {\n      return;\n    }\n    const nodes = tree.nodesRef.current;\n    const parent = (_nodes$find = nodes.find((node) => node.id === parentId)) == null || (_nodes$find = _nodes$find.context) == null ? void 0 : _nodes$find.elements.floating;\n    const activeEl = activeElement(getDocument(elements.floating));\n    const treeContainsActiveEl = nodes.some((node) => node.context && contains(node.context.elements.floating, activeEl));\n    if (parent && !treeContainsActiveEl && isPointerModalityRef.current) {\n      parent.focus({\n        preventScroll: true\n      });\n    }\n  }, [enabled, elements.floating, tree, parentId, virtual]);\n  index2(() => {\n    if (!enabled) return;\n    if (!tree) return;\n    if (!virtual) return;\n    if (parentId) return;\n    function handleVirtualFocus(item2) {\n      setVirtualId(item2.id);\n      if (virtualItemRef) {\n        virtualItemRef.current = item2;\n      }\n    }\n    __name(handleVirtualFocus, \"handleVirtualFocus\");\n    tree.events.on(\"virtualfocus\", handleVirtualFocus);\n    return () => {\n      tree.events.off(\"virtualfocus\", handleVirtualFocus);\n    };\n  }, [enabled, tree, virtual, parentId, virtualItemRef]);\n  index2(() => {\n    previousOnNavigateRef.current = onNavigate;\n    previousOpenRef.current = open;\n    previousMountedRef.current = !!elements.floating;\n  });\n  index2(() => {\n    if (!open) {\n      keyRef.current = null;\n    }\n  }, [open]);\n  const hasActiveIndex = activeIndex != null;\n  const item = React45.useMemo(() => {\n    function syncCurrentTarget(currentTarget) {\n      if (!open) return;\n      const index3 = listRef.current.indexOf(currentTarget);\n      if (index3 !== -1 && indexRef.current !== index3) {\n        indexRef.current = index3;\n        onNavigate();\n      }\n    }\n    __name(syncCurrentTarget, \"syncCurrentTarget\");\n    const props2 = {\n      onFocus(_ref) {\n        let {\n          currentTarget\n        } = _ref;\n        forceSyncFocusRef.current = true;\n        syncCurrentTarget(currentTarget);\n      },\n      onClick: /* @__PURE__ */ __name((_ref2) => {\n        let {\n          currentTarget\n        } = _ref2;\n        return currentTarget.focus({\n          preventScroll: true\n        });\n      }, \"onClick\"),\n      // Safari\n      ...focusItemOnHover && {\n        onMouseMove(_ref3) {\n          let {\n            currentTarget\n          } = _ref3;\n          forceSyncFocusRef.current = true;\n          forceScrollIntoViewRef.current = false;\n          syncCurrentTarget(currentTarget);\n        },\n        onPointerLeave(_ref4) {\n          let {\n            pointerType\n          } = _ref4;\n          if (!isPointerModalityRef.current || pointerType === \"touch\") {\n            return;\n          }\n          forceSyncFocusRef.current = true;\n          indexRef.current = -1;\n          onNavigate();\n          if (!virtual) {\n            var _floatingFocusElement;\n            (_floatingFocusElement = floatingFocusElementRef.current) == null || _floatingFocusElement.focus({\n              preventScroll: true\n            });\n          }\n        }\n      }\n    };\n    return props2;\n  }, [open, floatingFocusElementRef, focusItemOnHover, listRef, onNavigate, virtual]);\n  const commonOnKeyDown = useEffectEvent((event) => {\n    isPointerModalityRef.current = false;\n    forceSyncFocusRef.current = true;\n    if (event.which === 229) {\n      return;\n    }\n    if (!latestOpenRef.current && event.currentTarget === floatingFocusElementRef.current) {\n      return;\n    }\n    if (nested && isCrossOrientationCloseKey(event.key, orientation, rtl, cols)) {\n      stopEvent(event);\n      onOpenChange(false, event.nativeEvent, \"list-navigation\");\n      if (isHTMLElement(elements.domReference)) {\n        if (virtual) {\n          tree == null || tree.events.emit(\"virtualfocus\", elements.domReference);\n        } else {\n          elements.domReference.focus();\n        }\n      }\n      return;\n    }\n    const currentIndex = indexRef.current;\n    const minIndex = getMinIndex(listRef, disabledIndices);\n    const maxIndex = getMaxIndex(listRef, disabledIndices);\n    if (!typeableComboboxReference) {\n      if (event.key === \"Home\") {\n        stopEvent(event);\n        indexRef.current = minIndex;\n        onNavigate();\n      }\n      if (event.key === \"End\") {\n        stopEvent(event);\n        indexRef.current = maxIndex;\n        onNavigate();\n      }\n    }\n    if (cols > 1) {\n      const sizes = itemSizes || Array.from({\n        length: listRef.current.length\n      }, () => ({\n        width: 1,\n        height: 1\n      }));\n      const cellMap = buildCellMap(sizes, cols, dense);\n      const minGridIndex = cellMap.findIndex((index4) => index4 != null && !isDisabled(listRef.current, index4, disabledIndices));\n      const maxGridIndex = cellMap.reduce((foundIndex, index4, cellIndex) => index4 != null && !isDisabled(listRef.current, index4, disabledIndices) ? cellIndex : foundIndex, -1);\n      const index3 = cellMap[getGridNavigatedIndex({\n        current: cellMap.map((itemIndex) => itemIndex != null ? listRef.current[itemIndex] : null)\n      }, {\n        event,\n        orientation,\n        loop,\n        rtl,\n        cols,\n        // treat undefined (empty grid spaces) as disabled indices so we\n        // don't end up in them\n        disabledIndices: getCellIndices([...disabledIndices || listRef.current.map((_, index4) => isDisabled(listRef.current, index4) ? index4 : void 0), void 0], cellMap),\n        minIndex: minGridIndex,\n        maxIndex: maxGridIndex,\n        prevIndex: getCellIndexOfCorner(\n          indexRef.current > maxIndex ? minIndex : indexRef.current,\n          sizes,\n          cellMap,\n          cols,\n          // use a corner matching the edge closest to the direction\n          // we're moving in so we don't end up in the same item. Prefer\n          // top/left over bottom/right.\n          event.key === ARROW_DOWN ? \"bl\" : event.key === (rtl ? ARROW_LEFT : ARROW_RIGHT) ? \"tr\" : \"tl\"\n        ),\n        stopEvent: true\n      })];\n      if (index3 != null) {\n        indexRef.current = index3;\n        onNavigate();\n      }\n      if (orientation === \"both\") {\n        return;\n      }\n    }\n    if (isMainOrientationKey(event.key, orientation)) {\n      stopEvent(event);\n      if (open && !virtual && activeElement(event.currentTarget.ownerDocument) === event.currentTarget) {\n        indexRef.current = isMainOrientationToEndKey(event.key, orientation, rtl) ? minIndex : maxIndex;\n        onNavigate();\n        return;\n      }\n      if (isMainOrientationToEndKey(event.key, orientation, rtl)) {\n        if (loop) {\n          indexRef.current = currentIndex >= maxIndex ? allowEscape && currentIndex !== listRef.current.length ? -1 : minIndex : findNonDisabledIndex(listRef, {\n            startingIndex: currentIndex,\n            disabledIndices\n          });\n        } else {\n          indexRef.current = Math.min(maxIndex, findNonDisabledIndex(listRef, {\n            startingIndex: currentIndex,\n            disabledIndices\n          }));\n        }\n      } else {\n        if (loop) {\n          indexRef.current = currentIndex <= minIndex ? allowEscape && currentIndex !== -1 ? listRef.current.length : maxIndex : findNonDisabledIndex(listRef, {\n            startingIndex: currentIndex,\n            decrement: true,\n            disabledIndices\n          });\n        } else {\n          indexRef.current = Math.max(minIndex, findNonDisabledIndex(listRef, {\n            startingIndex: currentIndex,\n            decrement: true,\n            disabledIndices\n          }));\n        }\n      }\n      if (isIndexOutOfBounds(listRef, indexRef.current)) {\n        indexRef.current = -1;\n      }\n      onNavigate();\n    }\n  });\n  const ariaActiveDescendantProp = React45.useMemo(() => {\n    return virtual && open && hasActiveIndex && {\n      \"aria-activedescendant\": virtualId || activeId\n    };\n  }, [virtual, open, hasActiveIndex, virtualId, activeId]);\n  const floating = React45.useMemo(() => {\n    return {\n      \"aria-orientation\": orientation === \"both\" ? void 0 : orientation,\n      ...!typeableComboboxReference ? ariaActiveDescendantProp : {},\n      onKeyDown: commonOnKeyDown,\n      onPointerMove() {\n        isPointerModalityRef.current = true;\n      }\n    };\n  }, [ariaActiveDescendantProp, commonOnKeyDown, orientation, typeableComboboxReference]);\n  const reference = React45.useMemo(() => {\n    function checkVirtualMouse(event) {\n      if (focusItemOnOpen === \"auto\" && isVirtualClick(event.nativeEvent)) {\n        focusItemOnOpenRef.current = true;\n      }\n    }\n    __name(checkVirtualMouse, \"checkVirtualMouse\");\n    function checkVirtualPointer(event) {\n      focusItemOnOpenRef.current = focusItemOnOpen;\n      if (focusItemOnOpen === \"auto\" && isVirtualPointerEvent(event.nativeEvent)) {\n        focusItemOnOpenRef.current = true;\n      }\n    }\n    __name(checkVirtualPointer, \"checkVirtualPointer\");\n    return {\n      ...ariaActiveDescendantProp,\n      onKeyDown(event) {\n        var _tree$nodesRef$curren;\n        isPointerModalityRef.current = false;\n        const isArrowKey = event.key.startsWith(\"Arrow\");\n        const isHomeOrEndKey = [\"Home\", \"End\"].includes(event.key);\n        const isMoveKey = isArrowKey || isHomeOrEndKey;\n        const parentOrientation = tree == null || (_tree$nodesRef$curren = tree.nodesRef.current.find((node) => node.id === parentId)) == null || (_tree$nodesRef$curren = _tree$nodesRef$curren.context) == null || (_tree$nodesRef$curren = _tree$nodesRef$curren.dataRef) == null ? void 0 : _tree$nodesRef$curren.current.orientation;\n        const isCrossOpenKey = isCrossOrientationOpenKey(event.key, orientation, rtl);\n        const isCrossCloseKey = isCrossOrientationCloseKey(event.key, orientation, rtl, cols);\n        const isParentCrossOpenKey = isCrossOrientationOpenKey(event.key, parentOrientation, rtl);\n        const isMainKey = isMainOrientationKey(event.key, orientation);\n        const isNavigationKey = (nested ? isParentCrossOpenKey : isMainKey) || event.key === \"Enter\" || event.key.trim() === \"\";\n        if (virtual && open) {\n          const rootNode = tree == null ? void 0 : tree.nodesRef.current.find((node) => node.parentId == null);\n          const deepestNode = tree && rootNode ? getDeepestNode(tree.nodesRef.current, rootNode.id) : null;\n          if (isMoveKey && deepestNode && virtualItemRef) {\n            const eventObject = new KeyboardEvent(\"keydown\", {\n              key: event.key,\n              bubbles: true\n            });\n            if (isCrossOpenKey || isCrossCloseKey) {\n              var _deepestNode$context, _deepestNode$context2;\n              const isCurrentTarget = ((_deepestNode$context = deepestNode.context) == null ? void 0 : _deepestNode$context.elements.domReference) === event.currentTarget;\n              const dispatchItem = isCrossCloseKey && !isCurrentTarget ? (_deepestNode$context2 = deepestNode.context) == null ? void 0 : _deepestNode$context2.elements.domReference : isCrossOpenKey ? listRef.current.find((item2) => (item2 == null ? void 0 : item2.id) === activeId) : null;\n              if (dispatchItem) {\n                stopEvent(event);\n                dispatchItem.dispatchEvent(eventObject);\n                setVirtualId(void 0);\n              }\n            }\n            if ((isMainKey || isHomeOrEndKey) && deepestNode.context) {\n              if (deepestNode.context.open && deepestNode.parentId && event.currentTarget !== deepestNode.context.elements.domReference) {\n                var _deepestNode$context$;\n                stopEvent(event);\n                (_deepestNode$context$ = deepestNode.context.elements.domReference) == null || _deepestNode$context$.dispatchEvent(eventObject);\n                return;\n              }\n            }\n          }\n          return commonOnKeyDown(event);\n        }\n        if (!open && !openOnArrowKeyDown && isArrowKey) {\n          return;\n        }\n        if (isNavigationKey) {\n          const isParentMainKey = isMainOrientationKey(event.key, parentOrientation);\n          keyRef.current = nested && isParentMainKey ? null : event.key;\n        }\n        if (nested) {\n          if (isParentCrossOpenKey) {\n            stopEvent(event);\n            if (open) {\n              indexRef.current = getMinIndex(listRef, disabledIndicesRef.current);\n              onNavigate();\n            } else {\n              onOpenChange(true, event.nativeEvent, \"list-navigation\");\n            }\n          }\n          return;\n        }\n        if (isMainKey) {\n          if (selectedIndex != null) {\n            indexRef.current = selectedIndex;\n          }\n          stopEvent(event);\n          if (!open && openOnArrowKeyDown) {\n            onOpenChange(true, event.nativeEvent, \"list-navigation\");\n          } else {\n            commonOnKeyDown(event);\n          }\n          if (open) {\n            onNavigate();\n          }\n        }\n      },\n      onFocus() {\n        if (open && !virtual) {\n          indexRef.current = -1;\n          onNavigate();\n        }\n      },\n      onPointerDown: checkVirtualPointer,\n      onPointerEnter: checkVirtualPointer,\n      onMouseDown: checkVirtualMouse,\n      onClick: checkVirtualMouse\n    };\n  }, [activeId, ariaActiveDescendantProp, cols, commonOnKeyDown, disabledIndicesRef, focusItemOnOpen, listRef, nested, onNavigate, onOpenChange, open, openOnArrowKeyDown, orientation, parentId, rtl, selectedIndex, tree, virtual, virtualItemRef]);\n  return React45.useMemo(() => enabled ? {\n    reference,\n    floating,\n    item\n  } : {}, [enabled, reference, floating, item]);\n}\n__name(useListNavigation, \"useListNavigation\");\nvar componentRoleToAriaRoleMap = /* @__PURE__ */ new Map([[\"select\", \"listbox\"], [\"combobox\", \"listbox\"], [\"label\", false]]);\nfunction useRole(context2, props) {\n  var _componentRoleToAriaR;\n  if (props === void 0) {\n    props = {};\n  }\n  const {\n    open,\n    floatingId\n  } = context2;\n  const {\n    enabled = true,\n    role = \"dialog\"\n  } = props;\n  const ariaRole = (_componentRoleToAriaR = componentRoleToAriaRoleMap.get(role)) != null ? _componentRoleToAriaR : role;\n  const referenceId = useId6();\n  const parentId = useFloatingParentNodeId();\n  const isNested = parentId != null;\n  const reference = React45.useMemo(() => {\n    if (ariaRole === \"tooltip\" || role === \"label\") {\n      return {\n        [\"aria-\" + (role === \"label\" ? \"labelledby\" : \"describedby\")]: open ? floatingId : void 0\n      };\n    }\n    return {\n      \"aria-expanded\": open ? \"true\" : \"false\",\n      \"aria-haspopup\": ariaRole === \"alertdialog\" ? \"dialog\" : ariaRole,\n      \"aria-controls\": open ? floatingId : void 0,\n      ...ariaRole === \"listbox\" && {\n        role: \"combobox\"\n      },\n      ...ariaRole === \"menu\" && {\n        id: referenceId\n      },\n      ...ariaRole === \"menu\" && isNested && {\n        role: \"menuitem\"\n      },\n      ...role === \"select\" && {\n        \"aria-autocomplete\": \"none\"\n      },\n      ...role === \"combobox\" && {\n        \"aria-autocomplete\": \"list\"\n      }\n    };\n  }, [ariaRole, floatingId, isNested, open, referenceId, role]);\n  const floating = React45.useMemo(() => {\n    const floatingProps = {\n      id: floatingId,\n      ...ariaRole && {\n        role: ariaRole\n      }\n    };\n    if (ariaRole === \"tooltip\" || role === \"label\") {\n      return floatingProps;\n    }\n    return {\n      ...floatingProps,\n      ...ariaRole === \"menu\" && {\n        \"aria-labelledby\": referenceId\n      }\n    };\n  }, [ariaRole, floatingId, referenceId, role]);\n  const item = React45.useCallback((_ref) => {\n    let {\n      active,\n      selected\n    } = _ref;\n    const commonProps = {\n      role: \"option\",\n      ...active && {\n        id: floatingId + \"-option\"\n      }\n    };\n    switch (role) {\n      case \"select\":\n        return {\n          ...commonProps,\n          \"aria-selected\": active && selected\n        };\n      case \"combobox\": {\n        return {\n          ...commonProps,\n          ...active && {\n            \"aria-selected\": true\n          }\n        };\n      }\n    }\n    return {};\n  }, [floatingId, role]);\n  return React45.useMemo(() => enabled ? {\n    reference,\n    floating,\n    item\n  } : {}, [enabled, reference, floating, item]);\n}\n__name(useRole, \"useRole\");\nfunction useTypeahead(context2, props) {\n  var _ref;\n  const {\n    open,\n    dataRef\n  } = context2;\n  const {\n    listRef,\n    activeIndex,\n    onMatch: unstable_onMatch,\n    onTypingChange: unstable_onTypingChange,\n    enabled = true,\n    findMatch = null,\n    resetMs = 750,\n    ignoreKeys = [],\n    selectedIndex = null\n  } = props;\n  const timeoutIdRef = React45.useRef(-1);\n  const stringRef = React45.useRef(\"\");\n  const prevIndexRef = React45.useRef((_ref = selectedIndex != null ? selectedIndex : activeIndex) != null ? _ref : -1);\n  const matchIndexRef = React45.useRef(null);\n  const onMatch = useEffectEvent(unstable_onMatch);\n  const onTypingChange = useEffectEvent(unstable_onTypingChange);\n  const findMatchRef = useLatestRef2(findMatch);\n  const ignoreKeysRef = useLatestRef2(ignoreKeys);\n  index2(() => {\n    if (open) {\n      clearTimeoutIfSet(timeoutIdRef);\n      matchIndexRef.current = null;\n      stringRef.current = \"\";\n    }\n  }, [open]);\n  index2(() => {\n    if (open && stringRef.current === \"\") {\n      var _ref2;\n      prevIndexRef.current = (_ref2 = selectedIndex != null ? selectedIndex : activeIndex) != null ? _ref2 : -1;\n    }\n  }, [open, selectedIndex, activeIndex]);\n  const setTypingChange = useEffectEvent((value) => {\n    if (value) {\n      if (!dataRef.current.typing) {\n        dataRef.current.typing = value;\n        onTypingChange(value);\n      }\n    } else {\n      if (dataRef.current.typing) {\n        dataRef.current.typing = value;\n        onTypingChange(value);\n      }\n    }\n  });\n  const onKeyDown = useEffectEvent((event) => {\n    function getMatchingIndex(list, orderedList, string) {\n      const str = findMatchRef.current ? findMatchRef.current(orderedList, string) : orderedList.find((text) => (text == null ? void 0 : text.toLocaleLowerCase().indexOf(string.toLocaleLowerCase())) === 0);\n      return str ? list.indexOf(str) : -1;\n    }\n    __name(getMatchingIndex, \"getMatchingIndex\");\n    const listContent = listRef.current;\n    if (stringRef.current.length > 0 && stringRef.current[0] !== \" \") {\n      if (getMatchingIndex(listContent, listContent, stringRef.current) === -1) {\n        setTypingChange(false);\n      } else if (event.key === \" \") {\n        stopEvent(event);\n      }\n    }\n    if (listContent == null || ignoreKeysRef.current.includes(event.key) || // Character key.\n    event.key.length !== 1 || // Modifier key.\n    event.ctrlKey || event.metaKey || event.altKey) {\n      return;\n    }\n    if (open && event.key !== \" \") {\n      stopEvent(event);\n      setTypingChange(true);\n    }\n    const allowRapidSuccessionOfFirstLetter = listContent.every((text) => {\n      var _text$, _text$2;\n      return text ? ((_text$ = text[0]) == null ? void 0 : _text$.toLocaleLowerCase()) !== ((_text$2 = text[1]) == null ? void 0 : _text$2.toLocaleLowerCase()) : true;\n    });\n    if (allowRapidSuccessionOfFirstLetter && stringRef.current === event.key) {\n      stringRef.current = \"\";\n      prevIndexRef.current = matchIndexRef.current;\n    }\n    stringRef.current += event.key;\n    clearTimeoutIfSet(timeoutIdRef);\n    timeoutIdRef.current = window.setTimeout(() => {\n      stringRef.current = \"\";\n      prevIndexRef.current = matchIndexRef.current;\n      setTypingChange(false);\n    }, resetMs);\n    const prevIndex = prevIndexRef.current;\n    const index3 = getMatchingIndex(listContent, [...listContent.slice((prevIndex || 0) + 1), ...listContent.slice(0, (prevIndex || 0) + 1)], stringRef.current);\n    if (index3 !== -1) {\n      onMatch(index3);\n      matchIndexRef.current = index3;\n    } else if (event.key !== \" \") {\n      stringRef.current = \"\";\n      setTypingChange(false);\n    }\n  });\n  const reference = React45.useMemo(() => ({\n    onKeyDown\n  }), [onKeyDown]);\n  const floating = React45.useMemo(() => {\n    return {\n      onKeyDown,\n      onKeyUp(event) {\n        if (event.key === \" \") {\n          setTypingChange(false);\n        }\n      }\n    };\n  }, [onKeyDown, setTypingChange]);\n  return React45.useMemo(() => enabled ? {\n    reference,\n    floating\n  } : {}, [enabled, reference, floating]);\n}\n__name(useTypeahead, \"useTypeahead\");\nfunction getArgsWithCustomFloatingHeight(state, height) {\n  return {\n    ...state,\n    rects: {\n      ...state.rects,\n      floating: {\n        ...state.rects.floating,\n        height\n      }\n    }\n  };\n}\n__name(getArgsWithCustomFloatingHeight, \"getArgsWithCustomFloatingHeight\");\nvar inner = /* @__PURE__ */ __name((props) => ({\n  name: \"inner\",\n  options: props,\n  async fn(state) {\n    const {\n      listRef,\n      overflowRef,\n      onFallbackChange,\n      offset: innerOffset = 0,\n      index: index3 = 0,\n      minItemsVisible = 4,\n      referenceOverflowThreshold = 0,\n      scrollRef,\n      ...detectOverflowOptions\n    } = evaluate(props, state);\n    const {\n      rects,\n      elements: {\n        floating\n      }\n    } = state;\n    const item = listRef.current[index3];\n    const scrollEl = (scrollRef == null ? void 0 : scrollRef.current) || floating;\n    const clientTop = floating.clientTop || scrollEl.clientTop;\n    const floatingIsBordered = floating.clientTop !== 0;\n    const scrollElIsBordered = scrollEl.clientTop !== 0;\n    const floatingIsScrollEl = floating === scrollEl;\n    if (process.env.NODE_ENV !== \"production\") {\n      if (!state.placement.startsWith(\"bottom\")) {\n        warn('`placement` side must be \"bottom\" when using the `inner`', \"middleware.\");\n      }\n    }\n    if (!item) {\n      return {};\n    }\n    const nextArgs = {\n      ...state,\n      ...await offset3(-item.offsetTop - floating.clientTop - rects.reference.height / 2 - item.offsetHeight / 2 - innerOffset).fn(state)\n    };\n    const overflow = await detectOverflow2(getArgsWithCustomFloatingHeight(nextArgs, scrollEl.scrollHeight + clientTop + floating.clientTop), detectOverflowOptions);\n    const refOverflow = await detectOverflow2(nextArgs, {\n      ...detectOverflowOptions,\n      elementContext: \"reference\"\n    });\n    const diffY = max(0, overflow.top);\n    const nextY = nextArgs.y + diffY;\n    const isScrollable = scrollEl.scrollHeight > scrollEl.clientHeight;\n    const rounder = isScrollable ? (v) => v : round;\n    const maxHeight = rounder(max(0, scrollEl.scrollHeight + (floatingIsBordered && floatingIsScrollEl || scrollElIsBordered ? clientTop * 2 : 0) - diffY - max(0, overflow.bottom)));\n    scrollEl.style.maxHeight = maxHeight + \"px\";\n    scrollEl.scrollTop = diffY;\n    if (onFallbackChange) {\n      const shouldFallback = scrollEl.offsetHeight < item.offsetHeight * min(minItemsVisible, listRef.current.length) - 1 || refOverflow.top >= -referenceOverflowThreshold || refOverflow.bottom >= -referenceOverflowThreshold;\n      ReactDOM3.flushSync(() => onFallbackChange(shouldFallback));\n    }\n    if (overflowRef) {\n      overflowRef.current = await detectOverflow2(getArgsWithCustomFloatingHeight({\n        ...nextArgs,\n        y: nextY\n      }, scrollEl.offsetHeight + clientTop + floating.clientTop), detectOverflowOptions);\n    }\n    return {\n      y: nextY\n    };\n  }\n}), \"inner\");\nfunction useInnerOffset(context2, props) {\n  const {\n    open,\n    elements\n  } = context2;\n  const {\n    enabled = true,\n    overflowRef,\n    scrollRef,\n    onChange: unstable_onChange\n  } = props;\n  const onChange = useEffectEvent(unstable_onChange);\n  const controlledScrollingRef = React45.useRef(false);\n  const prevScrollTopRef = React45.useRef(null);\n  const initialOverflowRef = React45.useRef(null);\n  React45.useEffect(() => {\n    if (!enabled) return;\n    function onWheel(e) {\n      if (e.ctrlKey || !el || overflowRef.current == null) {\n        return;\n      }\n      const dY = e.deltaY;\n      const isAtTop = overflowRef.current.top >= -0.5;\n      const isAtBottom = overflowRef.current.bottom >= -0.5;\n      const remainingScroll = el.scrollHeight - el.clientHeight;\n      const sign = dY < 0 ? -1 : 1;\n      const method = dY < 0 ? \"max\" : \"min\";\n      if (el.scrollHeight <= el.clientHeight) {\n        return;\n      }\n      if (!isAtTop && dY > 0 || !isAtBottom && dY < 0) {\n        e.preventDefault();\n        ReactDOM3.flushSync(() => {\n          onChange((d) => d + Math[method](dY, remainingScroll * sign));\n        });\n      } else if (/firefox/i.test(getUserAgent())) {\n        el.scrollTop += dY;\n      }\n    }\n    __name(onWheel, \"onWheel\");\n    const el = (scrollRef == null ? void 0 : scrollRef.current) || elements.floating;\n    if (open && el) {\n      el.addEventListener(\"wheel\", onWheel);\n      requestAnimationFrame(() => {\n        prevScrollTopRef.current = el.scrollTop;\n        if (overflowRef.current != null) {\n          initialOverflowRef.current = {\n            ...overflowRef.current\n          };\n        }\n      });\n      return () => {\n        prevScrollTopRef.current = null;\n        initialOverflowRef.current = null;\n        el.removeEventListener(\"wheel\", onWheel);\n      };\n    }\n  }, [enabled, open, elements.floating, overflowRef, scrollRef, onChange]);\n  const floating = React45.useMemo(() => ({\n    onKeyDown() {\n      controlledScrollingRef.current = true;\n    },\n    onWheel() {\n      controlledScrollingRef.current = false;\n    },\n    onPointerMove() {\n      controlledScrollingRef.current = false;\n    },\n    onScroll() {\n      const el = (scrollRef == null ? void 0 : scrollRef.current) || elements.floating;\n      if (!overflowRef.current || !el || !controlledScrollingRef.current) {\n        return;\n      }\n      if (prevScrollTopRef.current !== null) {\n        const scrollDiff = el.scrollTop - prevScrollTopRef.current;\n        if (overflowRef.current.bottom < -0.5 && scrollDiff < -1 || overflowRef.current.top < -0.5 && scrollDiff > 1) {\n          ReactDOM3.flushSync(() => onChange((d) => d + scrollDiff));\n        }\n      }\n      requestAnimationFrame(() => {\n        prevScrollTopRef.current = el.scrollTop;\n      });\n    }\n  }), [elements.floating, onChange, overflowRef, scrollRef]);\n  return React45.useMemo(() => enabled ? {\n    floating\n  } : {}, [enabled, floating]);\n}\n__name(useInnerOffset, \"useInnerOffset\");\nfunction isPointInPolygon(point, polygon) {\n  const [x, y] = point;\n  let isInside2 = false;\n  const length = polygon.length;\n  for (let i = 0, j = length - 1; i < length; j = i++) {\n    const [xi, yi] = polygon[i] || [0, 0];\n    const [xj, yj] = polygon[j] || [0, 0];\n    const intersect = yi >= y !== yj >= y && x <= (xj - xi) * (y - yi) / (yj - yi) + xi;\n    if (intersect) {\n      isInside2 = !isInside2;\n    }\n  }\n  return isInside2;\n}\n__name(isPointInPolygon, \"isPointInPolygon\");\nfunction isInside(point, rect) {\n  return point[0] >= rect.x && point[0] <= rect.x + rect.width && point[1] >= rect.y && point[1] <= rect.y + rect.height;\n}\n__name(isInside, \"isInside\");\nfunction safePolygon(options) {\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    buffer = 0.5,\n    blockPointerEvents = false,\n    requireIntent = true\n  } = options;\n  let timeoutId;\n  let hasLanded = false;\n  let lastX = null;\n  let lastY = null;\n  let lastCursorTime = performance.now();\n  function getCursorSpeed(x, y) {\n    const currentTime = performance.now();\n    const elapsedTime = currentTime - lastCursorTime;\n    if (lastX === null || lastY === null || elapsedTime === 0) {\n      lastX = x;\n      lastY = y;\n      lastCursorTime = currentTime;\n      return null;\n    }\n    const deltaX = x - lastX;\n    const deltaY = y - lastY;\n    const distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n    const speed = distance / elapsedTime;\n    lastX = x;\n    lastY = y;\n    lastCursorTime = currentTime;\n    return speed;\n  }\n  __name(getCursorSpeed, \"getCursorSpeed\");\n  const fn = /* @__PURE__ */ __name((_ref) => {\n    let {\n      x,\n      y,\n      placement,\n      elements,\n      onClose,\n      nodeId,\n      tree\n    } = _ref;\n    return /* @__PURE__ */ __name(function onMouseMove(event) {\n      function close() {\n        clearTimeout(timeoutId);\n        onClose();\n      }\n      __name(close, \"close\");\n      clearTimeout(timeoutId);\n      if (!elements.domReference || !elements.floating || placement == null || x == null || y == null) {\n        return;\n      }\n      const {\n        clientX,\n        clientY\n      } = event;\n      const clientPoint = [clientX, clientY];\n      const target = getTarget(event);\n      const isLeave = event.type === \"mouseleave\";\n      const isOverFloatingEl = contains(elements.floating, target);\n      const isOverReferenceEl = contains(elements.domReference, target);\n      const refRect = elements.domReference.getBoundingClientRect();\n      const rect = elements.floating.getBoundingClientRect();\n      const side = placement.split(\"-\")[0];\n      const cursorLeaveFromRight = x > rect.right - rect.width / 2;\n      const cursorLeaveFromBottom = y > rect.bottom - rect.height / 2;\n      const isOverReferenceRect = isInside(clientPoint, refRect);\n      const isFloatingWider = rect.width > refRect.width;\n      const isFloatingTaller = rect.height > refRect.height;\n      const left = (isFloatingWider ? refRect : rect).left;\n      const right = (isFloatingWider ? refRect : rect).right;\n      const top = (isFloatingTaller ? refRect : rect).top;\n      const bottom = (isFloatingTaller ? refRect : rect).bottom;\n      if (isOverFloatingEl) {\n        hasLanded = true;\n        if (!isLeave) {\n          return;\n        }\n      }\n      if (isOverReferenceEl) {\n        hasLanded = false;\n      }\n      if (isOverReferenceEl && !isLeave) {\n        hasLanded = true;\n        return;\n      }\n      if (isLeave && isElement(event.relatedTarget) && contains(elements.floating, event.relatedTarget)) {\n        return;\n      }\n      if (tree && getChildren(tree.nodesRef.current, nodeId).some((_ref2) => {\n        let {\n          context: context2\n        } = _ref2;\n        return context2 == null ? void 0 : context2.open;\n      })) {\n        return;\n      }\n      if (side === \"top\" && y >= refRect.bottom - 1 || side === \"bottom\" && y <= refRect.top + 1 || side === \"left\" && x >= refRect.right - 1 || side === \"right\" && x <= refRect.left + 1) {\n        return close();\n      }\n      let rectPoly = [];\n      switch (side) {\n        case \"top\":\n          rectPoly = [[left, refRect.top + 1], [left, rect.bottom - 1], [right, rect.bottom - 1], [right, refRect.top + 1]];\n          break;\n        case \"bottom\":\n          rectPoly = [[left, rect.top + 1], [left, refRect.bottom - 1], [right, refRect.bottom - 1], [right, rect.top + 1]];\n          break;\n        case \"left\":\n          rectPoly = [[rect.right - 1, bottom], [rect.right - 1, top], [refRect.left + 1, top], [refRect.left + 1, bottom]];\n          break;\n        case \"right\":\n          rectPoly = [[refRect.right - 1, bottom], [refRect.right - 1, top], [rect.left + 1, top], [rect.left + 1, bottom]];\n          break;\n      }\n      function getPolygon(_ref3) {\n        let [x2, y2] = _ref3;\n        switch (side) {\n          case \"top\": {\n            const cursorPointOne = [isFloatingWider ? x2 + buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4, y2 + buffer + 1];\n            const cursorPointTwo = [isFloatingWider ? x2 - buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4, y2 + buffer + 1];\n            const commonPoints = [[rect.left, cursorLeaveFromRight ? rect.bottom - buffer : isFloatingWider ? rect.bottom - buffer : rect.top], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.bottom - buffer : rect.top : rect.bottom - buffer]];\n            return [cursorPointOne, cursorPointTwo, ...commonPoints];\n          }\n          case \"bottom\": {\n            const cursorPointOne = [isFloatingWider ? x2 + buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4, y2 - buffer];\n            const cursorPointTwo = [isFloatingWider ? x2 - buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4, y2 - buffer];\n            const commonPoints = [[rect.left, cursorLeaveFromRight ? rect.top + buffer : isFloatingWider ? rect.top + buffer : rect.bottom], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.top + buffer : rect.bottom : rect.top + buffer]];\n            return [cursorPointOne, cursorPointTwo, ...commonPoints];\n          }\n          case \"left\": {\n            const cursorPointOne = [x2 + buffer + 1, isFloatingTaller ? y2 + buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4];\n            const cursorPointTwo = [x2 + buffer + 1, isFloatingTaller ? y2 - buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4];\n            const commonPoints = [[cursorLeaveFromBottom ? rect.right - buffer : isFloatingTaller ? rect.right - buffer : rect.left, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.right - buffer : rect.left : rect.right - buffer, rect.bottom]];\n            return [...commonPoints, cursorPointOne, cursorPointTwo];\n          }\n          case \"right\": {\n            const cursorPointOne = [x2 - buffer, isFloatingTaller ? y2 + buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4];\n            const cursorPointTwo = [x2 - buffer, isFloatingTaller ? y2 - buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4];\n            const commonPoints = [[cursorLeaveFromBottom ? rect.left + buffer : isFloatingTaller ? rect.left + buffer : rect.right, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.left + buffer : rect.right : rect.left + buffer, rect.bottom]];\n            return [cursorPointOne, cursorPointTwo, ...commonPoints];\n          }\n        }\n      }\n      __name(getPolygon, \"getPolygon\");\n      if (isPointInPolygon([clientX, clientY], rectPoly)) {\n        return;\n      }\n      if (hasLanded && !isOverReferenceRect) {\n        return close();\n      }\n      if (!isLeave && requireIntent) {\n        const cursorSpeed = getCursorSpeed(event.clientX, event.clientY);\n        const cursorSpeedThreshold = 0.1;\n        if (cursorSpeed !== null && cursorSpeed < cursorSpeedThreshold) {\n          return close();\n        }\n      }\n      if (!isPointInPolygon([clientX, clientY], getPolygon([x, y]))) {\n        close();\n      } else if (!hasLanded && requireIntent) {\n        timeoutId = window.setTimeout(close, 40);\n      }\n    }, \"onMouseMove\");\n  }, \"fn\");\n  fn.__options = {\n    blockPointerEvents\n  };\n  return fn;\n}\n__name(safePolygon, \"safePolygon\");\n\n// node_modules/@tamagui/popover/dist/esm/useFloatingContext.mjs\nvar useFloatingContext = /* @__PURE__ */ __name(({\n  open,\n  setOpen,\n  disable,\n  disableFocus,\n  hoverable\n}) => import_react36.default.useCallback((props) => {\n  const floating = useFloating3({\n    ...props,\n    open,\n    onOpenChange: /* @__PURE__ */ __name((val, event) => {\n      const type = event?.type === \"mousemove\" || event?.type === \"mouseenter\" || event?.type === \"mouseleave\" ? \"hover\" : \"press\";\n      setOpen(val, type);\n    }, \"onOpenChange\")\n  }), {\n    getReferenceProps,\n    getFloatingProps\n  } = useInteractions([hoverable ? useHover(floating.context, {\n    enabled: !disable && hoverable,\n    handleClose: safePolygon({\n      requireIntent: true,\n      blockPointerEvents: true,\n      buffer: 1\n    }),\n    ...hoverable && typeof hoverable == \"object\" && hoverable\n  }) : useHover(floating.context, {\n    enabled: false\n  }), useFocus(floating.context, {\n    enabled: !disable && !disableFocus,\n    visibleOnly: true\n  }), useRole(floating.context, {\n    role: \"dialog\"\n  }), useDismiss(floating.context, {\n    enabled: !disable\n  })]);\n  return {\n    ...floating,\n    open,\n    getReferenceProps,\n    getFloatingProps\n  };\n}, [open, setOpen, disable, disableFocus, hoverable]), \"useFloatingContext\");\n\n// node_modules/@tamagui/popover/dist/esm/Popover.mjs\nvar import_jsx_runtime34 = require(\"react/jsx-runtime\");\nvar POPOVER_SCOPE = \"PopoverScope\";\nvar PopoverContext = (0, import_core25.createStyledContext)({});\nvar usePopoverContext = PopoverContext.useStyledContext;\nvar PopoverAnchor = React47.forwardRef(function(props, forwardedRef) {\n  const {\n    __scopePopover,\n    ...rest\n  } = props, context2 = usePopoverContext(__scopePopover), {\n    onCustomAnchorAdd,\n    onCustomAnchorRemove\n  } = context2 || {};\n  return React47.useEffect(() => (onCustomAnchorAdd(), () => onCustomAnchorRemove()), [onCustomAnchorAdd, onCustomAnchorRemove]), /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(PopperAnchor, {\n    __scopePopper: __scopePopover || POPOVER_SCOPE,\n    ...rest,\n    ref: forwardedRef\n  });\n});\nvar PopoverTrigger = React47.forwardRef(function(props, forwardedRef) {\n  const {\n    __scopePopover,\n    ...rest\n  } = props, context2 = usePopoverContext(__scopePopover), anchorTo = context2.anchorTo, composedTriggerRef = useComposedRefs(forwardedRef, context2.triggerRef);\n  if (!props.children) return null;\n  const trigger = /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core25.View, {\n    \"aria-expanded\": context2.open,\n    \"data-state\": getState3(context2.open),\n    ...rest,\n    ref: composedTriggerRef,\n    onPress: composeEventHandlers(props.onPress, context2.onOpenToggle)\n  }), virtualRef = React47.useMemo(() => anchorTo ? {\n    current: {\n      getBoundingClientRect: /* @__PURE__ */ __name(() => isWeb ? DOMRect.fromRect(anchorTo) : anchorTo, \"getBoundingClientRect\"),\n      ...!isWeb && {\n        measure: /* @__PURE__ */ __name((c) => c(anchorTo?.x, anchorTo?.y, anchorTo?.width, anchorTo?.height), \"measure\"),\n        measureInWindow: /* @__PURE__ */ __name((c) => c(anchorTo?.x, anchorTo?.y, anchorTo?.width, anchorTo?.height), \"measureInWindow\")\n      }\n    }\n  } : null, [context2.anchorTo, anchorTo?.x, anchorTo?.y, anchorTo?.x, anchorTo?.height, anchorTo?.width]);\n  return context2.hasCustomAnchor ? trigger : /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(PopperAnchor, {\n    ...virtualRef && {\n      virtualRef\n    },\n    __scopePopper: __scopePopover || POPOVER_SCOPE,\n    asChild: rest.asChild,\n    children: trigger\n  });\n});\nvar PopoverContent = PopperContentFrame.extractable(React47.forwardRef(function(props, forwardedRef) {\n  const {\n    allowPinchZoom,\n    trapFocus,\n    disableRemoveScroll = true,\n    zIndex,\n    __scopePopover,\n    ...contentImplProps\n  } = props, context2 = usePopoverContext(__scopePopover), contentRef = React47.useRef(null), composedRefs = useComposedRefs(forwardedRef, contentRef), isRightClickOutsideRef = React47.useRef(false), [isFullyHidden, setIsFullyHidden] = React47.useState(!context2.open);\n  return context2.open && isFullyHidden && setIsFullyHidden(false), React47.useEffect(() => {\n    if (!context2.open) return;\n    const content = contentRef.current;\n    if (content) return hideOthers(content);\n  }, [context2.open]), !context2.keepChildrenMounted && isFullyHidden ? null : /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(PopoverContentPortal, {\n    __scopePopover,\n    zIndex,\n    children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core25.Stack, {\n      pointerEvents: context2.open ? contentImplProps.pointerEvents ?? \"auto\" : \"none\",\n      children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(PopoverContentImpl, {\n        ...contentImplProps,\n        disableRemoveScroll,\n        ref: composedRefs,\n        setIsFullyHidden,\n        __scopePopover,\n        trapFocus: trapFocus ?? context2.open,\n        disableOutsidePointerEvents: true,\n        onCloseAutoFocus: props.onCloseAutoFocus === false ? void 0 : composeEventHandlers(props.onCloseAutoFocus, (event) => {\n          event.defaultPrevented || (event.preventDefault(), isRightClickOutsideRef.current || context2.triggerRef.current?.focus());\n        }),\n        onPointerDownOutside: composeEventHandlers(props.onPointerDownOutside, (event) => {\n          const originalEvent = event.detail.originalEvent, ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true, isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n          isRightClickOutsideRef.current = isRightClick;\n        }, {\n          checkDefaultPrevented: false\n        }),\n        onFocusOutside: composeEventHandlers(props.onFocusOutside, (event) => event.preventDefault(), {\n          checkDefaultPrevented: false\n        })\n      })\n    })\n  });\n}));\nfunction PopoverRepropagateContext(props) {\n  return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(PopperContext.Provider, {\n    scope: props.scope,\n    ...props.popperContext,\n    children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(PopoverContext.Provider, {\n      ...props.context,\n      children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ProvideAdaptContext, {\n        ...props.adaptContext,\n        children: props.children\n      })\n    })\n  });\n}\n__name(PopoverRepropagateContext, \"PopoverRepropagateContext\");\nfunction PopoverContentPortal(props) {\n  const {\n    __scopePopover\n  } = props, zIndex = props.zIndex, context2 = usePopoverContext(__scopePopover), popperContext = usePopperContext(__scopePopover || POPOVER_SCOPE), themeName = (0, import_core25.useThemeName)(), adaptContext = useAdaptContext();\n  let contents = props.children;\n  return (import_react_native_web7.Platform.OS === \"android\" || import_react_native_web7.Platform.OS === \"ios\") && (contents = /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(PopoverRepropagateContext, {\n    scope: __scopePopover || POPOVER_SCOPE,\n    popperContext,\n    context: context2,\n    adaptContext,\n    children: props.children\n  })), /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Portal, {\n    stackZIndex: true,\n    zIndex,\n    children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_core25.Theme, {\n      forceClassName: true,\n      name: themeName,\n      children: [!!context2.open && !context2.breakpointActive && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(YStack, {\n        fullscreen: true,\n        onPress: composeEventHandlers(props.onPress, context2.onOpenToggle)\n      }), /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(StackZIndexContext, {\n        zIndex: resolveViewZIndex(zIndex),\n        children: contents\n      })]\n    })\n  });\n}\n__name(PopoverContentPortal, \"PopoverContentPortal\");\nvar PopoverContentImpl = React47.forwardRef(function(props, forwardedRef) {\n  const {\n    trapFocus,\n    __scopePopover,\n    onOpenAutoFocus,\n    onCloseAutoFocus,\n    disableOutsidePointerEvents,\n    disableFocusScope,\n    onEscapeKeyDown,\n    onPointerDownOutside,\n    onFocusOutside,\n    onInteractOutside,\n    children,\n    disableRemoveScroll,\n    freezeContentsWhenHidden,\n    setIsFullyHidden,\n    ...contentProps\n  } = props, context2 = usePopoverContext(__scopePopover), {\n    open,\n    keepChildrenMounted\n  } = context2, popperContext = usePopperContext(__scopePopover || POPOVER_SCOPE), handleExitComplete = React47.useCallback(() => {\n    setIsFullyHidden?.(true);\n  }, [setIsFullyHidden]);\n  let contents = /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ResetPresence, {\n    children\n  });\n  if (context2.breakpointActive) {\n    const childrenWithoutScrollView = React47.Children.toArray(children).map((child) => React47.isValidElement(child) && child.type === import_react_native_web7.ScrollView ? child.props.children : child);\n    return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(AdaptPortalContents, {\n      children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(PopperContext.Provider, {\n        scope: __scopePopover || POPOVER_SCOPE,\n        ...popperContext,\n        children: childrenWithoutScrollView\n      })\n    });\n  }\n  return contents = /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(RemoveScroll, {\n    enabled: disableRemoveScroll ? false : open,\n    allowPinchZoom: true,\n    removeScrollBar: false,\n    style: dspContentsStyle,\n    children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(FocusScope, {\n      loop: true,\n      enabled: disableFocusScope ? false : open,\n      trapped: trapFocus,\n      onMountAutoFocus: onOpenAutoFocus,\n      onUnmountAutoFocus: onCloseAutoFocus === false ? void 0 : onCloseAutoFocus,\n      children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(\"div\", {\n        style: dspContentsStyle,\n        children: contents\n      })\n    })\n  }), /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Animate, {\n    type: \"presence\",\n    present: !!open,\n    keepChildrenMounted,\n    onExitComplete: handleExitComplete,\n    children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(PopperContent, {\n      __scopePopper: __scopePopover || POPOVER_SCOPE,\n      \"data-state\": getState3(open),\n      id: context2.contentId,\n      ref: forwardedRef,\n      ...contentProps,\n      children: contents\n    }, context2.contentId)\n  });\n});\nvar dspContentsStyle = {\n  display: \"contents\"\n};\nvar PopoverClose = React47.forwardRef(function(props, forwardedRef) {\n  const {\n    __scopePopover,\n    ...rest\n  } = props, context2 = usePopoverContext(__scopePopover);\n  return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(YStack, {\n    ...rest,\n    ref: forwardedRef,\n    componentName: \"PopoverClose\",\n    onPress: composeEventHandlers(props.onPress, () => context2.onOpenChange(false, \"press\"))\n  });\n});\nvar PopoverArrow = PopperArrow.styleable(function(props, forwardedRef) {\n  const {\n    __scopePopover,\n    ...rest\n  } = props;\n  return useAdaptIsActive() ? null : /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(PopperArrow, {\n    __scopePopper: __scopePopover || POPOVER_SCOPE,\n    componentName: \"PopoverArrow\",\n    ...rest,\n    ref: forwardedRef\n  });\n});\nvar Popover = withStaticProperties(React47.forwardRef(function(props, ref) {\n  const id = React47.useId();\n  return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(AdaptParent, {\n    scope: `${id}PopoverContents`,\n    portal: true,\n    children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(PopoverInner, {\n      ref,\n      id,\n      ...props\n    })\n  });\n}), {\n  Anchor: PopoverAnchor,\n  Arrow: PopoverArrow,\n  Trigger: PopoverTrigger,\n  Content: PopoverContent,\n  Close: PopoverClose,\n  Adapt,\n  ScrollView: import_react_native_web7.ScrollView,\n  Sheet: Sheet.Controlled\n});\nvar PopoverInner = React47.forwardRef(function(props, forwardedRef) {\n  const {\n    children,\n    open: openProp,\n    defaultOpen,\n    onOpenChange,\n    __scopePopover,\n    keepChildrenMounted,\n    hoverable,\n    disableFocus,\n    id,\n    ...restProps\n  } = props, triggerRef = React47.useRef(null), [hasCustomAnchor, setHasCustomAnchor] = React47.useState(false), viaRef = React47.useRef(), [open, setOpen] = useControllableState({\n    prop: openProp,\n    defaultProp: defaultOpen || false,\n    onChange: /* @__PURE__ */ __name((val) => {\n      onOpenChange?.(val, viaRef.current);\n    }, \"onChange\")\n  }), handleOpenChange = (0, import_core25.useEvent)((val, via) => {\n    viaRef.current = via, setOpen(val);\n  }), isAdapted = useAdaptIsActive(), floatingContext = useFloatingContext({\n    open,\n    setOpen: handleOpenChange,\n    disable: isAdapted,\n    hoverable,\n    disableFocus\n  }), [anchorTo, setAnchorToRaw] = React47.useState(), setAnchorTo = (0, import_core25.createShallowSetState)(setAnchorToRaw);\n  React47.useImperativeHandle(forwardedRef, () => ({\n    anchorTo: setAnchorTo,\n    toggle: /* @__PURE__ */ __name(() => setOpen((prev) => !prev), \"toggle\"),\n    open: /* @__PURE__ */ __name(() => setOpen(true), \"open\"),\n    close: /* @__PURE__ */ __name(() => setOpen(false), \"close\"),\n    setOpen\n  }));\n  const popoverContext = {\n    id,\n    contentId: React47.useId(),\n    triggerRef,\n    open,\n    breakpointActive: isAdapted,\n    onOpenChange: handleOpenChange,\n    onOpenToggle: (0, import_core25.useEvent)(() => {\n      open && isAdapted || setOpen(!open);\n    }),\n    hasCustomAnchor,\n    anchorTo,\n    onCustomAnchorAdd: React47.useCallback(() => setHasCustomAnchor(true), []),\n    onCustomAnchorRemove: React47.useCallback(() => setHasCustomAnchor(false), []),\n    keepChildrenMounted\n  }, contents = /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Popper, {\n    __scopePopper: __scopePopover || POPOVER_SCOPE,\n    stayInFrame: true,\n    ...restProps,\n    children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(PopoverContext.Provider, {\n      scope: __scopePopover,\n      ...popoverContext,\n      children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(PopoverSheetController, {\n        onOpenChange: setOpen,\n        children\n      })\n    })\n  });\n  return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_jsx_runtime34.Fragment, {\n    children: isWeb ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(FloatingOverrideContext.Provider, {\n      value: floatingContext,\n      children: contents\n    }) : contents\n  });\n});\nfunction getState3(open) {\n  return open ? \"open\" : \"closed\";\n}\n__name(getState3, \"getState\");\nvar PopoverSheetController = /* @__PURE__ */ __name(({\n  __scopePopover,\n  ...props\n}) => {\n  const context2 = usePopoverContext(__scopePopover), showSheet = useShowPopoverSheet(context2), breakpointActive = context2.breakpointActive, getShowSheet = (0, import_core25.useGet)(showSheet);\n  return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(SheetController, {\n    onOpenChange: /* @__PURE__ */ __name((val) => {\n      getShowSheet() && props.onOpenChange?.(val);\n    }, \"onOpenChange\"),\n    open: context2.open,\n    hidden: breakpointActive === false,\n    children: props.children\n  });\n}, \"PopoverSheetController\");\nvar useShowPopoverSheet = /* @__PURE__ */ __name((context2) => {\n  const isAdapted = useAdaptIsActive();\n  return context2.open === false ? false : isAdapted;\n}, \"useShowPopoverSheet\");\n\n// node_modules/@tamagui/progress/dist/esm/Progress.mjs\nvar import_core26 = require(\"@tamagui/core\");\nvar React48 = __toESM(require(\"react\"), 1);\nvar import_jsx_runtime35 = require(\"react/jsx-runtime\");\nvar PROGRESS_NAME = \"Progress\";\nvar [createProgressContext, createProgressScope] = createContextScope(PROGRESS_NAME);\nvar [ProgressProvider, useProgressContext] = createProgressContext(PROGRESS_NAME);\nvar INDICATOR_NAME2 = \"ProgressIndicator\";\nvar ProgressIndicatorFrame = (0, import_core26.styled)(ThemeableStack, {\n  name: INDICATOR_NAME2,\n  variants: {\n    unstyled: {\n      false: {\n        height: \"100%\",\n        width: \"100%\",\n        backgrounded: true\n      }\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar ProgressIndicator = ProgressIndicatorFrame.styleable(function(props, forwardedRef) {\n  const {\n    __scopeProgress,\n    animation,\n    ...indicatorProps\n  } = props, context2 = useProgressContext(INDICATOR_NAME2, __scopeProgress), pct = context2.max - (context2.value ?? 0), x = -(context2.width === 0 ? 300 : context2.width) * (pct / 100);\n  return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(ProgressIndicatorFrame, {\n    \"data-state\": getProgressState(context2.value, context2.max),\n    \"data-value\": context2.value ?? void 0,\n    \"data-max\": context2.max,\n    x,\n    width: context2.width,\n    ...!props.unstyled && {\n      animateOnly: [\"transform\"],\n      opacity: context2.width === 0 ? 0 : 1\n    },\n    ...indicatorProps,\n    ref: forwardedRef,\n    animation: context2.width ? animation : null\n  });\n});\nfunction defaultGetValueLabel(value, max2) {\n  return `${Math.round(value / max2 * 100)}%`;\n}\n__name(defaultGetValueLabel, \"defaultGetValueLabel\");\nfunction getProgressState(value, maxValue) {\n  return value == null ? \"indeterminate\" : value === maxValue ? \"complete\" : \"loading\";\n}\n__name(getProgressState, \"getProgressState\");\nfunction isNumber(value) {\n  return typeof value == \"number\";\n}\n__name(isNumber, \"isNumber\");\nfunction isValidMaxNumber(max2) {\n  return isNumber(max2) && !Number.isNaN(max2) && max2 > 0;\n}\n__name(isValidMaxNumber, \"isValidMaxNumber\");\nfunction isValidValueNumber(value, max2) {\n  return isNumber(value) && !Number.isNaN(value) && value <= max2 && value >= 0;\n}\n__name(isValidValueNumber, \"isValidValueNumber\");\nvar DEFAULT_MAX = 100;\nvar ProgressFrame = (0, import_core26.styled)(ThemeableStack, {\n  name: \"Progress\",\n  variants: {\n    unstyled: {\n      false: {\n        borderRadius: 1e5,\n        overflow: \"hidden\",\n        backgrounded: true\n      }\n    },\n    size: {\n      \"...size\": /* @__PURE__ */ __name((val) => {\n        const size4 = Math.round((0, import_core26.getVariableValue)(getSize(val)) * 0.25);\n        return {\n          height: size4,\n          minWidth: (0, import_core26.getVariableValue)(size4) * 20,\n          width: \"100%\"\n        };\n      }, \"...size\")\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar Progress = withStaticProperties(ProgressFrame.styleable(function(props, forwardedRef) {\n  const {\n    // @ts-expect-error\n    __scopeProgress,\n    value: valueProp,\n    max: maxProp,\n    getValueLabel = defaultGetValueLabel,\n    size: size4 = \"$true\",\n    ...progressProps\n  } = props, max2 = isValidMaxNumber(maxProp) ? maxProp : DEFAULT_MAX, value = isValidValueNumber(valueProp, max2) ? valueProp : null, valueLabel = isNumber(value) ? getValueLabel(value, max2) : void 0, [width, setWidth] = React48.useState(0);\n  return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(ProgressProvider, {\n    scope: __scopeProgress,\n    value,\n    max: max2,\n    width,\n    children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(ProgressFrame, {\n      \"aria-valuemax\": max2,\n      \"aria-valuemin\": 0,\n      \"aria-valuenow\": isNumber(value) ? value : void 0,\n      \"aria-valuetext\": valueLabel,\n      role: \"progressbar\",\n      \"data-state\": getProgressState(value, max2),\n      \"data-value\": value ?? void 0,\n      \"data-max\": max2,\n      ...progressProps.unstyled !== true && {\n        size: size4\n      },\n      ...progressProps,\n      onLayout: /* @__PURE__ */ __name((e) => {\n        setWidth(e.nativeEvent.layout.width), progressProps.onLayout?.(e);\n      }, \"onLayout\"),\n      ref: forwardedRef\n    })\n  });\n}), {\n  Indicator: ProgressIndicator\n});\n\n// node_modules/@tamagui/radio-group/dist/esm/RadioGroup.mjs\nvar import_core27 = require(\"@tamagui/core\");\nvar RADIO_GROUP_ITEM_NAME = \"RadioGroupItem\";\nvar RadioGroupItemFrame = (0, import_core27.styled)(ThemeableStack, {\n  name: RADIO_GROUP_ITEM_NAME,\n  tag: \"button\",\n  variants: {\n    unstyled: {\n      false: {\n        size: \"$true\",\n        borderRadius: 1e3,\n        backgroundColor: \"$background\",\n        alignItems: \"center\",\n        justifyContent: \"center\",\n        borderWidth: 1,\n        borderColor: \"$borderColor\",\n        padding: 0,\n        hoverStyle: {\n          borderColor: \"$borderColorHover\",\n          backgroundColor: \"$backgroundHover\"\n        },\n        focusStyle: {\n          borderColor: \"$borderColorHover\",\n          backgroundColor: \"$backgroundHover\"\n        },\n        focusVisibleStyle: {\n          outlineStyle: \"solid\",\n          outlineWidth: 2,\n          outlineColor: \"$outlineColor\"\n        },\n        pressStyle: {\n          borderColor: \"$borderColorFocus\",\n          backgroundColor: \"$backgroundFocus\"\n        }\n      }\n    },\n    disabled: {\n      true: {\n        pointerEvents: \"none\",\n        userSelect: \"none\",\n        cursor: \"not-allowed\",\n        hoverStyle: {\n          borderColor: \"$borderColor\",\n          backgroundColor: \"$background\"\n        },\n        pressStyle: {\n          borderColor: \"$borderColor\",\n          backgroundColor: \"$background\"\n        },\n        focusVisibleStyle: {\n          outlineWidth: 0\n        }\n      }\n    },\n    size: {\n      \"...size\": /* @__PURE__ */ __name((value, {\n        props\n      }) => {\n        const size4 = Math.floor((0, import_core27.getVariableValue)(getSize(value)) * (props.scaleSize ?? 0.5));\n        return {\n          width: size4,\n          height: size4\n        };\n      }, \"...size\")\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar RADIO_GROUP_INDICATOR_NAME = \"RadioGroupIndicator\";\nvar RadioGroupIndicatorFrame = (0, import_core27.styled)(ThemeableStack, {\n  name: RADIO_GROUP_INDICATOR_NAME,\n  variants: {\n    unstyled: {\n      false: {\n        width: \"33%\",\n        height: \"33%\",\n        borderRadius: 1e3,\n        backgroundColor: \"$color\",\n        pressTheme: true\n      }\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar RADIO_GROUP_NAME = \"RadioGroup\";\nvar RadioGroupFrame = (0, import_core27.styled)(ThemeableStack, {\n  name: RADIO_GROUP_NAME,\n  variants: {\n    orientation: {\n      horizontal: {\n        flexDirection: \"row\",\n        spaceDirection: \"horizontal\"\n      },\n      vertical: {\n        flexDirection: \"column\",\n        spaceDirection: \"vertical\"\n      }\n    }\n  }\n});\n\n// node_modules/@tamagui/radio-group/dist/esm/createRadioGroup.mjs\nvar import_react41 = __toESM(require(\"react\"), 1);\nvar import_core30 = require(\"@tamagui/core\");\n\n// node_modules/@tamagui/radio-headless/dist/esm/useRadioGroup.mjs\nvar import_react39 = require(\"react\");\n\n// node_modules/@tamagui/radio-headless/dist/esm/BubbleInput.mjs\nvar import_react38 = __toESM(require(\"react\"), 1);\nvar import_jsx_runtime36 = require(\"react/jsx-runtime\");\nvar BubbleInput2 = /* @__PURE__ */ __name((props) => {\n  const {\n    checked,\n    bubbles = true,\n    control,\n    isHidden: isHidden2,\n    accentColor,\n    ...inputProps\n  } = props, ref = import_react38.default.useRef(null), prevChecked = usePrevious(checked);\n  return import_react38.default.useEffect(() => {\n    const input = ref.current, inputProto = window.HTMLInputElement.prototype, setChecked = Object.getOwnPropertyDescriptor(inputProto, \"checked\").set;\n    if (prevChecked !== checked && setChecked) {\n      const event = new Event(\"click\", {\n        bubbles\n      });\n      setChecked.call(input, checked), input.dispatchEvent(event);\n    }\n  }, [prevChecked, checked, bubbles]), /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(\"input\", {\n    type: \"radio\",\n    defaultChecked: checked,\n    ...inputProps,\n    tabIndex: -1,\n    ref,\n    \"aria-hidden\": isHidden2,\n    style: {\n      ...isHidden2 ? {\n        // ...controlSize,\n        position: \"absolute\",\n        pointerEvents: \"none\",\n        opacity: 0,\n        margin: 0\n      } : {\n        appearance: \"auto\",\n        accentColor\n      },\n      ...props.style\n    }\n  });\n}, \"BubbleInput\");\n\n// node_modules/@tamagui/radio-headless/dist/esm/utils.mjs\nfunction getState4(checked) {\n  return checked ? \"checked\" : \"unchecked\";\n}\n__name(getState4, \"getState\");\n\n// node_modules/@tamagui/radio-headless/dist/esm/useRadioGroup.mjs\nvar import_jsx_runtime37 = require(\"react/jsx-runtime\");\nfunction useRadioGroup(params) {\n  const {\n    value: valueProp,\n    onValueChange,\n    defaultValue: defaultValue2,\n    required,\n    disabled,\n    name,\n    native,\n    accentColor,\n    orientation,\n    ref\n  } = params, [value, setValue] = useControllableState({\n    prop: valueProp,\n    defaultProp: defaultValue2,\n    onChange: onValueChange\n  });\n  return {\n    providerValue: {\n      value,\n      onChange: setValue,\n      required,\n      disabled,\n      name,\n      native,\n      accentColor\n    },\n    frameAttrs: {\n      role: \"radiogroup\",\n      \"aria-orientation\": orientation,\n      \"data-disabled\": disabled ? \"\" : void 0\n    },\n    rovingFocusGroupAttrs: {\n      orientation,\n      loop: true\n    }\n  };\n}\n__name(useRadioGroup, \"useRadioGroup\");\nvar ARROW_KEYS = [\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"];\nvar useRadioGroupItem = /* @__PURE__ */ __name((params) => {\n  const {\n    radioGroupContext,\n    value,\n    labelledBy: ariaLabelledby,\n    disabled: itemDisabled,\n    ref: refProp,\n    id,\n    onPress,\n    onKeyDown,\n    onFocus\n  } = params, {\n    value: groupValue,\n    disabled,\n    required,\n    onChange,\n    name,\n    native,\n    accentColor\n  } = (0, import_react39.useContext)(radioGroupContext), [button, setButton] = (0, import_react39.useState)(null), hasConsumerStoppedPropagationRef = (0, import_react39.useRef)(false), ref = (0, import_react39.useRef)(null), composedRefs = useComposedRefs(refProp, (node) => setButton(node), ref), isArrowKeyPressedRef = (0, import_react39.useRef)(false), isFormControl = isWeb ? button ? !!button.closest(\"form\") : true : false, checked = groupValue === value, labelId = useLabelContext(button), labelledBy = ariaLabelledby || labelId;\n  (0, import_react39.useEffect)(() => {\n    if (isWeb) {\n      const handleKeyDown = /* @__PURE__ */ __name((event) => {\n        ARROW_KEYS.includes(event.key) && (isArrowKeyPressedRef.current = true);\n      }, \"handleKeyDown\"), handleKeyUp = /* @__PURE__ */ __name(() => {\n        isArrowKeyPressedRef.current = false;\n      }, \"handleKeyUp\");\n      return document.addEventListener(\"keydown\", handleKeyDown), document.addEventListener(\"keyup\", handleKeyUp), () => {\n        document.removeEventListener(\"keydown\", handleKeyDown), document.removeEventListener(\"keyup\", handleKeyUp);\n      };\n    }\n  }, []);\n  const isDisabled2 = disabled || itemDisabled;\n  return {\n    providerValue: {\n      checked\n    },\n    checked,\n    isFormControl,\n    bubbleInput: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(BubbleInput2, {\n      isHidden: !native,\n      control: button,\n      bubbles: !hasConsumerStoppedPropagationRef.current,\n      name,\n      value,\n      checked,\n      required,\n      disabled: isDisabled2,\n      ...isWeb && native && {\n        accentColor,\n        id\n      }\n    }),\n    native,\n    frameAttrs: {\n      \"data-state\": getState4(checked),\n      \"data-disabled\": isDisabled2 ? \"\" : void 0,\n      role: \"radio\",\n      \"aria-labelledby\": labelledBy,\n      \"aria-checked\": checked,\n      \"aria-required\": required,\n      disabled: isDisabled2,\n      ref: composedRefs,\n      ...isWeb && {\n        type: \"button\",\n        value\n      },\n      id,\n      onPress: composeEventHandlers(onPress, (event) => {\n        checked || onChange?.(value), isFormControl && (hasConsumerStoppedPropagationRef.current = event.isPropagationStopped(), hasConsumerStoppedPropagationRef.current || event.stopPropagation());\n      }),\n      ...isWeb && {\n        onKeyDown: composeEventHandlers(onKeyDown, (event) => {\n          event.key === \"Enter\" && event.preventDefault();\n        }),\n        onFocus: composeEventHandlers(onFocus, () => {\n          isArrowKeyPressedRef.current && ref.current?.click();\n        })\n      }\n    },\n    rovingFocusGroupAttrs: {\n      asChild: \"expect-style\",\n      focusable: !isDisabled2,\n      active: checked\n    }\n  };\n}, \"useRadioGroupItem\");\nfunction useRadioGroupItemIndicator(params) {\n  const {\n    radioGroupItemContext,\n    disabled,\n    ...rest\n  } = params, {\n    checked\n  } = (0, import_react39.useContext)(radioGroupItemContext);\n  return {\n    checked,\n    \"data-state\": getState4(checked),\n    \"data-disabled\": disabled ? \"\" : void 0,\n    ...rest\n  };\n}\n__name(useRadioGroupItemIndicator, \"useRadioGroupItemIndicator\");\n\n// node_modules/@tamagui/collection/dist/esm/Collection.mjs\nvar import_core28 = require(\"@tamagui/core\");\nvar import_react40 = __toESM(require(\"react\"), 1);\nvar import_jsx_runtime38 = require(\"react/jsx-runtime\");\nfunction createCollection(name) {\n  const {\n    Provider: CollectionProviderImpl,\n    useStyledContext: useCollectionContext\n  } = (0, import_core28.createStyledContext)({\n    collectionRef: {\n      current: null\n    },\n    itemMap: /* @__PURE__ */ new Map()\n  }), CollectionProvider = /* @__PURE__ */ __name((props) => {\n    const {\n      __scopeCollection,\n      children\n    } = props, ref = import_react40.default.useRef(null), itemMap = import_react40.default.useRef(/* @__PURE__ */ new Map()).current;\n    return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(CollectionProviderImpl, {\n      scope: __scopeCollection,\n      itemMap,\n      collectionRef: ref,\n      children\n    });\n  }, \"CollectionProvider\");\n  CollectionProvider.displayName = \"CollectionProvider\";\n  const COLLECTION_SLOT_NAME = name + \"CollectionSlot\", CollectionSlot = import_react40.default.forwardRef((props, forwardedRef) => {\n    const {\n      __scopeCollection,\n      children\n    } = props, context2 = useCollectionContext(__scopeCollection), composedRefs = useComposedRefs(forwardedRef, context2.collectionRef);\n    return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_core28.Slot, {\n      ref: composedRefs,\n      children\n    });\n  });\n  CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n  const ITEM_SLOT_NAME = name + \"CollectionItemSlot\", ITEM_DATA_ATTR = \"data-collection-item\", CollectionItemSlot = import_react40.default.forwardRef((props, forwardedRef) => {\n    const {\n      __scopeCollection,\n      children,\n      ...itemData\n    } = props, ref = import_react40.default.useRef(null), composedRefs = useComposedRefs(forwardedRef, ref), context2 = useCollectionContext(__scopeCollection);\n    return import_react40.default.useEffect(() => (context2.itemMap.set(ref, {\n      ref,\n      ...itemData\n    }), () => void context2.itemMap.delete(ref))), /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_core28.Slot, {\n      [ITEM_DATA_ATTR]: \"\",\n      ref: composedRefs,\n      children\n    });\n  });\n  CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n  function useCollection2(__scopeCollection) {\n    const context2 = useCollectionContext(__scopeCollection);\n    return import_react40.default.useCallback(() => {\n      if (!isWeb) return [];\n      const collectionNode = context2.collectionRef.current;\n      if (!collectionNode) return [];\n      const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));\n      return Array.from(context2.itemMap.values()).sort((a, b) => orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current));\n    }, [context2.collectionRef, context2.itemMap]);\n  }\n  __name(useCollection2, \"useCollection\");\n  return [{\n    Provider: CollectionProvider,\n    Slot: CollectionSlot,\n    ItemSlot: CollectionItemSlot\n  }, useCollection2];\n}\n__name(createCollection, \"createCollection\");\n\n// node_modules/@tamagui/roving-focus/dist/esm/RovingFocusGroup.mjs\nvar import_core29 = require(\"@tamagui/core\");\n\n// node_modules/@tamagui/use-direction/dist/esm/useDirection.mjs\nvar React51 = __toESM(require(\"react\"), 1);\nvar import_jsx_runtime39 = require(\"react/jsx-runtime\");\nvar DirectionContext = React51.createContext(void 0);\nfunction useDirection(localDir) {\n  const globalDir = React51.useContext(DirectionContext);\n  return localDir || globalDir || \"ltr\";\n}\n__name(useDirection, \"useDirection\");\n\n// node_modules/@tamagui/roving-focus/dist/esm/RovingFocusGroup.mjs\nvar React52 = __toESM(require(\"react\"), 1);\nvar import_jsx_runtime40 = require(\"react/jsx-runtime\");\nvar ENTRY_FOCUS = \"rovingFocusGroup.onEntryFocus\";\nvar EVENT_OPTIONS2 = {\n  bubbles: false,\n  cancelable: true\n};\nvar RovingFocusGroupImpl = React52.forwardRef((props, forwardedRef) => {\n  const {\n    __scopeRovingFocusGroup,\n    orientation,\n    loop = false,\n    dir,\n    currentTabStopId: currentTabStopIdProp,\n    defaultCurrentTabStopId,\n    onCurrentTabStopIdChange,\n    onEntryFocus,\n    ...groupProps\n  } = props, ref = React52.useRef(null), composedRefs = useComposedRefs(forwardedRef, ref), direction = useDirection(dir), [currentTabStopId = null, setCurrentTabStopId] = useControllableState({\n    prop: currentTabStopIdProp,\n    defaultProp: defaultCurrentTabStopId ?? null,\n    onChange: onCurrentTabStopIdChange\n  }), [isTabbingBackOut, setIsTabbingBackOut] = React52.useState(false), handleEntryFocus = (0, import_core29.useEvent)(onEntryFocus), getItems = useCollection(__scopeRovingFocusGroup || ROVING_FOCUS_GROUP_CONTEXT), isClickFocusRef = React52.useRef(false), [focusableItemsCount, setFocusableItemsCount] = React52.useState(0);\n  return React52.useEffect(() => {\n    const node = ref.current;\n    if (node) return node.addEventListener(ENTRY_FOCUS, handleEntryFocus), () => node.removeEventListener(ENTRY_FOCUS, handleEntryFocus);\n  }, [handleEntryFocus]), /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(RovingFocusProvider, {\n    scope: __scopeRovingFocusGroup,\n    orientation,\n    dir: direction,\n    loop,\n    currentTabStopId,\n    onItemFocus: React52.useCallback((tabStopId) => setCurrentTabStopId(tabStopId), [setCurrentTabStopId]),\n    onItemShiftTab: React52.useCallback(() => setIsTabbingBackOut(true), []),\n    onFocusableItemAdd: React52.useCallback(() => setFocusableItemsCount((prevCount) => prevCount + 1), []),\n    onFocusableItemRemove: React52.useCallback(() => setFocusableItemsCount((prevCount) => prevCount - 1), []),\n    children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_core29.Stack, {\n      tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,\n      \"data-orientation\": orientation,\n      ...groupProps,\n      ref: composedRefs,\n      style: [{\n        outline: \"none\"\n      }, props.style],\n      onMouseDown: composeEventHandlers(props.onMouseDown, () => {\n        isClickFocusRef.current = true;\n      }),\n      onFocus: composeEventHandlers(props.onFocus, (event) => {\n        const isKeyboardFocus = !isClickFocusRef.current;\n        if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {\n          const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS2);\n          if (event.currentTarget.dispatchEvent(entryFocusEvent), !entryFocusEvent.defaultPrevented) {\n            const items = getItems().filter((item) => item.focusable), activeItem = items.find((item) => item.active), currentItem = items.find((item) => item.id === currentTabStopId), candidateNodes = [activeItem, currentItem, ...items].filter(Boolean).map((item) => item.ref.current);\n            focusFirst2(candidateNodes);\n          }\n        }\n        isClickFocusRef.current = false;\n      }),\n      onBlur: composeEventHandlers(props.onBlur, () => setIsTabbingBackOut(false))\n    })\n  });\n});\nvar ITEM_NAME = \"RovingFocusGroupItem\";\nvar RovingFocusGroupItem = React52.forwardRef((props, forwardedRef) => {\n  const {\n    __scopeRovingFocusGroup,\n    focusable = true,\n    active = false,\n    tabStopId,\n    ...itemProps\n  } = props, autoId = React52.useId(), id = tabStopId || autoId, context2 = useRovingFocusContext(__scopeRovingFocusGroup), isCurrentTabStop = context2.currentTabStopId === id, getItems = useCollection(__scopeRovingFocusGroup || ROVING_FOCUS_GROUP_CONTEXT), {\n    onFocusableItemAdd,\n    onFocusableItemRemove\n  } = context2;\n  return React52.useEffect(() => {\n    if (focusable) return onFocusableItemAdd(), () => onFocusableItemRemove();\n  }, [focusable, onFocusableItemAdd, onFocusableItemRemove]), /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Collection.ItemSlot, {\n    __scopeCollection: __scopeRovingFocusGroup || ROVING_FOCUS_GROUP_CONTEXT,\n    id,\n    focusable,\n    active,\n    children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_core29.Stack, {\n      tabIndex: isCurrentTabStop ? 0 : -1,\n      \"data-orientation\": context2.orientation,\n      ...itemProps,\n      ref: forwardedRef,\n      onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n        focusable ? context2.onItemFocus(id) : event.preventDefault();\n      }),\n      onFocus: composeEventHandlers(props.onFocus, () => context2.onItemFocus(id)),\n      ...isWeb && {\n        onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n          if (event.key === \"Tab\" && event.shiftKey) {\n            context2.onItemShiftTab();\n            return;\n          }\n          if (event.target !== event.currentTarget) return;\n          const focusIntent = getFocusIntent(event, context2.orientation, context2.dir);\n          if (focusIntent !== void 0) {\n            event.preventDefault();\n            let candidateNodes = getItems().filter((item) => item.focusable).map((item) => item.ref.current);\n            if (focusIntent === \"last\") candidateNodes.reverse();\n            else if (focusIntent === \"prev\" || focusIntent === \"next\") {\n              focusIntent === \"prev\" && candidateNodes.reverse();\n              const currentIndex = candidateNodes.indexOf(event.currentTarget);\n              candidateNodes = context2.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);\n            }\n            setTimeout(() => focusFirst2(candidateNodes));\n          }\n        })\n      }\n    })\n  });\n});\nRovingFocusGroupItem.displayName = ITEM_NAME;\nvar GROUP_NAME2 = \"RovingFocusGroup\";\nvar [Collection, useCollection] = createCollection(GROUP_NAME2);\nvar {\n  Provider: RovingFocusProvider,\n  useStyledContext: useRovingFocusContext\n} = (0, import_core29.createStyledContext)();\nvar ROVING_FOCUS_GROUP_CONTEXT = \"RovingFocusGroupContext\";\nvar RovingFocusGroup = withStaticProperties(React52.forwardRef((props, forwardedRef) => /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Collection.Provider, {\n  __scopeCollection: props.__scopeRovingFocusGroup || ROVING_FOCUS_GROUP_CONTEXT,\n  children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Collection.Slot, {\n    __scopeCollection: props.__scopeRovingFocusGroup || ROVING_FOCUS_GROUP_CONTEXT,\n    children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(RovingFocusGroupImpl, {\n      ...props,\n      ref: forwardedRef\n    })\n  })\n})), {\n  Item: RovingFocusGroupItem\n});\nRovingFocusGroup.displayName = GROUP_NAME2;\nvar MAP_KEY_TO_FOCUS_INTENT = {\n  ArrowLeft: \"prev\",\n  ArrowUp: \"prev\",\n  ArrowRight: \"next\",\n  ArrowDown: \"next\",\n  PageUp: \"first\",\n  Home: \"first\",\n  PageDown: \"last\",\n  End: \"last\"\n};\nfunction getDirectionAwareKey(key, dir) {\n  return dir !== \"rtl\" ? key : key === \"ArrowLeft\" ? \"ArrowRight\" : key === \"ArrowRight\" ? \"ArrowLeft\" : key;\n}\n__name(getDirectionAwareKey, \"getDirectionAwareKey\");\nfunction getFocusIntent(event, orientation, dir) {\n  const key = getDirectionAwareKey(event.key, dir);\n  if (!(orientation === \"vertical\" && [\"ArrowLeft\", \"ArrowRight\"].includes(key)) && !(orientation === \"horizontal\" && [\"ArrowUp\", \"ArrowDown\"].includes(key))) return MAP_KEY_TO_FOCUS_INTENT[key];\n}\n__name(getFocusIntent, \"getFocusIntent\");\nfunction focusFirst2(candidates) {\n  const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n  for (const candidate of candidates) if (candidate === PREVIOUSLY_FOCUSED_ELEMENT || (candidate.focus(), document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT)) return;\n}\n__name(focusFirst2, \"focusFirst\");\nfunction wrapArray(array, startIndex) {\n  return array.map((_, index3) => array[(startIndex + index3) % array.length]);\n}\n__name(wrapArray, \"wrapArray\");\n\n// node_modules/@tamagui/radio-group/dist/esm/createRadioGroup.mjs\nvar import_jsx_runtime41 = require(\"react/jsx-runtime\");\nvar ensureContext2 = /* @__PURE__ */ __name((x) => {\n  x.context || (x.context = RadioGroupContext);\n}, \"ensureContext\");\nvar RadioGroupContext = import_react41.default.createContext({});\nvar RadioGroupItemContext = import_react41.default.createContext({\n  checked: false,\n  disabled: false\n});\nfunction createRadioGroup(createProps) {\n  const {\n    disableActiveTheme,\n    Frame: Frame2 = RadioGroupFrame,\n    Indicator = RadioGroupIndicatorFrame,\n    Item = RadioGroupItemFrame\n  } = createProps;\n  ensureContext2(Frame2), ensureContext2(Indicator), ensureContext2(Item);\n  const RadioGroupImp = Frame2.styleable((props, ref) => {\n    const {\n      value,\n      defaultValue: defaultValue2,\n      onValueChange,\n      required = false,\n      disabled = false,\n      name,\n      native,\n      accentColor,\n      orientation = \"vertical\",\n      ...rest\n    } = props, {\n      providerValue,\n      frameAttrs,\n      rovingFocusGroupAttrs\n    } = useRadioGroup({\n      orientation,\n      name,\n      defaultValue: defaultValue2,\n      value,\n      onValueChange,\n      required,\n      disabled,\n      native,\n      accentColor\n    });\n    return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(RadioGroupContext.Provider, {\n      value: providerValue,\n      children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(RovingFocusGroup, {\n        ...rovingFocusGroupAttrs,\n        children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(RadioGroupFrame, {\n          ...frameAttrs,\n          ref,\n          ...rest\n        })\n      })\n    });\n  }), RadioGroupItemImp = Item.styleable((props, ref) => {\n    const {\n      value,\n      labelledBy,\n      onPress,\n      //@ts-expect-error\n      onKeyDown,\n      disabled,\n      id,\n      ...rest\n    } = props, {\n      providerValue,\n      bubbleInput,\n      rovingFocusGroupAttrs,\n      frameAttrs,\n      isFormControl,\n      native\n    } = useRadioGroupItem({\n      radioGroupContext: RadioGroupContext,\n      value,\n      id,\n      labelledBy,\n      disabled,\n      onPress,\n      onKeyDown\n    });\n    return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(RadioGroupItemContext.Provider, {\n      value: providerValue,\n      children: import_core30.isWeb && native ? bubbleInput : /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(import_jsx_runtime41.Fragment, {\n        children: [/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(RovingFocusGroup.Item, {\n          ...rovingFocusGroupAttrs,\n          children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(RadioGroupItemFrame, {\n            ...frameAttrs,\n            ref,\n            ...rest\n          })\n        }), isFormControl && bubbleInput]\n      })\n    });\n  });\n  RadioGroupItemImp.displayName = \"RadioGroupItem\";\n  const RadioIndicator = Indicator.styleable((props, forwardedRef) => {\n    const {\n      forceMount,\n      disabled,\n      ...indicatorProps\n    } = props, {\n      checked,\n      ...useIndicatorRest\n    } = useRadioGroupItemIndicator({\n      radioGroupItemContext: RadioGroupItemContext,\n      disabled\n    });\n    return forceMount || checked ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Indicator, {\n      ...useIndicatorRest,\n      ref: forwardedRef,\n      ...indicatorProps\n    }) : null;\n  });\n  RadioIndicator.displayName = \"RadioIndicator\";\n  const RadioGroup2 = (0, import_core30.withStaticProperties)(RadioGroupImp, {\n    Item: RadioGroupItemImp,\n    Indicator: RadioIndicator\n  });\n  return RadioGroup2.displayName = \"RadioGroup\", RadioGroup2;\n}\n__name(createRadioGroup, \"createRadioGroup\");\n\n// node_modules/@tamagui/radio-group/dist/esm/RadioGroupStyledContext.mjs\nvar import_core31 = require(\"@tamagui/core\");\nvar RadioGroupStyledContext = (0, import_core31.createStyledContext)({\n  size: \"$true\",\n  scaleIcon: 1\n});\n\n// node_modules/@tamagui/radio-group/dist/esm/index.mjs\nvar RadioGroup = createRadioGroup({\n  Frame: RadioGroupFrame,\n  Indicator: RadioGroupIndicatorFrame,\n  Item: RadioGroupItemFrame\n});\n\n// node_modules/@tamagui/select/dist/esm/Select.mjs\nvar import_core38 = require(\"@tamagui/core\");\n\n// node_modules/@tamagui/separator/dist/esm/Separator.mjs\nvar import_core32 = require(\"@tamagui/core\");\nvar Separator = (0, import_core32.styled)(import_core32.Stack, {\n  name: \"Separator\",\n  borderColor: \"$borderColor\",\n  flexShrink: 0,\n  borderWidth: 0,\n  flex: 1,\n  height: 0,\n  maxHeight: 0,\n  borderBottomWidth: 1,\n  y: -0.5,\n  variants: {\n    vertical: {\n      true: {\n        y: 0,\n        x: -0.5,\n        height: isWeb ? \"initial\" : \"auto\",\n        // maxHeight auto WILL BE passed to style attribute, but for some reason not used?\n        // almost seems like a react or browser bug, but for now `initial` works\n        // also, it doesn't happen for `height`, but for consistency using the same values\n        maxHeight: isWeb ? \"initial\" : \"auto\",\n        width: 0,\n        maxWidth: 0,\n        borderBottomWidth: 0,\n        borderRightWidth: 1\n      }\n    }\n  }\n});\n\n// node_modules/@tamagui/use-debounce/dist/esm/index.mjs\nvar React54 = __toESM(require(\"react\"), 1);\nfunction debounce(func, wait, leading) {\n  let timeout, isCancelled = false;\n  function debounced() {\n    isCancelled = false;\n    const args = arguments;\n    leading && !timeout && func.apply(this, args), clearTimeout(timeout), timeout = setTimeout(() => {\n      timeout = null, leading || isCancelled || func.apply(this, args), isCancelled = false;\n    }, wait);\n  }\n  __name(debounced, \"debounced\");\n  return debounced.cancel = () => {\n    isCancelled = true;\n  }, debounced;\n}\n__name(debounce, \"debounce\");\nvar defaultOpts = {\n  leading: false\n};\nfunction useDebounce(fn, wait, options = defaultOpts, mountArgs = [fn]) {\n  const dbEffect = React54.useRef(null);\n  return React54.useEffect(() => () => {\n    dbEffect.current?.cancel();\n  }, []), React54.useMemo(() => (dbEffect.current = debounce(fn, wait, options.leading), dbEffect.current), [options.leading, ...mountArgs]);\n}\n__name(useDebounce, \"useDebounce\");\nfunction useDebounceValue(val, amt = 0) {\n  const [state, setState] = React54.useState(val);\n  return React54.useEffect(() => {\n    const tm = setTimeout(() => {\n      setState((prev) => prev === val ? prev : val);\n    }, amt);\n    return () => {\n      clearTimeout(tm);\n    };\n  }, [val]), state;\n}\n__name(useDebounceValue, \"useDebounceValue\");\n\n// node_modules/@tamagui/select/dist/esm/Select.mjs\nvar React61 = __toESM(require(\"react\"), 1);\n\n// node_modules/@tamagui/select/dist/esm/constants.mjs\nvar SELECT_NAME = \"Select\";\nvar SCROLL_ARROW_THRESHOLD = 8;\nvar VIEWPORT_NAME = \"SelectViewport\";\n\n// node_modules/@tamagui/select/dist/esm/context.mjs\nvar import_jsx_runtime42 = require(\"react/jsx-runtime\");\nvar [createSelectContext, createSelectScope] = createContextScope(SELECT_NAME);\nvar [SelectProvider, useSelectContext] = createSelectContext(SELECT_NAME);\nvar [createSelectItemParentContext, createSelectItemParentScope] = createContextScope(SELECT_NAME);\nvar [SelectItemParentProvider, useSelectItemParentContext] = createSelectContext(SELECT_NAME);\nvar ForwardSelectContext = /* @__PURE__ */ __name(({\n  __scopeSelect,\n  context: context2,\n  itemContext,\n  children\n}) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(SelectProvider, {\n  isInSheet: true,\n  scope: __scopeSelect,\n  ...context2,\n  children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(SelectItemParentProvider, {\n    scope: __scopeSelect,\n    ...itemContext,\n    children\n  })\n}), \"ForwardSelectContext\");\n\n// node_modules/@tamagui/select/dist/esm/SelectContent.mjs\nvar import_react42 = __toESM(require(\"react\"), 1);\nvar import_core33 = require(\"@tamagui/core\");\n\n// node_modules/@tamagui/select/dist/esm/useSelectBreakpointActive.mjs\nvar useShowSelectSheet = /* @__PURE__ */ __name((context2) => {\n  const breakpointActive = useAdaptIsActive();\n  return context2.open === false ? false : breakpointActive;\n}, \"useShowSelectSheet\");\n\n// node_modules/@tamagui/select/dist/esm/SelectContent.mjs\nvar import_jsx_runtime43 = require(\"react/jsx-runtime\");\nvar CONTENT_NAME3 = \"SelectContent\";\nvar SelectContent = /* @__PURE__ */ __name(({\n  children,\n  __scopeSelect,\n  zIndex = 1e3,\n  ...focusScopeProps\n}) => {\n  const context2 = useSelectContext(CONTENT_NAME3, __scopeSelect), itemParentContext = useSelectItemParentContext(CONTENT_NAME3, __scopeSelect), themeName = (0, import_core33.useThemeName)(), showSheet = useShowSelectSheet(context2), contents = /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_core33.Theme, {\n    forceClassName: true,\n    name: themeName,\n    children\n  }), touch = (0, import_core33.useIsTouchDevice)(), overlayStyle = import_react42.default.useMemo(() => ({\n    zIndex,\n    pointerEvents: context2.open ? \"auto\" : \"none\"\n  }), [context2.open]);\n  return itemParentContext.shouldRenderWebNative ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_jsx_runtime43.Fragment, {\n    children\n  }) : showSheet ? context2.open ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_jsx_runtime43.Fragment, {\n    children: contents\n  }) : null : /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(FloatingPortal, {\n    children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(FloatingOverlay, {\n      style: overlayStyle,\n      lockScroll: !context2.disablePreventBodyScroll && !!context2.open && !touch,\n      children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(FocusScope, {\n        loop: true,\n        enabled: !!context2.open,\n        trapped: true,\n        ...focusScopeProps,\n        children: contents\n      })\n    })\n  });\n}, \"SelectContent\");\n\n// node_modules/@tamagui/select/dist/esm/SelectImpl.mjs\nvar import_core34 = require(\"@tamagui/core\");\nvar React56 = __toESM(require(\"react\"), 1);\nvar import_react_dom5 = require(\"react-dom\");\nvar import_jsx_runtime44 = require(\"react/jsx-runtime\");\nvar SelectInlineImpl = /* @__PURE__ */ __name((props) => {\n  const {\n    __scopeSelect,\n    children,\n    open = false,\n    selectedIndexRef,\n    listContentRef\n  } = props, selectContext = useSelectContext(\"SelectSheetImpl\", __scopeSelect), selectItemParentContext = useSelectItemParentContext(\"SelectSheetImpl\", __scopeSelect), {\n    setActiveIndex,\n    selectedIndex,\n    activeIndex,\n    forceUpdate\n  } = selectContext, {\n    setOpen,\n    setSelectedIndex\n  } = selectItemParentContext, [scrollTop, setScrollTop] = React56.useState(0), touch = (0, import_core34.useIsTouchDevice)(), listItemsRef = React56.useRef([]), overflowRef = React56.useRef(null), upArrowRef = React56.useRef(null), downArrowRef = React56.useRef(null), allowSelectRef = React56.useRef(false), allowMouseUpRef = React56.useRef(true), selectTimeoutRef = React56.useRef(), state = React56.useRef({\n    isMouseOutside: false,\n    isTyping: false\n  }), [controlledScrolling, setControlledScrolling] = React56.useState(false), [fallback, setFallback] = React56.useState(false), [innerOffset, setInnerOffset] = React56.useState(0), [blockSelection, setBlockSelection] = React56.useState(false), floatingStyle = React56.useRef({});\n  useIsomorphicLayoutEffect(() => {\n    queueMicrotask(() => {\n      open || (setScrollTop(0), setFallback(false), setActiveIndex(null), setControlledScrolling(false));\n    });\n  }, [open, setActiveIndex]), isWeb && isClient && useIsomorphicLayoutEffect(() => {\n    if (!open) return;\n    const mouseUp = /* @__PURE__ */ __name((e) => {\n      state.current.isMouseOutside && setOpen(false);\n    }, \"mouseUp\");\n    return document.addEventListener(\"mouseup\", mouseUp), () => {\n      document.removeEventListener(\"mouseup\", mouseUp);\n    };\n  }, [open]);\n  const {\n    x,\n    y,\n    strategy,\n    context: context2,\n    refs,\n    update\n  } = useFloating3({\n    open,\n    onOpenChange: setOpen,\n    placement: \"bottom-start\",\n    whileElementsMounted: autoUpdate,\n    // biome-ignore lint/correctness/noConstantCondition: <explanation>\n    middleware: [size3({\n      apply({\n        rects: {\n          reference: {\n            width\n          }\n        }\n      }) {\n        Object.assign(floatingStyle.current, {\n          minWidth: width + 8\n        }), refs.floating.current && Object.assign(refs.floating.current.style, floatingStyle.current);\n      }\n    }), inner({\n      listRef: listItemsRef,\n      overflowRef,\n      index: selectedIndex,\n      offset: innerOffset,\n      onFallbackChange: setFallback,\n      padding: 10,\n      minItemsVisible: touch ? 10 : 4,\n      referenceOverflowThreshold: 20\n    }), offset3({\n      crossAxis: -5\n    })]\n  }), floatingRef = refs.floating, showUpArrow = open && scrollTop > SCROLL_ARROW_THRESHOLD, showDownArrow = open && floatingRef.current && scrollTop < floatingRef.current.scrollHeight - floatingRef.current.clientHeight - SCROLL_ARROW_THRESHOLD, isScrollable = showDownArrow || showUpArrow;\n  useIsomorphicLayoutEffect(() => (window.addEventListener(\"resize\", update), open && update(), () => window.removeEventListener(\"resize\", update)), [update, open]);\n  const onMatch = (0, import_core34.useEvent)((index3) => (open ? setActiveIndex : setSelectedIndex)(index3)), interactionsProps = [useClick(context2, {\n    event: \"mousedown\",\n    keyboardHandlers: false\n  }), useDismiss(context2, {\n    outsidePress: false\n  }), useRole(context2, {\n    role: \"listbox\"\n  }), useInnerOffset(context2, {\n    enabled: !fallback && isScrollable,\n    onChange: setInnerOffset,\n    overflowRef,\n    scrollRef: refs.floating\n  }), useListNavigation(context2, {\n    listRef: listItemsRef,\n    activeIndex: activeIndex || 0,\n    selectedIndex,\n    onNavigate: setActiveIndex,\n    scrollItemIntoView: false\n  }), useTypeahead(context2, {\n    listRef: listContentRef,\n    onMatch,\n    selectedIndex,\n    activeIndex,\n    onTypingChange: /* @__PURE__ */ __name((e) => {\n      state.current.isTyping = e;\n    }, \"onTypingChange\")\n  })], interactions = useInteractions(\n    // unfortunately these memos will just always break due to floating-ui context always changing :/\n    React56.useMemo(() => interactionsProps, interactionsProps)\n  ), interactionsContext = React56.useMemo(() => ({\n    ...interactions,\n    getReferenceProps() {\n      return interactions.getReferenceProps({\n        ref: refs.reference,\n        className: \"SelectTrigger\",\n        onKeyDown(event) {\n          (event.key === \"Enter\" || event.code === \"Space\" || event.key === \" \" && !state.current.isTyping) && (event.preventDefault(), setOpen(true));\n        }\n      });\n    },\n    getFloatingProps(props2) {\n      return interactions.getFloatingProps({\n        ref: refs.floating,\n        className: \"Select\",\n        ...props2,\n        style: {\n          position: strategy,\n          top: y ?? \"\",\n          left: x ?? \"\",\n          outline: 0,\n          scrollbarWidth: \"none\",\n          ...floatingStyle.current,\n          ...props2?.style\n        },\n        onPointerEnter() {\n          setControlledScrolling(false), state.current.isMouseOutside = false;\n        },\n        onPointerLeave() {\n          state.current.isMouseOutside = true;\n        },\n        onPointerMove() {\n          state.current.isMouseOutside = false, setControlledScrolling(false);\n        },\n        onKeyDown() {\n          setControlledScrolling(true);\n        },\n        onContextMenu(e) {\n          e.preventDefault();\n        },\n        onScroll(event) {\n          (0, import_react_dom5.flushSync)(() => {\n            setScrollTop(event.currentTarget.scrollTop);\n          });\n        }\n      });\n    }\n  }), [refs.reference.current, x, y, refs.floating.current, interactions]);\n  return useIsomorphicLayoutEffect(() => {\n    if (open) return selectTimeoutRef.current = setTimeout(() => {\n      allowSelectRef.current = true;\n    }, 300), () => {\n      clearTimeout(selectTimeoutRef.current);\n    };\n    allowSelectRef.current = false, allowMouseUpRef.current = true, setInnerOffset(0), setFallback(false), setBlockSelection(false);\n  }, [open]), useIsomorphicLayoutEffect(() => {\n    !open && state.current.isMouseOutside && (state.current.isMouseOutside = false);\n  }, [open]), useIsomorphicLayoutEffect(() => {\n    function onPointerDown(e) {\n      const target = e.target;\n      refs.floating.current?.contains(target) || upArrowRef.current?.contains(target) || downArrowRef.current?.contains(target) || (setOpen(false), setControlledScrolling(false));\n    }\n    __name(onPointerDown, \"onPointerDown\");\n    if (open) return document.addEventListener(\"pointerdown\", onPointerDown), () => {\n      document.removeEventListener(\"pointerdown\", onPointerDown);\n    };\n  }, [open, refs, setOpen]), React56.useEffect(() => {\n    open && controlledScrolling && activeIndex != null && listItemsRef.current[activeIndex]?.scrollIntoView({\n      block: \"nearest\"\n    }), setScrollTop(refs.floating.current?.scrollTop ?? 0);\n  }, [open, refs, controlledScrolling, activeIndex]), React56.useEffect(() => {\n    open && fallback && selectedIndex != null && listItemsRef.current[selectedIndex]?.scrollIntoView({\n      block: \"nearest\"\n    });\n  }, [open, fallback, selectedIndex]), useIsomorphicLayoutEffect(() => {\n    refs.floating.current && fallback && (refs.floating.current.style.maxHeight = \"\");\n  }, [refs, fallback]), /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(SelectProvider, {\n    scope: __scopeSelect,\n    ...selectContext,\n    setScrollTop,\n    setInnerOffset,\n    fallback,\n    floatingContext: context2,\n    activeIndex,\n    canScrollDown: !!showDownArrow,\n    canScrollUp: !!showUpArrow,\n    controlledScrolling,\n    blockSelection,\n    upArrowRef,\n    downArrowRef,\n    update,\n    children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(SelectItemParentProvider, {\n      scope: __scopeSelect,\n      ...selectItemParentContext,\n      allowMouseUpRef,\n      allowSelectRef,\n      dataRef: context2.dataRef,\n      interactions: interactionsContext,\n      listRef: listItemsRef,\n      selectTimeoutRef,\n      children\n    })\n  });\n}, \"SelectInlineImpl\");\n\n// node_modules/@tamagui/select/dist/esm/SelectItem.mjs\nvar React57 = __toESM(require(\"react\"), 1);\nvar import_jsx_runtime45 = require(\"react/jsx-runtime\");\nvar ITEM_NAME2 = \"SelectItem\";\nvar [SelectItemContextProvider, useSelectItemContext] = createSelectContext(ITEM_NAME2);\nvar SelectItem = ListItemFrame.styleable(function(props, forwardedRef) {\n  const {\n    __scopeSelect,\n    value,\n    disabled = false,\n    textValue: textValueProp,\n    index: index3,\n    ...restProps\n  } = props, {\n    props: listItemProps\n  } = useListItem({\n    ...!props.unstyled && {\n      ellipse: true\n    },\n    ...restProps\n  }), context2 = useSelectItemParentContext(ITEM_NAME2, __scopeSelect), {\n    setSelectedIndex,\n    listRef,\n    setOpen,\n    onChange,\n    activeIndexSubscribe,\n    valueSubscribe,\n    allowMouseUpRef,\n    allowSelectRef,\n    setValueAtIndex,\n    selectTimeoutRef,\n    dataRef,\n    interactions,\n    shouldRenderWebNative,\n    size: size4,\n    onActiveChange,\n    initialValue: initialValue2\n  } = context2, [isSelected, setSelected] = React57.useState(initialValue2 === value);\n  React57.useEffect(() => activeIndexSubscribe((i) => {\n    index3 === i && (onActiveChange(value, index3), listRef?.current[index3]?.focus());\n  }), [index3]), React57.useEffect(() => valueSubscribe((val) => {\n    setSelected(val === value);\n  }), [value]);\n  const textId = React57.useId(), refCallback = React57.useCallback((node) => {\n    isWeb && node instanceof HTMLElement && listRef && (listRef.current[index3] = node);\n  }, []), composedRefs = useComposedRefs(forwardedRef, refCallback);\n  useIsomorphicLayoutEffect(() => {\n    setValueAtIndex(index3, value);\n  }, [index3, setValueAtIndex, value]);\n  function handleSelect() {\n    setSelectedIndex(index3), onChange(value), setOpen(false);\n  }\n  __name(handleSelect, \"handleSelect\");\n  const selectItemProps = React57.useMemo(() => interactions ? interactions.getItemProps({\n    onTouchMove() {\n      allowSelectRef.current = true, allowMouseUpRef.current = false;\n    },\n    onTouchEnd() {\n      allowSelectRef.current = false, allowMouseUpRef.current = true;\n    },\n    onKeyDown(event) {\n      event.key === \"Enter\" || event.key === \" \" && !dataRef?.current.typing ? (event.preventDefault(), handleSelect()) : allowSelectRef.current = true;\n    },\n    onClick() {\n      allowSelectRef.current && handleSelect();\n    },\n    onMouseUp() {\n      allowMouseUpRef.current && (allowSelectRef.current && handleSelect(), clearTimeout(selectTimeoutRef.current), selectTimeoutRef.current = setTimeout(() => {\n        allowSelectRef.current = true;\n      }));\n    }\n  }) : {\n    onPress: handleSelect\n  }, [handleSelect]);\n  return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(SelectItemContextProvider, {\n    scope: __scopeSelect,\n    value,\n    textId: textId || \"\",\n    isSelected,\n    children: shouldRenderWebNative ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(\"option\", {\n      value,\n      children: props.children\n    }) : /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(ListItemFrame, {\n      tag: \"div\",\n      componentName: ITEM_NAME2,\n      ref: composedRefs,\n      \"aria-labelledby\": textId,\n      \"aria-selected\": isSelected,\n      \"data-state\": isSelected ? \"active\" : \"inactive\",\n      \"aria-disabled\": disabled || void 0,\n      \"data-disabled\": disabled ? \"\" : void 0,\n      tabIndex: disabled ? void 0 : -1,\n      ...!props.unstyled && {\n        backgrounded: true,\n        pressTheme: true,\n        hoverTheme: true,\n        focusTheme: true,\n        cursor: \"default\",\n        size: size4,\n        outlineOffset: -0.5,\n        focusVisibleStyle: {\n          outlineColor: \"$outlineColor\",\n          outlineWidth: 1,\n          outlineStyle: \"solid\"\n        }\n      },\n      ...listItemProps,\n      ...selectItemProps\n    })\n  });\n}, {\n  disableTheme: true\n});\n\n// node_modules/@tamagui/select/dist/esm/SelectItemText.mjs\nvar import_core35 = require(\"@tamagui/core\");\nvar React58 = __toESM(require(\"react\"), 1);\nvar import_jsx_runtime46 = require(\"react/jsx-runtime\");\nvar ITEM_TEXT_NAME = \"SelectItemText\";\nvar SelectItemTextFrame = (0, import_core35.styled)(SizableText, {\n  name: ITEM_TEXT_NAME,\n  variants: {\n    unstyled: {\n      false: {\n        userSelect: \"none\",\n        color: \"$color\",\n        ellipse: true\n      }\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar SelectItemText = SelectItemTextFrame.styleable(function(props, forwardedRef) {\n  const {\n    __scopeSelect,\n    className,\n    ...itemTextProps\n  } = props, context2 = useSelectContext(ITEM_TEXT_NAME, __scopeSelect), itemParentContext = useSelectItemParentContext(ITEM_TEXT_NAME, __scopeSelect), ref = React58.useRef(null), composedRefs = useComposedRefs(forwardedRef, ref), itemContext = useSelectItemContext(ITEM_TEXT_NAME, __scopeSelect), contents = React58.useRef();\n  return contents.current = /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(SelectItemTextFrame, {\n    className,\n    size: itemParentContext.size,\n    id: itemContext.textId,\n    ...itemTextProps,\n    ref: composedRefs\n  }), React58.useEffect(() => {\n    itemParentContext.initialValue === itemContext.value && !context2.selectedIndex && context2.setSelectedItem(contents.current);\n  }, []), React58.useEffect(() => itemParentContext.valueSubscribe((val) => {\n    val === itemContext.value && context2.setSelectedItem(contents.current);\n  }), [itemContext.value]), itemParentContext.shouldRenderWebNative ? /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_jsx_runtime46.Fragment, {\n    children: props.children\n  }) : /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_jsx_runtime46.Fragment, {\n    children: contents.current\n  });\n});\n\n// node_modules/@tamagui/select/dist/esm/SelectScrollButton.mjs\nvar React59 = __toESM(require(\"react\"), 1);\nvar import_react_dom6 = require(\"react-dom\");\nvar import_jsx_runtime47 = require(\"react/jsx-runtime\");\nvar SCROLL_UP_BUTTON_NAME = \"SelectScrollUpButton\";\nvar SelectScrollUpButton = React59.forwardRef((props, forwardedRef) => /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(SelectScrollButtonImpl, {\n  componentName: SCROLL_UP_BUTTON_NAME,\n  ...props,\n  dir: \"up\",\n  ref: forwardedRef\n}));\nSelectScrollUpButton.displayName = SCROLL_UP_BUTTON_NAME;\nvar SCROLL_DOWN_BUTTON_NAME = \"SelectScrollDownButton\";\nvar SelectScrollDownButton = React59.forwardRef((props, forwardedRef) => /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(SelectScrollButtonImpl, {\n  componentName: SCROLL_DOWN_BUTTON_NAME,\n  ...props,\n  dir: \"down\",\n  ref: forwardedRef\n}));\nSelectScrollDownButton.displayName = SCROLL_DOWN_BUTTON_NAME;\nvar SelectScrollButtonImpl = React59.memo(React59.forwardRef((props, forwardedRef) => {\n  const {\n    __scopeSelect,\n    dir,\n    componentName,\n    ...scrollIndicatorProps\n  } = props, {\n    forceUpdate,\n    open,\n    fallback,\n    setScrollTop,\n    setInnerOffset,\n    ...context2\n  } = useSelectContext(componentName, __scopeSelect), floatingRef = context2.floatingContext?.refs.floating, statusRef = React59.useRef(\"idle\"), isVisible = context2[dir === \"down\" ? \"canScrollDown\" : \"canScrollUp\"], frameRef = React59.useRef(), {\n    x,\n    y,\n    refs,\n    strategy\n  } = useFloating3({\n    open: open && isVisible,\n    strategy: \"fixed\",\n    elements: {\n      reference: floatingRef?.current\n    },\n    placement: dir === \"up\" ? \"top\" : \"bottom\",\n    middleware: [offset3(({\n      rects\n    }) => -rects.floating.height)],\n    whileElementsMounted: /* @__PURE__ */ __name((...args) => autoUpdate(...args, {\n      animationFrame: true\n    }), \"whileElementsMounted\")\n  }), composedRef = useComposedRefs(forwardedRef, refs.setFloating);\n  if (!isVisible) return null;\n  const onScroll = /* @__PURE__ */ __name((amount) => {\n    const floating = floatingRef;\n    floating && (fallback ? floating.current && (floating.current.scrollTop -= amount, (0, import_react_dom6.flushSync)(() => setScrollTop(floating.current?.scrollTop ?? 0))) : (0, import_react_dom6.flushSync)(() => setInnerOffset((value) => value - amount)));\n  }, \"onScroll\");\n  return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(YStack, {\n    ref: composedRef,\n    componentName,\n    \"aria-hidden\": true,\n    ...scrollIndicatorProps,\n    zIndex: 1e3,\n    position: strategy,\n    left: x || 0,\n    top: y || 0,\n    width: `calc(${(floatingRef?.current?.offsetWidth ?? 0) - 2}px)`,\n    onPointerEnter: /* @__PURE__ */ __name(() => {\n      statusRef.current = \"active\";\n      let prevNow = Date.now();\n      function frame() {\n        const element = floatingRef?.current;\n        if (element) {\n          const currentNow = Date.now(), msElapsed = currentNow - prevNow;\n          prevNow = currentNow;\n          const pixelsToScroll = msElapsed / 2, remainingPixels = dir === \"up\" ? element.scrollTop : element.scrollHeight - element.clientHeight - element.scrollTop, scrollRemaining = dir === \"up\" ? element.scrollTop - pixelsToScroll > 0 : element.scrollTop + pixelsToScroll < element.scrollHeight - element.clientHeight;\n          onScroll(dir === \"up\" ? Math.min(pixelsToScroll, remainingPixels) : Math.max(-pixelsToScroll, -remainingPixels)), scrollRemaining && (frameRef.current = requestAnimationFrame(frame));\n        }\n      }\n      __name(frame, \"frame\");\n      cancelAnimationFrame(frameRef.current), frameRef.current = requestAnimationFrame(frame);\n    }, \"onPointerEnter\"),\n    onPointerLeave: /* @__PURE__ */ __name(() => {\n      statusRef.current = \"idle\", cancelAnimationFrame(frameRef.current);\n    }, \"onPointerLeave\")\n  });\n}));\n\n// node_modules/@tamagui/select/dist/esm/SelectTrigger.mjs\nvar import_core36 = require(\"@tamagui/core\");\nvar React60 = __toESM(require(\"react\"), 1);\nvar import_jsx_runtime48 = require(\"react/jsx-runtime\");\nvar TRIGGER_NAME4 = \"SelectTrigger\";\nvar isPointerCoarse = import_core36.isWeb && import_core36.isClient ? window.matchMedia(\"(pointer:coarse)\").matches : true;\nvar SelectTrigger = React60.forwardRef(function(props, forwardedRef) {\n  const {\n    __scopeSelect,\n    disabled = false,\n    unstyled = false,\n    ...triggerProps\n  } = props, context2 = useSelectContext(TRIGGER_NAME4, __scopeSelect), itemParentContext = useSelectItemParentContext(TRIGGER_NAME4, __scopeSelect), composedRefs = useComposedRefs(forwardedRef, context2.floatingContext?.refs.setReference);\n  return itemParentContext.shouldRenderWebNative ? null : /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(ListItem2, {\n    componentName: TRIGGER_NAME4,\n    unstyled,\n    tag: \"button\",\n    type: \"button\",\n    id: itemParentContext.id,\n    ...!unstyled && {\n      backgrounded: true,\n      radiused: true,\n      hoverTheme: true,\n      pressTheme: true,\n      focusable: true,\n      focusVisibleStyle: {\n        outlineStyle: \"solid\",\n        outlineWidth: 2,\n        outlineColor: \"$outlineColor\"\n      },\n      borderWidth: 1,\n      size: itemParentContext.size\n    },\n    \"aria-expanded\": context2.open,\n    \"aria-autocomplete\": \"none\",\n    dir: context2.dir,\n    disabled,\n    \"data-disabled\": disabled ? \"\" : void 0,\n    ...triggerProps,\n    ref: composedRefs,\n    ...itemParentContext.interactions ? {\n      ...itemParentContext.interactions.getReferenceProps(),\n      ...isPointerCoarse ? {\n        onPress() {\n          itemParentContext.setOpen(!context2.open);\n        }\n      } : {\n        onMouseDown() {\n          context2.floatingContext?.update(), itemParentContext.setOpen(!context2.open);\n        }\n      }\n    } : {\n      onPress() {\n        itemParentContext.setOpen(!context2.open);\n      }\n    }\n  });\n});\n\n// node_modules/@tamagui/select/dist/esm/SelectViewport.mjs\nvar import_core37 = require(\"@tamagui/core\");\nvar import_jsx_runtime49 = require(\"react/jsx-runtime\");\nvar SelectViewportFrame = (0, import_core37.styled)(ThemeableStack, {\n  name: VIEWPORT_NAME,\n  variants: {\n    unstyled: {\n      false: {\n        size: \"$2\",\n        backgroundColor: \"$background\",\n        elevate: true,\n        bordered: true,\n        userSelect: \"none\",\n        outlineWidth: 0\n      }\n    },\n    size: {\n      \"...size\": /* @__PURE__ */ __name((val, {\n        tokens\n      }) => ({\n        borderRadius: tokens.radius[val] ?? val\n      }), \"...size\")\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar SelectViewport = SelectViewportFrame.styleable(function(props, forwardedRef) {\n  const {\n    __scopeSelect,\n    children,\n    disableScroll,\n    ...viewportProps\n  } = props, context2 = useSelectContext(VIEWPORT_NAME, __scopeSelect), itemContext = useSelectItemParentContext(VIEWPORT_NAME, __scopeSelect), isAdapted = useAdaptIsActive(), composedRefs = useComposedRefs(forwardedRef, context2.floatingContext?.refs.setFloating);\n  if (useIsomorphicLayoutEffect(() => {\n    context2.update && context2.update();\n  }, [isAdapted]), itemContext.shouldRenderWebNative) return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_jsx_runtime49.Fragment, {\n    children\n  });\n  if (isAdapted || !isWeb) return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(AdaptPortalContents, {\n    children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(ForwardSelectContext, {\n      __scopeSelect,\n      itemContext,\n      context: context2,\n      children\n    })\n  });\n  if (!itemContext.interactions) return process.env.NODE_ENV === \"development\" && console.warn(\"No interactions provided to Select, potentially missing Adapt\"), null;\n  const {\n    style,\n    // remove this, it was set to \"Select\" always\n    className,\n    ...floatingProps\n  } = itemContext.interactions.getFloatingProps();\n  return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(import_jsx_runtime49.Fragment, {\n    children: [!disableScroll && !props.unstyled && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(\"style\", {\n      dangerouslySetInnerHTML: {\n        __html: selectViewportCSS\n      }\n    }), /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(AnimatePresence, {\n      children: context2.open ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(FloatingFocusManager, {\n        context: context2.floatingContext,\n        modal: false,\n        children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(SelectViewportFrame, {\n          size: itemContext.size,\n          role: \"presentation\",\n          ...viewportProps,\n          ...style,\n          ...floatingProps,\n          ...!props.unstyled && {\n            overflowY: disableScroll ? void 0 : style.overflow ?? \"auto\"\n          },\n          ref: composedRefs,\n          children\n        }, \"select-viewport\")\n      }) : null\n    }), !context2.open && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(\"div\", {\n      style: {\n        display: \"none\"\n      },\n      children: props.children\n    })]\n  });\n});\nvar selectViewportCSS = `\n.is_SelectViewport {\n  scrollbar-width: none;\n  -webkit-overflow-scrolling: touch;\n  overscroll-behavior: contain;\n}\n\n.is_SelectViewport::-webkit-scrollbar{\n  display:none\n}\n`;\n\n// node_modules/@tamagui/select/dist/esm/Select.mjs\nvar import_jsx_runtime50 = require(\"react/jsx-runtime\");\nvar VALUE_NAME = \"SelectValue\";\nvar SelectValueFrame = (0, import_core38.styled)(SizableText, {\n  name: VALUE_NAME,\n  userSelect: \"none\"\n});\nvar SelectValue = SelectValueFrame.styleable(function({\n  __scopeSelect,\n  children: childrenProp,\n  placeholder,\n  ...props\n}, forwardedRef) {\n  const context2 = useSelectContext(VALUE_NAME, __scopeSelect), itemParentContext = useSelectItemParentContext(VALUE_NAME, __scopeSelect), composedRefs = useComposedRefs(forwardedRef, context2.onValueNodeChange), children = childrenProp ?? context2.selectedItem, selectValueChildren = context2.value == null || context2.value === \"\" ? placeholder ?? children : children;\n  return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(SelectValueFrame, {\n    ...!props.unstyled && {\n      size: itemParentContext.size,\n      ellipse: true,\n      // we don't want events from the portalled `SelectValue` children to bubble\n      // through the item they came from\n      pointerEvents: \"none\"\n    },\n    ref: composedRefs,\n    ...props,\n    children: unwrapSelectItem(selectValueChildren)\n  });\n});\nfunction unwrapSelectItem(selectValueChildren) {\n  return React61.Children.map(selectValueChildren, (child) => {\n    if (child) {\n      if (child.type?.staticConfig?.componentName === ITEM_TEXT_NAME) return child.props.children;\n      if (child.props?.children) return unwrapSelectItem(child.props.children);\n    }\n    return child;\n  });\n}\n__name(unwrapSelectItem, \"unwrapSelectItem\");\nvar SelectIcon = (0, import_core38.styled)(XStack, {\n  name: \"SelectIcon\",\n  // @ts-ignore\n  \"aria-hidden\": true,\n  children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Paragraph, {\n    children: \"\\u25BC\"\n  })\n});\nvar ITEM_INDICATOR_NAME = \"SelectItemIndicator\";\nvar SelectItemIndicatorFrame = (0, import_core38.styled)(XStack, {\n  name: ITEM_TEXT_NAME\n});\nvar SelectItemIndicator = React61.forwardRef((props, forwardedRef) => {\n  const {\n    __scopeSelect,\n    ...itemIndicatorProps\n  } = props, context2 = useSelectItemParentContext(ITEM_INDICATOR_NAME, __scopeSelect), itemContext = useSelectItemContext(ITEM_INDICATOR_NAME, __scopeSelect);\n  return context2.shouldRenderWebNative ? null : itemContext.isSelected ? /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(SelectItemIndicatorFrame, {\n    \"aria-hidden\": true,\n    ...itemIndicatorProps,\n    ref: forwardedRef\n  }) : null;\n});\nSelectItemIndicator.displayName = ITEM_INDICATOR_NAME;\nvar GROUP_NAME3 = \"SelectGroup\";\nvar [SelectGroupContextProvider, useSelectGroupContext] = createSelectContext(GROUP_NAME3);\nvar SelectGroupFrame = (0, import_core38.styled)(YStack, {\n  name: GROUP_NAME3,\n  width: \"100%\"\n});\nvar NativeSelectTextFrame = (0, import_core38.styled)(SizableText, {\n  tag: \"select\",\n  backgroundColor: \"$background\",\n  borderColor: \"$borderColor\",\n  hoverStyle: {\n    backgroundColor: \"$backgroundHover\"\n  }\n});\nvar NativeSelectFrame = (0, import_core38.styled)(ThemeableStack, {\n  name: \"NativeSelect\",\n  bordered: true,\n  userSelect: \"none\",\n  outlineWidth: 0,\n  paddingRight: 10,\n  variants: {\n    size: {\n      \"...size\": /* @__PURE__ */ __name((val, extras) => {\n        const {\n          tokens\n        } = extras, paddingHorizontal = (0, import_core38.getVariableValue)(tokens.space[val]);\n        return {\n          borderRadius: tokens.radius[val] ?? val,\n          minHeight: tokens.size[val],\n          paddingRight: paddingHorizontal + 20,\n          paddingLeft: paddingHorizontal,\n          paddingVertical: getSpace(val, {\n            shift: -3\n          })\n        };\n      }, \"...size\")\n    }\n  },\n  defaultVariants: {\n    size: \"$2\"\n  }\n});\nvar SelectGroup = React61.forwardRef((props, forwardedRef) => {\n  const {\n    __scopeSelect,\n    ...groupProps\n  } = props, groupId = React61.useId(), context2 = useSelectContext(GROUP_NAME3, __scopeSelect), itemParentContext = useSelectItemParentContext(GROUP_NAME3, __scopeSelect), size4 = itemParentContext.size ?? \"$true\", nativeSelectRef = React61.useRef(null), content = itemParentContext.shouldRenderWebNative ? /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(NativeSelectFrame, {\n    asChild: true,\n    size: size4,\n    value: context2.value,\n    id: itemParentContext.id,\n    children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(NativeSelectTextFrame, {\n      onChange: /* @__PURE__ */ __name((event) => {\n        itemParentContext.onChange(event.currentTarget.value);\n      }, \"onChange\"),\n      size: size4,\n      ref: nativeSelectRef,\n      style: {\n        color: \"var(--color)\",\n        // @ts-ignore\n        appearance: \"none\"\n      },\n      children: props.children\n    })\n  }) : /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(SelectGroupFrame, {\n    role: \"group\",\n    \"aria-labelledby\": groupId,\n    ...groupProps,\n    ref: forwardedRef\n  });\n  return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(SelectGroupContextProvider, {\n    scope: __scopeSelect,\n    id: groupId || \"\",\n    children: content\n  });\n});\nSelectGroup.displayName = GROUP_NAME3;\nvar LABEL_NAME = \"SelectLabel\";\nvar SelectLabel = React61.forwardRef((props, forwardedRef) => {\n  const {\n    __scopeSelect,\n    ...labelProps\n  } = props, context2 = useSelectItemParentContext(LABEL_NAME, __scopeSelect), groupContext = useSelectGroupContext(LABEL_NAME, __scopeSelect);\n  return context2.shouldRenderWebNative ? null : /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ListItem2, {\n    tag: \"div\",\n    componentName: LABEL_NAME,\n    fontWeight: \"800\",\n    id: groupContext.id,\n    size: context2.size,\n    ...labelProps,\n    ref: forwardedRef\n  });\n});\nSelectLabel.displayName = LABEL_NAME;\nvar SelectSeparator = (0, import_core38.styled)(Separator, {\n  name: \"SelectSeparator\"\n});\nvar SelectSheetController = /* @__PURE__ */ __name((props) => {\n  const context2 = useSelectContext(\"SelectSheetController\", props.__scopeSelect), showSheet = useShowSelectSheet(context2), isAdapted = useAdaptIsActive(), getShowSheet = (0, import_core38.useGet)(showSheet);\n  return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(SheetController, {\n    onOpenChange: /* @__PURE__ */ __name((val) => {\n      getShowSheet() && props.onOpenChange(val);\n    }, \"onOpenChange\"),\n    open: context2.open,\n    hidden: isAdapted === false,\n    children: props.children\n  });\n}, \"SelectSheetController\");\nvar SelectSheetImpl = /* @__PURE__ */ __name((props) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_jsx_runtime50.Fragment, {\n  children: props.children\n}), \"SelectSheetImpl\");\nvar Select = withStaticProperties(function(props) {\n  const internalId = React61.useId(), scopeKey = props.__scopeSelect ? Object.keys(props.__scopeSelect)[0] ?? internalId : internalId;\n  return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(AdaptParent, {\n    scope: `${scopeKey}SheetContents`,\n    portal: true,\n    children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(SelectInner, {\n      scopeKey,\n      ...props\n    })\n  });\n}, {\n  Adapt,\n  Content: SelectContent,\n  Group: SelectGroup,\n  Icon: SelectIcon,\n  Item: SelectItem,\n  ItemIndicator: SelectItemIndicator,\n  ItemText: SelectItemText,\n  Label: SelectLabel,\n  ScrollDownButton: SelectScrollDownButton,\n  ScrollUpButton: SelectScrollUpButton,\n  Trigger: SelectTrigger,\n  Value: SelectValue,\n  Viewport: SelectViewport,\n  Sheet: Sheet.Controlled\n});\nfunction useEmitter() {\n  const listeners = React61.useRef();\n  listeners.current || (listeners.current = /* @__PURE__ */ new Set());\n  const emit = /* @__PURE__ */ __name((value) => {\n    listeners.current.forEach((l) => l(value));\n  }, \"emit\"), subscribe3 = React61.useCallback((listener) => (listeners.current.add(listener), () => {\n    listeners.current.delete(listener);\n  }), []);\n  return [emit, subscribe3];\n}\n__name(useEmitter, \"useEmitter\");\nfunction SelectInner(props) {\n  const {\n    __scopeSelect,\n    native,\n    children,\n    open: openProp,\n    defaultOpen,\n    onOpenChange,\n    value: valueProp,\n    defaultValue: defaultValue2,\n    onValueChange,\n    disablePreventBodyScroll,\n    size: sizeProp = \"$true\",\n    onActiveChange,\n    dir,\n    id\n  } = props, SelectImpl = useAdaptIsActive() || !isWeb ? SelectSheetImpl : SelectInlineImpl, forceUpdate = React61.useReducer(() => ({}), {})[1], [selectedItem, setSelectedItem] = React61.useState(null), [open, setOpen] = useControllableState({\n    prop: openProp,\n    defaultProp: defaultOpen || false,\n    onChange: onOpenChange\n  }), [value, setValue] = useControllableState({\n    prop: valueProp,\n    defaultProp: defaultValue2 || \"\",\n    onChange: onValueChange,\n    transition: true\n  });\n  React61.useEffect(() => {\n    open && emitValue(value);\n  }, [open]), React61.useEffect(() => {\n    emitValue(value);\n  }, [value]);\n  const [activeIndex, setActiveIndex] = React61.useState(0), [emitValue, valueSubscribe] = useEmitter(), [emitActiveIndex, activeIndexSubscribe] = useEmitter(), selectedIndexRef = React61.useRef(null), activeIndexRef = React61.useRef(null), listContentRef = React61.useRef([]), [selectedIndex, setSelectedIndex] = React61.useState(0), [valueNode, setValueNode] = React61.useState(null);\n  useIsomorphicLayoutEffect(() => {\n    selectedIndexRef.current = selectedIndex, activeIndexRef.current = activeIndex;\n  });\n  const shouldRenderWebNative = isWeb && (native === true || native === \"web\" || Array.isArray(native) && native.includes(\"web\")), setActiveIndexDebounced = useDebounce((index3) => {\n    setActiveIndex((prev) => prev !== index3 ? (typeof index3 == \"number\" && emitActiveIndex(index3), index3) : prev);\n  }, 1, {}, []);\n  return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(SelectItemParentProvider, {\n    scope: __scopeSelect,\n    initialValue: React61.useMemo(() => value, [open]),\n    size: sizeProp,\n    activeIndexSubscribe,\n    valueSubscribe,\n    setOpen,\n    id,\n    onChange: React61.useCallback((val) => {\n      setValue(val), emitValue(val);\n    }, []),\n    onActiveChange: (0, import_core38.useEvent)((...args) => {\n      onActiveChange?.(...args);\n    }),\n    setSelectedIndex,\n    setValueAtIndex: React61.useCallback((index3, value2) => {\n      listContentRef.current[index3] = value2;\n    }, []),\n    shouldRenderWebNative,\n    children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(SelectProvider, {\n      scope: __scopeSelect,\n      disablePreventBodyScroll,\n      dir,\n      blockSelection: false,\n      fallback: false,\n      selectedItem,\n      setSelectedItem,\n      forceUpdate,\n      valueNode,\n      onValueNodeChange: setValueNode,\n      scopeKey: props.scopeKey,\n      activeIndex,\n      selectedIndex,\n      setActiveIndex: setActiveIndexDebounced,\n      value,\n      open,\n      native,\n      children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(SelectSheetController, {\n        onOpenChange: setOpen,\n        __scopeSelect,\n        children: shouldRenderWebNative ? children : /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(SelectImpl, {\n          activeIndexRef,\n          listContentRef,\n          selectedIndexRef,\n          ...props,\n          open,\n          value,\n          children\n        })\n      })\n    })\n  });\n}\n__name(SelectInner, \"SelectInner\");\n\n// node_modules/@tamagui/slider/dist/esm/Slider.mjs\nvar import_core41 = require(\"@tamagui/core\");\nvar React63 = __toESM(require(\"react\"), 1);\n\n// node_modules/@tamagui/slider/dist/esm/constants.mjs\nvar import_core39 = require(\"@tamagui/core\");\nvar SLIDER_NAME = \"Slider\";\nvar SliderContext = (0, import_core39.createStyledContext)({\n  size: \"$true\",\n  min: 0,\n  max: 100,\n  orientation: \"horizontal\"\n});\nvar {\n  Provider: SliderProvider,\n  useStyledContext: useSliderContext\n} = SliderContext;\nvar {\n  Provider: SliderOrientationProvider,\n  useStyledContext: useSliderOrientationContext\n} = (0, import_core39.createStyledContext)({\n  startEdge: \"left\",\n  endEdge: \"right\",\n  sizeProp: \"width\",\n  size: 0,\n  direction: 1\n});\nvar PAGE_KEYS = [\"PageUp\", \"PageDown\"];\nvar ARROW_KEYS2 = [\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"];\nvar BACK_KEYS = {\n  ltr: [\"ArrowDown\", \"Home\", \"ArrowLeft\", \"PageDown\"],\n  rtl: [\"ArrowDown\", \"Home\", \"ArrowRight\", \"PageDown\"]\n};\n\n// node_modules/@tamagui/slider/dist/esm/helpers.mjs\nfunction getNextSortedValues(prevValues = [], nextValue, atIndex) {\n  const nextValues = [...prevValues];\n  return nextValues[atIndex] = nextValue, nextValues.sort((a, b) => a - b);\n}\n__name(getNextSortedValues, \"getNextSortedValues\");\nfunction convertValueToPercentage(value, min2, max2) {\n  return 100 / (max2 - min2) * (value - min2);\n}\n__name(convertValueToPercentage, \"convertValueToPercentage\");\nfunction getLabel(index3, totalValues) {\n  if (totalValues > 2) return `Value ${index3 + 1} of ${totalValues}`;\n  if (totalValues === 2) return [\"Minimum\", \"Maximum\"][index3];\n}\n__name(getLabel, \"getLabel\");\nfunction getClosestValueIndex(values, nextValue) {\n  if (values.length === 1) return 0;\n  const distances = values.map((value) => Math.abs(value - nextValue)), closestDistance = Math.min(...distances);\n  return distances.indexOf(closestDistance);\n}\n__name(getClosestValueIndex, \"getClosestValueIndex\");\nfunction getThumbInBoundsOffset(width, left, direction) {\n  const quarterWidth = width / 4, offset4 = linearScale([0, 50], [0, quarterWidth]);\n  return (quarterWidth - offset4(left) * direction) * direction;\n}\n__name(getThumbInBoundsOffset, \"getThumbInBoundsOffset\");\nfunction getStepsBetweenValues(values) {\n  return values.slice(0, -1).map((value, index3) => values[index3 + 1] - value);\n}\n__name(getStepsBetweenValues, \"getStepsBetweenValues\");\nfunction hasMinStepsBetweenValues(values, minStepsBetweenValues) {\n  if (minStepsBetweenValues > 0) {\n    const stepsBetweenValues = getStepsBetweenValues(values);\n    return Math.min(...stepsBetweenValues) >= minStepsBetweenValues;\n  }\n  return true;\n}\n__name(hasMinStepsBetweenValues, \"hasMinStepsBetweenValues\");\nfunction linearScale(input, output) {\n  return (value) => {\n    if (input[0] === input[1] || output[0] === output[1]) return output[0];\n    const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n    return output[0] + ratio * (value - input[0]);\n  };\n}\n__name(linearScale, \"linearScale\");\nfunction getDecimalCount(value) {\n  return (String(value).split(\".\")[1] || \"\").length;\n}\n__name(getDecimalCount, \"getDecimalCount\");\nfunction roundValue(value, decimalCount) {\n  const rounder = 10 ** decimalCount;\n  return Math.round(value * rounder) / rounder;\n}\n__name(roundValue, \"roundValue\");\n\n// node_modules/@tamagui/slider/dist/esm/SliderImpl.mjs\nvar import_core40 = require(\"@tamagui/core\");\nvar React62 = __toESM(require(\"react\"), 1);\nvar import_jsx_runtime51 = require(\"react/jsx-runtime\");\nvar SliderFrame = (0, import_core40.styled)(YStack, {\n  position: \"relative\",\n  variants: {\n    orientation: {\n      horizontal: {},\n      vertical: {}\n    },\n    size: /* @__PURE__ */ __name((val, extras) => {\n      if (!val) return;\n      const orientation = extras.props.orientation, size4 = Math.round((0, import_core40.getVariableValue)(getSize(val)) / 6);\n      return orientation === \"horizontal\" ? {\n        height: size4,\n        borderRadius: size4,\n        justifyContent: \"center\"\n      } : {\n        width: size4,\n        borderRadius: size4,\n        alignItems: \"center\"\n      };\n    }, \"size\")\n  }\n});\nvar SliderImpl = React62.forwardRef((props, forwardedRef) => {\n  const {\n    __scopeSlider,\n    onSlideStart,\n    onSlideMove,\n    onSlideEnd,\n    onHomeKeyDown,\n    onEndKeyDown,\n    onStepKeyDown,\n    ...sliderProps\n  } = props, context2 = useSliderContext(__scopeSlider);\n  return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(SliderFrame, {\n    size: \"$4\",\n    ...sliderProps,\n    \"data-orientation\": sliderProps.orientation,\n    ref: forwardedRef,\n    ...isWeb && {\n      onKeyDown: /* @__PURE__ */ __name((event) => {\n        event.key === \"Home\" ? (onHomeKeyDown(event), event.preventDefault()) : event.key === \"End\" ? (onEndKeyDown(event), event.preventDefault()) : PAGE_KEYS.concat(ARROW_KEYS2).includes(event.key) && (onStepKeyDown(event), event.preventDefault());\n      }, \"onKeyDown\")\n    },\n    onMoveShouldSetResponderCapture: /* @__PURE__ */ __name(() => true, \"onMoveShouldSetResponderCapture\"),\n    onScrollShouldSetResponder: /* @__PURE__ */ __name(() => true, \"onScrollShouldSetResponder\"),\n    onScrollShouldSetResponderCapture: /* @__PURE__ */ __name(() => true, \"onScrollShouldSetResponderCapture\"),\n    onMoveShouldSetResponder: /* @__PURE__ */ __name(() => true, \"onMoveShouldSetResponder\"),\n    onStartShouldSetResponder: /* @__PURE__ */ __name(() => true, \"onStartShouldSetResponder\"),\n    onResponderTerminationRequest: /* @__PURE__ */ __name(() => false, \"onResponderTerminationRequest\"),\n    onResponderGrant: composeEventHandlers(props.onResponderGrant, (event) => {\n      const target = event.target, thumbIndex = context2.thumbs.get(target), isStartingOnThumb = thumbIndex !== void 0;\n      isWeb && target instanceof HTMLElement && context2.thumbs.has(target) && target.focus(), !isWeb && isStartingOnThumb && (context2.valueIndexToChangeRef.current = thumbIndex), onSlideStart(event, isStartingOnThumb ? \"thumb\" : \"track\");\n    }),\n    onResponderMove: composeEventHandlers(props.onResponderMove, (event) => {\n      event.stopPropagation(), onSlideMove(event);\n    }),\n    onResponderRelease: composeEventHandlers(props.onResponderRelease, (event) => {\n      onSlideEnd(event);\n    })\n  });\n});\n\n// node_modules/@tamagui/slider/dist/esm/Slider.mjs\nvar import_jsx_runtime52 = require(\"react/jsx-runtime\");\nvar activeSliderMeasureListeners = /* @__PURE__ */ new Set();\nisWeb && isClient && (process.env.TAMAGUI_DISABLE_SLIDER_INTERVAL || setInterval?.(\n  () => {\n    activeSliderMeasureListeners.forEach((cb) => cb());\n  },\n  // really doesn't need to be super often\n  1e3\n));\nvar SliderHorizontal = React63.forwardRef((props, forwardedRef) => {\n  const {\n    min: min2,\n    max: max2,\n    dir,\n    onSlideStart,\n    onSlideMove,\n    onStepKeyDown,\n    onSlideEnd,\n    ...sliderProps\n  } = props, direction = useDirection(dir), isDirectionLTR = direction === \"ltr\", sliderRef = React63.useRef(null), [state, setState_] = React63.useState(() => ({\n    size: 0,\n    offset: 0\n  })), setState = (0, import_core41.createShallowSetState)(setState_);\n  function getValueFromPointer(pointerPosition) {\n    const input = [0, state.size];\n    return linearScale(input, isDirectionLTR ? [min2, max2] : [max2, min2])(pointerPosition);\n  }\n  __name(getValueFromPointer, \"getValueFromPointer\");\n  const measure = /* @__PURE__ */ __name(() => {\n    sliderRef.current?.measure((_x, _y, width, _height, pageX, _pageY) => {\n      setState({\n        size: width,\n        offset: pageX\n      });\n    });\n  }, \"measure\");\n  return isClient && (useOnDebouncedWindowResize(measure), React63.useEffect(() => {\n    const node = sliderRef.current;\n    if (!node) return;\n    let measureTm;\n    const debouncedMeasure = /* @__PURE__ */ __name(() => {\n      clearTimeout(measureTm), measureTm = setTimeout(() => {\n        measure();\n      }, 200);\n    }, \"debouncedMeasure\"), io = new IntersectionObserver((entries) => {\n      debouncedMeasure(), entries?.[0].isIntersecting ? activeSliderMeasureListeners.add(debouncedMeasure) : activeSliderMeasureListeners.delete(debouncedMeasure);\n    }, {\n      root: null,\n      // Use the viewport as the container.\n      rootMargin: \"0px\",\n      threshold: [0, 0.5, 1]\n    });\n    return io.observe(node), () => {\n      activeSliderMeasureListeners.delete(debouncedMeasure), io.disconnect();\n    };\n  }, [])), /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(SliderOrientationProvider, {\n    scope: props.__scopeSlider,\n    startEdge: isDirectionLTR ? \"left\" : \"right\",\n    endEdge: isDirectionLTR ? \"right\" : \"left\",\n    direction: isDirectionLTR ? 1 : -1,\n    sizeProp: \"width\",\n    size: state.size,\n    children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(SliderImpl, {\n      ref: composeRefs(forwardedRef, sliderRef),\n      dir: direction,\n      ...sliderProps,\n      orientation: \"horizontal\",\n      onLayout: measure,\n      onSlideStart: /* @__PURE__ */ __name((event, target) => {\n        const value = getValueFromPointer(event.nativeEvent.locationX);\n        value && onSlideStart?.(value, target, event);\n      }, \"onSlideStart\"),\n      onSlideMove: /* @__PURE__ */ __name((event) => {\n        const value = getValueFromPointer(event.nativeEvent.pageX - state.offset);\n        value && onSlideMove?.(value, event);\n      }, \"onSlideMove\"),\n      onSlideEnd: /* @__PURE__ */ __name((event) => {\n        const value = getValueFromPointer(event.nativeEvent.pageX - state.offset);\n        value && onSlideEnd?.(event, value);\n      }, \"onSlideEnd\"),\n      onStepKeyDown: /* @__PURE__ */ __name((event) => {\n        const isBackKey = BACK_KEYS[direction].includes(event.key);\n        onStepKeyDown?.({\n          event,\n          direction: isBackKey ? -1 : 1\n        });\n      }, \"onStepKeyDown\")\n    })\n  });\n});\nfunction useOnDebouncedWindowResize(callback, amt = 200) {\n  React63.useEffect(() => {\n    let last;\n    const onResize = /* @__PURE__ */ __name(() => {\n      clearTimeout(last), last = setTimeout(callback, amt);\n    }, \"onResize\");\n    return window.addEventListener(\"resize\", onResize), () => {\n      clearTimeout(last), window.removeEventListener(\"resize\", onResize);\n    };\n  }, []);\n}\n__name(useOnDebouncedWindowResize, \"useOnDebouncedWindowResize\");\nvar SliderVertical = React63.forwardRef((props, forwardedRef) => {\n  const {\n    min: min2,\n    max: max2,\n    onSlideStart,\n    onSlideMove,\n    onStepKeyDown,\n    onSlideEnd,\n    ...sliderProps\n  } = props, [state, setState_] = React63.useState(() => ({\n    size: 0,\n    offset: 0\n  })), setState = (0, import_core41.createShallowSetState)(setState_), sliderRef = React63.useRef(null);\n  function getValueFromPointer(pointerPosition) {\n    const input = [0, state.size];\n    return linearScale(input, [max2, min2])(pointerPosition);\n  }\n  __name(getValueFromPointer, \"getValueFromPointer\");\n  const measure = /* @__PURE__ */ __name(() => {\n    sliderRef.current?.measure((_x, _y, _width, height, _pageX, pageY) => {\n      setState({\n        size: height,\n        offset: pageY\n      });\n    });\n  }, \"measure\");\n  return isClient && useOnDebouncedWindowResize(measure), /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(SliderOrientationProvider, {\n    scope: props.__scopeSlider,\n    startEdge: \"bottom\",\n    endEdge: \"top\",\n    sizeProp: \"height\",\n    size: state.size,\n    direction: 1,\n    children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(SliderImpl, {\n      ref: composeRefs(forwardedRef, sliderRef),\n      ...sliderProps,\n      orientation: \"vertical\",\n      onLayout: measure,\n      onSlideStart: /* @__PURE__ */ __name((event, target) => {\n        const value = getValueFromPointer(event.nativeEvent.locationY);\n        value && onSlideStart?.(value, target, event);\n      }, \"onSlideStart\"),\n      onSlideMove: /* @__PURE__ */ __name((event) => {\n        const value = getValueFromPointer(event.nativeEvent.pageY - state.offset);\n        value && onSlideMove?.(value, event);\n      }, \"onSlideMove\"),\n      onSlideEnd: /* @__PURE__ */ __name((event) => {\n        const value = getValueFromPointer(event.nativeEvent.pageY - state.offset);\n        onSlideEnd?.(event, value);\n      }, \"onSlideEnd\"),\n      onStepKeyDown: /* @__PURE__ */ __name((event) => {\n        const isBackKey = BACK_KEYS.ltr.includes(event.key);\n        onStepKeyDown?.({\n          event,\n          direction: isBackKey ? -1 : 1\n        });\n      }, \"onStepKeyDown\")\n    })\n  });\n});\nvar TRACK_NAME = \"SliderTrack\";\nvar SliderTrackFrame = (0, import_core41.styled)(SliderFrame, {\n  name: \"SliderTrack\",\n  variants: {\n    unstyled: {\n      false: {\n        height: \"100%\",\n        width: \"100%\",\n        backgroundColor: \"$background\",\n        position: \"relative\",\n        borderRadius: 1e5,\n        overflow: \"hidden\"\n      }\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar SliderTrack = React63.forwardRef((props, forwardedRef) => {\n  const {\n    __scopeSlider,\n    ...trackProps\n  } = props, context2 = useSliderContext(__scopeSlider);\n  return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(SliderTrackFrame, {\n    \"data-disabled\": context2.disabled ? \"\" : void 0,\n    \"data-orientation\": context2.orientation,\n    orientation: context2.orientation,\n    size: context2.size,\n    ...trackProps,\n    ref: forwardedRef\n  });\n});\nSliderTrack.displayName = TRACK_NAME;\nvar RANGE_NAME = \"SliderTrackActive\";\nvar SliderTrackActiveFrame = (0, import_core41.styled)(SliderFrame, {\n  name: \"SliderTrackActive\",\n  backgroundColor: \"$background\",\n  position: \"absolute\",\n  pointerEvents: \"box-none\"\n});\nvar SliderTrackActive = React63.forwardRef((props, forwardedRef) => {\n  const {\n    __scopeSlider,\n    ...rangeProps\n  } = props, context2 = useSliderContext(__scopeSlider), orientation = useSliderOrientationContext(__scopeSlider), ref = React63.useRef(null), composedRefs = useComposedRefs(forwardedRef, ref), valuesCount = context2.values.length, percentages = context2.values.map((value) => convertValueToPercentage(value, context2.min, context2.max)), offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0, offsetEnd = 100 - Math.max(...percentages);\n  return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(SliderTrackActiveFrame, {\n    orientation: context2.orientation,\n    \"data-orientation\": context2.orientation,\n    \"data-disabled\": context2.disabled ? \"\" : void 0,\n    size: context2.size,\n    animateOnly: [\"left\", \"top\", \"right\", \"bottom\"],\n    ...rangeProps,\n    ref: composedRefs,\n    [orientation.startEdge]: `${offsetStart}%`,\n    [orientation.endEdge]: `${offsetEnd}%`,\n    ...orientation.sizeProp === \"width\" ? {\n      height: \"100%\"\n    } : {\n      left: 0,\n      right: 0\n    }\n  });\n});\nSliderTrackActive.displayName = RANGE_NAME;\nvar getThumbSize = /* @__PURE__ */ __name((val) => {\n  const tokens = (0, import_core41.getTokens)(), size4 = typeof val == \"number\" ? val : getSize(tokens.size[val], {\n    shift: -1\n  });\n  return {\n    width: size4,\n    height: size4,\n    minWidth: size4,\n    minHeight: size4\n  };\n}, \"getThumbSize\");\nvar SliderThumbFrame = (0, import_core41.styled)(ThemeableStack, {\n  name: \"SliderThumb\",\n  variants: {\n    size: {\n      \"...size\": getThumbSize\n    },\n    unstyled: {\n      false: {\n        position: \"absolute\",\n        bordered: 2,\n        borderWidth: 2,\n        backgrounded: true,\n        pressTheme: isWeb,\n        focusTheme: isWeb,\n        hoverTheme: isWeb\n      }\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar SliderThumb = SliderThumbFrame.styleable(function(props, forwardedRef) {\n  const {\n    __scopeSlider,\n    index: index3,\n    circular: circular2,\n    size: sizeProp,\n    ...thumbProps\n  } = props, context2 = useSliderContext(__scopeSlider), orientation = useSliderOrientationContext(__scopeSlider), [thumb, setThumb] = React63.useState(null), composedRefs = useComposedRefs(forwardedRef, setThumb), value = context2.values[index3], percent = value === void 0 ? 0 : convertValueToPercentage(value, context2.min, context2.max), label = getLabel(index3, context2.values.length), sizeIn = sizeProp ?? context2.size ?? \"$true\", [size4, setSize] = React63.useState(() => (0, import_core41.getVariableValue)(getThumbSize(sizeIn).width)), thumbInBoundsOffset = size4 ? getThumbInBoundsOffset(size4, percent, orientation.direction) : 0;\n  React63.useEffect(() => {\n    if (thumb) return context2.thumbs.set(thumb, index3), () => {\n      context2.thumbs.delete(thumb);\n    };\n  }, [thumb, context2.thumbs, index3]);\n  const positionalStyles = context2.orientation === \"horizontal\" ? {\n    x: thumbInBoundsOffset - size4 / 2,\n    y: -size4 / 2,\n    top: \"50%\",\n    ...size4 === 0 && {\n      top: \"auto\",\n      bottom: \"auto\"\n    }\n  } : {\n    x: -size4 / 2,\n    y: size4 / 2,\n    left: \"50%\",\n    ...size4 === 0 && {\n      left: \"auto\",\n      right: \"auto\"\n    }\n  };\n  return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(SliderThumbFrame, {\n    ref: composedRefs,\n    role: \"slider\",\n    \"aria-label\": props[\"aria-label\"] || label,\n    \"aria-valuemin\": context2.min,\n    \"aria-valuenow\": value,\n    \"aria-valuemax\": context2.max,\n    \"aria-orientation\": context2.orientation,\n    \"data-orientation\": context2.orientation,\n    \"data-disabled\": context2.disabled ? \"\" : void 0,\n    tabIndex: context2.disabled ? void 0 : 0,\n    animateOnly: [\"transform\", \"left\", \"top\", \"right\", \"bottom\"],\n    ...positionalStyles,\n    [orientation.startEdge]: `${percent}%`,\n    size: sizeIn,\n    circular: circular2,\n    ...thumbProps,\n    onLayout: /* @__PURE__ */ __name((e) => {\n      setSize(e.nativeEvent.layout[orientation.sizeProp]);\n    }, \"onLayout\"),\n    onFocus: composeEventHandlers(props.onFocus, () => {\n      context2.valueIndexToChangeRef.current = index3;\n    })\n  });\n}, {\n  staticConfig: {\n    memo: true\n  }\n});\nvar SliderComponent = React63.forwardRef((props, forwardedRef) => {\n  const {\n    name,\n    min: min2 = 0,\n    max: max2 = 100,\n    step = 1,\n    orientation = \"horizontal\",\n    disabled = false,\n    minStepsBetweenThumbs = 0,\n    defaultValue: defaultValue2 = [min2],\n    value,\n    onValueChange = /* @__PURE__ */ __name(() => {\n    }, \"onValueChange\"),\n    size: sizeProp,\n    onSlideEnd,\n    onSlideMove,\n    onSlideStart,\n    ...sliderProps\n  } = props, sliderRef = React63.useRef(null), composedRefs = useComposedRefs(sliderRef, forwardedRef), thumbRefs = React63.useRef(/* @__PURE__ */ new Map()), valueIndexToChangeRef = React63.useRef(0), isHorizontal = orientation === \"horizontal\", [values = [], setValues] = useControllableState({\n    prop: value,\n    defaultProp: defaultValue2,\n    transition: true,\n    onChange: /* @__PURE__ */ __name((value2) => {\n      updateThumbFocus(valueIndexToChangeRef.current), onValueChange(value2);\n    }, \"onChange\")\n  });\n  isWeb && React63.useEffect(() => {\n    const node = sliderRef.current;\n    if (!node) return;\n    const preventDefault = /* @__PURE__ */ __name((e) => {\n      e.preventDefault();\n    }, \"preventDefault\");\n    return node.addEventListener(\"touchstart\", preventDefault), () => {\n      node.removeEventListener(\"touchstart\", preventDefault);\n    };\n  }, []);\n  function updateThumbFocus(focusIndex) {\n    if (isWeb) {\n      for (const [node, index3] of thumbRefs.current.entries()) if (index3 === focusIndex) {\n        node.focus();\n        return;\n      }\n    }\n  }\n  __name(updateThumbFocus, \"updateThumbFocus\");\n  function handleSlideMove(value2, event) {\n    updateValues(value2, valueIndexToChangeRef.current), onSlideMove?.(event, value2);\n  }\n  __name(handleSlideMove, \"handleSlideMove\");\n  function updateValues(value2, atIndex) {\n    const decimalCount = getDecimalCount(step), snapToStep = roundValue(Math.round((value2 - min2) / step) * step + min2, decimalCount), nextValue = clamp(snapToStep, [min2, max2]);\n    setValues((prevValues = []) => {\n      const nextValues = getNextSortedValues(prevValues, nextValue, atIndex);\n      return hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step) ? (valueIndexToChangeRef.current = nextValues.indexOf(nextValue), String(nextValues) === String(prevValues) ? prevValues : nextValues) : prevValues;\n    });\n  }\n  __name(updateValues, \"updateValues\");\n  const SliderOriented = isHorizontal ? SliderHorizontal : SliderVertical;\n  return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(SliderProvider, {\n    scope: props.__scopeSlider,\n    disabled,\n    min: min2,\n    max: max2,\n    valueIndexToChangeRef,\n    thumbs: thumbRefs.current,\n    values,\n    orientation,\n    size: sizeProp,\n    children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(SliderOriented, {\n      \"aria-disabled\": disabled,\n      \"data-disabled\": disabled ? \"\" : void 0,\n      ...sliderProps,\n      ref: composedRefs,\n      min: min2,\n      max: max2,\n      onSlideEnd,\n      onSlideStart: disabled ? void 0 : (value2, target, event) => {\n        if (target !== \"thumb\") {\n          const closestIndex = getClosestValueIndex(values, value2);\n          updateValues(value2, closestIndex);\n        }\n        onSlideStart?.(event, value2, target);\n      },\n      onSlideMove: disabled ? void 0 : handleSlideMove,\n      onHomeKeyDown: /* @__PURE__ */ __name(() => !disabled && updateValues(min2, 0), \"onHomeKeyDown\"),\n      onEndKeyDown: /* @__PURE__ */ __name(() => !disabled && updateValues(max2, values.length - 1), \"onEndKeyDown\"),\n      onStepKeyDown: /* @__PURE__ */ __name(({\n        event,\n        direction: stepDirection\n      }) => {\n        if (!disabled) {\n          const multiplier = PAGE_KEYS.includes(event.key) || event.shiftKey && ARROW_KEYS2.includes(event.key) ? 10 : 1, atIndex = valueIndexToChangeRef.current, value2 = values[atIndex], stepInDirection = step * multiplier * stepDirection;\n          updateValues(value2 + stepInDirection, atIndex);\n        }\n      }, \"onStepKeyDown\")\n    })\n  });\n});\nvar Slider = withStaticProperties(SliderComponent, {\n  Track: SliderTrack,\n  TrackActive: SliderTrackActive,\n  Thumb: SliderThumb\n});\nSlider.displayName = SLIDER_NAME;\nvar Track = SliderTrack;\nvar Range = SliderTrackActive;\nvar Thumb = SliderThumb;\n\n// node_modules/@tamagui/switch/dist/esm/createSwitch.mjs\nvar import_core44 = require(\"@tamagui/core\");\n\n// node_modules/@tamagui/switch-headless/dist/esm/useSwitch.mjs\nvar React64 = __toESM(require(\"react\"), 1);\nvar import_jsx_runtime53 = require(\"react/jsx-runtime\");\nfunction getState5(checked) {\n  return checked ? \"checked\" : \"unchecked\";\n}\n__name(getState5, \"getState\");\nvar BubbleInput3 = /* @__PURE__ */ __name((props) => {\n  const {\n    control,\n    checked,\n    bubbles = true,\n    ...inputProps\n  } = props, ref = React64.useRef(null), prevChecked = usePrevious(checked);\n  return React64.useEffect(() => {\n    const input = ref.current, inputProto = window.HTMLInputElement.prototype, setChecked = Object.getOwnPropertyDescriptor(inputProto, \"checked\").set;\n    if (prevChecked !== checked && setChecked) {\n      const event = new Event(\"click\", {\n        bubbles\n      });\n      setChecked.call(input, checked), input.dispatchEvent(event);\n    }\n  }, [prevChecked, checked, bubbles]), // @ts-ignore\n  /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(\"input\", {\n    type: \"checkbox\",\n    \"aria-hidden\": true,\n    defaultChecked: checked,\n    ...inputProps,\n    tabIndex: -1,\n    ref,\n    style: {\n      ...props.style,\n      position: \"absolute\",\n      pointerEvents: \"none\",\n      opacity: 0,\n      margin: 0\n    }\n  });\n}, \"BubbleInput\");\nfunction useSwitch(props, [checked, setChecked], ref) {\n  {\n    const {\n      disabled,\n      name,\n      value,\n      required\n    } = props, hasConsumerStoppedPropagationRef = React64.useRef(false), [button, setButton] = React64.useState(null), composedRefs = useComposedRefs(ref, setButton), isFormControl = isWeb ? button ? !!button.closest(\"form\") : true : false, labelId = useLabelContext(button), ariaLabelledBy = props[\"aria-labelledby\"] || props.labeledBy || labelId;\n    return {\n      switchProps: {\n        role: \"switch\",\n        \"aria-checked\": checked,\n        ...isWeb ? {\n          tabIndex: disabled ? void 0 : 0,\n          \"data-state\": getState5(checked),\n          \"data-disabled\": disabled ? \"\" : void 0,\n          disabled\n        } : {},\n        \"aria-labelledby\": ariaLabelledBy,\n        onPress: composeEventHandlers(props.onPress, (event) => {\n          setChecked((prevChecked) => !prevChecked), isWeb && isFormControl && (hasConsumerStoppedPropagationRef.current = event.isPropagationStopped(), hasConsumerStoppedPropagationRef.current || event.stopPropagation());\n        })\n      },\n      switchRef: composedRefs,\n      /**\n       * insert as a sibling of your switch (should not be inside the switch)\n       */\n      bubbleInput: isWeb && isFormControl ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(BubbleInput3, {\n        control: button,\n        bubbles: !hasConsumerStoppedPropagationRef.current,\n        name,\n        value,\n        checked,\n        required,\n        disabled,\n        style: {\n          transform: \"translateX(-100%)\"\n        }\n      }) : null\n    };\n  }\n}\n__name(useSwitch, \"useSwitch\");\n\n// node_modules/@tamagui/switch/dist/esm/createSwitch.mjs\nvar React65 = __toESM(require(\"react\"), 1);\nvar import_react_native_web8 = __toESM(require_cjs21(), 1);\n\n// node_modules/@tamagui/switch/dist/esm/StyledContext.mjs\nvar import_core42 = require(\"@tamagui/core\");\nvar SwitchStyledContext = (0, import_core42.createStyledContext)({\n  size: void 0,\n  unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n});\n\n// node_modules/@tamagui/switch/dist/esm/Switch.mjs\nvar import_core43 = require(\"@tamagui/core\");\nvar SwitchThumb = (0, import_core43.styled)(ThemeableStack, {\n  name: \"SwitchThumb\",\n  variants: {\n    unstyled: {\n      false: {\n        size: \"$true\",\n        backgroundColor: \"$background\",\n        borderRadius: 1e3\n      }\n    },\n    checked: {\n      true: {}\n    },\n    size: {\n      \"...size\": /* @__PURE__ */ __name((val) => {\n        const size4 = getSwitchHeight(val);\n        return {\n          height: size4,\n          width: size4\n        };\n      }, \"...size\")\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar getSwitchHeight = /* @__PURE__ */ __name((val) => Math.round((0, import_core43.getVariableValue)(getSize(val)) * 0.65), \"getSwitchHeight\");\nvar getSwitchWidth = /* @__PURE__ */ __name((val) => getSwitchHeight(val) * 2, \"getSwitchWidth\");\nvar SwitchFrame = (0, import_core43.styled)(YStack, {\n  name: \"Switch\",\n  tag: \"button\",\n  tabIndex: 0,\n  variants: {\n    unstyled: {\n      false: {\n        borderRadius: 1e3,\n        backgroundColor: \"$background\",\n        borderWidth: 2,\n        borderColor: \"$background\",\n        focusVisibleStyle: {\n          outlineColor: \"$outlineColor\",\n          outlineStyle: \"solid\",\n          outlineWidth: 2\n        }\n      }\n    },\n    checked: {\n      true: {}\n    },\n    size: {\n      \"...size\": /* @__PURE__ */ __name((val) => {\n        const height = getSwitchHeight(val) + 4, width = getSwitchWidth(val) + 4;\n        return {\n          height,\n          minHeight: height,\n          width\n        };\n      }, \"...size\")\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\n\n// node_modules/@tamagui/switch/dist/esm/createSwitch.mjs\nvar import_jsx_runtime54 = require(\"react/jsx-runtime\");\nvar SwitchContext = React65.createContext({\n  checked: false,\n  disabled: false,\n  frameWidth: 0\n});\nfunction createSwitch(createProps) {\n  const {\n    disableActiveTheme,\n    Frame: Frame2 = SwitchFrame,\n    Thumb: Thumb2 = SwitchThumb\n  } = createProps;\n  process.env.NODE_ENV === \"development\" && (Frame2 !== SwitchFrame && Frame2.staticConfig.context && Frame2.staticConfig.context !== SwitchStyledContext || Thumb2 !== SwitchThumb && Thumb2.staticConfig.context && Thumb2.staticConfig.context !== SwitchStyledContext) && console.warn(\"Warning: createSwitch() needs to control context to pass checked state from Frame to Thumb, any custom context passed will be overridden.\"), Frame2.staticConfig.context = SwitchStyledContext, Thumb2.staticConfig.context = SwitchStyledContext;\n  const SwitchThumbComponent = Thumb2.styleable(function(props, forwardedRef) {\n    const {\n      size: sizeProp,\n      unstyled: unstyledProp,\n      nativeID,\n      ...thumbProps\n    } = props, context2 = React65.useContext(SwitchContext), {\n      checked,\n      disabled,\n      frameWidth\n    } = context2, styledContext = SwitchStyledContext.useStyledContext(), {\n      unstyled: unstyledContext,\n      size: sizeContext\n    } = styledContext, unstyled = process.env.TAMAGUI_HEADLESS === \"1\" ? true : unstyledProp ?? unstyledContext ?? false, size4 = sizeProp ?? sizeContext ?? \"$true\", initialChecked = React65.useRef(checked).current, initialWidth = (0, import_core44.getVariableValue)(props.width, \"size\"), [thumbWidth, setThumbWidth] = React65.useState(typeof initialWidth == \"number\" ? initialWidth : 0), distance = frameWidth - thumbWidth, x = initialChecked ? checked ? 0 : -distance : checked ? distance : 0;\n    return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Thumb2, {\n      ref: forwardedRef,\n      unstyled,\n      ...unstyled === false && {\n        size: size4,\n        ...!disableActiveTheme && !unstyled && {\n          theme: checked ? \"active\" : null\n        }\n      },\n      alignSelf: initialChecked ? \"flex-end\" : \"flex-start\",\n      x,\n      onLayout: (0, import_core44.composeEventHandlers)(props.onLayout, (e) => {\n        const next = e.nativeEvent.layout.width;\n        next !== thumbWidth && setThumbWidth(next);\n      }),\n      checked,\n      disabled,\n      ...thumbProps\n    });\n  }), SwitchComponent = Frame2.styleable(function(_props, forwardedRef) {\n    const {\n      native,\n      nativeProps,\n      checked: checkedProp,\n      defaultChecked,\n      onCheckedChange,\n      ...props\n    } = _props, [checked, setChecked] = useControllableState({\n      prop: checkedProp,\n      defaultProp: defaultChecked || false,\n      onChange: onCheckedChange,\n      transition: true\n    }), styledContext = React65.useContext(SwitchStyledContext.context);\n    let estimatedInitialWidth = 0;\n    const estWidth = (0, import_core44.getVariableValue)((0, import_core44.getShorthandValue)(props, \"width\"), \"size\");\n    if (estWidth) {\n      const estPad = (0, import_core44.getShorthandValue)(props, \"paddingHorizontal\") ?? (0, import_core44.getShorthandValue)(props, \"padding\") ?? 0, estLeftPad = (0, import_core44.getShorthandValue)(props, \"paddingLeft\") ?? estPad ?? 0, estRightPad = (0, import_core44.getShorthandValue)(props, \"paddingRight\") ?? estPad ?? 0;\n      estimatedInitialWidth = estWidth - (estLeftPad ? (0, import_core44.getVariableValue)(estLeftPad, \"size\") : 0) - (estRightPad ? (0, import_core44.getVariableValue)(estRightPad, \"size\") : 0);\n    }\n    const [frameWidth, setFrameInnerWidth] = React65.useState(estimatedInitialWidth), {\n      switchProps,\n      bubbleInput,\n      switchRef\n    } = useSwitch(\n      // @ts-ignore\n      props,\n      [checked, setChecked],\n      forwardedRef\n    ), renderNative = (0, import_core44.shouldRenderNativePlatform)(native);\n    if (renderNative === \"android\" || renderNative === \"ios\") return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native_web8.Switch, {\n      value: checked,\n      onValueChange: setChecked,\n      ...nativeProps\n    });\n    const disabled = props.disabled, value = React65.useMemo(() => ({\n      checked,\n      disabled,\n      frameWidth\n    }), [checked, disabled, frameWidth]), handleLayout = /* @__PURE__ */ __name((e) => {\n      const next = e.nativeEvent.layout.width;\n      next !== frameWidth && setFrameInnerWidth(next);\n    }, \"handleLayout\"), unstyled = styledContext.unstyled ?? props.unstyled ?? false;\n    return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(SwitchContext.Provider, {\n      value,\n      children: [/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Frame2, {\n        ref: switchRef,\n        tag: \"button\",\n        ...import_core44.isWeb && {\n          type: \"button\"\n        },\n        ...!unstyled && {\n          size: styledContext.size ?? props.size ?? \"$true\"\n        },\n        unstyled,\n        ...props,\n        ...switchProps,\n        ...!disableActiveTheme && !props.unstyled && {\n          theme: checked ? \"active\" : null\n        },\n        checked,\n        disabled,\n        children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native_web8.View, {\n          style: measureContainerStyle,\n          onLayout: handleLayout,\n          children: frameWidth ? props.children : null\n        })\n      }), bubbleInput]\n    });\n  }, {\n    disableTheme: true\n  });\n  return (0, import_core44.withStaticProperties)(SwitchComponent, {\n    Thumb: SwitchThumbComponent\n  });\n}\n__name(createSwitch, \"createSwitch\");\nvar measureContainerStyle = {\n  alignSelf: \"stretch\",\n  flex: 1\n};\n\n// node_modules/@tamagui/switch/dist/esm/index.mjs\nvar Switch = createSwitch({\n  Frame: SwitchFrame,\n  Thumb: SwitchThumb\n});\n\n// node_modules/@tamagui/tabs/dist/esm/Tabs.mjs\nvar import_web16 = require(\"@tamagui/core\");\nvar React66 = __toESM(require(\"react\"), 1);\nvar import_jsx_runtime55 = require(\"react/jsx-runtime\");\nvar TABS_CONTEXT = \"TabsContext\";\nvar TAB_LIST_NAME = \"TabsList\";\nvar TabsList = React66.forwardRef((props, forwardedRef) => {\n  const {\n    __scopeTabs,\n    loop = true,\n    children,\n    ...listProps\n  } = props, context2 = useTabsContext(__scopeTabs);\n  return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(RovingFocusGroup, {\n    __scopeRovingFocusGroup: __scopeTabs || TABS_CONTEXT,\n    orientation: context2.orientation,\n    dir: context2.dir,\n    loop,\n    asChild: true,\n    children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Group, {\n      role: \"tablist\",\n      componentName: TAB_LIST_NAME,\n      \"aria-orientation\": context2.orientation,\n      ref: forwardedRef,\n      orientation: context2.orientation,\n      ...listProps,\n      children\n    })\n  });\n});\nTabsList.displayName = TAB_LIST_NAME;\nvar TRIGGER_NAME5 = \"TabsTrigger\";\nvar TabsTriggerFrame = (0, import_web16.styled)(ThemeableStack, {\n  name: TRIGGER_NAME5,\n  tag: \"button\",\n  variants: {\n    size: {\n      \"...size\": getButtonSized\n    },\n    disabled: {\n      true: {\n        pointerEvents: \"none\"\n      }\n    },\n    active: {\n      true: {\n        hoverStyle: {\n          backgroundColor: \"$background\"\n        },\n        focusStyle: {\n          backgroundColor: \"$background\"\n        }\n      }\n    },\n    unstyled: {\n      false: {\n        borderWidth: 0,\n        backgroundColor: \"$background\",\n        userSelect: \"none\",\n        justifyContent: \"center\",\n        alignItems: \"center\",\n        flexWrap: \"nowrap\",\n        flexDirection: \"row\",\n        cursor: \"pointer\",\n        pressStyle: {\n          backgroundColor: \"$backgroundPress\"\n        },\n        hoverStyle: {\n          backgroundColor: \"$backgroundHover\"\n        },\n        focusStyle: {\n          backgroundColor: \"$backgroundFocus\"\n        }\n      }\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar TabsTrigger = TabsTriggerFrame.styleable((props, forwardedRef) => {\n  const {\n    __scopeTabs,\n    value,\n    disabled = false,\n    onInteraction,\n    disableActiveTheme,\n    ...triggerProps\n  } = props, context2 = useTabsContext(__scopeTabs), triggerId = makeTriggerId(context2.baseId, value), contentId = makeContentId(context2.baseId, value), isSelected = value === context2.value, [layout, setLayout] = React66.useState(null), triggerRef = React66.useRef(null), groupItemProps = useGroupItem({\n    disabled: !!disabled\n  });\n  return React66.useEffect(() => (context2.registerTrigger(), () => context2.unregisterTrigger()), []), React66.useEffect(() => {\n    if (!triggerRef.current || !isWeb) return;\n    function getTriggerSize() {\n      triggerRef.current && setLayout({\n        width: triggerRef.current.offsetWidth,\n        height: triggerRef.current.offsetHeight,\n        x: triggerRef.current.offsetLeft,\n        y: triggerRef.current.offsetTop\n      });\n    }\n    __name(getTriggerSize, \"getTriggerSize\");\n    getTriggerSize();\n    const observer = new ResizeObserver(getTriggerSize);\n    return observer.observe(triggerRef.current), () => {\n      triggerRef.current && observer.unobserve(triggerRef.current);\n    };\n  }, [context2.triggersCount]), React66.useEffect(() => {\n    isSelected && layout && onInteraction?.(\"select\", layout);\n  }, [isSelected, value, layout]), /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_web16.Theme, {\n    name: isSelected && !disableActiveTheme ? \"active\" : null,\n    children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(RovingFocusGroup.Item, {\n      __scopeRovingFocusGroup: __scopeTabs || TABS_CONTEXT,\n      asChild: true,\n      focusable: !disabled,\n      active: isSelected,\n      children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(TabsTriggerFrame, {\n        onLayout: /* @__PURE__ */ __name((event) => {\n          isWeb || setLayout(event.nativeEvent.layout);\n        }, \"onLayout\"),\n        onHoverIn: composeEventHandlers(props.onHoverIn, () => {\n          layout && onInteraction?.(\"hover\", layout);\n        }),\n        onHoverOut: composeEventHandlers(props.onHoverOut, () => {\n          onInteraction?.(\"hover\", null);\n        }),\n        role: \"tab\",\n        \"aria-selected\": isSelected,\n        \"aria-controls\": contentId,\n        \"data-state\": isSelected ? \"active\" : \"inactive\",\n        \"data-disabled\": disabled ? \"\" : void 0,\n        disabled,\n        id: triggerId,\n        ...!props.unstyled && {\n          size: context2.size\n        },\n        ...isSelected && {\n          forceStyle: \"focus\"\n        },\n        ...groupItemProps,\n        ...triggerProps,\n        ref: composeRefs(forwardedRef, triggerRef),\n        onPress: composeEventHandlers(props.onPress ?? void 0, (event) => {\n          const webChecks = !isWeb || event.button === 0 && event.ctrlKey === false;\n          !disabled && !isSelected && webChecks ? context2.onChange(value) : event.preventDefault();\n        }),\n        ...isWeb && {\n          type: \"button\",\n          onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n            [\" \", \"Enter\"].includes(event.key) && (context2.onChange(value), event.preventDefault());\n          }),\n          onFocus: composeEventHandlers(props.onFocus, (event) => {\n            layout && onInteraction?.(\"focus\", layout);\n            const isAutomaticActivation = context2.activationMode !== \"manual\";\n            !isSelected && !disabled && isAutomaticActivation && context2.onChange(value);\n          }),\n          onBlur: composeEventHandlers(props.onFocus, () => {\n            onInteraction?.(\"focus\", null);\n          })\n        }\n      })\n    })\n  });\n});\nTabsTrigger.displayName = TRIGGER_NAME5;\nvar CONTENT_NAME4 = \"TabsContent\";\nvar TabsContentFrame = (0, import_web16.styled)(ThemeableStack, {\n  name: CONTENT_NAME4\n});\nvar TabsContent = TabsContentFrame.styleable(function(props, forwardedRef) {\n  const {\n    __scopeTabs,\n    value,\n    forceMount,\n    children,\n    ...contentProps\n  } = props, context2 = useTabsContext(__scopeTabs), isSelected = value === context2.value, show = forceMount || isSelected, triggerId = makeTriggerId(context2.baseId, value), contentId = makeContentId(context2.baseId, value);\n  return show ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(TabsContentFrame, {\n    \"data-state\": isSelected ? \"active\" : \"inactive\",\n    \"data-orientation\": context2.orientation,\n    role: \"tabpanel\",\n    \"aria-labelledby\": triggerId,\n    hidden: !show,\n    id: contentId,\n    tabIndex: 0,\n    ...contentProps,\n    ref: forwardedRef,\n    children\n  }, value) : null;\n});\nvar TABS_NAME = \"Tabs\";\nvar {\n  Provider: TabsProvider,\n  useStyledContext: useTabsContext\n} = (0, import_web16.createStyledContext)();\nvar TabsFrame = (0, import_web16.styled)(SizableStack, {\n  name: TABS_NAME\n});\nvar TabsComponent = TabsFrame.styleable(function(props, forwardedRef) {\n  const {\n    __scopeTabs,\n    value: valueProp,\n    onValueChange,\n    defaultValue: defaultValue2,\n    orientation = \"horizontal\",\n    dir,\n    activationMode = \"automatic\",\n    size: size4 = \"$true\",\n    ...tabsProps\n  } = props, direction = useDirection(dir), [value, setValue] = useControllableState({\n    prop: valueProp,\n    onChange: onValueChange,\n    defaultProp: defaultValue2 ?? \"\"\n  }), [triggersCount, setTriggersCount] = React66.useState(0), registerTrigger = (0, import_web16.useEvent)(() => setTriggersCount((v) => v + 1)), unregisterTrigger = (0, import_web16.useEvent)(() => setTriggersCount((v) => v - 1));\n  return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(TabsProvider, {\n    scope: __scopeTabs,\n    baseId: React66.useId(),\n    value,\n    onChange: setValue,\n    orientation,\n    dir: direction,\n    activationMode,\n    size: size4,\n    registerTrigger,\n    triggersCount,\n    unregisterTrigger,\n    children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(TabsFrame, {\n      direction,\n      \"data-orientation\": orientation,\n      ...tabsProps,\n      ref: forwardedRef\n    })\n  });\n});\nvar Tabs2 = withStaticProperties(TabsComponent, {\n  List: TabsList,\n  /**\n   * @deprecated Use Tabs.Tab instead\n   */\n  Trigger: TabsTrigger,\n  Tab: TabsTrigger,\n  Content: TabsContent\n});\nfunction makeTriggerId(baseId, value) {\n  return `${baseId}-trigger-${value}`;\n}\n__name(makeTriggerId, \"makeTriggerId\");\nfunction makeContentId(baseId, value) {\n  return `${baseId}-content-${value}`;\n}\n__name(makeContentId, \"makeContentId\");\n\n// node_modules/@tamagui/theme/dist/esm/_mutateTheme.mjs\nvar import_web17 = require(\"@tamagui/core\");\nfunction mutateThemes({\n  themes,\n  batch,\n  insertCSS = true,\n  ...props\n}) {\n  const allThemesProxied = {}, allThemesRaw = {};\n  for (const {\n    name,\n    theme\n  } of themes) {\n    const res = _mutateTheme({\n      ...props,\n      name,\n      theme,\n      // we'll do one update at the end\n      avoidUpdate: true,\n      // always add which also replaces but doesnt fail first time\n      mutationType: \"add\"\n    });\n    res && (allThemesProxied[name] = res.theme, allThemesRaw[name] = res.themeRaw);\n  }\n  const cssRules = insertCSS ? insertThemeCSS(allThemesRaw, batch) : [];\n  return startTransition(() => {\n    for (const themeName in allThemesProxied) {\n      const theme = allThemesProxied[themeName];\n      updateThemeConfig(themeName, theme);\n    }\n    updateThemeStates();\n  }), {\n    themes: allThemesProxied,\n    themesRaw: allThemesRaw,\n    cssRules\n  };\n}\n__name(mutateThemes, \"mutateThemes\");\nfunction _mutateTheme(props) {\n  if (isServer) {\n    process.env.NODE_ENV === \"development\" && console.warn(\"Theme mutation is not supported on server side\");\n    return;\n  }\n  const config = (0, import_web17.getConfig)(), {\n    name: themeName,\n    theme: themeIn,\n    insertCSS,\n    mutationType\n  } = props;\n  if (process.env.NODE_ENV === \"development\") {\n    if (!config) throw new Error(\"No config\");\n    const theme2 = config.themes[props.name];\n    if (mutationType !== \"add\" && !theme2) throw new Error(`${mutationType === \"replace\" ? \"Replace\" : \"Update\"} theme failed! Theme ${props.name} does not exist`);\n  }\n  const theme = {\n    ...mutationType === \"update\" ? config.themes[themeName] ?? {} : {},\n    ...themeIn\n  };\n  for (const key in theme) (0, import_web17.ensureThemeVariable)(theme, key);\n  const themeProxied = (0, import_web17.proxyThemeToParents)(themeName, theme), response = {\n    themeRaw: theme,\n    theme: themeProxied,\n    cssRules: []\n  };\n  return props.avoidUpdate || (insertCSS && (response.cssRules = insertThemeCSS({\n    [themeName]: theme\n  })), updateThemeConfig(themeName, themeProxied), updateThemeStates()), response;\n}\n__name(_mutateTheme, \"_mutateTheme\");\nfunction updateThemeConfig(themeName, theme) {\n  const config = (0, import_web17.getConfig)();\n  config.themes[themeName] = theme, (0, import_web17.updateConfig)(\"themes\", config.themes);\n}\n__name(updateThemeConfig, \"updateThemeConfig\");\nfunction updateThemeStates() {\n  (0, import_web17.forceUpdateThemes)();\n}\n__name(updateThemeStates, \"updateThemeStates\");\nfunction insertThemeCSS(themes, batch = false) {\n  const config = (0, import_web17.getConfig)();\n  let cssRules = [];\n  for (const themeName in themes) {\n    const theme = themes[themeName], rules = (0, import_web17.getThemeCSSRules)({\n      config,\n      themeName,\n      names: [themeName],\n      hasDarkLight: true,\n      theme\n    });\n    cssRules = [...cssRules, ...rules], batch || updateStyle(`t_theme_style_${themeName}`, rules);\n  }\n  if (batch) {\n    const id = typeof batch == \"string\" ? batch : (0, import_web17.simpleHash)(Object.keys(themes).join(\"\"));\n    updateStyle(`t_theme_style_${id}`, cssRules);\n  }\n  return cssRules;\n}\n__name(insertThemeCSS, \"insertThemeCSS\");\nfunction updateStyle(id, rules) {\n  const existing = document.querySelector(`#${id}`), style = document.createElement(\"style\");\n  style.id = id, style.appendChild(document.createTextNode(rules.join(`\n`))), document.head.appendChild(style), existing && existing.parentElement?.removeChild(existing);\n}\n__name(updateStyle, \"updateStyle\");\n\n// node_modules/@tamagui/theme/dist/esm/addTheme.mjs\nfunction addTheme(props) {\n  return _mutateTheme({\n    ...props,\n    insertCSS: true,\n    mutationType: \"add\"\n  });\n}\n__name(addTheme, \"addTheme\");\n\n// node_modules/@tamagui/theme/dist/esm/updateTheme.mjs\nfunction updateTheme({\n  name,\n  theme\n}) {\n  return _mutateTheme({\n    name,\n    theme,\n    insertCSS: true,\n    mutationType: \"update\"\n  });\n}\n__name(updateTheme, \"updateTheme\");\n\n// node_modules/@tamagui/theme/dist/esm/replaceTheme.mjs\nfunction replaceTheme({\n  name,\n  theme\n}) {\n  return _mutateTheme({\n    name,\n    theme,\n    insertCSS: true,\n    mutationType: \"replace\"\n  });\n}\n__name(replaceTheme, \"replaceTheme\");\n\n// node_modules/@tamagui/toggle-group/dist/esm/ToggleGroup.mjs\nvar import_web19 = require(\"@tamagui/core\");\nvar import_react47 = __toESM(require(\"react\"), 1);\n\n// node_modules/@tamagui/toggle-group/dist/esm/Toggle.mjs\nvar import_web18 = require(\"@tamagui/core\");\nvar React67 = __toESM(require(\"react\"), 1);\nvar import_jsx_runtime56 = require(\"react/jsx-runtime\");\nvar context = (0, import_web18.createStyledContext)({\n  color: \"\"\n});\nvar NAME3 = \"Toggle\";\nvar ToggleFrame = (0, import_web18.styled)(ThemeableStack, {\n  name: NAME3,\n  tag: \"button\",\n  context,\n  variants: {\n    unstyled: {\n      false: {\n        pressTheme: true,\n        backgroundColor: \"$background\",\n        alignItems: \"center\",\n        justifyContent: \"center\",\n        display: \"flex\",\n        borderColor: \"$borderColor\",\n        borderWidth: 1,\n        margin: -1,\n        hoverStyle: {\n          backgroundColor: \"$backgroundHover\"\n        },\n        pressStyle: {\n          backgroundColor: \"$backgroundPress\"\n        },\n        focusStyle: {\n          borderColor: \"$borderColorFocus\"\n        },\n        focusVisibleStyle: {\n          outlineColor: \"$outlineColor\",\n          outlineWidth: 2,\n          outlineStyle: \"solid\"\n        }\n      }\n    },\n    color: {\n      \"...color\": /* @__PURE__ */ __name(() => ({}), \"...color\")\n    },\n    active: {\n      true: {\n        zIndex: 1,\n        hoverStyle: {\n          backgroundColor: \"$background\"\n        },\n        focusStyle: {\n          borderColor: \"$borderColor\",\n          backgroundColor: \"$background\"\n        }\n      }\n    },\n    orientation: {\n      horizontal: {\n        flexDirection: \"row\",\n        spaceDirection: \"horizontal\"\n      },\n      vertical: {\n        flexDirection: \"column\",\n        spaceDirection: \"vertical\"\n      }\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar Toggle = React67.forwardRef(function(props, forwardedRef) {\n  const {\n    pressed: pressedProp,\n    defaultPressed = false,\n    onPressedChange,\n    ...buttonProps\n  } = props, [pressed = false, setPressed] = useControllableState({\n    prop: pressedProp,\n    onChange: onPressedChange,\n    defaultProp: defaultPressed\n  });\n  return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(ToggleFrame, {\n    ...!props.unstyled && {\n      theme: pressed ? \"active\" : null,\n      themeShallow: true\n    },\n    active: props.unstyled ? void 0 : pressed,\n    \"aria-pressed\": pressed,\n    \"data-state\": pressed ? \"on\" : \"off\",\n    \"data-disabled\": props.disabled ? \"\" : void 0,\n    ...buttonProps,\n    ref: forwardedRef,\n    onPress: composeEventHandlers(props.onPress ?? void 0, () => {\n      props.disabled || setPressed(!pressed);\n    })\n  });\n});\n\n// node_modules/@tamagui/toggle-group/dist/esm/ToggleGroup.mjs\nvar import_jsx_runtime57 = require(\"react/jsx-runtime\");\nvar TOGGLE_GROUP_NAME = \"ToggleGroup\";\nvar TOGGLE_GROUP_ITEM_NAME = \"ToggleGroupItem\";\nvar TOGGLE_GROUP_CONTEXT = \"ToggleGroup\";\nvar {\n  Provider: ToggleGroupItemProvider,\n  useStyledContext: useToggleGroupItemContext\n} = (0, import_web19.createStyledContext)();\nvar {\n  Provider: ToggleGroupContext,\n  useStyledContext: useToggleGroupContext\n} = (0, import_web19.createStyledContext)();\nvar ToggleGroupItem = ToggleFrame.extractable(import_react47.default.forwardRef((props, forwardedRef) => {\n  const [_, {\n    color\n  }] = (0, import_web19.usePropsAndStyle)(props), {\n    disablePassStyles,\n    ...rest\n  } = props, valueContext = useToggleGroupValueContext(props.__scopeToggleGroup), context2 = useToggleGroupContext(props.__scopeToggleGroup), pressed = valueContext?.value.includes(props.value), disabled = context2.disabled || props.disabled || false, groupItemProps = useGroupItem({\n    disabled\n  }), size4 = props.size ?? context2.size, sizeProps = props.unstyled ? {} : {\n    width: void 0,\n    height: void 0,\n    padding: (0, import_web19.getVariableValue)(size4) * 0.6\n  }, iconSize = (typeof size4 == \"number\" ? size4 * 0.7 : getFontSize(size4)) * 1.2, theme = (0, import_web19.useTheme)(), getThemedIcon = useGetThemedIcon({\n    size: iconSize,\n    color: color ?? theme.color\n  }), children = import_react47.default.Children.toArray(props.children).map((child) => props.disablePassStyles || !import_react47.default.isValidElement(child) ? child : getThemedIcon(child)), commonProps = {\n    pressed,\n    disabled,\n    ...sizeProps,\n    ...rest,\n    children\n  }, inner2 = /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(ToggleGroupItemImpl, {\n    ...commonProps,\n    ref: forwardedRef,\n    tabIndex: disabled ? -1 : 0,\n    disabled,\n    ...groupItemProps\n  });\n  return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(ToggleGroupItemProvider, {\n    scope: props.__scopeToggleGroup,\n    children: context2.rovingFocus ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(RovingFocusGroup.Item, {\n      asChild: \"except-style\",\n      __scopeRovingFocusGroup: props.__scopeToggleGroup || TOGGLE_GROUP_CONTEXT,\n      focusable: !disabled,\n      active: pressed,\n      children: inner2\n    }) : inner2\n  });\n}));\nToggleGroupItem.displayName = TOGGLE_GROUP_ITEM_NAME;\nvar ToggleGroupItemImpl = import_react47.default.forwardRef((props, forwardedRef) => {\n  const {\n    __scopeToggleGroup,\n    value,\n    ...itemProps\n  } = props, valueContext = useToggleGroupValueContext(__scopeToggleGroup), singleProps = {\n    \"aria-pressed\": void 0\n  }, typeProps = valueContext.type === \"single\" ? singleProps : void 0;\n  return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Toggle, {\n    ...typeProps,\n    ...itemProps,\n    ref: forwardedRef,\n    onPressedChange: /* @__PURE__ */ __name((pressed) => {\n      pressed ? valueContext.onItemActivate(value) : valueContext.onItemDeactivate(value);\n    }, \"onPressedChange\")\n  });\n});\nvar ToggleGroup = withStaticProperties(import_react47.default.forwardRef((props, forwardedRef) => {\n  const {\n    type,\n    ...toggleGroupProps\n  } = props;\n  if (isWeb || import_react47.default.useEffect(() => {\n    if (props.id) return registerFocusable(props.id, {\n      // TODO: would be nice to focus on the first child later - could be done with reforest\n      // for now leaving it empty\n      focus: /* @__PURE__ */ __name(() => {\n      }, \"focus\")\n    });\n  }, [props.id]), type === \"single\") return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(ToggleGroupImplSingle, {\n    ...toggleGroupProps,\n    ref: forwardedRef\n  });\n  if (type === \"multiple\") return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(ToggleGroupImplMultiple, {\n    ...toggleGroupProps,\n    ref: forwardedRef\n  });\n  throw new Error(`Missing prop \\`type\\` expected on \\`${TOGGLE_GROUP_NAME}\\``);\n}), {\n  Item: ToggleGroupItem\n});\nToggleGroup.displayName = TOGGLE_GROUP_NAME;\nvar {\n  Provider: ToggleGroupValueProvider,\n  useStyledContext: useToggleGroupValueContext\n} = (0, import_web19.createStyledContext)();\nvar ToggleGroupImplSingle = import_react47.default.forwardRef((props, forwardedRef) => {\n  const {\n    value: valueProp,\n    defaultValue: defaultValue2,\n    onValueChange = /* @__PURE__ */ __name(() => {\n    }, \"onValueChange\"),\n    disableDeactivation = false,\n    ...toggleGroupSingleProps\n  } = props, [value, setValue] = useControllableState({\n    prop: valueProp,\n    defaultProp: defaultValue2,\n    onChange: onValueChange\n  });\n  return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(ToggleGroupValueProvider, {\n    scope: props.__scopeToggleGroup,\n    type: \"single\",\n    value: value ? [value] : [],\n    defaultValue: value,\n    onItemActivate: setValue,\n    onItemDeactivate: import_react47.default.useCallback(() => disableDeactivation ? null : setValue(\"\"), [setValue, disableDeactivation]),\n    children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(ToggleGroupImpl, {\n      ...toggleGroupSingleProps,\n      ref: forwardedRef\n    })\n  });\n});\nvar ToggleGroupImplMultiple = import_react47.default.forwardRef((props, forwardedRef) => {\n  const {\n    value: valueProp,\n    defaultValue: defaultValue2,\n    onValueChange = /* @__PURE__ */ __name(() => {\n    }, \"onValueChange\"),\n    disableDeactivation,\n    ...toggleGroupMultipleProps\n  } = props, [value = [], setValue] = useControllableState({\n    prop: valueProp,\n    defaultProp: defaultValue2,\n    onChange: onValueChange\n  }), handleButtonActivate = import_react47.default.useCallback((itemValue) => setValue((prevValue = []) => [...prevValue, itemValue]), [setValue]), handleButtonDeactivate = import_react47.default.useCallback((itemValue) => setValue((prevValue = []) => prevValue.filter((value2) => value2 !== itemValue)), [setValue]);\n  return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(ToggleGroupValueProvider, {\n    scope: props.__scopeToggleGroup,\n    type: \"multiple\",\n    value,\n    defaultValue: value,\n    onItemActivate: handleButtonActivate,\n    onItemDeactivate: handleButtonDeactivate,\n    children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(ToggleGroupImpl, {\n      ...toggleGroupMultipleProps,\n      ref: forwardedRef\n    })\n  });\n});\nToggleGroup.displayName = TOGGLE_GROUP_NAME;\nvar ToggleGroupImplElementFrame = (0, import_web19.styled)(Group, {\n  name: TOGGLE_GROUP_NAME,\n  variants: {\n    unstyled: {\n      false: {\n        backgroundColor: \"$background\"\n      }\n    },\n    orientation: {\n      vertical: {\n        flexDirection: \"column\",\n        spaceDirection: \"vertical\"\n      },\n      horizontal: {\n        flexDirection: \"row\",\n        spaceDirection: \"horizontal\"\n      }\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar ToggleGroupImpl = ToggleGroupImplElementFrame.extractable(import_react47.default.forwardRef((props, forwardedRef) => {\n  const {\n    __scopeToggleGroup,\n    disabled = false,\n    orientation = \"horizontal\",\n    dir,\n    rovingFocus = true,\n    loop = true,\n    unstyled = false,\n    size: sizeProp = \"$true\",\n    sizeAdjust = 0,\n    ...toggleGroupProps\n  } = props, direction = useDirection(dir), commonProps = {\n    role: \"group\",\n    dir: direction,\n    ...toggleGroupProps\n  }, adjustedSize = (0, import_web19.getVariableValue)(getSize(sizeProp, {\n    shift: sizeAdjust\n  })), size4 = Math.round(adjustedSize * 0.45);\n  return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(ToggleGroupContext, {\n    scope: __scopeToggleGroup,\n    rovingFocus,\n    disabled,\n    size: size4,\n    children: rovingFocus ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(RovingFocusGroup, {\n      asChild: \"except-style\",\n      __scopeRovingFocusGroup: __scopeToggleGroup || TOGGLE_GROUP_CONTEXT,\n      orientation,\n      dir: direction,\n      loop,\n      children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(ToggleGroupImplElementFrame, {\n        \"aria-orientation\": orientation,\n        orientation,\n        axis: orientation,\n        ref: forwardedRef,\n        \"data-disabled\": disabled ? \"\" : void 0,\n        unstyled,\n        ...commonProps\n      })\n    }) : /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(ToggleGroupImplElementFrame, {\n      \"aria-orientation\": orientation,\n      ref: forwardedRef,\n      orientation,\n      \"data-disabled\": disabled ? \"\" : void 0,\n      unstyled,\n      ...commonProps\n    })\n  });\n}));\n\n// node_modules/@tamagui/tooltip/dist/esm/Tooltip.mjs\nvar import_core45 = require(\"@tamagui/core\");\nvar React69 = __toESM(require(\"react\"), 1);\nvar import_jsx_runtime58 = require(\"react/jsx-runtime\");\nvar TOOLTIP_SCOPE = \"tooltip\";\nvar TooltipContent = PopperContentFrame.extractable(React69.forwardRef(({\n  __scopeTooltip,\n  ...props\n}, ref) => {\n  const preventAnimation = React69.useContext(PreventTooltipAnimationContext), popper = usePopperContext(__scopeTooltip || TOOLTIP_SCOPE), padding = props.unstyled ? void 0 : props.padding ?? props.size ?? popper.size ?? getSize(\"$true\", {\n    shift: -2\n  });\n  return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(PopoverContent, {\n    __scopePopover: __scopeTooltip || TOOLTIP_SCOPE,\n    componentName: \"Tooltip\",\n    disableRemoveScroll: true,\n    disableFocusScope: true,\n    ...!props.unstyled && {\n      padding,\n      pointerEvents: \"none\"\n    },\n    ref,\n    ...props,\n    ...preventAnimation && {\n      animation: null\n    }\n  });\n}));\nvar TooltipArrow = React69.forwardRef((props, ref) => {\n  const {\n    __scopeTooltip,\n    ...rest\n  } = props;\n  return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(PopoverArrow, {\n    __scopePopper: __scopeTooltip || TOOLTIP_SCOPE,\n    componentName: \"Tooltip\",\n    ref,\n    ...rest\n  });\n});\nvar PreventTooltipAnimationContext = React69.createContext(false);\nvar TooltipGroup = /* @__PURE__ */ __name(({\n  children,\n  delay,\n  preventAnimation = false,\n  timeoutMs\n}) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(PreventTooltipAnimationContext.Provider, {\n  value: preventAnimation,\n  children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(FloatingDelayGroup, {\n    timeoutMs,\n    delay: React69.useMemo(() => delay, [JSON.stringify(delay)]),\n    children\n  })\n}), \"TooltipGroup\");\nvar setOpens = /* @__PURE__ */ new Set();\nvar closeOpenTooltips = /* @__PURE__ */ __name(() => {\n  setOpens.forEach((x) => x(false));\n}, \"closeOpenTooltips\");\nvar TooltipComponent = React69.forwardRef(function(props, ref) {\n  const {\n    children,\n    delay: delayProp,\n    restMs = typeof delayProp > \"u\" ? 500 : typeof delayProp == \"number\" ? delayProp : 0,\n    onOpenChange: onOpenChangeProp,\n    focus: focus2,\n    open: openProp,\n    disableAutoCloseOnScroll,\n    __scopeTooltip,\n    ...restProps\n  } = props, triggerRef = React69.useRef(null), [hasCustomAnchor, setHasCustomAnchor] = React69.useState(false), {\n    delay: delayGroup,\n    setCurrentId\n  } = useDelayGroupContext(), delay = delayProp ?? delayGroup, [open, setOpen] = useControllableState({\n    prop: openProp,\n    defaultProp: false,\n    onChange: onOpenChangeProp\n  }), id = props.groupId, onOpenChange = (0, import_core45.useEvent)((open2) => {\n    open2 && setCurrentId(id), setOpen(open2);\n  });\n  React69.useEffect(() => {\n    if (!open || disableAutoCloseOnScroll || typeof document > \"u\") return;\n    const openIt = /* @__PURE__ */ __name(() => {\n      setOpen(false);\n    }, \"openIt\");\n    return setOpens.add(setOpen), document.documentElement.addEventListener(\"scroll\", openIt), () => {\n      setOpens.delete(setOpen), document.documentElement.removeEventListener(\"scroll\", openIt);\n    };\n  }, [open, disableAutoCloseOnScroll]);\n  const useFloatingFn = /* @__PURE__ */ __name((props2) => {\n    const floating = useFloating3({\n      ...props2,\n      open,\n      onOpenChange\n    }), {\n      delay: delayContext\n    } = useDelayGroup(floating.context, {\n      id\n    }), {\n      getReferenceProps,\n      getFloatingProps\n    } = useInteractions([useHover(floating.context, {\n      delay: delay ?? delayContext,\n      restMs\n    }), useFocus(floating.context, focus2), useRole(floating.context, {\n      role: \"tooltip\"\n    }), useDismiss(floating.context)]);\n    return {\n      ...floating,\n      open,\n      getReferenceProps,\n      getFloatingProps\n    };\n  }, \"useFloatingFn\"), useFloatingContext2 = React69.useCallback(useFloatingFn, [id, delay, open, restMs, focus2 ? JSON.stringify(focus2) : 0]), onCustomAnchorAdd = React69.useCallback(() => setHasCustomAnchor(true), []), onCustomAnchorRemove = React69.useCallback(() => setHasCustomAnchor(false), []), contentId = React69.useId(), smallerSize = props.unstyled ? null : getSize(\"$true\", {\n    shift: -2,\n    bounds: [0]\n  });\n  return (\n    // TODO: FloatingOverrideContext might also need to be scoped\n    /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(FloatingOverrideContext.Provider, {\n      value: useFloatingContext2,\n      children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Popper, {\n        __scopePopper: __scopeTooltip || TOOLTIP_SCOPE,\n        size: smallerSize?.key,\n        allowFlip: true,\n        stayInFrame: true,\n        ...restProps,\n        children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(PopoverContext.Provider, {\n          contentId,\n          triggerRef,\n          open,\n          scope: __scopeTooltip || TOOLTIP_SCOPE,\n          onOpenChange: setOpen,\n          onOpenToggle: voidFn,\n          hasCustomAnchor,\n          onCustomAnchorAdd,\n          onCustomAnchorRemove,\n          children\n        })\n      })\n    })\n  );\n});\nvar TooltipTrigger = React69.forwardRef(function(props, ref) {\n  const {\n    __scopeTooltip,\n    ...rest\n  } = props;\n  return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(PopoverTrigger, {\n    ...rest,\n    __scopePopover: __scopeTooltip || TOOLTIP_SCOPE,\n    ref\n  });\n});\nvar TooltipAnchor = React69.forwardRef(function(props, ref) {\n  const {\n    __scopeTooltip,\n    ...rest\n  } = props;\n  return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(PopoverAnchor, {\n    ...rest,\n    __scopePopover: __scopeTooltip || TOOLTIP_SCOPE,\n    ref\n  });\n});\nvar Tooltip2 = withStaticProperties(TooltipComponent, {\n  Anchor: TooltipAnchor,\n  Arrow: TooltipArrow,\n  Content: TooltipContent,\n  Trigger: TooltipTrigger\n});\nvar voidFn = /* @__PURE__ */ __name(() => {\n}, \"voidFn\");\n\n// node_modules/@tamagui/tooltip/dist/esm/TooltipSimple.mjs\nvar React70 = __toESM(require(\"react\"), 1);\nvar import_jsx_runtime59 = require(\"react/jsx-runtime\");\nvar TooltipSimple = React70.forwardRef(({\n  label,\n  children,\n  contentProps,\n  disabled,\n  ...tooltipProps\n}, ref) => {\n  const child = React70.Children.only(children);\n  return label ? /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(Tooltip2, {\n    disableRTL: true,\n    offset: 15,\n    restMs: 40,\n    delay: 40,\n    ...tooltipProps,\n    ...disabled ? {\n      open: false\n    } : null,\n    children: [/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Tooltip2.Trigger, {\n      ...typeof label == \"string\" && {\n        \"aria-label\": label\n      },\n      asChild: \"except-style\",\n      children: ref && React70.isValidElement(child) ? React70.cloneElement(child, {\n        ref\n      }) : child\n    }), /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(Tooltip2.Content, {\n      zIndex: 1e9,\n      enterStyle: {\n        x: 0,\n        y: -4,\n        opacity: 0,\n        scale: 0.96\n      },\n      exitStyle: {\n        x: 0,\n        y: -4,\n        opacity: 0,\n        scale: 0.96\n      },\n      x: 0,\n      scale: 1,\n      y: 0,\n      elevation: \"$0.5\",\n      opacity: 1,\n      pointerEvents: \"none\",\n      paddingVertical: getSpace(tooltipProps.size || \"$true\", {\n        shift: -4\n      }),\n      animateOnly: [\"transform\", \"opacity\"],\n      animation: [\"quicker\", {\n        opacity: {\n          overshootClamping: true\n        }\n      }],\n      ...contentProps,\n      children: [/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Tooltip2.Arrow, {}), /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Paragraph, {\n        size: \"$3\",\n        children: label\n      })]\n    })]\n  }) : children;\n});\n\n// node_modules/@tamagui/use-window-dimensions/dist/esm/index.mjs\nvar import_react49 = __toESM(require(\"react\"), 1);\nvar import_react_native_web9 = __toESM(require_cjs21(), 1);\nvar initialValue = {\n  height: 800,\n  width: 600\n};\nfunction configureInitialWindowDimensions(next) {\n  Object.assign(initialValue, next);\n}\n__name(configureInitialWindowDimensions, \"configureInitialWindowDimensions\");\nimport_react_native_web9.Dimensions.addEventListener(\"change\", () => {\n  cbs.forEach((cb) => cb(window));\n});\nvar cbs = /* @__PURE__ */ new Set();\nfunction subscribe2(cb) {\n  return cbs.add(cb), () => cbs.delete(cb);\n}\n__name(subscribe2, \"subscribe\");\nfunction useWindowDimensions({\n  serverValue = initialValue\n} = {}) {\n  return import_react49.default.useSyncExternalStore(subscribe2, () => import_react_native_web9.Dimensions.get(\"window\"), () => isWeb ? serverValue : import_react_native_web9.Dimensions.get(\"window\"));\n}\n__name(useWindowDimensions, \"useWindowDimensions\");\n\n// node_modules/@tamagui/visually-hidden/dist/esm/VisuallyHidden.mjs\nvar import_web20 = require(\"@tamagui/core\");\nvar VisuallyHidden = (0, import_web20.styled)(import_web20.Text, {\n  position: \"absolute\",\n  width: 1,\n  height: 1,\n  margin: -1,\n  zIndex: -1e4,\n  overflow: \"hidden\",\n  opacity: 1e-8,\n  pointerEvents: \"none\",\n  variants: {\n    preserveDimensions: {\n      true: {\n        position: \"relative\",\n        width: \"auto\",\n        height: \"auto\"\n      }\n    },\n    visible: {\n      true: {\n        position: \"relative\",\n        width: \"auto\",\n        height: \"auto\",\n        margin: 0,\n        zIndex: 1,\n        overflow: \"visible\",\n        opacity: 1,\n        pointerEvents: \"auto\"\n      }\n    }\n  }\n});\nVisuallyHidden.isVisuallyHidden = true;\n\n// node_modules/tamagui/dist/esm/createTamagui.mjs\nvar import_core46 = require(\"@tamagui/core\");\nvar createTamagui = process.env.NODE_ENV !== \"development\" ? import_core46.createTamagui : (conf) => {\n  const sizeTokenKeys = [\"$true\"], hasKeys = /* @__PURE__ */ __name((expectedKeys, obj) => expectedKeys.every((k) => typeof obj[k] < \"u\"), \"hasKeys\"), tamaguiConfig = (0, import_core46.createTamagui)(conf);\n  for (const name of [\"size\", \"space\"]) {\n    const tokenSet = tamaguiConfig.tokensParsed[name];\n    if (!tokenSet) throw new Error(`Expected tokens for \"${name}\" in ${Object.keys(tamaguiConfig.tokensParsed).join(\", \")}`);\n    if (!hasKeys(sizeTokenKeys, tokenSet)) throw new Error(`\ncreateTamagui() missing expected tokens.${name}:\n\nReceived: ${Object.keys(tokenSet).join(\", \")}\n\nExpected: ${sizeTokenKeys.join(\", \")}\n\nTamagui expects a \"true\" key that is the same value as your default size. This is so \nit can size things up or down from the defaults without assuming which keys you use.\n\nPlease define a \"true\" or \"$true\" key on your size and space tokens like so (example):\n\nsize: {\n  sm: 2,\n  md: 10,\n  true: 10, // this means \"md\" is your default size\n  lg: 20,\n}\n\n`);\n  }\n  const expected = Object.keys(tamaguiConfig.tokensParsed.size);\n  for (const name of [\"radius\", \"zIndex\"]) {\n    const tokenSet = tamaguiConfig.tokensParsed[name], received = Object.keys(tokenSet);\n    if (!received.some((rk) => expected.includes(rk))) throw new Error(`\ncreateTamagui() invalid tokens.${name}:\n\nReceived: ${received.join(\", \")}\n\nExpected a subset of: ${expected.join(\", \")}\n\n`);\n  }\n  return tamaguiConfig;\n};\n\n// node_modules/tamagui/dist/esm/views/TamaguiProvider.mjs\nvar import_core47 = require(\"@tamagui/core\");\nvar import_jsx_runtime60 = require(\"react/jsx-runtime\");\nvar TamaguiProvider = /* @__PURE__ */ __name(({\n  children,\n  ...props\n}) => /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_core47.TamaguiProvider, {\n  ...props,\n  children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(ZIndexStackContext.Provider, {\n    value: 1,\n    children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(PortalProvider, {\n      shouldAddRootHost: true,\n      children\n    })\n  })\n}), \"TamaguiProvider\");\n\n// node_modules/tamagui/dist/esm/views/Anchor.mjs\nvar import_core48 = require(\"@tamagui/core\");\nvar import_react_native_web10 = __toESM(require_cjs21(), 1);\nvar import_jsx_runtime61 = require(\"react/jsx-runtime\");\nvar AnchorFrame = (0, import_core48.styled)(SizableText, {\n  name: \"Anchor\",\n  tag: \"a\",\n  accessibilityRole: \"link\"\n});\nvar Anchor = AnchorFrame.styleable(({\n  href,\n  target,\n  ...props\n}, ref) => /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(AnchorFrame, {\n  ...props,\n  ...isWeb ? {\n    href,\n    target\n  } : {\n    onPress: /* @__PURE__ */ __name((event) => {\n      props.onPress?.(event), href !== void 0 && import_react_native_web10.Linking.openURL(href);\n    }, \"onPress\")\n  },\n  ref\n}));\n\n// node_modules/tamagui/dist/esm/views/EnsureFlexed.mjs\nvar import_core49 = require(\"@tamagui/core\");\nvar EnsureFlexed = (0, import_core49.styled)(import_core49.Text, {\n  opacity: 0,\n  lineHeight: 0,\n  height: 0,\n  display: \"flex\",\n  fontSize: 200,\n  children: \"wwwwwwwwwwwwwwwwwww\",\n  pointerEvents: \"none\"\n});\nEnsureFlexed.isVisuallyHidden = true;\n\n// node_modules/tamagui/dist/esm/views/Fieldset.mjs\nvar import_core50 = require(\"@tamagui/core\");\nvar Fieldset = (0, import_core50.styled)(YStack, {\n  name: \"Fieldset\",\n  tag: \"fieldset\",\n  variants: {\n    horizontal: {\n      true: {\n        flexDirection: \"row\",\n        alignItems: \"center\"\n      }\n    }\n  }\n});\n\n// node_modules/tamagui/dist/esm/views/Input.mjs\nvar import_react50 = __toESM(require(\"react\"), 1);\nvar import_core52 = require(\"@tamagui/core\");\nvar import_react_native_web11 = __toESM(require_cjs21(), 1);\n\n// node_modules/tamagui/dist/esm/helpers/inputHelpers.mjs\nvar import_core51 = require(\"@tamagui/core\");\nvar inputSizeVariant = /* @__PURE__ */ __name((val = \"$true\", extras) => {\n  if (extras.props.multiline || extras.props.numberOfLines > 1) return textAreaSizeVariant(val, extras);\n  const buttonStyles = getButtonSized(val, extras), paddingHorizontal = getSpace(val, {\n    shift: -1,\n    bounds: [2]\n  }), fontStyle = getFontSized(val, extras);\n  return !import_core51.isWeb && fontStyle && delete fontStyle.lineHeight, {\n    ...fontStyle,\n    ...buttonStyles,\n    paddingHorizontal\n  };\n}, \"inputSizeVariant\");\nvar textAreaSizeVariant = /* @__PURE__ */ __name((val = \"$true\", extras) => {\n  const {\n    props\n  } = extras, buttonStyles = getButtonSized(val, extras), fontStyle = getFontSized(val, extras), lines = props.rows ?? props.numberOfLines, height = typeof lines == \"number\" ? lines * (0, import_core51.getVariableValue)(fontStyle.lineHeight) : \"auto\", paddingVertical = getSpace(val, {\n    shift: -2,\n    bounds: [2]\n  }), paddingHorizontal = getSpace(val, {\n    shift: -1,\n    bounds: [2]\n  });\n  return {\n    ...buttonStyles,\n    ...fontStyle,\n    paddingVertical,\n    paddingHorizontal,\n    height\n  };\n}, \"textAreaSizeVariant\");\n\n// node_modules/tamagui/dist/esm/views/Input.mjs\nvar import_jsx_runtime62 = require(\"react/jsx-runtime\");\nvar defaultStyles = {\n  size: \"$true\",\n  fontFamily: \"$body\",\n  borderWidth: 1,\n  outlineWidth: 0,\n  color: \"$color\",\n  ...isWeb ? {\n    tabIndex: 0\n  } : {\n    focusable: true\n  },\n  borderColor: \"$borderColor\",\n  backgroundColor: \"$background\",\n  // this fixes a flex bug where it overflows container\n  minWidth: 0,\n  hoverStyle: {\n    borderColor: \"$borderColorHover\"\n  },\n  focusStyle: {\n    borderColor: \"$borderColorFocus\"\n  },\n  focusVisibleStyle: {\n    outlineColor: \"$outlineColor\",\n    outlineWidth: 2,\n    outlineStyle: \"solid\"\n  }\n};\nvar InputFrame = (0, import_core52.styled)(import_react_native_web11.TextInput, {\n  name: \"Input\",\n  variants: {\n    unstyled: {\n      false: defaultStyles\n    },\n    size: {\n      \"...size\": inputSizeVariant\n    },\n    disabled: {\n      true: {}\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n}, {\n  isInput: true,\n  accept: {\n    placeholderTextColor: \"color\",\n    selectionColor: \"color\"\n  }\n});\nvar Input = InputFrame.styleable((propsIn, forwardedRef) => {\n  const ref = import_react50.default.useRef(null), composedRefs = (0, import_core52.useComposedRefs)(forwardedRef, ref), props = useInputProps(propsIn, composedRefs);\n  return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(InputFrame, {\n    ...props\n  });\n});\nfunction useInputProps(props, ref) {\n  const theme = (0, import_core52.useTheme)(), focusableProps = useFocusable({\n    props,\n    ref,\n    isInput: true\n  }), placeholderTextColor = import_react50.default.useMemo(() => {\n    const placeholderColorProp = props.placeholderTextColor;\n    return theme[placeholderColorProp]?.get() ?? placeholderColorProp ?? theme.placeholderColor?.get();\n  }, [props.placeholderTextColor, theme]);\n  return import_react50.default.useMemo(() => ({\n    ref: focusableProps.ref,\n    readOnly: props.disabled,\n    ...props,\n    placeholderTextColor,\n    onChangeText: focusableProps.onChangeText\n  }), [focusableProps.ref, focusableProps.onChangeText, props.disabled, props, placeholderTextColor]);\n}\n__name(useInputProps, \"useInputProps\");\n\n// node_modules/tamagui/dist/esm/views/Spinner.mjs\nvar import_core53 = require(\"@tamagui/core\");\nvar React73 = __toESM(require(\"react\"), 1);\nvar import_react_native_web12 = __toESM(require_cjs21(), 1);\nvar import_jsx_runtime63 = require(\"react/jsx-runtime\");\nvar Spinner = YStack.extractable((0, import_core53.themeable)(React73.forwardRef((props, ref) => {\n  const {\n    size: size4,\n    color: colorProp,\n    ...stackProps\n  } = props, theme = (0, import_core53.useTheme)();\n  let color = colorProp;\n  return color && color[0] === \"$\" && (color = (0, import_core53.variableToString)(theme[color])), /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(YStack, {\n    ref,\n    ...stackProps,\n    children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_react_native_web12.ActivityIndicator, {\n      size: size4,\n      color\n    })\n  });\n}), {\n  componentName: \"Spinner\"\n}));\n\n// node_modules/tamagui/dist/esm/views/TextArea.mjs\nvar import_react51 = __toESM(require(\"react\"), 1);\nvar import_core54 = require(\"@tamagui/core\");\nvar import_jsx_runtime64 = require(\"react/jsx-runtime\");\nvar TextAreaFrame = (0, import_core54.styled)(InputFrame, {\n  name: \"TextArea\",\n  multiline: true,\n  // this attribute fixes firefox newline issue\n  whiteSpace: \"pre-wrap\",\n  variants: {\n    unstyled: {\n      false: {\n        height: \"auto\",\n        ...defaultStyles\n      }\n    },\n    size: {\n      \"...size\": textAreaSizeVariant\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\nvar TextArea = TextAreaFrame.styleable((propsIn, forwardedRef) => {\n  const ref = import_react51.default.useRef(null), composedRefs = (0, import_core54.useComposedRefs)(forwardedRef, ref), props = useInputProps(propsIn, composedRefs), linesProp = {\n    // web uses rows now, but native not caught up :/\n    [isWeb ? \"rows\" : \"numberOfLines\"]: propsIn.unstyled ? void 0 : 4\n  };\n  return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(TextAreaFrame, {\n    ...linesProp,\n    ...props\n  });\n});\n\n// node_modules/tamagui/dist/esm/views/Text.mjs\nvar import_core55 = require(\"@tamagui/core\");\nvar Text4 = (0, import_core55.styled)(import_core55.Text, {\n  variants: {\n    unstyled: {\n      false: {\n        color: \"$color\"\n      }\n    }\n  },\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === \"1\"\n  }\n});\n\n// node_modules/tamagui/dist/esm/index.mjs\nvar import_core56 = require(\"@tamagui/core\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n  ACTIONS,\n  Adapt,\n  AdaptContents,\n  AdaptContext,\n  AdaptParent,\n  AdaptPortalContents,\n  AlertDialog,\n  AlertDialogAction,\n  AlertDialogCancel,\n  AlertDialogContent,\n  AlertDialogDescription,\n  AlertDialogOverlay,\n  AlertDialogPortal,\n  AlertDialogTitle,\n  AlertDialogTrigger,\n  Anchor,\n  AnimatePresence,\n  Article,\n  Aside,\n  Avatar,\n  AvatarFallback,\n  AvatarFallbackFrame,\n  AvatarFrame,\n  AvatarImage,\n  Button,\n  ButtonContext,\n  ButtonFrame,\n  ButtonIcon,\n  ButtonNestingContext,\n  ButtonText,\n  Card,\n  CardBackground,\n  CardFooter,\n  CardFrame,\n  CardHeader,\n  Checkbox,\n  CheckboxContext,\n  CheckboxFrame,\n  CheckboxIndicatorFrame,\n  CheckboxStyledContext,\n  Circle,\n  ComponentContext,\n  Configuration,\n  Dialog,\n  DialogClose,\n  DialogContent,\n  DialogDescription,\n  DialogOverlay,\n  DialogOverlayFrame,\n  DialogPortal,\n  DialogPortalFrame,\n  DialogTitle,\n  DialogTrigger,\n  DialogWarningProvider,\n  EnsureFlexed,\n  Fieldset,\n  FontLanguage,\n  Footer,\n  Form,\n  FormFrame,\n  FormProvider,\n  FormTrigger,\n  ForwardSelectContext,\n  Frame,\n  Group,\n  GroupFrame,\n  H1,\n  H2,\n  H3,\n  H4,\n  H5,\n  H6,\n  Handle,\n  Header,\n  Heading,\n  INITIAL_STATE,\n  IS_FABRIC,\n  Image,\n  Input,\n  InputFrame,\n  Label,\n  LabelFrame,\n  ListItem,\n  ListItemFrame,\n  ListItemSubtitle,\n  ListItemText,\n  ListItemTitle,\n  Main,\n  Nav,\n  Overlay,\n  Paragraph,\n  ParentSheetContext,\n  Popover,\n  PopoverAnchor,\n  PopoverArrow,\n  PopoverClose,\n  PopoverContent,\n  PopoverContext,\n  PopoverTrigger,\n  Popper,\n  PopperAnchor,\n  PopperArrow,\n  PopperContent,\n  PopperContentFrame,\n  PopperContext,\n  PopperProvider,\n  Portal,\n  PortalHost,\n  PortalItem,\n  PortalProvider,\n  PresenceChild,\n  PresenceContext,\n  Progress,\n  ProgressFrame,\n  ProgressIndicator,\n  ProgressIndicatorFrame,\n  ProvideAdaptContext,\n  RadioGroup,\n  RadioGroupFrame,\n  RadioGroupIndicatorFrame,\n  RadioGroupItemFrame,\n  RadioGroupStyledContext,\n  Range,\n  ResetPresence,\n  ScrollView,\n  Section,\n  Select,\n  SelectGroupFrame,\n  SelectIcon,\n  SelectItemParentProvider,\n  SelectProvider,\n  SelectSeparator,\n  Separator,\n  Sheet,\n  SheetController,\n  SheetControllerContext,\n  SheetHandleFrame,\n  SheetInsideSheetContext,\n  SheetOverlayFrame,\n  SheetScrollView,\n  SizableStack,\n  SizableText,\n  Slider,\n  SliderContext,\n  SliderFrame,\n  SliderThumb,\n  SliderThumbFrame,\n  SliderTrack,\n  SliderTrackActive,\n  SliderTrackActiveFrame,\n  SliderTrackFrame,\n  Spacer,\n  Spinner,\n  Square,\n  Stack,\n  StyleObjectIdentifier,\n  StyleObjectProperty,\n  StyleObjectPseudo,\n  StyleObjectRules,\n  StyleObjectValue,\n  Switch,\n  SwitchContext,\n  SwitchFrame,\n  SwitchStyledContext,\n  SwitchThumb,\n  Tabs,\n  TamaguiProvider,\n  Text,\n  TextArea,\n  TextAreaFrame,\n  Theme,\n  ThemeableStack,\n  Thumb,\n  ToggleGroup,\n  Tooltip,\n  TooltipGroup,\n  TooltipSimple,\n  Track,\n  USE_NATIVE_PORTAL,\n  Unspaced,\n  View,\n  VisuallyHidden,\n  XGroup,\n  XStack,\n  YGroup,\n  YStack,\n  ZStack,\n  addTheme,\n  allPortalHosts,\n  clamp,\n  closeOpenTooltips,\n  composeEventHandlers,\n  composeRefs,\n  concatClassName,\n  configureInitialWindowDimensions,\n  createAlertDialogScope,\n  createAvatarScope,\n  createCheckbox,\n  createComponent,\n  createContext,\n  createContextScope,\n  createDialogScope,\n  createFont,\n  createMedia,\n  createProgressScope,\n  createRadioGroup,\n  createSelectContext,\n  createSelectItemParentContext,\n  createSelectItemParentScope,\n  createSelectScope,\n  createSheet,\n  createSheetScope,\n  createShorthands,\n  createStyledContext,\n  createSwitch,\n  createTamagui,\n  createTheme,\n  createTokens,\n  createVariable,\n  debounce,\n  defaultStyles,\n  fullscreenStyle,\n  getCSSStylesAtomic,\n  getConfig,\n  getFontSize,\n  getFontSizeToken,\n  getFontSizeVariable,\n  getMedia,\n  getNativeSheet,\n  getShapeSize,\n  getThemes,\n  getToken,\n  getTokenValue,\n  getTokens,\n  getVariable,\n  getVariableName,\n  getVariableValue,\n  insertFont,\n  isChrome,\n  isClient,\n  isPresent,\n  isServer,\n  isServerSide,\n  isTamaguiComponent,\n  isTamaguiElement,\n  isTouchable,\n  isVariable,\n  isWeb,\n  isWebTouchable,\n  matchMedia,\n  mediaObjectToString,\n  mediaQueryConfig,\n  mediaState,\n  mutateThemes,\n  portalListeners,\n  prevent,\n  replaceTheme,\n  resolveViewZIndex,\n  setConfig,\n  setRef,\n  setupDev,\n  setupNativeSheet,\n  setupPopper,\n  setupReactNative,\n  shouldRenderNativePlatform,\n  simpleHash,\n  spacedChildren,\n  stylePropsAll,\n  stylePropsText,\n  stylePropsTextOnly,\n  stylePropsTransform,\n  stylePropsUnitless,\n  stylePropsView,\n  styled,\n  themeable,\n  themeableVariants,\n  tokenCategories,\n  updateTheme,\n  useAdaptContext,\n  useAdaptIsActive,\n  useButton,\n  useComposedRefs,\n  useConfiguration,\n  useControllableState,\n  useCurrentColor,\n  useDebounce,\n  useDebounceValue,\n  useDidFinishSSR,\n  useEvent,\n  useFloatingContext,\n  useForceUpdate,\n  useFormContext,\n  useGet,\n  useGetThemedIcon,\n  useGroupItem,\n  useInputProps,\n  useIsPresent,\n  useIsTouchDevice,\n  useIsomorphicLayoutEffect,\n  useLabelContext,\n  useListItem,\n  useMedia,\n  usePopoverContext,\n  usePopperContext,\n  usePortal,\n  usePresence,\n  useProps,\n  usePropsAndStyle,\n  useSelectContext,\n  useSelectItemParentContext,\n  useSheet,\n  useSheetController,\n  useSheetOffscreenSize,\n  useSheetOpenState,\n  useStyle,\n  useTabsContext,\n  useTheme,\n  useThemeName,\n  useWindowDimensions,\n  validPseudoKeys,\n  validStyles,\n  variableToString,\n  withStaticProperties,\n  wrapChildrenInText\n});\n/*! Bundled license information:\n\ntabbable/dist/index.js:\n  (*!\n  * tabbable 6.2.0\n  * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n  *)\n*/\n"
  },
  {
    "path": ".tamagui/tamagui.config.cjs",
    "content": "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 __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n  for (var name in all)\n    __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) && key !== except)\n        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\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.\n  isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n  mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// tamagui.config.ts\nvar tamagui_config_exports = {};\n__export(tamagui_config_exports, {\n  default: () => tamagui_config_default2\n});\nmodule.exports = __toCommonJS(tamagui_config_exports);\n\n// src/components/Editor/ui/src/tamagui/tamagui.config.ts\nvar import_core2 = require(\"@tamagui/core\");\n\n// node_modules/@tamagui/shorthands/dist/esm/index.mjs\nvar shorthands = {\n  // web-only\n  ussel: \"userSelect\",\n  cur: \"cursor\",\n  // tamagui\n  pe: \"pointerEvents\",\n  // text\n  col: \"color\",\n  ff: \"fontFamily\",\n  fos: \"fontSize\",\n  fost: \"fontStyle\",\n  fow: \"fontWeight\",\n  ls: \"letterSpacing\",\n  lh: \"lineHeight\",\n  ta: \"textAlign\",\n  tt: \"textTransform\",\n  ww: \"wordWrap\",\n  // view\n  ac: \"alignContent\",\n  ai: \"alignItems\",\n  als: \"alignSelf\",\n  b: \"bottom\",\n  bc: \"backgroundColor\",\n  bg: \"backgroundColor\",\n  bbc: \"borderBottomColor\",\n  bblr: \"borderBottomLeftRadius\",\n  bbrr: \"borderBottomRightRadius\",\n  bbw: \"borderBottomWidth\",\n  blc: \"borderLeftColor\",\n  blw: \"borderLeftWidth\",\n  boc: \"borderColor\",\n  br: \"borderRadius\",\n  bs: \"borderStyle\",\n  brw: \"borderRightWidth\",\n  brc: \"borderRightColor\",\n  btc: \"borderTopColor\",\n  btlr: \"borderTopLeftRadius\",\n  btrr: \"borderTopRightRadius\",\n  btw: \"borderTopWidth\",\n  bw: \"borderWidth\",\n  dsp: \"display\",\n  f: \"flex\",\n  fb: \"flexBasis\",\n  fd: \"flexDirection\",\n  fg: \"flexGrow\",\n  fs: \"flexShrink\",\n  fw: \"flexWrap\",\n  h: \"height\",\n  jc: \"justifyContent\",\n  l: \"left\",\n  m: \"margin\",\n  mah: \"maxHeight\",\n  maw: \"maxWidth\",\n  mb: \"marginBottom\",\n  mih: \"minHeight\",\n  miw: \"minWidth\",\n  ml: \"marginLeft\",\n  mr: \"marginRight\",\n  mt: \"marginTop\",\n  mx: \"marginHorizontal\",\n  my: \"marginVertical\",\n  o: \"opacity\",\n  ov: \"overflow\",\n  p: \"padding\",\n  pb: \"paddingBottom\",\n  pl: \"paddingLeft\",\n  pos: \"position\",\n  pr: \"paddingRight\",\n  pt: \"paddingTop\",\n  px: \"paddingHorizontal\",\n  py: \"paddingVertical\",\n  r: \"right\",\n  shac: \"shadowColor\",\n  shar: \"shadowRadius\",\n  shof: \"shadowOffset\",\n  shop: \"shadowOpacity\",\n  t: \"top\",\n  w: \"width\",\n  zi: \"zIndex\"\n};\nshorthands.bls = \"borderLeftStyle\";\nshorthands.brs = \"borderRightStyle\";\nshorthands.bts = \"borderTopStyle\";\nshorthands.bbs = \"borderBottomStyle\";\nshorthands.bxs = \"boxSizing\";\nshorthands.bxsh = \"boxShadow\";\nshorthands.ox = \"overflowX\";\nshorthands.oy = \"overflowY\";\n\n// src/components/Editor/ui/src/tamagui/tamagui.config.ts\nvar import_web4 = require(\"@tamagui/core\");\n\n// node_modules/@tamagui/constants/dist/esm/constants.mjs\nvar import_react = require(\"react\");\nvar isWeb = true;\nvar isWindowDefined = typeof window < \"u\";\nvar isServer = isWeb && !isWindowDefined;\nvar isClient = isWeb && isWindowDefined;\nvar useIsomorphicLayoutEffect = isServer ? import_react.useEffect : import_react.useLayoutEffect;\nvar isChrome = typeof navigator < \"u\" && /Chrome/.test(navigator.userAgent || \"\");\nvar isWebTouchable = isClient && (\"ontouchstart\" in window || navigator.maxTouchPoints > 0);\nvar isIos = process.env.TEST_NATIVE_PLATFORM === \"ios\";\n\n// node_modules/@tamagui/use-presence/dist/esm/PresenceContext.mjs\nvar React = __toESM(require(\"react\"), 1);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar PresenceContext = React.createContext(null);\nvar ResetPresence = /* @__PURE__ */ __name((props) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PresenceContext.Provider, {\n  value: null,\n  children: props.children\n}), \"ResetPresence\");\n\n// node_modules/@tamagui/use-presence/dist/esm/usePresence.mjs\nvar React2 = __toESM(require(\"react\"), 1);\nfunction usePresence() {\n  const context = React2.useContext(PresenceContext);\n  if (!context) return [true, null, context];\n  const {\n    id,\n    isPresent: isPresent2,\n    onExitComplete,\n    register\n  } = context;\n  return React2.useEffect(() => register(id), []), !isPresent2 && onExitComplete ? [false, () => onExitComplete?.(id), context] : [true, void 0, context];\n}\n__name(usePresence, \"usePresence\");\n\n// node_modules/@tamagui/animations-css/dist/esm/createAnimations.mjs\nvar import_web = require(\"@tamagui/core\");\nvar import_react2 = __toESM(require(\"react\"), 1);\nfunction createAnimations(animations2) {\n  const reactionListeners = /* @__PURE__ */ new WeakMap();\n  return {\n    animations: animations2,\n    usePresence,\n    ResetPresence,\n    supportsCSSVars: true,\n    useAnimatedNumber(initial) {\n      const [val, setVal] = import_react2.default.useState(initial), [onFinish, setOnFinish] = (0, import_react2.useState)();\n      return useIsomorphicLayoutEffect(() => {\n        onFinish && (onFinish?.(), setOnFinish(void 0));\n      }, [onFinish]), {\n        getInstance() {\n          return setVal;\n        },\n        getValue() {\n          return val;\n        },\n        setValue(next, config2, onFinish2) {\n          setVal(next), setOnFinish(onFinish2);\n        },\n        stop() {\n        }\n      };\n    },\n    useAnimatedNumberReaction({\n      value\n    }, onValue) {\n      import_react2.default.useEffect(() => {\n        const instance = value.getInstance();\n        let queue = reactionListeners.get(instance);\n        if (!queue) {\n          const next = /* @__PURE__ */ new Set();\n          reactionListeners.set(instance, next), queue = next;\n        }\n        return queue.add(onValue), () => {\n          queue?.delete(onValue);\n        };\n      }, []);\n    },\n    useAnimatedNumberStyle(val, getStyle) {\n      return getStyle(val.getValue());\n    },\n    useAnimations: /* @__PURE__ */ __name(({\n      props,\n      presence,\n      style,\n      componentState,\n      stateRef\n    }) => {\n      const isEntering = !!componentState.unmounted, isExiting = presence?.[0] === false, sendExitComplete = presence?.[1], [animationKey, animationConfig] = Array.isArray(props.animation) ? props.animation : [props.animation], animation = animations2[animationKey], keys = props.animateOnly ?? [\"all\"];\n      return useIsomorphicLayoutEffect(() => {\n        const host = stateRef.current.host;\n        if (!sendExitComplete || !isExiting || !host) return;\n        const node = host, onFinishAnimation = /* @__PURE__ */ __name(() => {\n          sendExitComplete?.();\n        }, \"onFinishAnimation\");\n        return node.addEventListener(\"transitionend\", onFinishAnimation), node.addEventListener(\"transitioncancel\", onFinishAnimation), () => {\n          node.removeEventListener(\"transitionend\", onFinishAnimation), node.removeEventListener(\"transitioncancel\", onFinishAnimation);\n        };\n      }, [sendExitComplete, isExiting]), animation && (Array.isArray(style.transform) && (style.transform = (0, import_web.transformsToString)(style.transform)), style.transition = keys.map((key) => {\n        const override = animations2[animationConfig?.[key]] ?? animation;\n        return `${key} ${override}`;\n      }).join(\", \")), process.env.NODE_ENV === \"development\" && props.debug === \"verbose\" && console.info(\"CSS animation\", {\n        props,\n        animations: animations2,\n        animation,\n        animationKey,\n        style,\n        isEntering,\n        isExiting\n      }), animation ? {\n        style,\n        className: isEntering ? \"t_unmounted\" : \"\"\n      } : null;\n    }, \"useAnimations\")\n  };\n}\n__name(createAnimations, \"createAnimations\");\n\n// src/components/Editor/ui/src/tamagui/config/animations.ts\nvar animations = createAnimations({\n  fast: \"ease-in-out 150ms\",\n  medium: \"ease-in-out 300ms\",\n  slow: \"ease-in-out 450ms\",\n  slideInDownSlow: {\n    type: \"spring\",\n    damping: 15,\n    mass: 1,\n    stiffness: 120,\n    opacity: {\n      overshootClamping: true\n    }\n  },\n  slideInDownMedium: {\n    type: \"timing\",\n    duration: 300\n  },\n  slideInDownFast: {\n    type: \"timing\",\n    duration: 150\n  }\n});\nvar animations_default = animations;\n\n// node_modules/@tamagui/font-inter/dist/esm/index.mjs\nvar import_core = require(\"@tamagui/core\");\nvar createInterFont = /* @__PURE__ */ __name((font = {}, {\n  sizeLineHeight = /* @__PURE__ */ __name((size2) => size2 + 10, \"sizeLineHeight\"),\n  sizeSize = /* @__PURE__ */ __name((size2) => size2 * 1, \"sizeSize\")\n} = {}) => {\n  const size2 = Object.fromEntries(Object.entries({\n    ...defaultSizes,\n    ...font.size\n  }).map(([k, v]) => [k, sizeSize(+v)]));\n  return (0, import_core.createFont)({\n    family: import_core.isWeb ? 'Inter, -apple-system, system-ui, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif' : \"Inter\",\n    lineHeight: Object.fromEntries(Object.entries(size2).map(([k, v]) => [k, sizeLineHeight((0, import_core.getVariableValue)(v))])),\n    weight: {\n      4: \"300\"\n    },\n    letterSpacing: {\n      4: 0\n    },\n    ...font,\n    size: size2\n  });\n}, \"createInterFont\");\nvar defaultSizes = {\n  1: 11,\n  2: 12,\n  3: 13,\n  4: 14,\n  true: 14,\n  5: 16,\n  6: 18,\n  7: 20,\n  8: 23,\n  9: 30,\n  10: 46,\n  11: 55,\n  12: 62,\n  13: 72,\n  14: 92,\n  15: 114,\n  16: 134\n};\n\n// src/components/Editor/ui/src/tamagui/config/create-generic-font.ts\nvar import_web2 = require(\"@tamagui/core\");\nvar genericFontSizes = {\n  1: 10,\n  2: 11,\n  3: 12,\n  4: 14,\n  5: 15,\n  6: 16,\n  7: 20,\n  8: 22,\n  9: 30,\n  10: 42,\n  11: 52,\n  12: 62,\n  13: 72,\n  14: 92,\n  15: 114,\n  16: 124\n};\nfunction createGenericFont(family, font = {}, {\n  sizeLineHeight = /* @__PURE__ */ __name((val) => val * 1.35, \"sizeLineHeight\")\n} = {}) {\n  const size2 = font.size || genericFontSizes;\n  return (0, import_web2.createFont)({\n    family,\n    size: size2,\n    lineHeight: Object.fromEntries(Object.entries(size2).map(([k, v]) => [k, sizeLineHeight(+v)])),\n    weight: { 0: \"300\" },\n    letterSpacing: { 4: 0 },\n    ...font\n  });\n}\n__name(createGenericFont, \"createGenericFont\");\nvar create_generic_font_default = createGenericFont;\n\n// src/components/Editor/ui/src/tamagui/config/fonts.ts\nvar headingFont = createInterFont(\n  {\n    size: {\n      1: 36,\n      2: 30,\n      3: 24,\n      4: 22,\n      5: 20,\n      6: 18,\n      true: 30\n    },\n    weight: {\n      1: \"700\",\n      2: \"500\",\n      3: \"400\",\n      4: \"200\"\n    },\n    face: {\n      700: { normal: \"InterBold\" },\n      500: { normal: \"InterBold\" },\n      400: { normal: \"InterBold\" },\n      200: { normal: \"InterBold\" }\n    }\n  },\n  {\n    sizeSize: /* @__PURE__ */ __name((size2) => size2, \"sizeSize\"),\n    sizeLineHeight: /* @__PURE__ */ __name((fontSize) => fontSize * 1.25, \"sizeLineHeight\")\n  }\n);\nvar bodyFont = createInterFont(\n  {\n    face: {\n      700: { normal: \"InterBold\" }\n    }\n  },\n  {\n    sizeSize: /* @__PURE__ */ __name((size2) => Math.round(size2 * 1.1), \"sizeSize\"),\n    sizeLineHeight: /* @__PURE__ */ __name((size2) => size2 + 5, \"sizeLineHeight\")\n  }\n);\nvar monoFont = create_generic_font_default(\n  `\"ui-monospace\", \"SFMono-Regular\", \"SF Mono\", Menlo, Consolas, \"Liberation Mono\", monospace`,\n  {\n    weight: {\n      1: \"500\"\n    },\n    size: {\n      1: 11,\n      2: 12,\n      3: 13,\n      4: 14,\n      5: 16,\n      6: 18,\n      7: 20,\n      8: 22,\n      9: 30,\n      10: 42,\n      11: 52,\n      12: 62,\n      13: 72,\n      14: 92,\n      15: 114,\n      16: 124\n    }\n  },\n  {\n    sizeLineHeight: /* @__PURE__ */ __name((x) => x * 1.5, \"sizeLineHeight\")\n  }\n);\nvar editorBody = create_generic_font_default(\n  `Georgia, Times, \"Times New Roman\", serif`,\n  {\n    weight: {\n      1: \"500\"\n    },\n    size: {\n      1: 12,\n      2: 14,\n      3: 16,\n      4: 18,\n      5: 20,\n      6: 22,\n      7: 28,\n      8: 32,\n      9: 40,\n      10: 42,\n      11: 52,\n      12: 62,\n      13: 72,\n      14: 92,\n      15: 114,\n      16: 124\n    }\n  },\n  {\n    sizeLineHeight: /* @__PURE__ */ __name((x) => x * 1.5, \"sizeLineHeight\")\n  }\n);\n\n// node_modules/@tamagui/react-native-media-driver/dist/esm/createMedia.mjs\nvar import_web3 = require(\"@tamagui/core\");\n\n// node_modules/@tamagui/react-native-media-driver/dist/esm/matchMedia.mjs\nvar matchMedia = globalThis.matchMedia;\n\n// node_modules/@tamagui/react-native-media-driver/dist/esm/createMedia.mjs\nfunction createMedia(media2) {\n  return (0, import_web3.setupMatchMedia)(matchMedia), media2;\n}\n__name(createMedia, \"createMedia\");\n\n// src/components/Editor/ui/src/tamagui/config/media.ts\nvar media = createMedia({\n  xxs: { maxWidth: 390 },\n  xs: { maxWidth: 660 },\n  sm: { maxWidth: 768 },\n  md: { maxWidth: 1024 },\n  lg: { maxWidth: 1280 },\n  xl: { maxWidth: 1650 },\n  gtXs: { minWidth: 660 + 1 },\n  gtSm: { minWidth: 768 + 1 },\n  gtMd: { minWidth: 1024 + 1 },\n  gtLg: { minWidth: 1280 + 1 },\n  gtXl: { minWidth: 1650 + 1 }\n});\nvar mediaQueryDefaultActive = {\n  xxs: false,\n  xs: true,\n  sm: true,\n  md: true,\n  lg: true,\n  xl: true,\n  gtXs: false,\n  gtSm: false,\n  gtMd: false,\n  gtLg: false,\n  gtXl: false\n};\n\n// src/components/Editor/ui/src/tamagui/themes/token-radius.ts\nvar radius = {\n  0: 0,\n  1: 3,\n  2: 5,\n  3: 7,\n  4: 9,\n  true: 9,\n  5: 10,\n  6: 16,\n  7: 19,\n  8: 22,\n  9: 26,\n  10: 34,\n  11: 42,\n  12: 50\n};\nvar token_radius_default = radius;\n\n// src/components/Editor/ui/src/tamagui/themes/token-size.ts\nvar size = {\n  $0: 0,\n  \"$0.25\": 2,\n  \"$0.5\": 4,\n  \"$0.75\": 8,\n  $1: 20,\n  \"$1.5\": 24,\n  $2: 28,\n  \"$2.5\": 32,\n  $3: 36,\n  \"$3.5\": 40,\n  $4: 44,\n  $true: 44,\n  \"$4.5\": 48,\n  $5: 52,\n  $6: 64,\n  $7: 74,\n  $8: 84,\n  $9: 94,\n  $10: 104,\n  $11: 124,\n  $12: 144,\n  $13: 164,\n  $14: 184,\n  $15: 204,\n  $16: 224,\n  $17: 224,\n  $18: 244,\n  $19: 264,\n  $20: 284\n};\n\n// src/components/Editor/ui/src/tamagui/themes/token-space.ts\nfunction sizeToSpace(v) {\n  if (v === 0) return 0;\n  if (v === 2) return 0.5;\n  if (v === 4) return 1;\n  if (v === 8) return 1.5;\n  if (v <= 16) return Math.round(v * 0.333);\n  return Math.floor(v * 0.7 - 12);\n}\n__name(sizeToSpace, \"sizeToSpace\");\nvar spaces = Object.entries(size).map(([k, v]) => {\n  return [k, sizeToSpace(v)];\n});\nvar spacesNegative = spaces.slice(1).map(([k, v]) => [`-${k.slice(1)}`, -v]);\nvar space = {\n  ...Object.fromEntries(spaces),\n  ...Object.fromEntries(spacesNegative)\n};\nvar token_space_default = space;\n\n// src/components/Editor/ui/src/tamagui/themes/token-z-index.ts\nvar zIndex = {\n  0: 0,\n  1: 100,\n  2: 200,\n  3: 300,\n  4: 400,\n  5: 500,\n  6: 600,\n  7: 700,\n  8: 800,\n  9: 900\n};\nvar token_z_index_default = zIndex;\n\n// src/components/Editor/ui/src/tamagui/themes/themes-generated.ts\nfunction t(a) {\n  const res = {};\n  for (const [ki, vi] of a) {\n    res[ks[ki]] = colors[vi];\n  }\n  return res;\n}\n__name(t, \"t\");\nvar colors = [\n  \"#fff\",\n  \"#f9f9f9\",\n  \"hsl(0, 0%, 97.3%)\",\n  \"hsl(0, 0%, 95.1%)\",\n  \"hsl(0, 0%, 94.0%)\",\n  \"hsl(0, 0%, 92.0%)\",\n  \"hsl(0, 0%, 89.5%)\",\n  \"hsl(0, 0%, 81.0%)\",\n  \"hsl(0, 0%, 56.1%)\",\n  \"hsl(0, 0%, 50.3%)\",\n  \"hsl(0, 0%, 42.5%)\",\n  \"hsl(0, 0%, 9.0%)\",\n  \"rgba(255,255,255,0)\",\n  \"rgba(10,10,10,0)\",\n  \"hsl(206, 100%, 99.2%)\",\n  \"hsl(210, 100%, 98.0%)\",\n  \"hsl(209, 100%, 96.5%)\",\n  \"hsl(210, 98.8%, 94.0%)\",\n  \"hsl(209, 95.0%, 90.1%)\",\n  \"hsl(209, 81.2%, 84.5%)\",\n  \"hsl(208, 77.5%, 76.9%)\",\n  \"hsl(206, 81.9%, 65.3%)\",\n  \"hsl(206, 100%, 50.0%)\",\n  \"hsl(208, 100%, 47.3%)\",\n  \"hsl(211, 100%, 43.2%)\",\n  \"hsl(211, 100%, 15.0%)\",\n  \"hsl(0, 0%, 99.0%)\",\n  \"hsl(0, 0%, 93.0%)\",\n  \"hsl(0, 0%, 90.9%)\",\n  \"hsl(0, 0%, 88.7%)\",\n  \"hsl(0, 0%, 85.8%)\",\n  \"hsl(0, 0%, 78.0%)\",\n  \"hsl(0, 0%, 52.3%)\",\n  \"hsl(0, 0%, 43.5%)\",\n  \"hsl(136, 50.0%, 98.9%)\",\n  \"hsl(138, 62.5%, 96.9%)\",\n  \"hsl(139, 55.2%, 94.5%)\",\n  \"hsl(140, 48.7%, 91.0%)\",\n  \"hsl(141, 43.7%, 86.0%)\",\n  \"hsl(143, 40.3%, 79.0%)\",\n  \"hsl(146, 38.5%, 69.0%)\",\n  \"hsl(151, 40.2%, 54.1%)\",\n  \"hsl(151, 55.0%, 41.5%)\",\n  \"hsl(152, 57.5%, 37.6%)\",\n  \"hsl(153, 67.0%, 28.5%)\",\n  \"hsl(155, 40.0%, 14.0%)\",\n  \"hsl(280, 65.0%, 99.4%)\",\n  \"hsl(276, 100%, 99.0%)\",\n  \"hsl(276, 83.1%, 97.0%)\",\n  \"hsl(275, 76.4%, 94.7%)\",\n  \"hsl(275, 70.8%, 91.8%)\",\n  \"hsl(274, 65.4%, 87.8%)\",\n  \"hsl(273, 61.0%, 81.7%)\",\n  \"hsl(272, 60.0%, 73.5%)\",\n  \"hsl(272, 51.0%, 54.0%)\",\n  \"hsl(272, 46.8%, 50.3%)\",\n  \"hsl(272, 50.0%, 45.8%)\",\n  \"hsl(272, 66.0%, 16.0%)\",\n  \"hsl(359, 100%, 99.4%)\",\n  \"hsl(359, 100%, 98.6%)\",\n  \"hsl(360, 100%, 96.8%)\",\n  \"hsl(360, 97.9%, 94.8%)\",\n  \"hsl(360, 90.2%, 91.9%)\",\n  \"hsl(360, 81.7%, 87.8%)\",\n  \"hsl(359, 74.2%, 81.7%)\",\n  \"hsl(359, 69.5%, 74.3%)\",\n  \"hsl(358, 75.0%, 59.0%)\",\n  \"hsl(358, 69.4%, 55.2%)\",\n  \"hsl(358, 65.0%, 48.7%)\",\n  \"hsl(354, 50.0%, 14.6%)\",\n  \"hsl(60, 54.0%, 98.5%)\",\n  \"hsl(52, 100%, 95.5%)\",\n  \"hsl(55, 100%, 90.9%)\",\n  \"hsl(54, 100%, 86.6%)\",\n  \"hsl(52, 97.9%, 82.0%)\",\n  \"hsl(50, 89.4%, 76.1%)\",\n  \"hsl(47, 80.4%, 68.0%)\",\n  \"hsl(48, 100%, 46.1%)\",\n  \"hsl(53, 92.0%, 50.0%)\",\n  \"hsl(50, 100%, 48.5%)\",\n  \"hsl(42, 100%, 29.0%)\",\n  \"hsl(40, 55.0%, 13.5%)\",\n  \"hsl(180, 29%, 17%)\",\n  \"hsl(180, 36%, 22%)\",\n  \"hsl(166, 30%, 29%)\",\n  \"hsl(166, 55%, 31%)\",\n  \"hsl(171, 96%, 28%)\",\n  \"hsl(148, 44%, 47%)\",\n  \"hsl(144, 55%, 57%)\",\n  \"hsl(144, 73%, 68%)\",\n  \"hsl(133, 54%, 78%)\",\n  \"hsl(133, 63%, 83%)\",\n  \"hsl(122, 53%, 88%)\",\n  \"hsl(123, 50%, 93%)\",\n  \"hsl(125, 50%, 96%)\",\n  \"rgba(0,0,0,0.066)\",\n  \"rgba(0,0,0,0.02)\",\n  \"#050505\",\n  \"#151515\",\n  \"#191919\",\n  \"#232323\",\n  \"#282828\",\n  \"#323232\",\n  \"#424242\",\n  \"#494949\",\n  \"#545454\",\n  \"#626262\",\n  \"#a5a5a5\",\n  \"hsl(212, 35.0%, 9.2%)\",\n  \"hsl(216, 50.0%, 11.8%)\",\n  \"hsl(214, 59.4%, 15.3%)\",\n  \"hsl(214, 65.8%, 17.9%)\",\n  \"hsl(213, 71.2%, 20.2%)\",\n  \"hsl(212, 77.4%, 23.1%)\",\n  \"hsl(211, 85.1%, 27.4%)\",\n  \"hsl(211, 89.7%, 34.1%)\",\n  \"hsl(209, 100%, 60.6%)\",\n  \"hsl(210, 100%, 66.1%)\",\n  \"hsl(206, 98.0%, 95.8%)\",\n  \"hsl(0, 0%, 8.5%)\",\n  \"hsl(0, 0%, 11.0%)\",\n  \"hsl(0, 0%, 13.6%)\",\n  \"hsl(0, 0%, 15.8%)\",\n  \"hsl(0, 0%, 17.9%)\",\n  \"hsl(0, 0%, 20.5%)\",\n  \"hsl(0, 0%, 24.3%)\",\n  \"hsl(0, 0%, 31.2%)\",\n  \"hsl(0, 0%, 43.9%)\",\n  \"hsl(0, 0%, 49.4%)\",\n  \"hsl(0, 0%, 62.8%)\",\n  \"hsl(0, 0%, 18%)\",\n  \"hsl(146, 30.0%, 7.4%)\",\n  \"hsl(155, 44.2%, 8.4%)\",\n  \"hsl(155, 46.7%, 10.9%)\",\n  \"hsl(154, 48.4%, 12.9%)\",\n  \"hsl(154, 49.7%, 14.9%)\",\n  \"hsl(154, 50.9%, 17.6%)\",\n  \"hsl(153, 51.8%, 21.8%)\",\n  \"hsl(151, 51.7%, 28.4%)\",\n  \"hsl(151, 49.3%, 46.5%)\",\n  \"hsl(151, 50.0%, 53.2%)\",\n  \"hsl(137, 72.0%, 94.0%)\",\n  \"hsl(284, 20.0%, 9.6%)\",\n  \"hsl(283, 30.0%, 11.8%)\",\n  \"hsl(281, 37.5%, 16.5%)\",\n  \"hsl(280, 41.2%, 20.0%)\",\n  \"hsl(279, 43.8%, 23.3%)\",\n  \"hsl(277, 46.4%, 27.5%)\",\n  \"hsl(275, 49.3%, 34.6%)\",\n  \"hsl(272, 52.1%, 45.9%)\",\n  \"hsl(273, 57.3%, 59.1%)\",\n  \"hsl(275, 80.0%, 71.0%)\",\n  \"hsl(279, 75.0%, 95.7%)\",\n  \"hsl(353, 23.0%, 9.8%)\",\n  \"hsl(357, 34.4%, 12.0%)\",\n  \"hsl(356, 43.4%, 16.4%)\",\n  \"hsl(356, 47.6%, 19.2%)\",\n  \"hsl(356, 51.1%, 21.9%)\",\n  \"hsl(356, 55.2%, 25.9%)\",\n  \"hsl(357, 60.2%, 31.8%)\",\n  \"hsl(358, 65.0%, 40.4%)\",\n  \"hsl(358, 85.3%, 64.0%)\",\n  \"hsl(358, 100%, 69.5%)\",\n  \"hsl(351, 89.0%, 96.0%)\",\n  \"hsl(45, 100%, 5.5%)\",\n  \"hsl(46, 100%, 6.7%)\",\n  \"hsl(45, 100%, 8.7%)\",\n  \"hsl(45, 100%, 10.4%)\",\n  \"hsl(47, 100%, 12.1%)\",\n  \"hsl(49, 100%, 14.3%)\",\n  \"hsl(49, 90.3%, 18.4%)\",\n  \"hsl(50, 100%, 22.0%)\",\n  \"hsl(54, 100%, 68.0%)\",\n  \"hsl(48, 100%, 47.0%)\",\n  \"hsl(53, 100%, 91.0%)\",\n  \"hsl(125, 100%, 98%)\",\n  \"hsl(180, 41%, 8%)\",\n  \"rgba(0,0,0,0.3)\",\n  \"rgba(0,0,0,0.2)\",\n  \"hsla(60, 54.0%, 98.5%, 0)\",\n  \"hsla(40, 55.0%, 13.5%, 0)\",\n  \"hsla(136, 50.0%, 98.9%, 0)\",\n  \"hsla(155, 40.0%, 14.0%, 0)\",\n  \"hsla(206, 100%, 99.2%, 0)\",\n  \"hsla(211, 100%, 15.0%, 0)\",\n  \"hsla(280, 65.0%, 99.4%, 0)\",\n  \"hsla(272, 66.0%, 16.0%, 0)\",\n  \"hsla(359, 100%, 99.4%, 0)\",\n  \"hsla(354, 50.0%, 14.6%, 0)\",\n  \"hsla(180, 29%, 17%, 0)\",\n  \"hsla(125, 50%, 96%, 0)\",\n  \"hsla(45, 100%, 5.5%, 0)\",\n  \"hsla(53, 100%, 91.0%, 0)\",\n  \"hsla(146, 30.0%, 7.4%, 0)\",\n  \"hsla(137, 72.0%, 94.0%, 0)\",\n  \"hsla(212, 35.0%, 9.2%, 0)\",\n  \"hsla(206, 98.0%, 95.8%, 0)\",\n  \"hsla(284, 20.0%, 9.6%, 0)\",\n  \"hsla(279, 75.0%, 95.7%, 0)\",\n  \"hsla(353, 23.0%, 9.8%, 0)\",\n  \"hsla(351, 89.0%, 96.0%, 0)\",\n  \"hsla(123, 50%, 93%, 0)\",\n  \"hsla(180, 41%, 8%, 0)\"\n];\nvar ks = [\n  \"color1\",\n  \"color2\",\n  \"color3\",\n  \"color4\",\n  \"color5\",\n  \"color6\",\n  \"color7\",\n  \"color8\",\n  \"color9\",\n  \"color10\",\n  \"color11\",\n  \"color12\",\n  \"background\",\n  \"backgroundHover\",\n  \"backgroundPress\",\n  \"backgroundFocus\",\n  \"backgroundStrong\",\n  \"backgroundTransparent\",\n  \"color\",\n  \"colorHover\",\n  \"colorPress\",\n  \"colorFocus\",\n  \"colorTransparent\",\n  \"borderColor\",\n  \"borderColorHover\",\n  \"borderColorFocus\",\n  \"borderColorPress\",\n  \"placeholderColor\",\n  \"outlineColor\",\n  \"blue1\",\n  \"blue2\",\n  \"blue3\",\n  \"blue4\",\n  \"blue5\",\n  \"blue6\",\n  \"blue7\",\n  \"blue8\",\n  \"blue9\",\n  \"blue10\",\n  \"blue11\",\n  \"blue12\",\n  \"gray1\",\n  \"gray2\",\n  \"gray3\",\n  \"gray4\",\n  \"gray5\",\n  \"gray6\",\n  \"gray7\",\n  \"gray8\",\n  \"gray9\",\n  \"gray10\",\n  \"gray11\",\n  \"gray12\",\n  \"gray13\",\n  \"green1\",\n  \"green2\",\n  \"green3\",\n  \"green4\",\n  \"green5\",\n  \"green6\",\n  \"green7\",\n  \"green8\",\n  \"green9\",\n  \"green10\",\n  \"green11\",\n  \"green12\",\n  \"purple1\",\n  \"purple2\",\n  \"purple3\",\n  \"purple4\",\n  \"purple5\",\n  \"purple6\",\n  \"purple7\",\n  \"purple8\",\n  \"purple9\",\n  \"purple10\",\n  \"purple11\",\n  \"purple12\",\n  \"red1\",\n  \"red2\",\n  \"red3\",\n  \"red4\",\n  \"red5\",\n  \"red6\",\n  \"red7\",\n  \"red8\",\n  \"red9\",\n  \"red10\",\n  \"red11\",\n  \"red12\",\n  \"yellow1\",\n  \"yellow2\",\n  \"yellow3\",\n  \"yellow4\",\n  \"yellow5\",\n  \"yellow6\",\n  \"yellow7\",\n  \"yellow8\",\n  \"yellow9\",\n  \"yellow10\",\n  \"yellow11\",\n  \"yellow12\",\n  \"brand1\",\n  \"brand2\",\n  \"brand3\",\n  \"brand4\",\n  \"brand5\",\n  \"brand6\",\n  \"brand7\",\n  \"brand8\",\n  \"brand9\",\n  \"brand10\",\n  \"brand11\",\n  \"brand12\",\n  \"brandHighlight\",\n  \"shadowColor\",\n  \"shadowColorHover\",\n  \"shadowColorPress\",\n  \"shadowColorFocus\"\n];\nvar n1 = t([\n  [0, 0],\n  [1, 1],\n  [2, 2],\n  [3, 3],\n  [4, 4],\n  [5, 5],\n  [6, 6],\n  [7, 7],\n  [8, 8],\n  [9, 9],\n  [10, 10],\n  [11, 11],\n  [12, 1],\n  [13, 2],\n  [14, 3],\n  [15, 4],\n  [16, 0],\n  [17, 12],\n  [18, 11],\n  [19, 10],\n  [20, 11],\n  [21, 10],\n  [22, 13],\n  [23, 4],\n  [24, 5],\n  [25, 3],\n  [26, 4],\n  [27, 8],\n  [28, 4],\n  [29, 14],\n  [30, 15],\n  [31, 16],\n  [32, 17],\n  [33, 18],\n  [34, 19],\n  [35, 20],\n  [36, 21],\n  [37, 22],\n  [38, 23],\n  [39, 24],\n  [40, 25],\n  [41, 26],\n  [42, 2],\n  [43, 3],\n  [44, 27],\n  [45, 28],\n  [46, 29],\n  [47, 30],\n  [48, 31],\n  [49, 8],\n  [50, 32],\n  [51, 33],\n  [52, 26],\n  [53, 11],\n  [54, 34],\n  [55, 35],\n  [56, 36],\n  [57, 37],\n  [58, 38],\n  [59, 39],\n  [60, 40],\n  [61, 41],\n  [62, 42],\n  [63, 43],\n  [64, 44],\n  [65, 45],\n  [66, 46],\n  [67, 47],\n  [68, 48],\n  [69, 49],\n  [70, 50],\n  [71, 51],\n  [72, 52],\n  [73, 53],\n  [74, 54],\n  [75, 55],\n  [76, 56],\n  [77, 57],\n  [78, 58],\n  [79, 59],\n  [80, 60],\n  [81, 61],\n  [82, 62],\n  [83, 63],\n  [84, 64],\n  [85, 65],\n  [86, 66],\n  [87, 67],\n  [88, 68],\n  [89, 69],\n  [90, 70],\n  [91, 71],\n  [92, 72],\n  [93, 73],\n  [94, 74],\n  [95, 75],\n  [96, 76],\n  [97, 77],\n  [98, 78],\n  [99, 79],\n  [100, 80],\n  [101, 81],\n  [102, 82],\n  [103, 83],\n  [104, 84],\n  [105, 85],\n  [106, 86],\n  [107, 87],\n  [108, 88],\n  [109, 89],\n  [110, 90],\n  [111, 91],\n  [112, 92],\n  [113, 93],\n  [114, 94],\n  [115, 95],\n  [116, 95],\n  [117, 96],\n  [118, 96]\n]);\nvar n2 = t([\n  [0, 97],\n  [1, 98],\n  [2, 99],\n  [3, 100],\n  [4, 101],\n  [5, 102],\n  [6, 103],\n  [7, 104],\n  [8, 105],\n  [9, 106],\n  [10, 107],\n  [11, 0],\n  [12, 98],\n  [13, 99],\n  [14, 100],\n  [15, 101],\n  [16, 97],\n  [17, 13],\n  [18, 0],\n  [19, 107],\n  [20, 0],\n  [21, 107],\n  [22, 12],\n  [23, 101],\n  [24, 102],\n  [25, 100],\n  [26, 101],\n  [27, 105],\n  [28, 101],\n  [29, 108],\n  [30, 109],\n  [31, 110],\n  [32, 111],\n  [33, 112],\n  [34, 113],\n  [35, 114],\n  [36, 115],\n  [37, 22],\n  [38, 116],\n  [39, 117],\n  [40, 118],\n  [41, 119],\n  [42, 120],\n  [43, 121],\n  [44, 122],\n  [45, 123],\n  [46, 124],\n  [47, 125],\n  [48, 126],\n  [49, 127],\n  [50, 128],\n  [51, 129],\n  [52, 130],\n  [53, 27],\n  [54, 131],\n  [55, 132],\n  [56, 133],\n  [57, 134],\n  [58, 135],\n  [59, 136],\n  [60, 137],\n  [61, 138],\n  [62, 42],\n  [63, 139],\n  [64, 140],\n  [65, 141],\n  [66, 142],\n  [67, 143],\n  [68, 144],\n  [69, 145],\n  [70, 146],\n  [71, 147],\n  [72, 148],\n  [73, 149],\n  [74, 54],\n  [75, 150],\n  [76, 151],\n  [77, 152],\n  [78, 153],\n  [79, 154],\n  [80, 155],\n  [81, 156],\n  [82, 157],\n  [83, 158],\n  [84, 159],\n  [85, 160],\n  [86, 66],\n  [87, 161],\n  [88, 162],\n  [89, 163],\n  [90, 164],\n  [91, 165],\n  [92, 166],\n  [93, 167],\n  [94, 168],\n  [95, 169],\n  [96, 170],\n  [97, 171],\n  [98, 78],\n  [99, 172],\n  [100, 173],\n  [101, 174],\n  [102, 93],\n  [103, 92],\n  [104, 175],\n  [105, 85],\n  [106, 86],\n  [107, 87],\n  [108, 88],\n  [109, 89],\n  [110, 90],\n  [111, 84],\n  [112, 83],\n  [113, 82],\n  [114, 176],\n  [115, 177],\n  [116, 177],\n  [117, 178],\n  [118, 178]\n]);\nvar n3 = t([\n  [0, 70],\n  [1, 71],\n  [2, 72],\n  [3, 73],\n  [4, 74],\n  [5, 75],\n  [6, 77],\n  [7, 78],\n  [8, 79],\n  [9, 80],\n  [10, 81],\n  [11, 11],\n  [12, 71],\n  [13, 72],\n  [14, 73],\n  [15, 74],\n  [16, 70],\n  [17, 179],\n  [18, 11],\n  [19, 81],\n  [20, 11],\n  [21, 81],\n  [22, 180],\n  [23, 73],\n  [24, 74],\n  [25, 73],\n  [26, 73],\n  [27, 79],\n  [28, 74]\n]);\nvar n4 = t([\n  [0, 34],\n  [1, 35],\n  [2, 36],\n  [3, 37],\n  [4, 38],\n  [5, 39],\n  [6, 41],\n  [7, 42],\n  [8, 43],\n  [9, 44],\n  [10, 45],\n  [11, 11],\n  [12, 35],\n  [13, 36],\n  [14, 37],\n  [15, 38],\n  [16, 34],\n  [17, 181],\n  [18, 11],\n  [19, 45],\n  [20, 11],\n  [21, 45],\n  [22, 182],\n  [23, 37],\n  [24, 38],\n  [25, 37],\n  [26, 37],\n  [27, 43],\n  [28, 38]\n]);\nvar n5 = t([\n  [0, 14],\n  [1, 15],\n  [2, 16],\n  [3, 17],\n  [4, 18],\n  [5, 19],\n  [6, 21],\n  [7, 22],\n  [8, 23],\n  [9, 24],\n  [10, 25],\n  [11, 11],\n  [12, 15],\n  [13, 16],\n  [14, 17],\n  [15, 18],\n  [16, 14],\n  [17, 183],\n  [18, 11],\n  [19, 25],\n  [20, 11],\n  [21, 25],\n  [22, 184],\n  [23, 17],\n  [24, 18],\n  [25, 17],\n  [26, 17],\n  [27, 23],\n  [28, 18]\n]);\nvar n6 = t([\n  [0, 46],\n  [1, 47],\n  [2, 48],\n  [3, 49],\n  [4, 50],\n  [5, 51],\n  [6, 53],\n  [7, 54],\n  [8, 55],\n  [9, 56],\n  [10, 57],\n  [11, 11],\n  [12, 47],\n  [13, 48],\n  [14, 49],\n  [15, 50],\n  [16, 46],\n  [17, 185],\n  [18, 11],\n  [19, 57],\n  [20, 11],\n  [21, 57],\n  [22, 186],\n  [23, 49],\n  [24, 50],\n  [25, 49],\n  [26, 49],\n  [27, 55],\n  [28, 50]\n]);\nvar n7 = t([\n  [0, 58],\n  [1, 59],\n  [2, 60],\n  [3, 61],\n  [4, 62],\n  [5, 63],\n  [6, 65],\n  [7, 66],\n  [8, 67],\n  [9, 68],\n  [10, 69],\n  [11, 11],\n  [12, 59],\n  [13, 60],\n  [14, 61],\n  [15, 62],\n  [16, 58],\n  [17, 187],\n  [18, 11],\n  [19, 69],\n  [20, 11],\n  [21, 69],\n  [22, 188],\n  [23, 61],\n  [24, 62],\n  [25, 61],\n  [26, 61],\n  [27, 67],\n  [28, 62]\n]);\nvar n8 = t([\n  [0, 82],\n  [1, 83],\n  [2, 84],\n  [3, 85],\n  [4, 86],\n  [5, 87],\n  [6, 90],\n  [7, 91],\n  [8, 92],\n  [9, 93],\n  [10, 94],\n  [11, 11],\n  [12, 83],\n  [13, 84],\n  [14, 85],\n  [15, 86],\n  [16, 82],\n  [17, 189],\n  [18, 11],\n  [19, 94],\n  [20, 11],\n  [21, 94],\n  [22, 190],\n  [23, 85],\n  [24, 86],\n  [25, 85],\n  [26, 85],\n  [27, 92],\n  [28, 86]\n]);\nvar n9 = t([\n  [0, 164],\n  [1, 165],\n  [2, 166],\n  [3, 167],\n  [4, 168],\n  [5, 169],\n  [6, 171],\n  [7, 78],\n  [8, 172],\n  [9, 173],\n  [10, 174],\n  [11, 0],\n  [12, 165],\n  [13, 166],\n  [14, 167],\n  [15, 168],\n  [16, 164],\n  [17, 191],\n  [18, 0],\n  [19, 174],\n  [20, 0],\n  [21, 174],\n  [22, 192],\n  [23, 168],\n  [24, 169],\n  [25, 167],\n  [26, 168],\n  [27, 172],\n  [28, 168]\n]);\nvar n10 = t([\n  [0, 131],\n  [1, 132],\n  [2, 133],\n  [3, 134],\n  [4, 135],\n  [5, 136],\n  [6, 138],\n  [7, 42],\n  [8, 139],\n  [9, 140],\n  [10, 141],\n  [11, 0],\n  [12, 132],\n  [13, 133],\n  [14, 134],\n  [15, 135],\n  [16, 131],\n  [17, 193],\n  [18, 0],\n  [19, 141],\n  [20, 0],\n  [21, 141],\n  [22, 194],\n  [23, 135],\n  [24, 136],\n  [25, 134],\n  [26, 135],\n  [27, 139],\n  [28, 135]\n]);\nvar n11 = t([\n  [0, 108],\n  [1, 109],\n  [2, 110],\n  [3, 111],\n  [4, 112],\n  [5, 113],\n  [6, 115],\n  [7, 22],\n  [8, 116],\n  [9, 117],\n  [10, 118],\n  [11, 0],\n  [12, 109],\n  [13, 110],\n  [14, 111],\n  [15, 112],\n  [16, 108],\n  [17, 195],\n  [18, 0],\n  [19, 118],\n  [20, 0],\n  [21, 118],\n  [22, 196],\n  [23, 112],\n  [24, 113],\n  [25, 111],\n  [26, 112],\n  [27, 116],\n  [28, 112]\n]);\nvar n12 = t([\n  [0, 142],\n  [1, 143],\n  [2, 144],\n  [3, 145],\n  [4, 146],\n  [5, 147],\n  [6, 149],\n  [7, 54],\n  [8, 150],\n  [9, 151],\n  [10, 152],\n  [11, 0],\n  [12, 143],\n  [13, 144],\n  [14, 145],\n  [15, 146],\n  [16, 142],\n  [17, 197],\n  [18, 0],\n  [19, 152],\n  [20, 0],\n  [21, 152],\n  [22, 198],\n  [23, 146],\n  [24, 147],\n  [25, 145],\n  [26, 146],\n  [27, 150],\n  [28, 146]\n]);\nvar n13 = t([\n  [0, 153],\n  [1, 154],\n  [2, 155],\n  [3, 156],\n  [4, 157],\n  [5, 158],\n  [6, 160],\n  [7, 66],\n  [8, 161],\n  [9, 162],\n  [10, 163],\n  [11, 0],\n  [12, 154],\n  [13, 155],\n  [14, 156],\n  [15, 157],\n  [16, 153],\n  [17, 199],\n  [18, 0],\n  [19, 163],\n  [20, 0],\n  [21, 163],\n  [22, 200],\n  [23, 157],\n  [24, 158],\n  [25, 156],\n  [26, 157],\n  [27, 161],\n  [28, 157]\n]);\nvar n14 = t([\n  [0, 93],\n  [1, 92],\n  [2, 175],\n  [3, 85],\n  [4, 86],\n  [5, 87],\n  [6, 90],\n  [7, 84],\n  [8, 83],\n  [9, 82],\n  [10, 176],\n  [11, 0],\n  [12, 92],\n  [13, 175],\n  [14, 85],\n  [15, 86],\n  [16, 93],\n  [17, 201],\n  [18, 0],\n  [19, 176],\n  [20, 0],\n  [21, 176],\n  [22, 202],\n  [23, 86],\n  [24, 87],\n  [25, 85],\n  [26, 86],\n  [27, 83],\n  [28, 86]\n]);\nvar themes = {\n  light: n1,\n  dark: n2,\n  light_yellow: n3,\n  light_green: n4,\n  light_blue: n5,\n  light_purple: n6,\n  light_red: n7,\n  light_brand: n8,\n  dark_yellow: n9,\n  dark_green: n10,\n  dark_blue: n11,\n  dark_purple: n12,\n  dark_red: n13,\n  dark_brand: n14\n};\n\n// node_modules/@tamagui/colors/dist/esm/dark/blue.mjs\nvar blue = {\n  blue1: \"hsl(212, 35.0%, 9.2%)\",\n  blue2: \"hsl(216, 50.0%, 11.8%)\",\n  blue3: \"hsl(214, 59.4%, 15.3%)\",\n  blue4: \"hsl(214, 65.8%, 17.9%)\",\n  blue5: \"hsl(213, 71.2%, 20.2%)\",\n  blue6: \"hsl(212, 77.4%, 23.1%)\",\n  blue7: \"hsl(211, 85.1%, 27.4%)\",\n  blue8: \"hsl(211, 89.7%, 34.1%)\",\n  blue9: \"hsl(206, 100%, 50.0%)\",\n  blue10: \"hsl(209, 100%, 60.6%)\",\n  blue11: \"hsl(210, 100%, 66.1%)\",\n  blue12: \"hsl(206, 98.0%, 95.8%)\"\n};\n\n// node_modules/@tamagui/colors/dist/esm/dark/gray.mjs\nvar gray = {\n  gray1: \"hsl(0, 0%, 8.5%)\",\n  gray2: \"hsl(0, 0%, 11.0%)\",\n  gray3: \"hsl(0, 0%, 13.6%)\",\n  gray4: \"hsl(0, 0%, 15.8%)\",\n  gray5: \"hsl(0, 0%, 17.9%)\",\n  gray6: \"hsl(0, 0%, 20.5%)\",\n  gray7: \"hsl(0, 0%, 24.3%)\",\n  gray8: \"hsl(0, 0%, 31.2%)\",\n  gray9: \"hsl(0, 0%, 43.9%)\",\n  gray10: \"hsl(0, 0%, 49.4%)\",\n  gray11: \"hsl(0, 0%, 62.8%)\",\n  gray12: \"hsl(0, 0%, 93.0%)\"\n};\n\n// node_modules/@tamagui/colors/dist/esm/dark/green.mjs\nvar green = {\n  green1: \"hsl(146, 30.0%, 7.4%)\",\n  green2: \"hsl(155, 44.2%, 8.4%)\",\n  green3: \"hsl(155, 46.7%, 10.9%)\",\n  green4: \"hsl(154, 48.4%, 12.9%)\",\n  green5: \"hsl(154, 49.7%, 14.9%)\",\n  green6: \"hsl(154, 50.9%, 17.6%)\",\n  green7: \"hsl(153, 51.8%, 21.8%)\",\n  green8: \"hsl(151, 51.7%, 28.4%)\",\n  green9: \"hsl(151, 55.0%, 41.5%)\",\n  green10: \"hsl(151, 49.3%, 46.5%)\",\n  green11: \"hsl(151, 50.0%, 53.2%)\",\n  green12: \"hsl(137, 72.0%, 94.0%)\"\n};\n\n// node_modules/@tamagui/colors/dist/esm/dark/purple.mjs\nvar purple = {\n  purple1: \"hsl(284, 20.0%, 9.6%)\",\n  purple2: \"hsl(283, 30.0%, 11.8%)\",\n  purple3: \"hsl(281, 37.5%, 16.5%)\",\n  purple4: \"hsl(280, 41.2%, 20.0%)\",\n  purple5: \"hsl(279, 43.8%, 23.3%)\",\n  purple6: \"hsl(277, 46.4%, 27.5%)\",\n  purple7: \"hsl(275, 49.3%, 34.6%)\",\n  purple8: \"hsl(272, 52.1%, 45.9%)\",\n  purple9: \"hsl(272, 51.0%, 54.0%)\",\n  purple10: \"hsl(273, 57.3%, 59.1%)\",\n  purple11: \"hsl(275, 80.0%, 71.0%)\",\n  purple12: \"hsl(279, 75.0%, 95.7%)\"\n};\n\n// node_modules/@tamagui/colors/dist/esm/dark/red.mjs\nvar red = {\n  red1: \"hsl(353, 23.0%, 9.8%)\",\n  red2: \"hsl(357, 34.4%, 12.0%)\",\n  red3: \"hsl(356, 43.4%, 16.4%)\",\n  red4: \"hsl(356, 47.6%, 19.2%)\",\n  red5: \"hsl(356, 51.1%, 21.9%)\",\n  red6: \"hsl(356, 55.2%, 25.9%)\",\n  red7: \"hsl(357, 60.2%, 31.8%)\",\n  red8: \"hsl(358, 65.0%, 40.4%)\",\n  red9: \"hsl(358, 75.0%, 59.0%)\",\n  red10: \"hsl(358, 85.3%, 64.0%)\",\n  red11: \"hsl(358, 100%, 69.5%)\",\n  red12: \"hsl(351, 89.0%, 96.0%)\"\n};\n\n// node_modules/@tamagui/colors/dist/esm/dark/yellow.mjs\nvar yellow = {\n  yellow1: \"hsl(45, 100%, 5.5%)\",\n  yellow2: \"hsl(46, 100%, 6.7%)\",\n  yellow3: \"hsl(45, 100%, 8.7%)\",\n  yellow4: \"hsl(45, 100%, 10.4%)\",\n  yellow5: \"hsl(47, 100%, 12.1%)\",\n  yellow6: \"hsl(49, 100%, 14.3%)\",\n  yellow7: \"hsl(49, 90.3%, 18.4%)\",\n  yellow8: \"hsl(50, 100%, 22.0%)\",\n  yellow9: \"hsl(53, 92.0%, 50.0%)\",\n  yellow10: \"hsl(54, 100%, 68.0%)\",\n  yellow11: \"hsl(48, 100%, 47.0%)\",\n  yellow12: \"hsl(53, 100%, 91.0%)\"\n};\n\n// node_modules/@tamagui/colors/dist/esm/light/blue.mjs\nvar blue2 = {\n  blue1: \"hsl(206, 100%, 99.2%)\",\n  blue2: \"hsl(210, 100%, 98.0%)\",\n  blue3: \"hsl(209, 100%, 96.5%)\",\n  blue4: \"hsl(210, 98.8%, 94.0%)\",\n  blue5: \"hsl(209, 95.0%, 90.1%)\",\n  blue6: \"hsl(209, 81.2%, 84.5%)\",\n  blue7: \"hsl(208, 77.5%, 76.9%)\",\n  blue8: \"hsl(206, 81.9%, 65.3%)\",\n  blue9: \"hsl(206, 100%, 50.0%)\",\n  blue10: \"hsl(208, 100%, 47.3%)\",\n  blue11: \"hsl(211, 100%, 43.2%)\",\n  blue12: \"hsl(211, 100%, 15.0%)\"\n};\n\n// node_modules/@tamagui/colors/dist/esm/light/gray.mjs\nvar gray2 = {\n  gray1: \"hsl(0, 0%, 99.0%)\",\n  gray2: \"hsl(0, 0%, 97.3%)\",\n  gray3: \"hsl(0, 0%, 95.1%)\",\n  gray4: \"hsl(0, 0%, 93.0%)\",\n  gray5: \"hsl(0, 0%, 90.9%)\",\n  gray6: \"hsl(0, 0%, 88.7%)\",\n  gray7: \"hsl(0, 0%, 85.8%)\",\n  gray8: \"hsl(0, 0%, 78.0%)\",\n  gray9: \"hsl(0, 0%, 56.1%)\",\n  gray10: \"hsl(0, 0%, 52.3%)\",\n  gray11: \"hsl(0, 0%, 43.5%)\",\n  gray12: \"hsl(0, 0%, 9.0%)\"\n};\n\n// node_modules/@tamagui/colors/dist/esm/light/green.mjs\nvar green2 = {\n  green1: \"hsl(136, 50.0%, 98.9%)\",\n  green2: \"hsl(138, 62.5%, 96.9%)\",\n  green3: \"hsl(139, 55.2%, 94.5%)\",\n  green4: \"hsl(140, 48.7%, 91.0%)\",\n  green5: \"hsl(141, 43.7%, 86.0%)\",\n  green6: \"hsl(143, 40.3%, 79.0%)\",\n  green7: \"hsl(146, 38.5%, 69.0%)\",\n  green8: \"hsl(151, 40.2%, 54.1%)\",\n  green9: \"hsl(151, 55.0%, 41.5%)\",\n  green10: \"hsl(152, 57.5%, 37.6%)\",\n  green11: \"hsl(153, 67.0%, 28.5%)\",\n  green12: \"hsl(155, 40.0%, 14.0%)\"\n};\n\n// node_modules/@tamagui/colors/dist/esm/light/purple.mjs\nvar purple2 = {\n  purple1: \"hsl(280, 65.0%, 99.4%)\",\n  purple2: \"hsl(276, 100%, 99.0%)\",\n  purple3: \"hsl(276, 83.1%, 97.0%)\",\n  purple4: \"hsl(275, 76.4%, 94.7%)\",\n  purple5: \"hsl(275, 70.8%, 91.8%)\",\n  purple6: \"hsl(274, 65.4%, 87.8%)\",\n  purple7: \"hsl(273, 61.0%, 81.7%)\",\n  purple8: \"hsl(272, 60.0%, 73.5%)\",\n  purple9: \"hsl(272, 51.0%, 54.0%)\",\n  purple10: \"hsl(272, 46.8%, 50.3%)\",\n  purple11: \"hsl(272, 50.0%, 45.8%)\",\n  purple12: \"hsl(272, 66.0%, 16.0%)\"\n};\n\n// node_modules/@tamagui/colors/dist/esm/light/red.mjs\nvar red2 = {\n  red1: \"hsl(359, 100%, 99.4%)\",\n  red2: \"hsl(359, 100%, 98.6%)\",\n  red3: \"hsl(360, 100%, 96.8%)\",\n  red4: \"hsl(360, 97.9%, 94.8%)\",\n  red5: \"hsl(360, 90.2%, 91.9%)\",\n  red6: \"hsl(360, 81.7%, 87.8%)\",\n  red7: \"hsl(359, 74.2%, 81.7%)\",\n  red8: \"hsl(359, 69.5%, 74.3%)\",\n  red9: \"hsl(358, 75.0%, 59.0%)\",\n  red10: \"hsl(358, 69.4%, 55.2%)\",\n  red11: \"hsl(358, 65.0%, 48.7%)\",\n  red12: \"hsl(354, 50.0%, 14.6%)\"\n};\n\n// node_modules/@tamagui/colors/dist/esm/light/yellow.mjs\nvar yellow2 = {\n  yellow1: \"hsl(60, 54.0%, 98.5%)\",\n  yellow2: \"hsl(52, 100%, 95.5%)\",\n  yellow3: \"hsl(55, 100%, 90.9%)\",\n  yellow4: \"hsl(54, 100%, 86.6%)\",\n  yellow5: \"hsl(52, 97.9%, 82.0%)\",\n  yellow6: \"hsl(50, 89.4%, 76.1%)\",\n  yellow7: \"hsl(47, 80.4%, 68.0%)\",\n  yellow8: \"hsl(48, 100%, 46.1%)\",\n  yellow9: \"hsl(53, 92.0%, 50.0%)\",\n  yellow10: \"hsl(50, 100%, 48.5%)\",\n  yellow11: \"hsl(42, 100%, 29.0%)\",\n  yellow12: \"hsl(40, 55.0%, 13.5%)\"\n};\n\n// node_modules/@tamagui/colors/dist/esm/blackA.mjs\nvar blackA = {\n  blackA1: \"hsla(0, 0%, 0%, 0.012)\",\n  blackA2: \"hsla(0, 0%, 0%, 0.027)\",\n  blackA3: \"hsla(0, 0%, 0%, 0.047)\",\n  blackA4: \"hsla(0, 0%, 0%, 0.071)\",\n  blackA5: \"hsla(0, 0%, 0%, 0.090)\",\n  blackA6: \"hsla(0, 0%, 0%, 0.114)\",\n  blackA7: \"hsla(0, 0%, 0%, 0.141)\",\n  blackA8: \"hsla(0, 0%, 0%, 0.220)\",\n  blackA9: \"hsla(0, 0%, 0%, 0.439)\",\n  blackA10: \"hsla(0, 0%, 0%, 0.478)\",\n  blackA11: \"hsla(0, 0%, 0%, 0.565)\",\n  blackA12: \"hsla(0, 0%, 0%, 0.910)\"\n};\n\n// node_modules/@tamagui/colors/dist/esm/whiteA.mjs\nvar whiteA = {\n  whiteA1: \"hsla(0, 0%, 100%, 0)\",\n  whiteA2: \"hsla(0, 0%, 100%, 0.013)\",\n  whiteA3: \"hsla(0, 0%, 100%, 0.034)\",\n  whiteA4: \"hsla(0, 0%, 100%, 0.056)\",\n  whiteA5: \"hsla(0, 0%, 100%, 0.086)\",\n  whiteA6: \"hsla(0, 0%, 100%, 0.124)\",\n  whiteA7: \"hsla(0, 0%, 100%, 0.176)\",\n  whiteA8: \"hsla(0, 0%, 100%, 0.249)\",\n  whiteA9: \"hsla(0, 0%, 100%, 0.386)\",\n  whiteA10: \"hsla(0, 0%, 100%, 0.446)\",\n  whiteA11: \"hsla(0, 0%, 100%, 0.592)\",\n  whiteA12: \"hsla(0, 0%, 100%, 0.923)\"\n};\n\n// src/components/Editor/ui/src/tamagui/themes/colors.ts\nvar brand = {\n  brand1: \"hsl(180, 29%, 17%)\",\n  brand2: \"hsl(180, 36%, 22%)\",\n  brand3: \"hsl(166, 30%, 29%)\",\n  brand4: \"hsl(166, 55%, 31%)\",\n  brand5: \"hsl(171, 96%, 28%)\",\n  brand6: \"hsl(148, 44%, 47%)\",\n  brand7: \"hsl(144, 55%, 57%)\",\n  brand8: \"hsl(144, 73%, 68%)\",\n  brand9: \"hsl(133, 54%, 78%)\",\n  brand10: \"hsl(133, 63%, 83%)\",\n  brand11: \"hsl(122, 53%, 88%)\",\n  // PLEASE manually sync with editor.css .seed-app-dark .ProseMirror .hm-link\n  brand12: \"hsl(123, 50%, 93%)\",\n  brandHighlight: \"hsl(125, 50%, 96%)\"\n};\nvar brandDark = {\n  brand1: brand.brand12,\n  brand2: brand.brand11,\n  brand3: \"hsl(125, 100%, 98%)\",\n  brand4: \"hsl(166, 55%, 31%)\",\n  brand5: \"hsl(171, 96%, 28%)\",\n  brand6: \"hsl(148, 44%, 47%)\",\n  brand7: \"hsl(144, 55%, 57%)\",\n  brand8: \"hsl(144, 73%, 68%)\",\n  brand9: \"hsl(133, 54%, 78%)\",\n  brand10: \"hsl(166, 30%, 29%)\",\n  brand11: brand.brand2,\n  brand12: brand.brand1,\n  brandHighlight: \"hsl(180, 41%, 8%)\"\n};\nvar customGray = {\n  gray1: gray2.gray1,\n  gray2: gray2.gray2,\n  gray3: gray2.gray3,\n  gray4: gray2.gray4,\n  gray5: gray2.gray5,\n  gray6: gray2.gray6,\n  gray7: gray2.gray7,\n  gray8: gray2.gray8,\n  gray9: gray2.gray9,\n  gray10: gray2.gray10,\n  gray11: gray2.gray11,\n  gray12: \"hsl(0, 0%, 99.0%)\",\n  gray13: gray2.gray12\n};\nvar customGrayDark = {\n  gray1: gray.gray1,\n  gray2: gray.gray2,\n  gray3: gray.gray3,\n  gray4: gray.gray4,\n  gray5: gray.gray5,\n  gray6: gray.gray6,\n  gray7: gray.gray7,\n  gray8: gray.gray8,\n  gray9: gray.gray9,\n  gray10: gray.gray10,\n  gray11: gray.gray11,\n  gray12: \"hsl(0, 0%, 18%)\",\n  gray13: gray.gray12\n};\n\n// src/components/Editor/ui/src/tamagui/themes/token-colors.ts\nvar colorTokens = {\n  light: {\n    blue: blue2,\n    customGray,\n    green: green2,\n    // orange,\n    // pink,\n    purple: purple2,\n    red: red2,\n    yellow: yellow2,\n    brand,\n    brandDark,\n    whiteA\n  },\n  dark: {\n    blue,\n    gray: customGrayDark,\n    green,\n    // orange: orangeDark,\n    // pink: pinkDark,\n    purple,\n    red,\n    yellow,\n    brand: brandDark,\n    whiteA: blackA\n  }\n};\nvar darkColors = {\n  ...colorTokens.dark.blue,\n  ...colorTokens.dark.gray,\n  ...colorTokens.dark.green,\n  // ...colorTokens.dark.orange,\n  // ...colorTokens.dark.pink,\n  ...colorTokens.dark.purple,\n  ...colorTokens.dark.red,\n  ...colorTokens.dark.yellow,\n  ...colorTokens.dark.brand\n};\nvar lightColors = {\n  ...colorTokens.light.blue,\n  ...colorTokens.light.customGray,\n  ...colorTokens.light.green,\n  // ...colorTokens.light.orange,\n  // ...colorTokens.light.pink,\n  ...colorTokens.light.purple,\n  ...colorTokens.light.red,\n  ...colorTokens.light.yellow,\n  ...colorTokens.light.brand\n};\nfunction postfixObjKeys(obj, postfix) {\n  return Object.fromEntries(Object.entries(obj).map(([k, v]) => [`${k}${postfix}`, v]));\n}\n__name(postfixObjKeys, \"postfixObjKeys\");\nvar color = {\n  ...postfixObjKeys(lightColors, \"Light\"),\n  ...postfixObjKeys(darkColors, \"Dark\")\n};\n\n// src/components/Editor/ui/src/tamagui/tamagui.config.ts\nvar conf = {\n  themes,\n  defaultFont: \"body\",\n  animations: animations_default,\n  shouldAddPrefersColorThemes: true,\n  themeClassNameOnRoot: true,\n  shorthands,\n  fonts: {\n    heading: headingFont,\n    body: bodyFont,\n    mono: monoFont,\n    editorBody\n  },\n  tokens: (0, import_web4.createTokens)({\n    color,\n    radius: token_radius_default,\n    zIndex: token_z_index_default,\n    space: token_space_default,\n    size,\n    opacity: {\n      low: 0.4,\n      medium: 0.6,\n      high: 0.8,\n      full: 1\n    }\n  }),\n  media,\n  settings: {\n    webContainerType: \"inherit\"\n  }\n};\nconf.mediaQueryDefaultActive = mediaQueryDefaultActive;\nvar config = (0, import_core2.createTamagui)(conf);\nvar tamagui_config_default = config;\n\n// tamagui.config.ts\nvar tamagui_config_default2 = tamagui_config_default;\n"
  },
  {
    "path": ".tamagui/tamagui.config.json",
    "content": "{\n  \"components\": [\n    {\n      \"moduleName\": \"@tamagui/core\",\n      \"nameToInfo\": {\n        \"Stack\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexDirection\": \"column\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            }\n          }\n        },\n        \"Text\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"isText\": true,\n            \"defaultProps\": {\n              \"fontFamily\": \"unset\",\n              \"display\": \"inline\",\n              \"boxSizing\": \"border-box\",\n              \"wordWrap\": \"break-word\",\n              \"whiteSpace\": \"pre-wrap\",\n              \"margin\": 0\n            },\n            \"inlineWhenUnflattened\": {},\n            \"variants\": {\n              \"numberOfLines\": {\n                \"1\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                },\n                \":number\": \"Function\"\n              },\n              \"selectable\": {\n                \"true\": {\n                  \"userSelect\": \"text\",\n                  \"cursor\": \"text\"\n                },\n                \"false\": {\n                  \"userSelect\": \"none\",\n                  \"cursor\": \"default\"\n                }\n              },\n              \"ellipse\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"ellipsis\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              }\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true,\n              \"fontFamily\": true,\n              \"fontSize\": true,\n              \"fontStyle\": true,\n              \"fontVariant\": true,\n              \"letterSpacing\": true,\n              \"lineHeight\": true,\n              \"textTransform\": true,\n              \"textAlign\": true,\n              \"textDecorationLine\": true,\n              \"textDecorationStyle\": true,\n              \"textShadowOffset\": true,\n              \"textShadowRadius\": true,\n              \"selectable\": true,\n              \"verticalAlign\": true,\n              \"whiteSpace\": true,\n              \"wordWrap\": true,\n              \"textOverflow\": true,\n              \"textDecorationDistance\": true,\n              \"WebkitBoxOrient\": true\n            }\n          }\n        },\n        \"View\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexDirection\": \"column\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            }\n          }\n        },\n        \"Spacer\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"memo\": true,\n            \"componentName\": \"Spacer\",\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexDirection\": \"column\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"tag\": \"span\",\n              \"size\": true,\n              \"pointerEvents\": \"none\"\n            },\n            \"variants\": {\n              \"size\": {\n                \"...\": \"Function\"\n              },\n              \"flex\": {\n                \"true\": {\n                  \"flexGrow\": 1\n                }\n              },\n              \"direction\": {\n                \"horizontal\": {\n                  \"height\": 0,\n                  \"minHeight\": 0\n                },\n                \"vertical\": {\n                  \"width\": 0,\n                  \"minWidth\": 0\n                },\n                \"both\": {}\n              }\n            }\n          }\n        }\n      }\n    },\n    {\n      \"moduleName\": \"tamagui\",\n      \"nameToInfo\": {\n        \"AlertDialogOverlay\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"open\": {\n                \"true\": {\n                  \"pointerEvents\": \"auto\"\n                },\n                \"false\": {\n                  \"pointerEvents\": \"none\"\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"fullscreen\": true,\n                  \"position\": \"absolute\",\n                  \"backgrounded\": true,\n                  \"zIndex\": 99999,\n                  \"pointerEvents\": \"auto\"\n                }\n              }\n            },\n            \"componentName\": \"AlertDialogOverlay\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true,\n            \"isHOC\": true\n          }\n        },\n        \"Anchor\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"isText\": true,\n            \"defaultProps\": {\n              \"display\": \"inline\",\n              \"boxSizing\": \"border-box\",\n              \"wordWrap\": \"break-word\",\n              \"whiteSpace\": \"pre-wrap\",\n              \"margin\": 0,\n              \"fontFamily\": \"$body\",\n              \"unstyled\": false,\n              \"tag\": \"a\",\n              \"accessibilityRole\": \"link\"\n            },\n            \"inlineWhenUnflattened\": {},\n            \"variants\": {\n              \"numberOfLines\": {\n                \"1\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                },\n                \":number\": \"Function\"\n              },\n              \"selectable\": {\n                \"true\": {\n                  \"userSelect\": \"text\",\n                  \"cursor\": \"text\"\n                },\n                \"false\": {\n                  \"userSelect\": \"none\",\n                  \"cursor\": \"default\"\n                }\n              },\n              \"ellipse\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"ellipsis\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$true\",\n                  \"color\": \"$color\"\n                }\n              },\n              \"size\": \"Function\",\n              \"fontFamily\": {\n                \"...\": \"Function\"\n              }\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true,\n              \"fontFamily\": true,\n              \"fontSize\": true,\n              \"fontStyle\": true,\n              \"fontVariant\": true,\n              \"letterSpacing\": true,\n              \"lineHeight\": true,\n              \"textTransform\": true,\n              \"textAlign\": true,\n              \"textDecorationLine\": true,\n              \"textDecorationStyle\": true,\n              \"textShadowOffset\": true,\n              \"textShadowRadius\": true,\n              \"selectable\": true,\n              \"verticalAlign\": true,\n              \"whiteSpace\": true,\n              \"wordWrap\": true,\n              \"textOverflow\": true,\n              \"textDecorationDistance\": true,\n              \"WebkitBoxOrient\": true\n            },\n            \"componentName\": \"Anchor\",\n            \"isReactNative\": false,\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true,\n            \"isHOC\": true\n          }\n        },\n        \"Article\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"tag\": \"article\",\n              \"flexDirection\": \"column\"\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"componentName\": \"Article\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"Aside\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"tag\": \"aside\",\n              \"flexDirection\": \"column\"\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"componentName\": \"Aside\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"AvatarFallback\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"position\": \"absolute\",\n              \"fullscreen\": true,\n              \"zIndex\": 0\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\"\n            },\n            \"componentName\": \"AvatarFallback\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true,\n            \"isHOC\": true\n          }\n        },\n        \"AvatarFallbackFrame\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"position\": \"absolute\",\n              \"fullscreen\": true,\n              \"zIndex\": 0\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\"\n            },\n            \"componentName\": \"AvatarFallback\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"AvatarFrame\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"alignItems\": \"center\",\n              \"justifyContent\": \"center\",\n              \"position\": \"relative\",\n              \"overflow\": \"hidden\"\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"size\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              }\n            },\n            \"componentName\": \"Avatar\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"Button\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"tag\": \"button\",\n              \"role\": \"button\",\n              \"focusable\": true,\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$true\",\n                  \"justifyContent\": \"center\",\n                  \"alignItems\": \"center\",\n                  \"flexWrap\": \"nowrap\",\n                  \"flexDirection\": \"row\",\n                  \"cursor\": \"pointer\",\n                  \"hoverTheme\": true,\n                  \"pressTheme\": true,\n                  \"backgrounded\": true,\n                  \"borderWidth\": 1,\n                  \"borderColor\": \"transparent\",\n                  \"focusVisibleStyle\": {\n                    \"outlineColor\": \"$outlineColor\",\n                    \"outlineStyle\": \"solid\",\n                    \"outlineWidth\": 2\n                  }\n                }\n              },\n              \"variant\": {\n                \"outlined\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderWidth\": 2,\n                  \"borderColor\": \"$borderColor\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"$borderColorHover\"\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"$borderColorPress\"\n                  },\n                  \"focusVisibleStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                }\n              },\n              \"size\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"disabled\": {\n                \"true\": {\n                  \"pointerEvents\": \"none\"\n                }\n              }\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"Button\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"context\": \"Component\",\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true,\n            \"isHOC\": true\n          }\n        },\n        \"ButtonFrame\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"tag\": \"button\",\n              \"role\": \"button\",\n              \"focusable\": true,\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$true\",\n                  \"justifyContent\": \"center\",\n                  \"alignItems\": \"center\",\n                  \"flexWrap\": \"nowrap\",\n                  \"flexDirection\": \"row\",\n                  \"cursor\": \"pointer\",\n                  \"hoverTheme\": true,\n                  \"pressTheme\": true,\n                  \"backgrounded\": true,\n                  \"borderWidth\": 1,\n                  \"borderColor\": \"transparent\",\n                  \"focusVisibleStyle\": {\n                    \"outlineColor\": \"$outlineColor\",\n                    \"outlineStyle\": \"solid\",\n                    \"outlineWidth\": 2\n                  }\n                }\n              },\n              \"variant\": {\n                \"outlined\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderWidth\": 2,\n                  \"borderColor\": \"$borderColor\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"$borderColorHover\"\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"$borderColorPress\"\n                  },\n                  \"focusVisibleStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                }\n              },\n              \"size\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"disabled\": {\n                \"true\": {\n                  \"pointerEvents\": \"none\"\n                }\n              }\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"Button\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"context\": \"Component\",\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true\n          }\n        },\n        \"ButtonText\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"isText\": true,\n            \"defaultProps\": {\n              \"display\": \"inline\",\n              \"boxSizing\": \"border-box\",\n              \"wordWrap\": \"break-word\",\n              \"whiteSpace\": \"pre-wrap\",\n              \"margin\": 0,\n              \"fontFamily\": \"$body\",\n              \"unstyled\": false\n            },\n            \"inlineWhenUnflattened\": {},\n            \"variants\": {\n              \"numberOfLines\": {\n                \"1\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                },\n                \":number\": \"Function\"\n              },\n              \"selectable\": {\n                \"true\": {\n                  \"userSelect\": \"text\",\n                  \"cursor\": \"text\"\n                },\n                \"false\": {\n                  \"userSelect\": \"none\",\n                  \"cursor\": \"default\"\n                }\n              },\n              \"ellipse\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"ellipsis\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$true\",\n                  \"color\": \"$color\",\n                  \"userSelect\": \"none\",\n                  \"cursor\": \"pointer\",\n                  \"flexGrow\": 0,\n                  \"flexShrink\": 1,\n                  \"ellipse\": true\n                }\n              },\n              \"size\": \"Function\",\n              \"fontFamily\": {\n                \"...\": \"Function\"\n              }\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true,\n              \"fontFamily\": true,\n              \"fontSize\": true,\n              \"fontStyle\": true,\n              \"fontVariant\": true,\n              \"letterSpacing\": true,\n              \"lineHeight\": true,\n              \"textTransform\": true,\n              \"textAlign\": true,\n              \"textDecorationLine\": true,\n              \"textDecorationStyle\": true,\n              \"textShadowOffset\": true,\n              \"textShadowRadius\": true,\n              \"selectable\": true,\n              \"verticalAlign\": true,\n              \"whiteSpace\": true,\n              \"wordWrap\": true,\n              \"textOverflow\": true,\n              \"textDecorationDistance\": true,\n              \"WebkitBoxOrient\": true\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"Button\",\n            \"isReactNative\": false,\n            \"context\": \"Component\",\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true\n          }\n        },\n        \"Card\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$true\",\n                  \"backgroundColor\": \"$background\",\n                  \"position\": \"relative\"\n                }\n              },\n              \"size\": {\n                \"...size\": \"Function\"\n              }\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"Card\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"context\": \"Component\",\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true\n          }\n        },\n        \"CardBackground\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"zIndex\": 0,\n                  \"fullscreen\": true,\n                  \"overflow\": \"hidden\",\n                  \"pointerEvents\": \"none\",\n                  \"padding\": 0\n                }\n              }\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"CardBackground\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"CardFooter\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"zIndex\": 5,\n                  \"backgroundColor\": \"transparent\",\n                  \"marginBottom\": 0,\n                  \"flexDirection\": \"row\",\n                  \"marginTop\": \"auto\"\n                }\n              },\n              \"size\": {\n                \"...size\": \"Function\"\n              }\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"CardFooter\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true\n          }\n        },\n        \"CardFrame\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$true\",\n                  \"backgroundColor\": \"$background\",\n                  \"position\": \"relative\"\n                }\n              },\n              \"size\": {\n                \"...size\": \"Function\"\n              }\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"Card\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"context\": \"Component\",\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true\n          }\n        },\n        \"CardHeader\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"zIndex\": 10,\n                  \"backgroundColor\": \"transparent\",\n                  \"marginBottom\": \"auto\"\n                }\n              },\n              \"size\": {\n                \"...size\": \"Function\"\n              }\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"CardHeader\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"context\": \"Component\",\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true\n          }\n        },\n        \"Checkbox\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"tag\": \"button\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$true\",\n                  \"backgroundColor\": \"$background\",\n                  \"alignItems\": \"center\",\n                  \"justifyContent\": \"center\",\n                  \"pressTheme\": true,\n                  \"focusable\": true,\n                  \"borderWidth\": 1,\n                  \"borderColor\": \"$borderColor\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"$borderColorHover\"\n                  },\n                  \"focusStyle\": {\n                    \"borderColor\": \"$borderColorFocus\"\n                  },\n                  \"focusVisibleStyle\": {\n                    \"outlineStyle\": \"solid\",\n                    \"outlineWidth\": 2,\n                    \"outlineColor\": \"$outlineColor\"\n                  }\n                }\n              },\n              \"disabled\": {\n                \"true\": {\n                  \"pointerEvents\": \"none\",\n                  \"userSelect\": \"none\",\n                  \"cursor\": \"not-allowed\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"$borderColor\",\n                    \"backgroundColor\": \"$background\"\n                  },\n                  \"pressStyle\": {\n                    \"borderColor\": \"$borderColor\",\n                    \"backgroundColor\": \"$background\"\n                  },\n                  \"focusStyle\": {\n                    \"outlineWidth\": 0\n                  }\n                }\n              },\n              \"size\": {\n                \"...size\": \"Function\"\n              }\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"Checkbox\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"context\": \"Component\",\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true,\n            \"isHOC\": true\n          }\n        },\n        \"CheckboxFrame\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"tag\": \"button\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$true\",\n                  \"backgroundColor\": \"$background\",\n                  \"alignItems\": \"center\",\n                  \"justifyContent\": \"center\",\n                  \"pressTheme\": true,\n                  \"focusable\": true,\n                  \"borderWidth\": 1,\n                  \"borderColor\": \"$borderColor\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"$borderColorHover\"\n                  },\n                  \"focusStyle\": {\n                    \"borderColor\": \"$borderColorFocus\"\n                  },\n                  \"focusVisibleStyle\": {\n                    \"outlineStyle\": \"solid\",\n                    \"outlineWidth\": 2,\n                    \"outlineColor\": \"$outlineColor\"\n                  }\n                }\n              },\n              \"disabled\": {\n                \"true\": {\n                  \"pointerEvents\": \"none\",\n                  \"userSelect\": \"none\",\n                  \"cursor\": \"not-allowed\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"$borderColor\",\n                    \"backgroundColor\": \"$background\"\n                  },\n                  \"pressStyle\": {\n                    \"borderColor\": \"$borderColor\",\n                    \"backgroundColor\": \"$background\"\n                  },\n                  \"focusStyle\": {\n                    \"outlineWidth\": 0\n                  }\n                }\n              },\n              \"size\": {\n                \"...size\": \"Function\"\n              }\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"Checkbox\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"context\": \"Component\",\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true\n          }\n        },\n        \"CheckboxIndicatorFrame\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"unstyled\": {\n                \"false\": {}\n              }\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"CheckboxIndicator\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"context\": \"Component\",\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true\n          }\n        },\n        \"Circle\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"alignItems\": \"center\",\n              \"justifyContent\": \"center\",\n              \"circular\": true\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"size\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              }\n            },\n            \"componentName\": \"Circle\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"DialogClose\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexDirection\": \"column\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"tag\": \"button\"\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"componentName\": \"DialogClose\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true,\n            \"isHOC\": true\n          }\n        },\n        \"DialogContent\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"tag\": \"dialog\",\n              \"size\": \"$true\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"size\": {\n                \"...size\": \"Function\"\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"position\": \"relative\",\n                  \"backgrounded\": true,\n                  \"padded\": true,\n                  \"radiused\": true,\n                  \"elevate\": true,\n                  \"zIndex\": 100000\n                }\n              }\n            },\n            \"defaultVariants\": {\n              \"size\": \"$true\",\n              \"unstyled\": false\n            },\n            \"componentName\": \"DialogContent\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true,\n            \"isHOC\": true\n          }\n        },\n        \"DialogDescription\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"isText\": true,\n            \"defaultProps\": {\n              \"display\": \"inline\",\n              \"boxSizing\": \"border-box\",\n              \"wordWrap\": \"break-word\",\n              \"margin\": 0,\n              \"fontFamily\": \"$body\",\n              \"unstyled\": false,\n              \"tag\": \"p\",\n              \"userSelect\": \"auto\",\n              \"color\": \"$color\",\n              \"size\": \"$true\",\n              \"whiteSpace\": \"normal\"\n            },\n            \"inlineWhenUnflattened\": {},\n            \"variants\": {\n              \"numberOfLines\": {\n                \"1\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                },\n                \":number\": \"Function\"\n              },\n              \"selectable\": {\n                \"true\": {\n                  \"userSelect\": \"text\",\n                  \"cursor\": \"text\"\n                },\n                \"false\": {\n                  \"userSelect\": \"none\",\n                  \"cursor\": \"default\"\n                }\n              },\n              \"ellipse\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"ellipsis\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$true\",\n                  \"color\": \"$color\"\n                }\n              },\n              \"size\": \"Function\",\n              \"fontFamily\": {\n                \"...\": \"Function\"\n              }\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true,\n              \"fontFamily\": true,\n              \"fontSize\": true,\n              \"fontStyle\": true,\n              \"fontVariant\": true,\n              \"letterSpacing\": true,\n              \"lineHeight\": true,\n              \"textTransform\": true,\n              \"textAlign\": true,\n              \"textDecorationLine\": true,\n              \"textDecorationStyle\": true,\n              \"textShadowOffset\": true,\n              \"textShadowRadius\": true,\n              \"selectable\": true,\n              \"verticalAlign\": true,\n              \"whiteSpace\": true,\n              \"wordWrap\": true,\n              \"textOverflow\": true,\n              \"textDecorationDistance\": true,\n              \"WebkitBoxOrient\": true\n            },\n            \"componentName\": \"DialogDescription\",\n            \"isReactNative\": false,\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true,\n            \"isHOC\": true\n          }\n        },\n        \"DialogOverlay\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"open\": {\n                \"true\": {\n                  \"pointerEvents\": \"auto\"\n                },\n                \"false\": {\n                  \"pointerEvents\": \"none\"\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"fullscreen\": true,\n                  \"position\": \"absolute\",\n                  \"backgrounded\": true,\n                  \"zIndex\": 99999,\n                  \"pointerEvents\": \"auto\"\n                }\n              }\n            },\n            \"componentName\": \"DialogOverlay\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true,\n            \"isHOC\": true\n          }\n        },\n        \"DialogOverlayFrame\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"open\": {\n                \"true\": {\n                  \"pointerEvents\": \"auto\"\n                },\n                \"false\": {\n                  \"pointerEvents\": \"none\"\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"fullscreen\": true,\n                  \"position\": \"absolute\",\n                  \"backgrounded\": true,\n                  \"zIndex\": 99999,\n                  \"pointerEvents\": \"auto\"\n                }\n              }\n            },\n            \"componentName\": \"DialogOverlay\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"DialogPortalFrame\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"pointerEvents\": \"none\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"unstyled\": {\n                \"false\": {\n                  \"alignItems\": \"center\",\n                  \"justifyContent\": \"center\",\n                  \"fullscreen\": true,\n                  \"maxHeight\": \"100vh\",\n                  \"position\": \"fixed\"\n                }\n              }\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"DialogTitle\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"isText\": true,\n            \"defaultProps\": {\n              \"display\": \"inline\",\n              \"boxSizing\": \"border-box\",\n              \"wordWrap\": \"break-word\",\n              \"userSelect\": \"auto\",\n              \"color\": \"$color\",\n              \"whiteSpace\": \"normal\",\n              \"accessibilityRole\": \"header\",\n              \"fontFamily\": \"$heading\",\n              \"size\": \"$8\",\n              \"margin\": 0,\n              \"tag\": \"h2\",\n              \"unstyled\": false\n            },\n            \"inlineWhenUnflattened\": {},\n            \"variants\": {\n              \"numberOfLines\": {\n                \"1\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                },\n                \":number\": \"Function\"\n              },\n              \"selectable\": {\n                \"true\": {\n                  \"userSelect\": \"text\",\n                  \"cursor\": \"text\"\n                },\n                \"false\": {\n                  \"userSelect\": \"none\",\n                  \"cursor\": \"default\"\n                }\n              },\n              \"ellipse\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"ellipsis\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$9\",\n                  \"color\": \"$color\"\n                }\n              },\n              \"size\": \"Function\",\n              \"fontFamily\": {\n                \"...\": \"Function\"\n              }\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true,\n              \"fontFamily\": true,\n              \"fontSize\": true,\n              \"fontStyle\": true,\n              \"fontVariant\": true,\n              \"letterSpacing\": true,\n              \"lineHeight\": true,\n              \"textTransform\": true,\n              \"textAlign\": true,\n              \"textDecorationLine\": true,\n              \"textDecorationStyle\": true,\n              \"textShadowOffset\": true,\n              \"textShadowRadius\": true,\n              \"selectable\": true,\n              \"verticalAlign\": true,\n              \"whiteSpace\": true,\n              \"wordWrap\": true,\n              \"textOverflow\": true,\n              \"textDecorationDistance\": true,\n              \"WebkitBoxOrient\": true\n            },\n            \"componentName\": \"DialogTitle\",\n            \"isReactNative\": false,\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true,\n            \"isHOC\": true\n          }\n        },\n        \"DialogTrigger\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexDirection\": \"column\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"componentName\": \"DialogTrigger\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true,\n            \"isHOC\": true\n          }\n        },\n        \"EnsureFlexed\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"isText\": true,\n            \"defaultProps\": {\n              \"fontFamily\": \"unset\",\n              \"boxSizing\": \"border-box\",\n              \"wordWrap\": \"break-word\",\n              \"whiteSpace\": \"pre-wrap\",\n              \"margin\": 0,\n              \"opacity\": 0,\n              \"lineHeight\": 0,\n              \"height\": 0,\n              \"display\": \"flex\",\n              \"fontSize\": 200,\n              \"children\": \"wwwwwwwwwwwwwwwwwww\",\n              \"pointerEvents\": \"none\"\n            },\n            \"inlineWhenUnflattened\": {},\n            \"variants\": {\n              \"numberOfLines\": {\n                \"1\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                },\n                \":number\": \"Function\"\n              },\n              \"selectable\": {\n                \"true\": {\n                  \"userSelect\": \"text\",\n                  \"cursor\": \"text\"\n                },\n                \"false\": {\n                  \"userSelect\": \"none\",\n                  \"cursor\": \"default\"\n                }\n              },\n              \"ellipse\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"ellipsis\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              }\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true,\n              \"fontFamily\": true,\n              \"fontSize\": true,\n              \"fontStyle\": true,\n              \"fontVariant\": true,\n              \"letterSpacing\": true,\n              \"lineHeight\": true,\n              \"textTransform\": true,\n              \"textAlign\": true,\n              \"textDecorationLine\": true,\n              \"textDecorationStyle\": true,\n              \"textShadowOffset\": true,\n              \"textShadowRadius\": true,\n              \"selectable\": true,\n              \"verticalAlign\": true,\n              \"whiteSpace\": true,\n              \"wordWrap\": true,\n              \"textOverflow\": true,\n              \"textDecorationDistance\": true,\n              \"WebkitBoxOrient\": true\n            },\n            \"isReactNative\": false,\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true\n          }\n        },\n        \"Fieldset\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"tag\": \"fieldset\"\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"horizontal\": {\n                \"true\": {\n                  \"flexDirection\": \"row\",\n                  \"alignItems\": \"center\"\n                }\n              }\n            },\n            \"componentName\": \"Fieldset\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"Footer\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"tag\": \"footer\",\n              \"flexDirection\": \"column\"\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"componentName\": \"Footer\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"Form\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexDirection\": \"column\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"tag\": \"form\"\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"componentName\": \"Form\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true,\n            \"isHOC\": true\n          }\n        },\n        \"FormFrame\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexDirection\": \"column\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"tag\": \"form\"\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"componentName\": \"Form\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"FormTrigger\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexDirection\": \"column\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"componentName\": \"FormTrigger\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true,\n            \"isHOC\": true\n          }\n        },\n        \"Frame\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"unstyled\": {\n                \"false\": {\n                  \"flex\": 1,\n                  \"backgroundColor\": \"$background\",\n                  \"borderTopLeftRadius\": \"$true\",\n                  \"borderTopRightRadius\": \"$true\",\n                  \"width\": \"100%\",\n                  \"maxHeight\": \"100%\",\n                  \"overflow\": \"hidden\"\n                }\n              }\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"Sheet\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"Group\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$true\"\n                }\n              },\n              \"size\": \"Function\"\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"GroupFrame\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true,\n            \"isHOC\": true\n          }\n        },\n        \"GroupFrame\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$true\"\n                }\n              },\n              \"size\": \"Function\"\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"GroupFrame\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"H1\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"isText\": true,\n            \"defaultProps\": {\n              \"display\": \"inline\",\n              \"boxSizing\": \"border-box\",\n              \"wordWrap\": \"break-word\",\n              \"userSelect\": \"auto\",\n              \"color\": \"$color\",\n              \"whiteSpace\": \"normal\",\n              \"accessibilityRole\": \"header\",\n              \"fontFamily\": \"$heading\",\n              \"size\": \"$8\",\n              \"margin\": 0,\n              \"tag\": \"h1\",\n              \"unstyled\": false\n            },\n            \"inlineWhenUnflattened\": {},\n            \"variants\": {\n              \"numberOfLines\": {\n                \"1\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                },\n                \":number\": \"Function\"\n              },\n              \"selectable\": {\n                \"true\": {\n                  \"userSelect\": \"text\",\n                  \"cursor\": \"text\"\n                },\n                \"false\": {\n                  \"userSelect\": \"none\",\n                  \"cursor\": \"default\"\n                }\n              },\n              \"ellipse\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"ellipsis\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$10\",\n                  \"color\": \"$color\"\n                }\n              },\n              \"size\": \"Function\",\n              \"fontFamily\": {\n                \"...\": \"Function\"\n              }\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true,\n              \"fontFamily\": true,\n              \"fontSize\": true,\n              \"fontStyle\": true,\n              \"fontVariant\": true,\n              \"letterSpacing\": true,\n              \"lineHeight\": true,\n              \"textTransform\": true,\n              \"textAlign\": true,\n              \"textDecorationLine\": true,\n              \"textDecorationStyle\": true,\n              \"textShadowOffset\": true,\n              \"textShadowRadius\": true,\n              \"selectable\": true,\n              \"verticalAlign\": true,\n              \"whiteSpace\": true,\n              \"wordWrap\": true,\n              \"textOverflow\": true,\n              \"textDecorationDistance\": true,\n              \"WebkitBoxOrient\": true\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"H1\",\n            \"isReactNative\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"H2\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"isText\": true,\n            \"defaultProps\": {\n              \"display\": \"inline\",\n              \"boxSizing\": \"border-box\",\n              \"wordWrap\": \"break-word\",\n              \"userSelect\": \"auto\",\n              \"color\": \"$color\",\n              \"whiteSpace\": \"normal\",\n              \"accessibilityRole\": \"header\",\n              \"fontFamily\": \"$heading\",\n              \"size\": \"$8\",\n              \"margin\": 0,\n              \"tag\": \"h2\",\n              \"unstyled\": false\n            },\n            \"inlineWhenUnflattened\": {},\n            \"variants\": {\n              \"numberOfLines\": {\n                \"1\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                },\n                \":number\": \"Function\"\n              },\n              \"selectable\": {\n                \"true\": {\n                  \"userSelect\": \"text\",\n                  \"cursor\": \"text\"\n                },\n                \"false\": {\n                  \"userSelect\": \"none\",\n                  \"cursor\": \"default\"\n                }\n              },\n              \"ellipse\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"ellipsis\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$9\",\n                  \"color\": \"$color\"\n                }\n              },\n              \"size\": \"Function\",\n              \"fontFamily\": {\n                \"...\": \"Function\"\n              }\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true,\n              \"fontFamily\": true,\n              \"fontSize\": true,\n              \"fontStyle\": true,\n              \"fontVariant\": true,\n              \"letterSpacing\": true,\n              \"lineHeight\": true,\n              \"textTransform\": true,\n              \"textAlign\": true,\n              \"textDecorationLine\": true,\n              \"textDecorationStyle\": true,\n              \"textShadowOffset\": true,\n              \"textShadowRadius\": true,\n              \"selectable\": true,\n              \"verticalAlign\": true,\n              \"whiteSpace\": true,\n              \"wordWrap\": true,\n              \"textOverflow\": true,\n              \"textDecorationDistance\": true,\n              \"WebkitBoxOrient\": true\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"H2\",\n            \"isReactNative\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"H3\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"isText\": true,\n            \"defaultProps\": {\n              \"display\": \"inline\",\n              \"boxSizing\": \"border-box\",\n              \"wordWrap\": \"break-word\",\n              \"userSelect\": \"auto\",\n              \"color\": \"$color\",\n              \"whiteSpace\": \"normal\",\n              \"accessibilityRole\": \"header\",\n              \"fontFamily\": \"$heading\",\n              \"size\": \"$8\",\n              \"margin\": 0,\n              \"tag\": \"h3\",\n              \"unstyled\": false\n            },\n            \"inlineWhenUnflattened\": {},\n            \"variants\": {\n              \"numberOfLines\": {\n                \"1\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                },\n                \":number\": \"Function\"\n              },\n              \"selectable\": {\n                \"true\": {\n                  \"userSelect\": \"text\",\n                  \"cursor\": \"text\"\n                },\n                \"false\": {\n                  \"userSelect\": \"none\",\n                  \"cursor\": \"default\"\n                }\n              },\n              \"ellipse\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"ellipsis\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$8\",\n                  \"color\": \"$color\"\n                }\n              },\n              \"size\": \"Function\",\n              \"fontFamily\": {\n                \"...\": \"Function\"\n              }\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true,\n              \"fontFamily\": true,\n              \"fontSize\": true,\n              \"fontStyle\": true,\n              \"fontVariant\": true,\n              \"letterSpacing\": true,\n              \"lineHeight\": true,\n              \"textTransform\": true,\n              \"textAlign\": true,\n              \"textDecorationLine\": true,\n              \"textDecorationStyle\": true,\n              \"textShadowOffset\": true,\n              \"textShadowRadius\": true,\n              \"selectable\": true,\n              \"verticalAlign\": true,\n              \"whiteSpace\": true,\n              \"wordWrap\": true,\n              \"textOverflow\": true,\n              \"textDecorationDistance\": true,\n              \"WebkitBoxOrient\": true\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"H3\",\n            \"isReactNative\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"H4\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"isText\": true,\n            \"defaultProps\": {\n              \"display\": \"inline\",\n              \"boxSizing\": \"border-box\",\n              \"wordWrap\": \"break-word\",\n              \"userSelect\": \"auto\",\n              \"color\": \"$color\",\n              \"whiteSpace\": \"normal\",\n              \"accessibilityRole\": \"header\",\n              \"fontFamily\": \"$heading\",\n              \"size\": \"$8\",\n              \"margin\": 0,\n              \"tag\": \"h4\",\n              \"unstyled\": false\n            },\n            \"inlineWhenUnflattened\": {},\n            \"variants\": {\n              \"numberOfLines\": {\n                \"1\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                },\n                \":number\": \"Function\"\n              },\n              \"selectable\": {\n                \"true\": {\n                  \"userSelect\": \"text\",\n                  \"cursor\": \"text\"\n                },\n                \"false\": {\n                  \"userSelect\": \"none\",\n                  \"cursor\": \"default\"\n                }\n              },\n              \"ellipse\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"ellipsis\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$7\",\n                  \"color\": \"$color\"\n                }\n              },\n              \"size\": \"Function\",\n              \"fontFamily\": {\n                \"...\": \"Function\"\n              }\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true,\n              \"fontFamily\": true,\n              \"fontSize\": true,\n              \"fontStyle\": true,\n              \"fontVariant\": true,\n              \"letterSpacing\": true,\n              \"lineHeight\": true,\n              \"textTransform\": true,\n              \"textAlign\": true,\n              \"textDecorationLine\": true,\n              \"textDecorationStyle\": true,\n              \"textShadowOffset\": true,\n              \"textShadowRadius\": true,\n              \"selectable\": true,\n              \"verticalAlign\": true,\n              \"whiteSpace\": true,\n              \"wordWrap\": true,\n              \"textOverflow\": true,\n              \"textDecorationDistance\": true,\n              \"WebkitBoxOrient\": true\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"H4\",\n            \"isReactNative\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"H5\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"isText\": true,\n            \"defaultProps\": {\n              \"display\": \"inline\",\n              \"boxSizing\": \"border-box\",\n              \"wordWrap\": \"break-word\",\n              \"userSelect\": \"auto\",\n              \"color\": \"$color\",\n              \"whiteSpace\": \"normal\",\n              \"accessibilityRole\": \"header\",\n              \"fontFamily\": \"$heading\",\n              \"size\": \"$8\",\n              \"margin\": 0,\n              \"tag\": \"h5\",\n              \"unstyled\": false\n            },\n            \"inlineWhenUnflattened\": {},\n            \"variants\": {\n              \"numberOfLines\": {\n                \"1\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                },\n                \":number\": \"Function\"\n              },\n              \"selectable\": {\n                \"true\": {\n                  \"userSelect\": \"text\",\n                  \"cursor\": \"text\"\n                },\n                \"false\": {\n                  \"userSelect\": \"none\",\n                  \"cursor\": \"default\"\n                }\n              },\n              \"ellipse\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"ellipsis\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$6\",\n                  \"color\": \"$color\"\n                }\n              },\n              \"size\": \"Function\",\n              \"fontFamily\": {\n                \"...\": \"Function\"\n              }\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true,\n              \"fontFamily\": true,\n              \"fontSize\": true,\n              \"fontStyle\": true,\n              \"fontVariant\": true,\n              \"letterSpacing\": true,\n              \"lineHeight\": true,\n              \"textTransform\": true,\n              \"textAlign\": true,\n              \"textDecorationLine\": true,\n              \"textDecorationStyle\": true,\n              \"textShadowOffset\": true,\n              \"textShadowRadius\": true,\n              \"selectable\": true,\n              \"verticalAlign\": true,\n              \"whiteSpace\": true,\n              \"wordWrap\": true,\n              \"textOverflow\": true,\n              \"textDecorationDistance\": true,\n              \"WebkitBoxOrient\": true\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"H5\",\n            \"isReactNative\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"H6\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"isText\": true,\n            \"defaultProps\": {\n              \"display\": \"inline\",\n              \"boxSizing\": \"border-box\",\n              \"wordWrap\": \"break-word\",\n              \"userSelect\": \"auto\",\n              \"color\": \"$color\",\n              \"whiteSpace\": \"normal\",\n              \"accessibilityRole\": \"header\",\n              \"fontFamily\": \"$heading\",\n              \"size\": \"$8\",\n              \"margin\": 0,\n              \"tag\": \"h6\",\n              \"unstyled\": false\n            },\n            \"inlineWhenUnflattened\": {},\n            \"variants\": {\n              \"numberOfLines\": {\n                \"1\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                },\n                \":number\": \"Function\"\n              },\n              \"selectable\": {\n                \"true\": {\n                  \"userSelect\": \"text\",\n                  \"cursor\": \"text\"\n                },\n                \"false\": {\n                  \"userSelect\": \"none\",\n                  \"cursor\": \"default\"\n                }\n              },\n              \"ellipse\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"ellipsis\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$5\",\n                  \"color\": \"$color\"\n                }\n              },\n              \"size\": \"Function\",\n              \"fontFamily\": {\n                \"...\": \"Function\"\n              }\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true,\n              \"fontFamily\": true,\n              \"fontSize\": true,\n              \"fontStyle\": true,\n              \"fontVariant\": true,\n              \"letterSpacing\": true,\n              \"lineHeight\": true,\n              \"textTransform\": true,\n              \"textAlign\": true,\n              \"textDecorationLine\": true,\n              \"textDecorationStyle\": true,\n              \"textShadowOffset\": true,\n              \"textShadowRadius\": true,\n              \"selectable\": true,\n              \"verticalAlign\": true,\n              \"whiteSpace\": true,\n              \"wordWrap\": true,\n              \"textOverflow\": true,\n              \"textDecorationDistance\": true,\n              \"WebkitBoxOrient\": true\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"H6\",\n            \"isReactNative\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"Handle\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"row\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"open\": {\n                \"true\": {\n                  \"opacity\": 1,\n                  \"pointerEvents\": \"auto\"\n                },\n                \"false\": {\n                  \"opacity\": 0,\n                  \"pointerEvents\": \"none\"\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"height\": 10,\n                  \"borderRadius\": 100,\n                  \"backgroundColor\": \"$background\",\n                  \"zIndex\": 10,\n                  \"marginHorizontal\": \"35%\",\n                  \"marginBottom\": \"$2\",\n                  \"opacity\": 0.5,\n                  \"hoverStyle\": {\n                    \"opacity\": 0.7\n                  }\n                }\n              }\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"SheetHandle\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"Header\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"tag\": \"header\",\n              \"accessibilityRole\": \"header\",\n              \"flexDirection\": \"column\"\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"componentName\": \"Header\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"Heading\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"isText\": true,\n            \"defaultProps\": {\n              \"display\": \"inline\",\n              \"boxSizing\": \"border-box\",\n              \"wordWrap\": \"break-word\",\n              \"unstyled\": false,\n              \"userSelect\": \"auto\",\n              \"color\": \"$color\",\n              \"whiteSpace\": \"normal\",\n              \"tag\": \"span\",\n              \"accessibilityRole\": \"header\",\n              \"fontFamily\": \"$heading\",\n              \"size\": \"$8\",\n              \"margin\": 0\n            },\n            \"inlineWhenUnflattened\": {},\n            \"variants\": {\n              \"numberOfLines\": {\n                \"1\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                },\n                \":number\": \"Function\"\n              },\n              \"selectable\": {\n                \"true\": {\n                  \"userSelect\": \"text\",\n                  \"cursor\": \"text\"\n                },\n                \"false\": {\n                  \"userSelect\": \"none\",\n                  \"cursor\": \"default\"\n                }\n              },\n              \"ellipse\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"ellipsis\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$true\",\n                  \"color\": \"$color\"\n                }\n              },\n              \"size\": \"Function\",\n              \"fontFamily\": {\n                \"...\": \"Function\"\n              }\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true,\n              \"fontFamily\": true,\n              \"fontSize\": true,\n              \"fontStyle\": true,\n              \"fontVariant\": true,\n              \"letterSpacing\": true,\n              \"lineHeight\": true,\n              \"textTransform\": true,\n              \"textAlign\": true,\n              \"textDecorationLine\": true,\n              \"textDecorationStyle\": true,\n              \"textShadowOffset\": true,\n              \"textShadowRadius\": true,\n              \"selectable\": true,\n              \"verticalAlign\": true,\n              \"whiteSpace\": true,\n              \"wordWrap\": true,\n              \"textOverflow\": true,\n              \"textDecorationDistance\": true,\n              \"WebkitBoxOrient\": true\n            },\n            \"componentName\": \"Heading\",\n            \"isReactNative\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"Image\": {\n          \"staticConfig\": {\n            \"defaultProps\": {},\n            \"componentName\": \"Image\",\n            \"isReactNative\": true,\n            \"isText\": false,\n            \"acceptsClassName\": true,\n            \"inlineProps\": {},\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true,\n            \"isHOC\": true\n          }\n        },\n        \"Input\": {\n          \"staticConfig\": {\n            \"isInput\": true,\n            \"accept\": {\n              \"placeholderTextColor\": \"color\",\n              \"selectionColor\": \"color\"\n            },\n            \"variants\": {\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$true\",\n                  \"fontFamily\": \"$body\",\n                  \"borderWidth\": 1,\n                  \"outlineWidth\": 0,\n                  \"color\": \"$color\",\n                  \"tabIndex\": 0,\n                  \"borderColor\": \"$borderColor\",\n                  \"backgroundColor\": \"$background\",\n                  \"minWidth\": 0,\n                  \"hoverStyle\": {\n                    \"borderColor\": \"$borderColorHover\"\n                  },\n                  \"focusStyle\": {\n                    \"borderColor\": \"$borderColorFocus\"\n                  },\n                  \"focusVisibleStyle\": {\n                    \"outlineColor\": \"$outlineColor\",\n                    \"outlineWidth\": 2,\n                    \"outlineStyle\": \"solid\"\n                  }\n                }\n              },\n              \"size\": {\n                \"...size\": \"Function\"\n              },\n              \"disabled\": {\n                \"true\": {}\n              }\n            },\n            \"defaultProps\": {\n              \"unstyled\": false\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"Input\",\n            \"isReactNative\": true,\n            \"isText\": true,\n            \"acceptsClassName\": true,\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true,\n            \"isHOC\": true\n          }\n        },\n        \"InputFrame\": {\n          \"staticConfig\": {\n            \"isInput\": true,\n            \"accept\": {\n              \"placeholderTextColor\": \"color\",\n              \"selectionColor\": \"color\"\n            },\n            \"variants\": {\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$true\",\n                  \"fontFamily\": \"$body\",\n                  \"borderWidth\": 1,\n                  \"outlineWidth\": 0,\n                  \"color\": \"$color\",\n                  \"tabIndex\": 0,\n                  \"borderColor\": \"$borderColor\",\n                  \"backgroundColor\": \"$background\",\n                  \"minWidth\": 0,\n                  \"hoverStyle\": {\n                    \"borderColor\": \"$borderColorHover\"\n                  },\n                  \"focusStyle\": {\n                    \"borderColor\": \"$borderColorFocus\"\n                  },\n                  \"focusVisibleStyle\": {\n                    \"outlineColor\": \"$outlineColor\",\n                    \"outlineWidth\": 2,\n                    \"outlineStyle\": \"solid\"\n                  }\n                }\n              },\n              \"size\": {\n                \"...size\": \"Function\"\n              },\n              \"disabled\": {\n                \"true\": {}\n              }\n            },\n            \"defaultProps\": {\n              \"unstyled\": false\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"Input\",\n            \"isReactNative\": true,\n            \"isText\": true,\n            \"acceptsClassName\": true,\n            \"isStyledHOC\": false\n          }\n        },\n        \"Label\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"isText\": true,\n            \"defaultProps\": {\n              \"display\": \"inline\",\n              \"boxSizing\": \"border-box\",\n              \"wordWrap\": \"break-word\",\n              \"whiteSpace\": \"pre-wrap\",\n              \"margin\": 0,\n              \"fontFamily\": \"$body\",\n              \"tag\": \"label\",\n              \"unstyled\": false\n            },\n            \"inlineWhenUnflattened\": {},\n            \"variants\": {\n              \"numberOfLines\": {\n                \"1\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                },\n                \":number\": \"Function\"\n              },\n              \"selectable\": {\n                \"true\": {\n                  \"userSelect\": \"text\",\n                  \"cursor\": \"text\"\n                },\n                \"false\": {\n                  \"userSelect\": \"none\",\n                  \"cursor\": \"default\"\n                }\n              },\n              \"ellipse\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"ellipsis\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$true\",\n                  \"color\": \"$color\",\n                  \"backgroundColor\": \"transparent\",\n                  \"display\": \"flex\",\n                  \"alignItems\": \"center\",\n                  \"userSelect\": \"none\",\n                  \"cursor\": \"default\",\n                  \"pressStyle\": {\n                    \"color\": \"$colorPress\"\n                  }\n                }\n              },\n              \"size\": {\n                \"...size\": \"Function\"\n              },\n              \"fontFamily\": {\n                \"...\": \"Function\"\n              }\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true,\n              \"fontFamily\": true,\n              \"fontSize\": true,\n              \"fontStyle\": true,\n              \"fontVariant\": true,\n              \"letterSpacing\": true,\n              \"lineHeight\": true,\n              \"textTransform\": true,\n              \"textAlign\": true,\n              \"textDecorationLine\": true,\n              \"textDecorationStyle\": true,\n              \"textShadowOffset\": true,\n              \"textShadowRadius\": true,\n              \"selectable\": true,\n              \"verticalAlign\": true,\n              \"whiteSpace\": true,\n              \"wordWrap\": true,\n              \"textOverflow\": true,\n              \"textDecorationDistance\": true,\n              \"WebkitBoxOrient\": true\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"Label\",\n            \"isReactNative\": false,\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true,\n            \"isHOC\": true\n          }\n        },\n        \"LabelFrame\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"isText\": true,\n            \"defaultProps\": {\n              \"display\": \"inline\",\n              \"boxSizing\": \"border-box\",\n              \"wordWrap\": \"break-word\",\n              \"whiteSpace\": \"pre-wrap\",\n              \"margin\": 0,\n              \"fontFamily\": \"$body\",\n              \"tag\": \"label\",\n              \"unstyled\": false\n            },\n            \"inlineWhenUnflattened\": {},\n            \"variants\": {\n              \"numberOfLines\": {\n                \"1\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                },\n                \":number\": \"Function\"\n              },\n              \"selectable\": {\n                \"true\": {\n                  \"userSelect\": \"text\",\n                  \"cursor\": \"text\"\n                },\n                \"false\": {\n                  \"userSelect\": \"none\",\n                  \"cursor\": \"default\"\n                }\n              },\n              \"ellipse\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"ellipsis\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$true\",\n                  \"color\": \"$color\",\n                  \"backgroundColor\": \"transparent\",\n                  \"display\": \"flex\",\n                  \"alignItems\": \"center\",\n                  \"userSelect\": \"none\",\n                  \"cursor\": \"default\",\n                  \"pressStyle\": {\n                    \"color\": \"$colorPress\"\n                  }\n                }\n              },\n              \"size\": {\n                \"...size\": \"Function\"\n              },\n              \"fontFamily\": {\n                \"...\": \"Function\"\n              }\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true,\n              \"fontFamily\": true,\n              \"fontSize\": true,\n              \"fontStyle\": true,\n              \"fontVariant\": true,\n              \"letterSpacing\": true,\n              \"lineHeight\": true,\n              \"textTransform\": true,\n              \"textAlign\": true,\n              \"textDecorationLine\": true,\n              \"textDecorationStyle\": true,\n              \"textShadowOffset\": true,\n              \"textShadowRadius\": true,\n              \"selectable\": true,\n              \"verticalAlign\": true,\n              \"whiteSpace\": true,\n              \"wordWrap\": true,\n              \"textOverflow\": true,\n              \"textDecorationDistance\": true,\n              \"WebkitBoxOrient\": true\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"Label\",\n            \"isReactNative\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"ListItem\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"tag\": \"li\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$true\",\n                  \"alignItems\": \"center\",\n                  \"justifyContent\": \"space-between\",\n                  \"flexWrap\": \"nowrap\",\n                  \"width\": \"100%\",\n                  \"borderColor\": \"$borderColor\",\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"flexDirection\": \"row\",\n                  \"backgroundColor\": \"$background\",\n                  \"cursor\": \"default\"\n                }\n              },\n              \"size\": {\n                \"...size\": \"Function\"\n              },\n              \"active\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$background\"\n                  }\n                }\n              },\n              \"disabled\": {\n                \"true\": {\n                  \"opacity\": 0.5,\n                  \"pointerEvents\": \"none\"\n                }\n              }\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"ListItem\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true,\n            \"isHOC\": true\n          }\n        },\n        \"ListItemFrame\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"tag\": \"li\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$true\",\n                  \"alignItems\": \"center\",\n                  \"justifyContent\": \"space-between\",\n                  \"flexWrap\": \"nowrap\",\n                  \"width\": \"100%\",\n                  \"borderColor\": \"$borderColor\",\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"flexDirection\": \"row\",\n                  \"backgroundColor\": \"$background\",\n                  \"cursor\": \"default\"\n                }\n              },\n              \"size\": {\n                \"...size\": \"Function\"\n              },\n              \"active\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$background\"\n                  }\n                }\n              },\n              \"disabled\": {\n                \"true\": {\n                  \"opacity\": 0.5,\n                  \"pointerEvents\": \"none\"\n                }\n              }\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"ListItem\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"ListItemSubtitle\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"isText\": true,\n            \"defaultProps\": {\n              \"display\": \"inline\",\n              \"boxSizing\": \"border-box\",\n              \"wordWrap\": \"break-word\",\n              \"whiteSpace\": \"pre-wrap\",\n              \"margin\": 0,\n              \"fontFamily\": \"$body\",\n              \"unstyled\": false\n            },\n            \"inlineWhenUnflattened\": {},\n            \"variants\": {\n              \"numberOfLines\": {\n                \"1\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                },\n                \":number\": \"Function\"\n              },\n              \"selectable\": {\n                \"true\": {\n                  \"userSelect\": \"text\",\n                  \"cursor\": \"text\"\n                },\n                \"false\": {\n                  \"userSelect\": \"none\",\n                  \"cursor\": \"default\"\n                }\n              },\n              \"ellipse\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"ellipsis\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$true\",\n                  \"color\": \"$color\",\n                  \"flexGrow\": 1,\n                  \"flexShrink\": 1,\n                  \"ellipse\": true,\n                  \"cursor\": \"inherit\",\n                  \"opacity\": 0.6,\n                  \"maxWidth\": \"100%\"\n                }\n              },\n              \"size\": {\n                \"...size\": \"Function\"\n              },\n              \"fontFamily\": {\n                \"...\": \"Function\"\n              }\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true,\n              \"fontFamily\": true,\n              \"fontSize\": true,\n              \"fontStyle\": true,\n              \"fontVariant\": true,\n              \"letterSpacing\": true,\n              \"lineHeight\": true,\n              \"textTransform\": true,\n              \"textAlign\": true,\n              \"textDecorationLine\": true,\n              \"textDecorationStyle\": true,\n              \"textShadowOffset\": true,\n              \"textShadowRadius\": true,\n              \"selectable\": true,\n              \"verticalAlign\": true,\n              \"whiteSpace\": true,\n              \"wordWrap\": true,\n              \"textOverflow\": true,\n              \"textDecorationDistance\": true,\n              \"WebkitBoxOrient\": true\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"ListItemSubtitle\",\n            \"isReactNative\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"ListItemText\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"isText\": true,\n            \"defaultProps\": {\n              \"display\": \"inline\",\n              \"boxSizing\": \"border-box\",\n              \"wordWrap\": \"break-word\",\n              \"whiteSpace\": \"pre-wrap\",\n              \"margin\": 0,\n              \"fontFamily\": \"$body\",\n              \"unstyled\": false\n            },\n            \"inlineWhenUnflattened\": {},\n            \"variants\": {\n              \"numberOfLines\": {\n                \"1\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                },\n                \":number\": \"Function\"\n              },\n              \"selectable\": {\n                \"true\": {\n                  \"userSelect\": \"text\",\n                  \"cursor\": \"text\"\n                },\n                \"false\": {\n                  \"userSelect\": \"none\",\n                  \"cursor\": \"default\"\n                }\n              },\n              \"ellipse\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"ellipsis\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$true\",\n                  \"color\": \"$color\",\n                  \"flexGrow\": 1,\n                  \"flexShrink\": 1,\n                  \"ellipse\": true,\n                  \"cursor\": \"inherit\"\n                }\n              },\n              \"size\": \"Function\",\n              \"fontFamily\": {\n                \"...\": \"Function\"\n              }\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true,\n              \"fontFamily\": true,\n              \"fontSize\": true,\n              \"fontStyle\": true,\n              \"fontVariant\": true,\n              \"letterSpacing\": true,\n              \"lineHeight\": true,\n              \"textTransform\": true,\n              \"textAlign\": true,\n              \"textDecorationLine\": true,\n              \"textDecorationStyle\": true,\n              \"textShadowOffset\": true,\n              \"textShadowRadius\": true,\n              \"selectable\": true,\n              \"verticalAlign\": true,\n              \"whiteSpace\": true,\n              \"wordWrap\": true,\n              \"textOverflow\": true,\n              \"textDecorationDistance\": true,\n              \"WebkitBoxOrient\": true\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"ListItemText\",\n            \"isReactNative\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"ListItemTitle\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"isText\": true,\n            \"defaultProps\": {\n              \"display\": \"inline\",\n              \"boxSizing\": \"border-box\",\n              \"wordWrap\": \"break-word\",\n              \"whiteSpace\": \"pre-wrap\",\n              \"margin\": 0,\n              \"fontFamily\": \"$body\",\n              \"unstyled\": false\n            },\n            \"inlineWhenUnflattened\": {},\n            \"variants\": {\n              \"numberOfLines\": {\n                \"1\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                },\n                \":number\": \"Function\"\n              },\n              \"selectable\": {\n                \"true\": {\n                  \"userSelect\": \"text\",\n                  \"cursor\": \"text\"\n                },\n                \"false\": {\n                  \"userSelect\": \"none\",\n                  \"cursor\": \"default\"\n                }\n              },\n              \"ellipse\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"ellipsis\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$true\",\n                  \"color\": \"$color\",\n                  \"flexGrow\": 1,\n                  \"flexShrink\": 1,\n                  \"ellipse\": true,\n                  \"cursor\": \"inherit\"\n                }\n              },\n              \"size\": \"Function\",\n              \"fontFamily\": {\n                \"...\": \"Function\"\n              }\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true,\n              \"fontFamily\": true,\n              \"fontSize\": true,\n              \"fontStyle\": true,\n              \"fontVariant\": true,\n              \"letterSpacing\": true,\n              \"lineHeight\": true,\n              \"textTransform\": true,\n              \"textAlign\": true,\n              \"textDecorationLine\": true,\n              \"textDecorationStyle\": true,\n              \"textShadowOffset\": true,\n              \"textShadowRadius\": true,\n              \"selectable\": true,\n              \"verticalAlign\": true,\n              \"whiteSpace\": true,\n              \"wordWrap\": true,\n              \"textOverflow\": true,\n              \"textDecorationDistance\": true,\n              \"WebkitBoxOrient\": true\n            },\n            \"componentName\": \"ListItemTitle\",\n            \"isReactNative\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"Main\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"tag\": \"main\",\n              \"flexDirection\": \"column\"\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"componentName\": \"Main\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"Nav\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"tag\": \"nav\",\n              \"flexDirection\": \"column\"\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"componentName\": \"Nav\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"Overlay\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"open\": {\n                \"true\": {\n                  \"pointerEvents\": \"auto\"\n                },\n                \"false\": {\n                  \"pointerEvents\": \"none\"\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"fullscreen\": true,\n                  \"position\": \"absolute\",\n                  \"backgrounded\": true,\n                  \"zIndex\": 99999,\n                  \"pointerEvents\": \"auto\"\n                }\n              }\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"SheetOverlay\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"Paragraph\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"isText\": true,\n            \"defaultProps\": {\n              \"display\": \"inline\",\n              \"boxSizing\": \"border-box\",\n              \"wordWrap\": \"break-word\",\n              \"margin\": 0,\n              \"fontFamily\": \"$body\",\n              \"unstyled\": false,\n              \"tag\": \"p\",\n              \"userSelect\": \"auto\",\n              \"color\": \"$color\",\n              \"size\": \"$true\",\n              \"whiteSpace\": \"normal\"\n            },\n            \"inlineWhenUnflattened\": {},\n            \"variants\": {\n              \"numberOfLines\": {\n                \"1\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                },\n                \":number\": \"Function\"\n              },\n              \"selectable\": {\n                \"true\": {\n                  \"userSelect\": \"text\",\n                  \"cursor\": \"text\"\n                },\n                \"false\": {\n                  \"userSelect\": \"none\",\n                  \"cursor\": \"default\"\n                }\n              },\n              \"ellipse\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"ellipsis\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$true\",\n                  \"color\": \"$color\"\n                }\n              },\n              \"size\": \"Function\",\n              \"fontFamily\": {\n                \"...\": \"Function\"\n              }\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true,\n              \"fontFamily\": true,\n              \"fontSize\": true,\n              \"fontStyle\": true,\n              \"fontVariant\": true,\n              \"letterSpacing\": true,\n              \"lineHeight\": true,\n              \"textTransform\": true,\n              \"textAlign\": true,\n              \"textDecorationLine\": true,\n              \"textDecorationStyle\": true,\n              \"textShadowOffset\": true,\n              \"textShadowRadius\": true,\n              \"selectable\": true,\n              \"verticalAlign\": true,\n              \"whiteSpace\": true,\n              \"wordWrap\": true,\n              \"textOverflow\": true,\n              \"textDecorationDistance\": true,\n              \"WebkitBoxOrient\": true\n            },\n            \"componentName\": \"Paragraph\",\n            \"isReactNative\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"PopoverArrow\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"unstyled\": {\n                \"false\": {\n                  \"borderColor\": \"$borderColor\",\n                  \"backgroundColor\": \"$background\",\n                  \"position\": \"relative\"\n                }\n              }\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"PopperArrow\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true,\n            \"isHOC\": true\n          }\n        },\n        \"PopoverContent\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$true\",\n                  \"backgroundColor\": \"$background\",\n                  \"alignItems\": \"center\",\n                  \"radiused\": true\n                }\n              },\n              \"size\": {\n                \"...size\": \"Function\"\n              }\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"PopperContent\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true,\n            \"isHOC\": true\n          }\n        },\n        \"PopperAnchor\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\"\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\"\n            },\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true,\n            \"isHOC\": true\n          }\n        },\n        \"PopperArrow\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"unstyled\": {\n                \"false\": {\n                  \"borderColor\": \"$borderColor\",\n                  \"backgroundColor\": \"$background\",\n                  \"position\": \"relative\"\n                }\n              }\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"PopperArrow\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true,\n            \"isHOC\": true\n          }\n        },\n        \"PopperContentFrame\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$true\",\n                  \"backgroundColor\": \"$background\",\n                  \"alignItems\": \"center\",\n                  \"radiused\": true\n                }\n              },\n              \"size\": {\n                \"...size\": \"Function\"\n              }\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"PopperContent\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"Progress\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"borderRadius\": 100000,\n                  \"overflow\": \"hidden\",\n                  \"backgrounded\": true\n                }\n              },\n              \"size\": {\n                \"...size\": \"Function\"\n              }\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"Progress\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true,\n            \"isHOC\": true\n          }\n        },\n        \"ProgressFrame\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"borderRadius\": 100000,\n                  \"overflow\": \"hidden\",\n                  \"backgrounded\": true\n                }\n              },\n              \"size\": {\n                \"...size\": \"Function\"\n              }\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"Progress\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"ProgressIndicator\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"height\": \"100%\",\n                  \"width\": \"100%\",\n                  \"backgrounded\": true\n                }\n              }\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"ProgressIndicator\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true,\n            \"isHOC\": true\n          }\n        },\n        \"ProgressIndicatorFrame\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"height\": \"100%\",\n                  \"width\": \"100%\",\n                  \"backgrounded\": true\n                }\n              }\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"ProgressIndicator\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"RadioGroup\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\"\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"orientation\": {\n                \"horizontal\": {\n                  \"flexDirection\": \"row\",\n                  \"spaceDirection\": \"horizontal\"\n                },\n                \"vertical\": {\n                  \"flexDirection\": \"column\",\n                  \"spaceDirection\": \"vertical\"\n                }\n              }\n            },\n            \"componentName\": \"RadioGroup\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true,\n            \"isHOC\": true\n          }\n        },\n        \"RadioGroupFrame\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\"\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"orientation\": {\n                \"horizontal\": {\n                  \"flexDirection\": \"row\",\n                  \"spaceDirection\": \"horizontal\"\n                },\n                \"vertical\": {\n                  \"flexDirection\": \"column\",\n                  \"spaceDirection\": \"vertical\"\n                }\n              }\n            },\n            \"componentName\": \"RadioGroup\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"RadioGroupIndicatorFrame\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"width\": \"33%\",\n                  \"height\": \"33%\",\n                  \"borderRadius\": 1000,\n                  \"backgroundColor\": \"$color\",\n                  \"pressTheme\": true\n                }\n              }\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"RadioGroupIndicator\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"RadioGroupItemFrame\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"tag\": \"button\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$true\",\n                  \"borderRadius\": 1000,\n                  \"backgroundColor\": \"$background\",\n                  \"alignItems\": \"center\",\n                  \"justifyContent\": \"center\",\n                  \"borderWidth\": 1,\n                  \"borderColor\": \"$borderColor\",\n                  \"padding\": 0,\n                  \"hoverStyle\": {\n                    \"borderColor\": \"$borderColorHover\",\n                    \"backgroundColor\": \"$backgroundHover\"\n                  },\n                  \"focusStyle\": {\n                    \"borderColor\": \"$borderColorHover\",\n                    \"backgroundColor\": \"$backgroundHover\"\n                  },\n                  \"focusVisibleStyle\": {\n                    \"outlineStyle\": \"solid\",\n                    \"outlineWidth\": 2,\n                    \"outlineColor\": \"$outlineColor\"\n                  },\n                  \"pressStyle\": {\n                    \"borderColor\": \"$borderColorFocus\",\n                    \"backgroundColor\": \"$backgroundFocus\"\n                  }\n                }\n              },\n              \"disabled\": {\n                \"true\": {\n                  \"pointerEvents\": \"none\",\n                  \"userSelect\": \"none\",\n                  \"cursor\": \"not-allowed\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"$borderColor\",\n                    \"backgroundColor\": \"$background\"\n                  },\n                  \"pressStyle\": {\n                    \"borderColor\": \"$borderColor\",\n                    \"backgroundColor\": \"$background\"\n                  },\n                  \"focusVisibleStyle\": {\n                    \"outlineWidth\": 0\n                  }\n                }\n              },\n              \"size\": {\n                \"...size\": \"Function\"\n              }\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"RadioGroupItem\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"ScrollView\": {\n          \"staticConfig\": {\n            \"accept\": {\n              \"contentContainerStyle\": \"style\"\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              }\n            },\n            \"defaultProps\": {\n              \"scrollEnabled\": true\n            },\n            \"componentName\": \"ScrollView\",\n            \"isReactNative\": true,\n            \"isText\": false,\n            \"acceptsClassName\": true,\n            \"isStyledHOC\": false\n          }\n        },\n        \"Section\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"tag\": \"section\",\n              \"flexDirection\": \"column\",\n              \"accessibilityRole\": \"summary\"\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"componentName\": \"Section\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"SelectGroupFrame\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"width\": \"100%\"\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\"\n            },\n            \"componentName\": \"SelectGroup\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"SelectIcon\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"row\",\n              \"aria-hidden\": true,\n              \"children\": \"Component\"\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\"\n            },\n            \"componentName\": \"SelectIcon\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true\n          }\n        },\n        \"SelectSeparator\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexDirection\": \"column\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"borderColor\": \"$borderColor\",\n              \"flexShrink\": 0,\n              \"borderWidth\": 0,\n              \"flex\": 1,\n              \"height\": 0,\n              \"maxHeight\": 0,\n              \"borderBottomWidth\": 1,\n              \"y\": -0.5\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"vertical\": {\n                \"true\": {\n                  \"y\": 0,\n                  \"x\": -0.5,\n                  \"height\": \"initial\",\n                  \"maxHeight\": \"initial\",\n                  \"width\": 0,\n                  \"maxWidth\": 0,\n                  \"borderBottomWidth\": 0,\n                  \"borderRightWidth\": 1\n                }\n              }\n            },\n            \"componentName\": \"SelectSeparator\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"Separator\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexDirection\": \"column\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"borderColor\": \"$borderColor\",\n              \"flexShrink\": 0,\n              \"borderWidth\": 0,\n              \"flex\": 1,\n              \"height\": 0,\n              \"maxHeight\": 0,\n              \"borderBottomWidth\": 1,\n              \"y\": -0.5\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"vertical\": {\n                \"true\": {\n                  \"y\": 0,\n                  \"x\": -0.5,\n                  \"height\": \"initial\",\n                  \"maxHeight\": \"initial\",\n                  \"width\": 0,\n                  \"maxWidth\": 0,\n                  \"borderBottomWidth\": 0,\n                  \"borderRightWidth\": 1\n                }\n              }\n            },\n            \"componentName\": \"Separator\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"SheetHandleFrame\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"row\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"open\": {\n                \"true\": {\n                  \"opacity\": 1,\n                  \"pointerEvents\": \"auto\"\n                },\n                \"false\": {\n                  \"opacity\": 0,\n                  \"pointerEvents\": \"none\"\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"height\": 10,\n                  \"borderRadius\": 100,\n                  \"backgroundColor\": \"$background\",\n                  \"zIndex\": 10,\n                  \"marginHorizontal\": \"35%\",\n                  \"marginBottom\": \"$2\",\n                  \"opacity\": 0.5,\n                  \"hoverStyle\": {\n                    \"opacity\": 0.7\n                  }\n                }\n              }\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"SheetHandle\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"SheetOverlayFrame\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"open\": {\n                \"true\": {\n                  \"pointerEvents\": \"auto\"\n                },\n                \"false\": {\n                  \"pointerEvents\": \"none\"\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"fullscreen\": true,\n                  \"position\": \"absolute\",\n                  \"backgrounded\": true,\n                  \"zIndex\": 99999,\n                  \"pointerEvents\": \"auto\"\n                }\n              }\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"SheetOverlay\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"SizableStack\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"row\"\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"unstyled\": {\n                \"true\": {\n                  \"hoverTheme\": false,\n                  \"pressTheme\": false,\n                  \"focusTheme\": false,\n                  \"elevate\": false,\n                  \"bordered\": false\n                }\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"size\": {\n                \"...size\": \"Function\"\n              }\n            },\n            \"componentName\": \"SizableStack\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"SizableText\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"isText\": true,\n            \"defaultProps\": {\n              \"display\": \"inline\",\n              \"boxSizing\": \"border-box\",\n              \"wordWrap\": \"break-word\",\n              \"whiteSpace\": \"pre-wrap\",\n              \"margin\": 0,\n              \"fontFamily\": \"$body\",\n              \"unstyled\": false\n            },\n            \"inlineWhenUnflattened\": {},\n            \"variants\": {\n              \"numberOfLines\": {\n                \"1\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                },\n                \":number\": \"Function\"\n              },\n              \"selectable\": {\n                \"true\": {\n                  \"userSelect\": \"text\",\n                  \"cursor\": \"text\"\n                },\n                \"false\": {\n                  \"userSelect\": \"none\",\n                  \"cursor\": \"default\"\n                }\n              },\n              \"ellipse\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"ellipsis\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$true\",\n                  \"color\": \"$color\"\n                }\n              },\n              \"size\": \"Function\",\n              \"fontFamily\": {\n                \"...\": \"Function\"\n              }\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true,\n              \"fontFamily\": true,\n              \"fontSize\": true,\n              \"fontStyle\": true,\n              \"fontVariant\": true,\n              \"letterSpacing\": true,\n              \"lineHeight\": true,\n              \"textTransform\": true,\n              \"textAlign\": true,\n              \"textDecorationLine\": true,\n              \"textDecorationStyle\": true,\n              \"textShadowOffset\": true,\n              \"textShadowRadius\": true,\n              \"selectable\": true,\n              \"verticalAlign\": true,\n              \"whiteSpace\": true,\n              \"wordWrap\": true,\n              \"textOverflow\": true,\n              \"textDecorationDistance\": true,\n              \"WebkitBoxOrient\": true\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"SizableText\",\n            \"isReactNative\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"SliderFrame\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"position\": \"relative\"\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"orientation\": {\n                \"horizontal\": {},\n                \"vertical\": {}\n              },\n              \"size\": \"Function\"\n            },\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"SliderThumb\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"size\": {\n                \"...size\": \"Function\"\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"position\": \"absolute\",\n                  \"bordered\": 2,\n                  \"borderWidth\": 2,\n                  \"backgrounded\": true,\n                  \"pressTheme\": true,\n                  \"focusTheme\": true,\n                  \"hoverTheme\": true\n                }\n              }\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"SliderThumb\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false,\n            \"memo\": true,\n            \"neverFlatten\": true,\n            \"isHOC\": true\n          }\n        },\n        \"SliderThumbFrame\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"size\": {\n                \"...size\": \"Function\"\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"position\": \"absolute\",\n                  \"bordered\": 2,\n                  \"borderWidth\": 2,\n                  \"backgrounded\": true,\n                  \"pressTheme\": true,\n                  \"focusTheme\": true,\n                  \"hoverTheme\": true\n                }\n              }\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"SliderThumb\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"SliderTrackActiveFrame\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"backgroundColor\": \"$background\",\n              \"position\": \"absolute\",\n              \"pointerEvents\": \"box-none\"\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"orientation\": {\n                \"horizontal\": {},\n                \"vertical\": {}\n              },\n              \"size\": \"Function\"\n            },\n            \"componentName\": \"SliderTrackActive\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"SliderTrackFrame\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"position\": \"relative\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"orientation\": {\n                \"horizontal\": {},\n                \"vertical\": {}\n              },\n              \"size\": \"Function\",\n              \"unstyled\": {\n                \"false\": {\n                  \"height\": \"100%\",\n                  \"width\": \"100%\",\n                  \"backgroundColor\": \"$background\",\n                  \"position\": \"relative\",\n                  \"borderRadius\": 100000,\n                  \"overflow\": \"hidden\"\n                }\n              }\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"SliderTrack\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"Spacer\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"memo\": true,\n            \"componentName\": \"Spacer\",\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexDirection\": \"column\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"tag\": \"span\",\n              \"size\": true,\n              \"pointerEvents\": \"none\"\n            },\n            \"variants\": {\n              \"size\": {\n                \"...\": \"Function\"\n              },\n              \"flex\": {\n                \"true\": {\n                  \"flexGrow\": 1\n                }\n              },\n              \"direction\": {\n                \"horizontal\": {\n                  \"height\": 0,\n                  \"minHeight\": 0\n                },\n                \"vertical\": {\n                  \"width\": 0,\n                  \"minWidth\": 0\n                },\n                \"both\": {}\n              }\n            }\n          }\n        },\n        \"Spinner\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\"\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\"\n            },\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true,\n            \"isHOC\": true\n          }\n        },\n        \"Square\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"alignItems\": \"center\",\n              \"justifyContent\": \"center\"\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"size\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              }\n            },\n            \"componentName\": \"Square\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"Stack\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexDirection\": \"column\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            }\n          }\n        },\n        \"Switch\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"tag\": \"button\",\n              \"tabIndex\": 0,\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"unstyled\": {\n                \"false\": {\n                  \"borderRadius\": 1000,\n                  \"backgroundColor\": \"$background\",\n                  \"borderWidth\": 2,\n                  \"borderColor\": \"$background\",\n                  \"focusVisibleStyle\": {\n                    \"outlineColor\": \"$outlineColor\",\n                    \"outlineStyle\": \"solid\",\n                    \"outlineWidth\": 2\n                  }\n                }\n              },\n              \"checked\": {\n                \"true\": {}\n              },\n              \"size\": {\n                \"...size\": \"Function\"\n              }\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"Switch\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"context\": \"Component\",\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true,\n            \"isHOC\": true\n          }\n        },\n        \"SwitchFrame\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"tag\": \"button\",\n              \"tabIndex\": 0,\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"unstyled\": {\n                \"false\": {\n                  \"borderRadius\": 1000,\n                  \"backgroundColor\": \"$background\",\n                  \"borderWidth\": 2,\n                  \"borderColor\": \"$background\",\n                  \"focusVisibleStyle\": {\n                    \"outlineColor\": \"$outlineColor\",\n                    \"outlineStyle\": \"solid\",\n                    \"outlineWidth\": 2\n                  }\n                }\n              },\n              \"checked\": {\n                \"true\": {}\n              },\n              \"size\": {\n                \"...size\": \"Function\"\n              }\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"Switch\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"context\": \"Component\",\n            \"isStyledHOC\": false\n          }\n        },\n        \"SwitchThumb\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$true\",\n                  \"backgroundColor\": \"$background\",\n                  \"borderRadius\": 1000\n                }\n              },\n              \"checked\": {\n                \"true\": {}\n              },\n              \"size\": {\n                \"...size\": \"Function\"\n              }\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"SwitchThumb\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"context\": \"Component\",\n            \"isStyledHOC\": false\n          }\n        },\n        \"Tabs\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"row\"\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"unstyled\": {\n                \"true\": {\n                  \"hoverTheme\": false,\n                  \"pressTheme\": false,\n                  \"focusTheme\": false,\n                  \"elevate\": false,\n                  \"bordered\": false\n                }\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"size\": {\n                \"...size\": \"Function\"\n              }\n            },\n            \"componentName\": \"Tabs\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true,\n            \"isHOC\": true\n          }\n        },\n        \"Text\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"isText\": true,\n            \"defaultProps\": {\n              \"fontFamily\": \"unset\",\n              \"display\": \"inline\",\n              \"boxSizing\": \"border-box\",\n              \"wordWrap\": \"break-word\",\n              \"whiteSpace\": \"pre-wrap\",\n              \"margin\": 0,\n              \"unstyled\": false\n            },\n            \"inlineWhenUnflattened\": {},\n            \"variants\": {\n              \"numberOfLines\": {\n                \"1\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                },\n                \":number\": \"Function\"\n              },\n              \"selectable\": {\n                \"true\": {\n                  \"userSelect\": \"text\",\n                  \"cursor\": \"text\"\n                },\n                \"false\": {\n                  \"userSelect\": \"none\",\n                  \"cursor\": \"default\"\n                }\n              },\n              \"ellipse\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"ellipsis\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"color\": \"$color\"\n                }\n              }\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true,\n              \"fontFamily\": true,\n              \"fontSize\": true,\n              \"fontStyle\": true,\n              \"fontVariant\": true,\n              \"letterSpacing\": true,\n              \"lineHeight\": true,\n              \"textTransform\": true,\n              \"textAlign\": true,\n              \"textDecorationLine\": true,\n              \"textDecorationStyle\": true,\n              \"textShadowOffset\": true,\n              \"textShadowRadius\": true,\n              \"selectable\": true,\n              \"verticalAlign\": true,\n              \"whiteSpace\": true,\n              \"wordWrap\": true,\n              \"textOverflow\": true,\n              \"textDecorationDistance\": true,\n              \"WebkitBoxOrient\": true\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"isReactNative\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"TextArea\": {\n          \"staticConfig\": {\n            \"isInput\": true,\n            \"accept\": {\n              \"placeholderTextColor\": \"color\",\n              \"selectionColor\": \"color\"\n            },\n            \"variants\": {\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$true\",\n                  \"fontFamily\": \"$body\",\n                  \"borderWidth\": 1,\n                  \"outlineWidth\": 0,\n                  \"color\": \"$color\",\n                  \"tabIndex\": 0,\n                  \"borderColor\": \"$borderColor\",\n                  \"backgroundColor\": \"$background\",\n                  \"minWidth\": 0,\n                  \"hoverStyle\": {\n                    \"borderColor\": \"$borderColorHover\"\n                  },\n                  \"focusStyle\": {\n                    \"borderColor\": \"$borderColorFocus\"\n                  },\n                  \"focusVisibleStyle\": {\n                    \"outlineColor\": \"$outlineColor\",\n                    \"outlineWidth\": 2,\n                    \"outlineStyle\": \"solid\"\n                  },\n                  \"height\": \"auto\"\n                }\n              },\n              \"size\": {\n                \"...size\": \"Function\"\n              },\n              \"disabled\": {\n                \"true\": {}\n              }\n            },\n            \"defaultProps\": {\n              \"multiline\": true,\n              \"whiteSpace\": \"pre-wrap\",\n              \"unstyled\": false\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"TextArea\",\n            \"isReactNative\": true,\n            \"isText\": true,\n            \"acceptsClassName\": true,\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true,\n            \"isHOC\": true\n          }\n        },\n        \"TextAreaFrame\": {\n          \"staticConfig\": {\n            \"isInput\": true,\n            \"accept\": {\n              \"placeholderTextColor\": \"color\",\n              \"selectionColor\": \"color\"\n            },\n            \"variants\": {\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$true\",\n                  \"fontFamily\": \"$body\",\n                  \"borderWidth\": 1,\n                  \"outlineWidth\": 0,\n                  \"color\": \"$color\",\n                  \"tabIndex\": 0,\n                  \"borderColor\": \"$borderColor\",\n                  \"backgroundColor\": \"$background\",\n                  \"minWidth\": 0,\n                  \"hoverStyle\": {\n                    \"borderColor\": \"$borderColorHover\"\n                  },\n                  \"focusStyle\": {\n                    \"borderColor\": \"$borderColorFocus\"\n                  },\n                  \"focusVisibleStyle\": {\n                    \"outlineColor\": \"$outlineColor\",\n                    \"outlineWidth\": 2,\n                    \"outlineStyle\": \"solid\"\n                  },\n                  \"height\": \"auto\"\n                }\n              },\n              \"size\": {\n                \"...size\": \"Function\"\n              },\n              \"disabled\": {\n                \"true\": {}\n              }\n            },\n            \"defaultProps\": {\n              \"multiline\": true,\n              \"whiteSpace\": \"pre-wrap\",\n              \"unstyled\": false\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"TextArea\",\n            \"isReactNative\": true,\n            \"isText\": true,\n            \"acceptsClassName\": true,\n            \"isStyledHOC\": false\n          }\n        },\n        \"ThemeableStack\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\"\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              }\n            },\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"Thumb\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"size\": {\n                \"...size\": \"Function\"\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"position\": \"absolute\",\n                  \"bordered\": 2,\n                  \"borderWidth\": 2,\n                  \"backgrounded\": true,\n                  \"pressTheme\": true,\n                  \"focusTheme\": true,\n                  \"hoverTheme\": true\n                }\n              }\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"SliderThumb\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false,\n            \"memo\": true,\n            \"neverFlatten\": true,\n            \"isHOC\": true\n          }\n        },\n        \"View\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexDirection\": \"column\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            }\n          }\n        },\n        \"VisuallyHidden\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"isText\": true,\n            \"defaultProps\": {\n              \"fontFamily\": \"unset\",\n              \"display\": \"inline\",\n              \"boxSizing\": \"border-box\",\n              \"wordWrap\": \"break-word\",\n              \"whiteSpace\": \"pre-wrap\",\n              \"position\": \"absolute\",\n              \"width\": 1,\n              \"height\": 1,\n              \"margin\": -1,\n              \"zIndex\": -10000,\n              \"overflow\": \"hidden\",\n              \"opacity\": 1e-8,\n              \"pointerEvents\": \"none\"\n            },\n            \"inlineWhenUnflattened\": {},\n            \"variants\": {\n              \"numberOfLines\": {\n                \"1\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                },\n                \":number\": \"Function\"\n              },\n              \"selectable\": {\n                \"true\": {\n                  \"userSelect\": \"text\",\n                  \"cursor\": \"text\"\n                },\n                \"false\": {\n                  \"userSelect\": \"none\",\n                  \"cursor\": \"default\"\n                }\n              },\n              \"ellipse\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"ellipsis\": {\n                \"true\": {\n                  \"maxWidth\": \"100%\",\n                  \"overflow\": \"hidden\",\n                  \"textOverflow\": \"ellipsis\",\n                  \"whiteSpace\": \"nowrap\"\n                }\n              },\n              \"preserveDimensions\": {\n                \"true\": {\n                  \"position\": \"relative\",\n                  \"width\": \"auto\",\n                  \"height\": \"auto\"\n                }\n              },\n              \"visible\": {\n                \"true\": {\n                  \"position\": \"relative\",\n                  \"width\": \"auto\",\n                  \"height\": \"auto\",\n                  \"margin\": 0,\n                  \"zIndex\": 1,\n                  \"overflow\": \"visible\",\n                  \"opacity\": 1,\n                  \"pointerEvents\": \"auto\"\n                }\n              }\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true,\n              \"fontFamily\": true,\n              \"fontSize\": true,\n              \"fontStyle\": true,\n              \"fontVariant\": true,\n              \"letterSpacing\": true,\n              \"lineHeight\": true,\n              \"textTransform\": true,\n              \"textAlign\": true,\n              \"textDecorationLine\": true,\n              \"textDecorationStyle\": true,\n              \"textShadowOffset\": true,\n              \"textShadowRadius\": true,\n              \"selectable\": true,\n              \"verticalAlign\": true,\n              \"whiteSpace\": true,\n              \"wordWrap\": true,\n              \"textOverflow\": true,\n              \"textDecorationDistance\": true,\n              \"WebkitBoxOrient\": true\n            },\n            \"isReactNative\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"XGroup\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$true\"\n                }\n              },\n              \"size\": \"Function\"\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"GroupFrame\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true,\n            \"isHOC\": true\n          }\n        },\n        \"XStack\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"row\"\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\"\n            },\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"YGroup\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"unstyled\": false\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\",\n              \"backgrounded\": {\n                \"true\": {\n                  \"backgroundColor\": \"$background\"\n                }\n              },\n              \"radiused\": {\n                \"true\": \"Function\"\n              },\n              \"hoverTheme\": {\n                \"true\": {\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"$backgroundHover\",\n                    \"borderColor\": \"$borderColorHover\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"pressTheme\": {\n                \"true\": {\n                  \"cursor\": \"pointer\",\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"$backgroundPress\",\n                    \"borderColor\": \"$borderColorPress\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"focusTheme\": {\n                \"true\": {\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"$backgroundFocus\",\n                    \"borderColor\": \"$borderColorFocus\"\n                  }\n                },\n                \"false\": {}\n              },\n              \"circular\": {\n                \"true\": \"Function\"\n              },\n              \"padded\": {\n                \"true\": \"Function\"\n              },\n              \"elevate\": {\n                \"true\": \"Function\"\n              },\n              \"bordered\": \"Function\",\n              \"transparent\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\"\n                }\n              },\n              \"chromeless\": {\n                \"true\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"borderColor\": \"transparent\"\n                  }\n                },\n                \"all\": {\n                  \"backgroundColor\": \"transparent\",\n                  \"borderColor\": \"transparent\",\n                  \"shadowColor\": \"transparent\",\n                  \"hoverStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"pressStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  },\n                  \"focusStyle\": {\n                    \"backgroundColor\": \"transparent\",\n                    \"borderColor\": \"transparent\",\n                    \"shadowColor\": \"transparent\",\n                    \"hoverStyle\": {\n                      \"borderColor\": \"transparent\"\n                    }\n                  }\n                }\n              },\n              \"unstyled\": {\n                \"false\": {\n                  \"size\": \"$true\"\n                }\n              },\n              \"size\": \"Function\"\n            },\n            \"defaultVariants\": {\n              \"unstyled\": false\n            },\n            \"componentName\": \"GroupFrame\",\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true,\n            \"isHOC\": true\n          }\n        },\n        \"YStack\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"position\": \"relative\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\"\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\"\n            },\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false\n          }\n        },\n        \"ZStack\": {\n          \"staticConfig\": {\n            \"acceptsClassName\": true,\n            \"defaultProps\": {\n              \"display\": \"flex\",\n              \"alignItems\": \"stretch\",\n              \"flexBasis\": \"auto\",\n              \"boxSizing\": \"border-box\",\n              \"minHeight\": 0,\n              \"minWidth\": 0,\n              \"flexShrink\": 0,\n              \"flexDirection\": \"column\",\n              \"position\": \"relative\"\n            },\n            \"validStyles\": {\n              \"backfaceVisibility\": true,\n              \"borderBottomEndRadius\": true,\n              \"borderBottomStartRadius\": true,\n              \"borderBottomWidth\": true,\n              \"borderLeftWidth\": true,\n              \"borderRightWidth\": true,\n              \"borderBlockWidth\": true,\n              \"borderBlockEndWidth\": true,\n              \"borderBlockStartWidth\": true,\n              \"borderInlineWidth\": true,\n              \"borderInlineEndWidth\": true,\n              \"borderInlineStartWidth\": true,\n              \"borderStyle\": true,\n              \"borderBlockStyle\": true,\n              \"borderBlockEndStyle\": true,\n              \"borderBlockStartStyle\": true,\n              \"borderInlineStyle\": true,\n              \"borderInlineEndStyle\": true,\n              \"borderInlineStartStyle\": true,\n              \"borderTopEndRadius\": true,\n              \"borderTopStartRadius\": true,\n              \"borderTopWidth\": true,\n              \"borderWidth\": true,\n              \"transform\": true,\n              \"transformOrigin\": true,\n              \"alignContent\": true,\n              \"alignItems\": true,\n              \"alignSelf\": true,\n              \"borderEndWidth\": true,\n              \"borderStartWidth\": true,\n              \"bottom\": true,\n              \"display\": true,\n              \"end\": true,\n              \"flexBasis\": true,\n              \"flexDirection\": true,\n              \"flexWrap\": true,\n              \"gap\": true,\n              \"columnGap\": true,\n              \"rowGap\": true,\n              \"justifyContent\": true,\n              \"left\": true,\n              \"margin\": true,\n              \"marginBlock\": true,\n              \"marginBlockEnd\": true,\n              \"marginBlockStart\": true,\n              \"marginInline\": true,\n              \"marginInlineStart\": true,\n              \"marginInlineEnd\": true,\n              \"marginBottom\": true,\n              \"marginEnd\": true,\n              \"marginHorizontal\": true,\n              \"marginLeft\": true,\n              \"marginRight\": true,\n              \"marginStart\": true,\n              \"marginTop\": true,\n              \"marginVertical\": true,\n              \"overflow\": true,\n              \"padding\": true,\n              \"paddingBottom\": true,\n              \"paddingInline\": true,\n              \"paddingBlock\": true,\n              \"paddingBlockStart\": true,\n              \"paddingInlineEnd\": true,\n              \"paddingInlineStart\": true,\n              \"paddingEnd\": true,\n              \"paddingHorizontal\": true,\n              \"paddingLeft\": true,\n              \"paddingRight\": true,\n              \"paddingStart\": true,\n              \"paddingTop\": true,\n              \"paddingVertical\": true,\n              \"position\": true,\n              \"right\": true,\n              \"start\": true,\n              \"top\": true,\n              \"inset\": true,\n              \"insetBlock\": true,\n              \"insetBlockEnd\": true,\n              \"insetBlockStart\": true,\n              \"insetInline\": true,\n              \"insetInlineEnd\": true,\n              \"insetInlineStart\": true,\n              \"direction\": true,\n              \"shadowOffset\": true,\n              \"shadowRadius\": true,\n              \"backgroundColor\": true,\n              \"borderColor\": true,\n              \"borderBlockStartColor\": true,\n              \"borderBlockEndColor\": true,\n              \"borderBlockColor\": true,\n              \"borderBottomColor\": true,\n              \"borderInlineColor\": true,\n              \"borderInlineStartColor\": true,\n              \"borderInlineEndColor\": true,\n              \"borderTopColor\": true,\n              \"borderLeftColor\": true,\n              \"borderRightColor\": true,\n              \"borderEndColor\": true,\n              \"borderStartColor\": true,\n              \"shadowColor\": true,\n              \"color\": true,\n              \"textDecorationColor\": true,\n              \"textShadowColor\": true,\n              \"outlineColor\": true,\n              \"caretColor\": true,\n              \"borderRadius\": true,\n              \"borderTopLeftRadius\": true,\n              \"borderTopRightRadius\": true,\n              \"borderBottomLeftRadius\": true,\n              \"borderBottomRightRadius\": true,\n              \"borderStartStartRadius\": true,\n              \"borderStartEndRadius\": true,\n              \"borderEndStartRadius\": true,\n              \"borderEndEndRadius\": true,\n              \"width\": true,\n              \"height\": true,\n              \"minWidth\": true,\n              \"minHeight\": true,\n              \"maxWidth\": true,\n              \"maxHeight\": true,\n              \"blockSize\": true,\n              \"minBlockSize\": true,\n              \"maxBlockSize\": true,\n              \"inlineSize\": true,\n              \"minInlineSize\": true,\n              \"maxInlineSize\": true,\n              \"x\": true,\n              \"y\": true,\n              \"scale\": true,\n              \"perspective\": true,\n              \"scaleX\": true,\n              \"scaleY\": true,\n              \"skewX\": true,\n              \"skewY\": true,\n              \"matrix\": true,\n              \"rotate\": true,\n              \"rotateY\": true,\n              \"rotateX\": true,\n              \"rotateZ\": true,\n              \"WebkitLineClamp\": true,\n              \"animationIterationCount\": true,\n              \"aspectRatio\": true,\n              \"borderImageOutset\": true,\n              \"borderImageSlice\": true,\n              \"borderImageWidth\": true,\n              \"columnCount\": true,\n              \"flex\": true,\n              \"flexGrow\": true,\n              \"flexOrder\": true,\n              \"flexPositive\": true,\n              \"flexShrink\": true,\n              \"flexNegative\": true,\n              \"fontWeight\": true,\n              \"gridRow\": true,\n              \"gridRowEnd\": true,\n              \"gridRowGap\": true,\n              \"gridRowStart\": true,\n              \"gridColumn\": true,\n              \"gridColumnEnd\": true,\n              \"gridColumnGap\": true,\n              \"gridColumnStart\": true,\n              \"gridTemplateColumns\": true,\n              \"gridTemplateAreas\": true,\n              \"lineClamp\": true,\n              \"opacity\": true,\n              \"order\": true,\n              \"orphans\": true,\n              \"tabSize\": true,\n              \"widows\": true,\n              \"zIndex\": true,\n              \"zoom\": true,\n              \"scaleZ\": true,\n              \"shadowOpacity\": true,\n              \"boxShadow\": true,\n              \"filter\": true,\n              \"transition\": true,\n              \"textWrap\": true,\n              \"backdropFilter\": true,\n              \"background\": true,\n              \"backgroundAttachment\": true,\n              \"backgroundBlendMode\": true,\n              \"backgroundClip\": true,\n              \"backgroundImage\": true,\n              \"backgroundOrigin\": true,\n              \"backgroundPosition\": true,\n              \"backgroundRepeat\": true,\n              \"backgroundSize\": true,\n              \"borderBottomStyle\": true,\n              \"borderImage\": true,\n              \"borderLeftStyle\": true,\n              \"borderRightStyle\": true,\n              \"borderTopStyle\": true,\n              \"boxSizing\": true,\n              \"clipPath\": true,\n              \"contain\": true,\n              \"containerType\": true,\n              \"content\": true,\n              \"cursor\": true,\n              \"float\": true,\n              \"mask\": true,\n              \"maskBorder\": true,\n              \"maskBorderMode\": true,\n              \"maskBorderOutset\": true,\n              \"maskBorderRepeat\": true,\n              \"maskBorderSlice\": true,\n              \"maskBorderSource\": true,\n              \"maskBorderWidth\": true,\n              \"maskClip\": true,\n              \"maskComposite\": true,\n              \"maskImage\": true,\n              \"maskMode\": true,\n              \"maskOrigin\": true,\n              \"maskPosition\": true,\n              \"maskRepeat\": true,\n              \"maskSize\": true,\n              \"maskType\": true,\n              \"mixBlendMode\": true,\n              \"objectFit\": true,\n              \"objectPosition\": true,\n              \"outlineOffset\": true,\n              \"outlineStyle\": true,\n              \"outlineWidth\": true,\n              \"overflowBlock\": true,\n              \"overflowInline\": true,\n              \"overflowX\": true,\n              \"overflowY\": true,\n              \"pointerEvents\": true,\n              \"scrollbarWidth\": true,\n              \"textEmphasis\": true,\n              \"touchAction\": true,\n              \"transformStyle\": true,\n              \"userSelect\": true\n            },\n            \"variants\": {\n              \"fullscreen\": {\n                \"true\": {\n                  \"position\": \"absolute\",\n                  \"top\": 0,\n                  \"left\": 0,\n                  \"right\": 0,\n                  \"bottom\": 0\n                }\n              },\n              \"elevation\": {\n                \"...size\": \"Function\",\n                \":number\": \"Function\"\n              },\n              \"inset\": \"Function\"\n            },\n            \"isReactNative\": false,\n            \"isText\": false,\n            \"isStyledHOC\": false,\n            \"neverFlatten\": true,\n            \"isZStack\": true\n          }\n        }\n      }\n    }\n  ],\n  \"nameToPaths\": {},\n  \"tamaguiConfig\": {\n    \"fonts\": {\n      \"heading\": {\n        \"family\": \"Inter, -apple-system, system-ui, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, Helvetica, Arial, sans-serif\",\n        \"lineHeight\": {\n          \"1\": 45,\n          \"2\": 37.5,\n          \"3\": 30,\n          \"4\": 27.5,\n          \"5\": 25,\n          \"6\": 22.5,\n          \"7\": 25,\n          \"8\": 28.75,\n          \"9\": 37.5,\n          \"10\": 57.5,\n          \"11\": 68.75,\n          \"12\": 77.5,\n          \"13\": 90,\n          \"14\": 115,\n          \"15\": 142.5,\n          \"16\": 167.5,\n          \"true\": 37.5\n        },\n        \"weight\": {\n          \"1\": \"700\",\n          \"2\": \"500\",\n          \"3\": \"400\",\n          \"4\": \"200\",\n          \"5\": \"200\",\n          \"6\": \"200\",\n          \"7\": \"200\",\n          \"8\": \"200\",\n          \"9\": \"200\",\n          \"10\": \"200\",\n          \"11\": \"200\",\n          \"12\": \"200\",\n          \"13\": \"200\",\n          \"14\": \"200\",\n          \"15\": \"200\",\n          \"16\": \"200\",\n          \"true\": \"200\"\n        },\n        \"letterSpacing\": {\n          \"1\": 0,\n          \"2\": 0,\n          \"3\": 0,\n          \"4\": 0,\n          \"5\": 0,\n          \"6\": 0,\n          \"7\": 0,\n          \"8\": 0,\n          \"9\": 0,\n          \"10\": 0,\n          \"11\": 0,\n          \"12\": 0,\n          \"13\": 0,\n          \"14\": 0,\n          \"15\": 0,\n          \"16\": 0,\n          \"true\": 0\n        },\n        \"size\": {\n          \"1\": 36,\n          \"2\": 30,\n          \"3\": 24,\n          \"4\": 22,\n          \"5\": 20,\n          \"6\": 18,\n          \"7\": 20,\n          \"8\": 23,\n          \"9\": 30,\n          \"10\": 46,\n          \"11\": 55,\n          \"12\": 62,\n          \"13\": 72,\n          \"14\": 92,\n          \"15\": 114,\n          \"16\": 134,\n          \"true\": 30\n        },\n        \"face\": {\n          \"100\": {\n            \"normal\": \"Inter, -apple-system, system-ui, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, Helvetica, Arial, sans-serif\"\n          },\n          \"200\": {\n            \"normal\": \"InterBold\"\n          },\n          \"300\": {\n            \"normal\": \"InterBold\"\n          },\n          \"400\": {\n            \"normal\": \"InterBold\"\n          },\n          \"500\": {\n            \"normal\": \"InterBold\"\n          },\n          \"600\": {\n            \"normal\": \"InterBold\"\n          },\n          \"700\": {\n            \"normal\": \"InterBold\"\n          },\n          \"800\": {\n            \"normal\": \"InterBold\"\n          },\n          \"900\": {\n            \"normal\": \"InterBold\"\n          }\n        }\n      },\n      \"body\": {\n        \"family\": \"Inter, -apple-system, system-ui, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, Helvetica, Arial, sans-serif\",\n        \"lineHeight\": {\n          \"1\": 17,\n          \"2\": 18,\n          \"3\": 19,\n          \"4\": 20,\n          \"5\": 23,\n          \"6\": 25,\n          \"7\": 27,\n          \"8\": 30,\n          \"9\": 38,\n          \"10\": 56,\n          \"11\": 66,\n          \"12\": 73,\n          \"13\": 84,\n          \"14\": 106,\n          \"15\": 130,\n          \"16\": 152,\n          \"true\": 20\n        },\n        \"weight\": {\n          \"1\": \"300\",\n          \"2\": \"300\",\n          \"3\": \"300\",\n          \"4\": \"300\",\n          \"5\": \"300\",\n          \"6\": \"300\",\n          \"7\": \"300\",\n          \"8\": \"300\",\n          \"9\": \"300\",\n          \"10\": \"300\",\n          \"11\": \"300\",\n          \"12\": \"300\",\n          \"13\": \"300\",\n          \"14\": \"300\",\n          \"15\": \"300\",\n          \"16\": \"300\",\n          \"true\": \"300\"\n        },\n        \"letterSpacing\": {\n          \"1\": 0,\n          \"2\": 0,\n          \"3\": 0,\n          \"4\": 0,\n          \"5\": 0,\n          \"6\": 0,\n          \"7\": 0,\n          \"8\": 0,\n          \"9\": 0,\n          \"10\": 0,\n          \"11\": 0,\n          \"12\": 0,\n          \"13\": 0,\n          \"14\": 0,\n          \"15\": 0,\n          \"16\": 0,\n          \"true\": 0\n        },\n        \"face\": {\n          \"100\": {\n            \"normal\": \"Inter, -apple-system, system-ui, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, Helvetica, Arial, sans-serif\"\n          },\n          \"200\": {\n            \"normal\": \"Inter, -apple-system, system-ui, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, Helvetica, Arial, sans-serif\"\n          },\n          \"300\": {\n            \"normal\": \"Inter, -apple-system, system-ui, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, Helvetica, Arial, sans-serif\"\n          },\n          \"400\": {\n            \"normal\": \"Inter, -apple-system, system-ui, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, Helvetica, Arial, sans-serif\"\n          },\n          \"500\": {\n            \"normal\": \"Inter, -apple-system, system-ui, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, Helvetica, Arial, sans-serif\"\n          },\n          \"600\": {\n            \"normal\": \"Inter, -apple-system, system-ui, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, Helvetica, Arial, sans-serif\"\n          },\n          \"700\": {\n            \"normal\": \"InterBold\"\n          },\n          \"800\": {\n            \"normal\": \"InterBold\"\n          },\n          \"900\": {\n            \"normal\": \"InterBold\"\n          }\n        },\n        \"size\": {\n          \"1\": 12,\n          \"2\": 13,\n          \"3\": 14,\n          \"4\": 15,\n          \"5\": 18,\n          \"6\": 20,\n          \"7\": 22,\n          \"8\": 25,\n          \"9\": 33,\n          \"10\": 51,\n          \"11\": 61,\n          \"12\": 68,\n          \"13\": 79,\n          \"14\": 101,\n          \"15\": 125,\n          \"16\": 147,\n          \"true\": 15\n        }\n      },\n      \"mono\": {\n        \"family\": \"\\\"ui-monospace\\\", \\\"SFMono-Regular\\\", \\\"SF Mono\\\", Menlo, Consolas, \\\"Liberation Mono\\\", monospace\",\n        \"size\": {\n          \"1\": 11,\n          \"2\": 12,\n          \"3\": 13,\n          \"4\": 14,\n          \"5\": 16,\n          \"6\": 18,\n          \"7\": 20,\n          \"8\": 22,\n          \"9\": 30,\n          \"10\": 42,\n          \"11\": 52,\n          \"12\": 62,\n          \"13\": 72,\n          \"14\": 92,\n          \"15\": 114,\n          \"16\": 124\n        },\n        \"lineHeight\": {\n          \"1\": 16.5,\n          \"2\": 18,\n          \"3\": 19.5,\n          \"4\": 21,\n          \"5\": 24,\n          \"6\": 27,\n          \"7\": 30,\n          \"8\": 33,\n          \"9\": 45,\n          \"10\": 63,\n          \"11\": 78,\n          \"12\": 93,\n          \"13\": 108,\n          \"14\": 138,\n          \"15\": 171,\n          \"16\": 186\n        },\n        \"weight\": {\n          \"1\": \"500\",\n          \"2\": \"500\",\n          \"3\": \"500\",\n          \"4\": \"500\",\n          \"5\": \"500\",\n          \"6\": \"500\",\n          \"7\": \"500\",\n          \"8\": \"500\",\n          \"9\": \"500\",\n          \"10\": \"500\",\n          \"11\": \"500\",\n          \"12\": \"500\",\n          \"13\": \"500\",\n          \"14\": \"500\",\n          \"15\": \"500\",\n          \"16\": \"500\"\n        },\n        \"letterSpacing\": {\n          \"1\": 0,\n          \"2\": 0,\n          \"3\": 0,\n          \"4\": 0,\n          \"5\": 0,\n          \"6\": 0,\n          \"7\": 0,\n          \"8\": 0,\n          \"9\": 0,\n          \"10\": 0,\n          \"11\": 0,\n          \"12\": 0,\n          \"13\": 0,\n          \"14\": 0,\n          \"15\": 0,\n          \"16\": 0\n        }\n      },\n      \"editorBody\": {\n        \"family\": \"Georgia, Times, \\\"Times New Roman\\\", serif\",\n        \"size\": {\n          \"1\": 12,\n          \"2\": 14,\n          \"3\": 16,\n          \"4\": 18,\n          \"5\": 20,\n          \"6\": 22,\n          \"7\": 28,\n          \"8\": 32,\n          \"9\": 40,\n          \"10\": 42,\n          \"11\": 52,\n          \"12\": 62,\n          \"13\": 72,\n          \"14\": 92,\n          \"15\": 114,\n          \"16\": 124\n        },\n        \"lineHeight\": {\n          \"1\": 18,\n          \"2\": 21,\n          \"3\": 24,\n          \"4\": 27,\n          \"5\": 30,\n          \"6\": 33,\n          \"7\": 42,\n          \"8\": 48,\n          \"9\": 60,\n          \"10\": 63,\n          \"11\": 78,\n          \"12\": 93,\n          \"13\": 108,\n          \"14\": 138,\n          \"15\": 171,\n          \"16\": 186\n        },\n        \"weight\": {\n          \"1\": \"500\",\n          \"2\": \"500\",\n          \"3\": \"500\",\n          \"4\": \"500\",\n          \"5\": \"500\",\n          \"6\": \"500\",\n          \"7\": \"500\",\n          \"8\": \"500\",\n          \"9\": \"500\",\n          \"10\": \"500\",\n          \"11\": \"500\",\n          \"12\": \"500\",\n          \"13\": \"500\",\n          \"14\": \"500\",\n          \"15\": \"500\",\n          \"16\": \"500\"\n        },\n        \"letterSpacing\": {\n          \"1\": 0,\n          \"2\": 0,\n          \"3\": 0,\n          \"4\": 0,\n          \"5\": 0,\n          \"6\": 0,\n          \"7\": 0,\n          \"8\": 0,\n          \"9\": 0,\n          \"10\": 0,\n          \"11\": 0,\n          \"12\": 0,\n          \"13\": 0,\n          \"14\": 0,\n          \"15\": 0,\n          \"16\": 0\n        }\n      }\n    },\n    \"onlyAllowShorthands\": false,\n    \"fontLanguages\": [],\n    \"animations\": {\n      \"animations\": {\n        \"fast\": \"ease-in-out 150ms\",\n        \"medium\": \"ease-in-out 300ms\",\n        \"slow\": \"ease-in-out 450ms\",\n        \"slideInDownSlow\": {\n          \"type\": \"spring\",\n          \"damping\": 15,\n          \"mass\": 1,\n          \"stiffness\": 120,\n          \"opacity\": {\n            \"overshootClamping\": true\n          }\n        },\n        \"slideInDownMedium\": {\n          \"type\": \"timing\",\n          \"duration\": 300\n        },\n        \"slideInDownFast\": {\n          \"type\": \"timing\",\n          \"duration\": 150\n        }\n      },\n      \"usePresence\": \"Function\",\n      \"ResetPresence\": \"Function\",\n      \"supportsCSSVars\": true,\n      \"useAnimatedNumber\": \"Function\",\n      \"useAnimatedNumberReaction\": \"Function\",\n      \"useAnimatedNumberStyle\": \"Function\",\n      \"useAnimations\": \"Function\"\n    },\n    \"media\": {\n      \"xxs\": {\n        \"maxWidth\": 390\n      },\n      \"xs\": {\n        \"maxWidth\": 660\n      },\n      \"sm\": {\n        \"maxWidth\": 768\n      },\n      \"md\": {\n        \"maxWidth\": 1024\n      },\n      \"lg\": {\n        \"maxWidth\": 1280\n      },\n      \"xl\": {\n        \"maxWidth\": 1650\n      },\n      \"gtXs\": {\n        \"minWidth\": 661\n      },\n      \"gtSm\": {\n        \"minWidth\": 769\n      },\n      \"gtMd\": {\n        \"minWidth\": 1025\n      },\n      \"gtLg\": {\n        \"minWidth\": 1281\n      },\n      \"gtXl\": {\n        \"minWidth\": 1651\n      }\n    },\n    \"themes\": {\n      \"light\": {\n        \"color1\": \"#fff\",\n        \"color2\": \"#f9f9f9\",\n        \"color3\": \"hsl(0, 0%, 97.3%)\",\n        \"color4\": \"hsl(0, 0%, 95.1%)\",\n        \"color5\": \"hsl(0, 0%, 94.0%)\",\n        \"color6\": \"hsl(0, 0%, 92.0%)\",\n        \"color7\": \"hsl(0, 0%, 89.5%)\",\n        \"color8\": \"hsl(0, 0%, 81.0%)\",\n        \"color9\": \"hsl(0, 0%, 56.1%)\",\n        \"color10\": \"hsl(0, 0%, 50.3%)\",\n        \"color11\": \"hsl(0, 0%, 42.5%)\",\n        \"color12\": \"hsl(0, 0%, 9.0%)\",\n        \"background\": \"#f9f9f9\",\n        \"backgroundHover\": \"hsl(0, 0%, 97.3%)\",\n        \"backgroundPress\": \"hsl(0, 0%, 95.1%)\",\n        \"backgroundFocus\": \"hsl(0, 0%, 94.0%)\",\n        \"backgroundStrong\": \"#fff\",\n        \"backgroundTransparent\": \"rgba(255,255,255,0)\",\n        \"color\": \"hsl(0, 0%, 9.0%)\",\n        \"colorHover\": \"hsl(0, 0%, 42.5%)\",\n        \"colorPress\": \"hsl(0, 0%, 9.0%)\",\n        \"colorFocus\": \"hsl(0, 0%, 42.5%)\",\n        \"colorTransparent\": \"rgba(10,10,10,0)\",\n        \"borderColor\": \"hsl(0, 0%, 94.0%)\",\n        \"borderColorHover\": \"hsl(0, 0%, 92.0%)\",\n        \"borderColorFocus\": \"hsl(0, 0%, 95.1%)\",\n        \"borderColorPress\": \"hsl(0, 0%, 94.0%)\",\n        \"placeholderColor\": \"hsl(0, 0%, 56.1%)\",\n        \"outlineColor\": \"hsl(0, 0%, 94.0%)\",\n        \"blue1\": \"hsl(206, 100%, 99.2%)\",\n        \"blue2\": \"hsl(210, 100%, 98.0%)\",\n        \"blue3\": \"hsl(209, 100%, 96.5%)\",\n        \"blue4\": \"hsl(210, 98.8%, 94.0%)\",\n        \"blue5\": \"hsl(209, 95.0%, 90.1%)\",\n        \"blue6\": \"hsl(209, 81.2%, 84.5%)\",\n        \"blue7\": \"hsl(208, 77.5%, 76.9%)\",\n        \"blue8\": \"hsl(206, 81.9%, 65.3%)\",\n        \"blue9\": \"hsl(206, 100%, 50.0%)\",\n        \"blue10\": \"hsl(208, 100%, 47.3%)\",\n        \"blue11\": \"hsl(211, 100%, 43.2%)\",\n        \"blue12\": \"hsl(211, 100%, 15.0%)\",\n        \"gray1\": \"hsl(0, 0%, 99.0%)\",\n        \"gray2\": \"hsl(0, 0%, 97.3%)\",\n        \"gray3\": \"hsl(0, 0%, 95.1%)\",\n        \"gray4\": \"hsl(0, 0%, 93.0%)\",\n        \"gray5\": \"hsl(0, 0%, 90.9%)\",\n        \"gray6\": \"hsl(0, 0%, 88.7%)\",\n        \"gray7\": \"hsl(0, 0%, 85.8%)\",\n        \"gray8\": \"hsl(0, 0%, 78.0%)\",\n        \"gray9\": \"hsl(0, 0%, 56.1%)\",\n        \"gray10\": \"hsl(0, 0%, 52.3%)\",\n        \"gray11\": \"hsl(0, 0%, 43.5%)\",\n        \"gray12\": \"hsl(0, 0%, 99.0%)\",\n        \"gray13\": \"hsl(0, 0%, 9.0%)\",\n        \"green1\": \"hsl(136, 50.0%, 98.9%)\",\n        \"green2\": \"hsl(138, 62.5%, 96.9%)\",\n        \"green3\": \"hsl(139, 55.2%, 94.5%)\",\n        \"green4\": \"hsl(140, 48.7%, 91.0%)\",\n        \"green5\": \"hsl(141, 43.7%, 86.0%)\",\n        \"green6\": \"hsl(143, 40.3%, 79.0%)\",\n        \"green7\": \"hsl(146, 38.5%, 69.0%)\",\n        \"green8\": \"hsl(151, 40.2%, 54.1%)\",\n        \"green9\": \"hsl(151, 55.0%, 41.5%)\",\n        \"green10\": \"hsl(152, 57.5%, 37.6%)\",\n        \"green11\": \"hsl(153, 67.0%, 28.5%)\",\n        \"green12\": \"hsl(155, 40.0%, 14.0%)\",\n        \"purple1\": \"hsl(280, 65.0%, 99.4%)\",\n        \"purple2\": \"hsl(276, 100%, 99.0%)\",\n        \"purple3\": \"hsl(276, 83.1%, 97.0%)\",\n        \"purple4\": \"hsl(275, 76.4%, 94.7%)\",\n        \"purple5\": \"hsl(275, 70.8%, 91.8%)\",\n        \"purple6\": \"hsl(274, 65.4%, 87.8%)\",\n        \"purple7\": \"hsl(273, 61.0%, 81.7%)\",\n        \"purple8\": \"hsl(272, 60.0%, 73.5%)\",\n        \"purple9\": \"hsl(272, 51.0%, 54.0%)\",\n        \"purple10\": \"hsl(272, 46.8%, 50.3%)\",\n        \"purple11\": \"hsl(272, 50.0%, 45.8%)\",\n        \"purple12\": \"hsl(272, 66.0%, 16.0%)\",\n        \"red1\": \"hsl(359, 100%, 99.4%)\",\n        \"red2\": \"hsl(359, 100%, 98.6%)\",\n        \"red3\": \"hsl(360, 100%, 96.8%)\",\n        \"red4\": \"hsl(360, 97.9%, 94.8%)\",\n        \"red5\": \"hsl(360, 90.2%, 91.9%)\",\n        \"red6\": \"hsl(360, 81.7%, 87.8%)\",\n        \"red7\": \"hsl(359, 74.2%, 81.7%)\",\n        \"red8\": \"hsl(359, 69.5%, 74.3%)\",\n        \"red9\": \"hsl(358, 75.0%, 59.0%)\",\n        \"red10\": \"hsl(358, 69.4%, 55.2%)\",\n        \"red11\": \"hsl(358, 65.0%, 48.7%)\",\n        \"red12\": \"hsl(354, 50.0%, 14.6%)\",\n        \"yellow1\": \"hsl(60, 54.0%, 98.5%)\",\n        \"yellow2\": \"hsl(52, 100%, 95.5%)\",\n        \"yellow3\": \"hsl(55, 100%, 90.9%)\",\n        \"yellow4\": \"hsl(54, 100%, 86.6%)\",\n        \"yellow5\": \"hsl(52, 97.9%, 82.0%)\",\n        \"yellow6\": \"hsl(50, 89.4%, 76.1%)\",\n        \"yellow7\": \"hsl(47, 80.4%, 68.0%)\",\n        \"yellow8\": \"hsl(48, 100%, 46.1%)\",\n        \"yellow9\": \"hsl(53, 92.0%, 50.0%)\",\n        \"yellow10\": \"hsl(50, 100%, 48.5%)\",\n        \"yellow11\": \"hsl(42, 100%, 29.0%)\",\n        \"yellow12\": \"hsl(40, 55.0%, 13.5%)\",\n        \"brand1\": \"hsl(180, 29%, 17%)\",\n        \"brand2\": \"hsl(180, 36%, 22%)\",\n        \"brand3\": \"hsl(166, 30%, 29%)\",\n        \"brand4\": \"hsl(166, 55%, 31%)\",\n        \"brand5\": \"hsl(171, 96%, 28%)\",\n        \"brand6\": \"hsl(148, 44%, 47%)\",\n        \"brand7\": \"hsl(144, 55%, 57%)\",\n        \"brand8\": \"hsl(144, 73%, 68%)\",\n        \"brand9\": \"hsl(133, 54%, 78%)\",\n        \"brand10\": \"hsl(133, 63%, 83%)\",\n        \"brand11\": \"hsl(122, 53%, 88%)\",\n        \"brand12\": \"hsl(123, 50%, 93%)\",\n        \"brandHighlight\": \"hsl(125, 50%, 96%)\",\n        \"shadowColor\": \"rgba(0,0,0,0.066)\",\n        \"shadowColorHover\": \"rgba(0,0,0,0.066)\",\n        \"shadowColorPress\": \"rgba(0,0,0,0.02)\",\n        \"shadowColorFocus\": \"rgba(0,0,0,0.02)\",\n        \"id\": \"light\"\n      },\n      \"dark\": {\n        \"color1\": \"#050505\",\n        \"color2\": \"#151515\",\n        \"color3\": \"#191919\",\n        \"color4\": \"#232323\",\n        \"color5\": \"#282828\",\n        \"color6\": \"#323232\",\n        \"color7\": \"#424242\",\n        \"color8\": \"#494949\",\n        \"color9\": \"#545454\",\n        \"color10\": \"#626262\",\n        \"color11\": \"#a5a5a5\",\n        \"color12\": \"#fff\",\n        \"background\": \"#151515\",\n        \"backgroundHover\": \"#191919\",\n        \"backgroundPress\": \"#232323\",\n        \"backgroundFocus\": \"#282828\",\n        \"backgroundStrong\": \"#050505\",\n        \"backgroundTransparent\": \"rgba(10,10,10,0)\",\n        \"color\": \"#fff\",\n        \"colorHover\": \"#a5a5a5\",\n        \"colorPress\": \"#fff\",\n        \"colorFocus\": \"#a5a5a5\",\n        \"colorTransparent\": \"rgba(255,255,255,0)\",\n        \"borderColor\": \"#282828\",\n        \"borderColorHover\": \"#323232\",\n        \"borderColorFocus\": \"#232323\",\n        \"borderColorPress\": \"#282828\",\n        \"placeholderColor\": \"#545454\",\n        \"outlineColor\": \"#282828\",\n        \"blue1\": \"hsl(212, 35.0%, 9.2%)\",\n        \"blue2\": \"hsl(216, 50.0%, 11.8%)\",\n        \"blue3\": \"hsl(214, 59.4%, 15.3%)\",\n        \"blue4\": \"hsl(214, 65.8%, 17.9%)\",\n        \"blue5\": \"hsl(213, 71.2%, 20.2%)\",\n        \"blue6\": \"hsl(212, 77.4%, 23.1%)\",\n        \"blue7\": \"hsl(211, 85.1%, 27.4%)\",\n        \"blue8\": \"hsl(211, 89.7%, 34.1%)\",\n        \"blue9\": \"hsl(206, 100%, 50.0%)\",\n        \"blue10\": \"hsl(209, 100%, 60.6%)\",\n        \"blue11\": \"hsl(210, 100%, 66.1%)\",\n        \"blue12\": \"hsl(206, 98.0%, 95.8%)\",\n        \"gray1\": \"hsl(0, 0%, 8.5%)\",\n        \"gray2\": \"hsl(0, 0%, 11.0%)\",\n        \"gray3\": \"hsl(0, 0%, 13.6%)\",\n        \"gray4\": \"hsl(0, 0%, 15.8%)\",\n        \"gray5\": \"hsl(0, 0%, 17.9%)\",\n        \"gray6\": \"hsl(0, 0%, 20.5%)\",\n        \"gray7\": \"hsl(0, 0%, 24.3%)\",\n        \"gray8\": \"hsl(0, 0%, 31.2%)\",\n        \"gray9\": \"hsl(0, 0%, 43.9%)\",\n        \"gray10\": \"hsl(0, 0%, 49.4%)\",\n        \"gray11\": \"hsl(0, 0%, 62.8%)\",\n        \"gray12\": \"hsl(0, 0%, 18%)\",\n        \"gray13\": \"hsl(0, 0%, 93.0%)\",\n        \"green1\": \"hsl(146, 30.0%, 7.4%)\",\n        \"green2\": \"hsl(155, 44.2%, 8.4%)\",\n        \"green3\": \"hsl(155, 46.7%, 10.9%)\",\n        \"green4\": \"hsl(154, 48.4%, 12.9%)\",\n        \"green5\": \"hsl(154, 49.7%, 14.9%)\",\n        \"green6\": \"hsl(154, 50.9%, 17.6%)\",\n        \"green7\": \"hsl(153, 51.8%, 21.8%)\",\n        \"green8\": \"hsl(151, 51.7%, 28.4%)\",\n        \"green9\": \"hsl(151, 55.0%, 41.5%)\",\n        \"green10\": \"hsl(151, 49.3%, 46.5%)\",\n        \"green11\": \"hsl(151, 50.0%, 53.2%)\",\n        \"green12\": \"hsl(137, 72.0%, 94.0%)\",\n        \"purple1\": \"hsl(284, 20.0%, 9.6%)\",\n        \"purple2\": \"hsl(283, 30.0%, 11.8%)\",\n        \"purple3\": \"hsl(281, 37.5%, 16.5%)\",\n        \"purple4\": \"hsl(280, 41.2%, 20.0%)\",\n        \"purple5\": \"hsl(279, 43.8%, 23.3%)\",\n        \"purple6\": \"hsl(277, 46.4%, 27.5%)\",\n        \"purple7\": \"hsl(275, 49.3%, 34.6%)\",\n        \"purple8\": \"hsl(272, 52.1%, 45.9%)\",\n        \"purple9\": \"hsl(272, 51.0%, 54.0%)\",\n        \"purple10\": \"hsl(273, 57.3%, 59.1%)\",\n        \"purple11\": \"hsl(275, 80.0%, 71.0%)\",\n        \"purple12\": \"hsl(279, 75.0%, 95.7%)\",\n        \"red1\": \"hsl(353, 23.0%, 9.8%)\",\n        \"red2\": \"hsl(357, 34.4%, 12.0%)\",\n        \"red3\": \"hsl(356, 43.4%, 16.4%)\",\n        \"red4\": \"hsl(356, 47.6%, 19.2%)\",\n        \"red5\": \"hsl(356, 51.1%, 21.9%)\",\n        \"red6\": \"hsl(356, 55.2%, 25.9%)\",\n        \"red7\": \"hsl(357, 60.2%, 31.8%)\",\n        \"red8\": \"hsl(358, 65.0%, 40.4%)\",\n        \"red9\": \"hsl(358, 75.0%, 59.0%)\",\n        \"red10\": \"hsl(358, 85.3%, 64.0%)\",\n        \"red11\": \"hsl(358, 100%, 69.5%)\",\n        \"red12\": \"hsl(351, 89.0%, 96.0%)\",\n        \"yellow1\": \"hsl(45, 100%, 5.5%)\",\n        \"yellow2\": \"hsl(46, 100%, 6.7%)\",\n        \"yellow3\": \"hsl(45, 100%, 8.7%)\",\n        \"yellow4\": \"hsl(45, 100%, 10.4%)\",\n        \"yellow5\": \"hsl(47, 100%, 12.1%)\",\n        \"yellow6\": \"hsl(49, 100%, 14.3%)\",\n        \"yellow7\": \"hsl(49, 90.3%, 18.4%)\",\n        \"yellow8\": \"hsl(50, 100%, 22.0%)\",\n        \"yellow9\": \"hsl(53, 92.0%, 50.0%)\",\n        \"yellow10\": \"hsl(54, 100%, 68.0%)\",\n        \"yellow11\": \"hsl(48, 100%, 47.0%)\",\n        \"yellow12\": \"hsl(53, 100%, 91.0%)\",\n        \"brand1\": \"hsl(123, 50%, 93%)\",\n        \"brand2\": \"hsl(122, 53%, 88%)\",\n        \"brand3\": \"hsl(125, 100%, 98%)\",\n        \"brand4\": \"hsl(166, 55%, 31%)\",\n        \"brand5\": \"hsl(171, 96%, 28%)\",\n        \"brand6\": \"hsl(148, 44%, 47%)\",\n        \"brand7\": \"hsl(144, 55%, 57%)\",\n        \"brand8\": \"hsl(144, 73%, 68%)\",\n        \"brand9\": \"hsl(133, 54%, 78%)\",\n        \"brand10\": \"hsl(166, 30%, 29%)\",\n        \"brand11\": \"hsl(180, 36%, 22%)\",\n        \"brand12\": \"hsl(180, 29%, 17%)\",\n        \"brandHighlight\": \"hsl(180, 41%, 8%)\",\n        \"shadowColor\": \"rgba(0,0,0,0.3)\",\n        \"shadowColorHover\": \"rgba(0,0,0,0.3)\",\n        \"shadowColorPress\": \"rgba(0,0,0,0.2)\",\n        \"shadowColorFocus\": \"rgba(0,0,0,0.2)\",\n        \"id\": \"dark\"\n      },\n      \"light_yellow\": {\n        \"color1\": \"hsl(60, 54.0%, 98.5%)\",\n        \"color2\": \"hsl(52, 100%, 95.5%)\",\n        \"color3\": \"hsl(55, 100%, 90.9%)\",\n        \"color4\": \"hsl(54, 100%, 86.6%)\",\n        \"color5\": \"hsl(52, 97.9%, 82.0%)\",\n        \"color6\": \"hsl(50, 89.4%, 76.1%)\",\n        \"color7\": \"hsl(48, 100%, 46.1%)\",\n        \"color8\": \"hsl(53, 92.0%, 50.0%)\",\n        \"color9\": \"hsl(50, 100%, 48.5%)\",\n        \"color10\": \"hsl(42, 100%, 29.0%)\",\n        \"color11\": \"hsl(40, 55.0%, 13.5%)\",\n        \"color12\": \"hsl(0, 0%, 9.0%)\",\n        \"background\": \"hsl(52, 100%, 95.5%)\",\n        \"backgroundHover\": \"hsl(55, 100%, 90.9%)\",\n        \"backgroundPress\": \"hsl(54, 100%, 86.6%)\",\n        \"backgroundFocus\": \"hsl(52, 97.9%, 82.0%)\",\n        \"backgroundStrong\": \"hsl(60, 54.0%, 98.5%)\",\n        \"backgroundTransparent\": \"hsla(60, 54.0%, 98.5%, 0)\",\n        \"color\": \"hsl(0, 0%, 9.0%)\",\n        \"colorHover\": \"hsl(40, 55.0%, 13.5%)\",\n        \"colorPress\": \"hsl(0, 0%, 9.0%)\",\n        \"colorFocus\": \"hsl(40, 55.0%, 13.5%)\",\n        \"colorTransparent\": \"hsla(40, 55.0%, 13.5%, 0)\",\n        \"borderColor\": \"hsl(54, 100%, 86.6%)\",\n        \"borderColorHover\": \"hsl(52, 97.9%, 82.0%)\",\n        \"borderColorFocus\": \"hsl(54, 100%, 86.6%)\",\n        \"borderColorPress\": \"hsl(54, 100%, 86.6%)\",\n        \"placeholderColor\": \"hsl(50, 100%, 48.5%)\",\n        \"outlineColor\": \"hsl(52, 97.9%, 82.0%)\",\n        \"blue1\": \"hsl(206, 100%, 99.2%)\",\n        \"blue2\": \"hsl(210, 100%, 98.0%)\",\n        \"blue3\": \"hsl(209, 100%, 96.5%)\",\n        \"blue4\": \"hsl(210, 98.8%, 94.0%)\",\n        \"blue5\": \"hsl(209, 95.0%, 90.1%)\",\n        \"blue6\": \"hsl(209, 81.2%, 84.5%)\",\n        \"blue7\": \"hsl(208, 77.5%, 76.9%)\",\n        \"blue8\": \"hsl(206, 81.9%, 65.3%)\",\n        \"blue9\": \"hsl(206, 100%, 50.0%)\",\n        \"blue10\": \"hsl(208, 100%, 47.3%)\",\n        \"blue11\": \"hsl(211, 100%, 43.2%)\",\n        \"blue12\": \"hsl(211, 100%, 15.0%)\",\n        \"gray1\": \"hsl(0, 0%, 99.0%)\",\n        \"gray2\": \"hsl(0, 0%, 97.3%)\",\n        \"gray3\": \"hsl(0, 0%, 95.1%)\",\n        \"gray4\": \"hsl(0, 0%, 93.0%)\",\n        \"gray5\": \"hsl(0, 0%, 90.9%)\",\n        \"gray6\": \"hsl(0, 0%, 88.7%)\",\n        \"gray7\": \"hsl(0, 0%, 85.8%)\",\n        \"gray8\": \"hsl(0, 0%, 78.0%)\",\n        \"gray9\": \"hsl(0, 0%, 56.1%)\",\n        \"gray10\": \"hsl(0, 0%, 52.3%)\",\n        \"gray11\": \"hsl(0, 0%, 43.5%)\",\n        \"gray12\": \"hsl(0, 0%, 99.0%)\",\n        \"gray13\": \"hsl(0, 0%, 9.0%)\",\n        \"green1\": \"hsl(136, 50.0%, 98.9%)\",\n        \"green2\": \"hsl(138, 62.5%, 96.9%)\",\n        \"green3\": \"hsl(139, 55.2%, 94.5%)\",\n        \"green4\": \"hsl(140, 48.7%, 91.0%)\",\n        \"green5\": \"hsl(141, 43.7%, 86.0%)\",\n        \"green6\": \"hsl(143, 40.3%, 79.0%)\",\n        \"green7\": \"hsl(146, 38.5%, 69.0%)\",\n        \"green8\": \"hsl(151, 40.2%, 54.1%)\",\n        \"green9\": \"hsl(151, 55.0%, 41.5%)\",\n        \"green10\": \"hsl(152, 57.5%, 37.6%)\",\n        \"green11\": \"hsl(153, 67.0%, 28.5%)\",\n        \"green12\": \"hsl(155, 40.0%, 14.0%)\",\n        \"purple1\": \"hsl(280, 65.0%, 99.4%)\",\n        \"purple2\": \"hsl(276, 100%, 99.0%)\",\n        \"purple3\": \"hsl(276, 83.1%, 97.0%)\",\n        \"purple4\": \"hsl(275, 76.4%, 94.7%)\",\n        \"purple5\": \"hsl(275, 70.8%, 91.8%)\",\n        \"purple6\": \"hsl(274, 65.4%, 87.8%)\",\n        \"purple7\": \"hsl(273, 61.0%, 81.7%)\",\n        \"purple8\": \"hsl(272, 60.0%, 73.5%)\",\n        \"purple9\": \"hsl(272, 51.0%, 54.0%)\",\n        \"purple10\": \"hsl(272, 46.8%, 50.3%)\",\n        \"purple11\": \"hsl(272, 50.0%, 45.8%)\",\n        \"purple12\": \"hsl(272, 66.0%, 16.0%)\",\n        \"red1\": \"hsl(359, 100%, 99.4%)\",\n        \"red2\": \"hsl(359, 100%, 98.6%)\",\n        \"red3\": \"hsl(360, 100%, 96.8%)\",\n        \"red4\": \"hsl(360, 97.9%, 94.8%)\",\n        \"red5\": \"hsl(360, 90.2%, 91.9%)\",\n        \"red6\": \"hsl(360, 81.7%, 87.8%)\",\n        \"red7\": \"hsl(359, 74.2%, 81.7%)\",\n        \"red8\": \"hsl(359, 69.5%, 74.3%)\",\n        \"red9\": \"hsl(358, 75.0%, 59.0%)\",\n        \"red10\": \"hsl(358, 69.4%, 55.2%)\",\n        \"red11\": \"hsl(358, 65.0%, 48.7%)\",\n        \"red12\": \"hsl(354, 50.0%, 14.6%)\",\n        \"yellow1\": \"hsl(60, 54.0%, 98.5%)\",\n        \"yellow2\": \"hsl(52, 100%, 95.5%)\",\n        \"yellow3\": \"hsl(55, 100%, 90.9%)\",\n        \"yellow4\": \"hsl(54, 100%, 86.6%)\",\n        \"yellow5\": \"hsl(52, 97.9%, 82.0%)\",\n        \"yellow6\": \"hsl(50, 89.4%, 76.1%)\",\n        \"yellow7\": \"hsl(47, 80.4%, 68.0%)\",\n        \"yellow8\": \"hsl(48, 100%, 46.1%)\",\n        \"yellow9\": \"hsl(53, 92.0%, 50.0%)\",\n        \"yellow10\": \"hsl(50, 100%, 48.5%)\",\n        \"yellow11\": \"hsl(42, 100%, 29.0%)\",\n        \"yellow12\": \"hsl(40, 55.0%, 13.5%)\",\n        \"brand1\": \"hsl(180, 29%, 17%)\",\n        \"brand2\": \"hsl(180, 36%, 22%)\",\n        \"brand3\": \"hsl(166, 30%, 29%)\",\n        \"brand4\": \"hsl(166, 55%, 31%)\",\n        \"brand5\": \"hsl(171, 96%, 28%)\",\n        \"brand6\": \"hsl(148, 44%, 47%)\",\n        \"brand7\": \"hsl(144, 55%, 57%)\",\n        \"brand8\": \"hsl(144, 73%, 68%)\",\n        \"brand9\": \"hsl(133, 54%, 78%)\",\n        \"brand10\": \"hsl(133, 63%, 83%)\",\n        \"brand11\": \"hsl(122, 53%, 88%)\",\n        \"brand12\": \"hsl(123, 50%, 93%)\",\n        \"brandHighlight\": \"hsl(125, 50%, 96%)\",\n        \"shadowColor\": \"rgba(0,0,0,0.066)\",\n        \"shadowColorHover\": \"rgba(0,0,0,0.066)\",\n        \"shadowColorPress\": \"rgba(0,0,0,0.02)\",\n        \"shadowColorFocus\": \"rgba(0,0,0,0.02)\",\n        \"id\": \"light_yellow\"\n      },\n      \"light_green\": {\n        \"color1\": \"hsl(136, 50.0%, 98.9%)\",\n        \"color2\": \"hsl(138, 62.5%, 96.9%)\",\n        \"color3\": \"hsl(139, 55.2%, 94.5%)\",\n        \"color4\": \"hsl(140, 48.7%, 91.0%)\",\n        \"color5\": \"hsl(141, 43.7%, 86.0%)\",\n        \"color6\": \"hsl(143, 40.3%, 79.0%)\",\n        \"color7\": \"hsl(151, 40.2%, 54.1%)\",\n        \"color8\": \"hsl(151, 55.0%, 41.5%)\",\n        \"color9\": \"hsl(152, 57.5%, 37.6%)\",\n        \"color10\": \"hsl(153, 67.0%, 28.5%)\",\n        \"color11\": \"hsl(155, 40.0%, 14.0%)\",\n        \"color12\": \"hsl(0, 0%, 9.0%)\",\n        \"background\": \"hsl(138, 62.5%, 96.9%)\",\n        \"backgroundHover\": \"hsl(139, 55.2%, 94.5%)\",\n        \"backgroundPress\": \"hsl(140, 48.7%, 91.0%)\",\n        \"backgroundFocus\": \"hsl(141, 43.7%, 86.0%)\",\n        \"backgroundStrong\": \"hsl(136, 50.0%, 98.9%)\",\n        \"backgroundTransparent\": \"hsla(136, 50.0%, 98.9%, 0)\",\n        \"color\": \"hsl(0, 0%, 9.0%)\",\n        \"colorHover\": \"hsl(155, 40.0%, 14.0%)\",\n        \"colorPress\": \"hsl(0, 0%, 9.0%)\",\n        \"colorFocus\": \"hsl(155, 40.0%, 14.0%)\",\n        \"colorTransparent\": \"hsla(155, 40.0%, 14.0%, 0)\",\n        \"borderColor\": \"hsl(140, 48.7%, 91.0%)\",\n        \"borderColorHover\": \"hsl(141, 43.7%, 86.0%)\",\n        \"borderColorFocus\": \"hsl(140, 48.7%, 91.0%)\",\n        \"borderColorPress\": \"hsl(140, 48.7%, 91.0%)\",\n        \"placeholderColor\": \"hsl(152, 57.5%, 37.6%)\",\n        \"outlineColor\": \"hsl(141, 43.7%, 86.0%)\",\n        \"blue1\": \"hsl(206, 100%, 99.2%)\",\n        \"blue2\": \"hsl(210, 100%, 98.0%)\",\n        \"blue3\": \"hsl(209, 100%, 96.5%)\",\n        \"blue4\": \"hsl(210, 98.8%, 94.0%)\",\n        \"blue5\": \"hsl(209, 95.0%, 90.1%)\",\n        \"blue6\": \"hsl(209, 81.2%, 84.5%)\",\n        \"blue7\": \"hsl(208, 77.5%, 76.9%)\",\n        \"blue8\": \"hsl(206, 81.9%, 65.3%)\",\n        \"blue9\": \"hsl(206, 100%, 50.0%)\",\n        \"blue10\": \"hsl(208, 100%, 47.3%)\",\n        \"blue11\": \"hsl(211, 100%, 43.2%)\",\n        \"blue12\": \"hsl(211, 100%, 15.0%)\",\n        \"gray1\": \"hsl(0, 0%, 99.0%)\",\n        \"gray2\": \"hsl(0, 0%, 97.3%)\",\n        \"gray3\": \"hsl(0, 0%, 95.1%)\",\n        \"gray4\": \"hsl(0, 0%, 93.0%)\",\n        \"gray5\": \"hsl(0, 0%, 90.9%)\",\n        \"gray6\": \"hsl(0, 0%, 88.7%)\",\n        \"gray7\": \"hsl(0, 0%, 85.8%)\",\n        \"gray8\": \"hsl(0, 0%, 78.0%)\",\n        \"gray9\": \"hsl(0, 0%, 56.1%)\",\n        \"gray10\": \"hsl(0, 0%, 52.3%)\",\n        \"gray11\": \"hsl(0, 0%, 43.5%)\",\n        \"gray12\": \"hsl(0, 0%, 99.0%)\",\n        \"gray13\": \"hsl(0, 0%, 9.0%)\",\n        \"green1\": \"hsl(136, 50.0%, 98.9%)\",\n        \"green2\": \"hsl(138, 62.5%, 96.9%)\",\n        \"green3\": \"hsl(139, 55.2%, 94.5%)\",\n        \"green4\": \"hsl(140, 48.7%, 91.0%)\",\n        \"green5\": \"hsl(141, 43.7%, 86.0%)\",\n        \"green6\": \"hsl(143, 40.3%, 79.0%)\",\n        \"green7\": \"hsl(146, 38.5%, 69.0%)\",\n        \"green8\": \"hsl(151, 40.2%, 54.1%)\",\n        \"green9\": \"hsl(151, 55.0%, 41.5%)\",\n        \"green10\": \"hsl(152, 57.5%, 37.6%)\",\n        \"green11\": \"hsl(153, 67.0%, 28.5%)\",\n        \"green12\": \"hsl(155, 40.0%, 14.0%)\",\n        \"purple1\": \"hsl(280, 65.0%, 99.4%)\",\n        \"purple2\": \"hsl(276, 100%, 99.0%)\",\n        \"purple3\": \"hsl(276, 83.1%, 97.0%)\",\n        \"purple4\": \"hsl(275, 76.4%, 94.7%)\",\n        \"purple5\": \"hsl(275, 70.8%, 91.8%)\",\n        \"purple6\": \"hsl(274, 65.4%, 87.8%)\",\n        \"purple7\": \"hsl(273, 61.0%, 81.7%)\",\n        \"purple8\": \"hsl(272, 60.0%, 73.5%)\",\n        \"purple9\": \"hsl(272, 51.0%, 54.0%)\",\n        \"purple10\": \"hsl(272, 46.8%, 50.3%)\",\n        \"purple11\": \"hsl(272, 50.0%, 45.8%)\",\n        \"purple12\": \"hsl(272, 66.0%, 16.0%)\",\n        \"red1\": \"hsl(359, 100%, 99.4%)\",\n        \"red2\": \"hsl(359, 100%, 98.6%)\",\n        \"red3\": \"hsl(360, 100%, 96.8%)\",\n        \"red4\": \"hsl(360, 97.9%, 94.8%)\",\n        \"red5\": \"hsl(360, 90.2%, 91.9%)\",\n        \"red6\": \"hsl(360, 81.7%, 87.8%)\",\n        \"red7\": \"hsl(359, 74.2%, 81.7%)\",\n        \"red8\": \"hsl(359, 69.5%, 74.3%)\",\n        \"red9\": \"hsl(358, 75.0%, 59.0%)\",\n        \"red10\": \"hsl(358, 69.4%, 55.2%)\",\n        \"red11\": \"hsl(358, 65.0%, 48.7%)\",\n        \"red12\": \"hsl(354, 50.0%, 14.6%)\",\n        \"yellow1\": \"hsl(60, 54.0%, 98.5%)\",\n        \"yellow2\": \"hsl(52, 100%, 95.5%)\",\n        \"yellow3\": \"hsl(55, 100%, 90.9%)\",\n        \"yellow4\": \"hsl(54, 100%, 86.6%)\",\n        \"yellow5\": \"hsl(52, 97.9%, 82.0%)\",\n        \"yellow6\": \"hsl(50, 89.4%, 76.1%)\",\n        \"yellow7\": \"hsl(47, 80.4%, 68.0%)\",\n        \"yellow8\": \"hsl(48, 100%, 46.1%)\",\n        \"yellow9\": \"hsl(53, 92.0%, 50.0%)\",\n        \"yellow10\": \"hsl(50, 100%, 48.5%)\",\n        \"yellow11\": \"hsl(42, 100%, 29.0%)\",\n        \"yellow12\": \"hsl(40, 55.0%, 13.5%)\",\n        \"brand1\": \"hsl(180, 29%, 17%)\",\n        \"brand2\": \"hsl(180, 36%, 22%)\",\n        \"brand3\": \"hsl(166, 30%, 29%)\",\n        \"brand4\": \"hsl(166, 55%, 31%)\",\n        \"brand5\": \"hsl(171, 96%, 28%)\",\n        \"brand6\": \"hsl(148, 44%, 47%)\",\n        \"brand7\": \"hsl(144, 55%, 57%)\",\n        \"brand8\": \"hsl(144, 73%, 68%)\",\n        \"brand9\": \"hsl(133, 54%, 78%)\",\n        \"brand10\": \"hsl(133, 63%, 83%)\",\n        \"brand11\": \"hsl(122, 53%, 88%)\",\n        \"brand12\": \"hsl(123, 50%, 93%)\",\n        \"brandHighlight\": \"hsl(125, 50%, 96%)\",\n        \"shadowColor\": \"rgba(0,0,0,0.066)\",\n        \"shadowColorHover\": \"rgba(0,0,0,0.066)\",\n        \"shadowColorPress\": \"rgba(0,0,0,0.02)\",\n        \"shadowColorFocus\": \"rgba(0,0,0,0.02)\",\n        \"id\": \"light_green\"\n      },\n      \"light_blue\": {\n        \"color1\": \"hsl(206, 100%, 99.2%)\",\n        \"color2\": \"hsl(210, 100%, 98.0%)\",\n        \"color3\": \"hsl(209, 100%, 96.5%)\",\n        \"color4\": \"hsl(210, 98.8%, 94.0%)\",\n        \"color5\": \"hsl(209, 95.0%, 90.1%)\",\n        \"color6\": \"hsl(209, 81.2%, 84.5%)\",\n        \"color7\": \"hsl(206, 81.9%, 65.3%)\",\n        \"color8\": \"hsl(206, 100%, 50.0%)\",\n        \"color9\": \"hsl(208, 100%, 47.3%)\",\n        \"color10\": \"hsl(211, 100%, 43.2%)\",\n        \"color11\": \"hsl(211, 100%, 15.0%)\",\n        \"color12\": \"hsl(0, 0%, 9.0%)\",\n        \"background\": \"hsl(210, 100%, 98.0%)\",\n        \"backgroundHover\": \"hsl(209, 100%, 96.5%)\",\n        \"backgroundPress\": \"hsl(210, 98.8%, 94.0%)\",\n        \"backgroundFocus\": \"hsl(209, 95.0%, 90.1%)\",\n        \"backgroundStrong\": \"hsl(206, 100%, 99.2%)\",\n        \"backgroundTransparent\": \"hsla(206, 100%, 99.2%, 0)\",\n        \"color\": \"hsl(0, 0%, 9.0%)\",\n        \"colorHover\": \"hsl(211, 100%, 15.0%)\",\n        \"colorPress\": \"hsl(0, 0%, 9.0%)\",\n        \"colorFocus\": \"hsl(211, 100%, 15.0%)\",\n        \"colorTransparent\": \"hsla(211, 100%, 15.0%, 0)\",\n        \"borderColor\": \"hsl(210, 98.8%, 94.0%)\",\n        \"borderColorHover\": \"hsl(209, 95.0%, 90.1%)\",\n        \"borderColorFocus\": \"hsl(210, 98.8%, 94.0%)\",\n        \"borderColorPress\": \"hsl(210, 98.8%, 94.0%)\",\n        \"placeholderColor\": \"hsl(208, 100%, 47.3%)\",\n        \"outlineColor\": \"hsl(209, 95.0%, 90.1%)\",\n        \"blue1\": \"hsl(206, 100%, 99.2%)\",\n        \"blue2\": \"hsl(210, 100%, 98.0%)\",\n        \"blue3\": \"hsl(209, 100%, 96.5%)\",\n        \"blue4\": \"hsl(210, 98.8%, 94.0%)\",\n        \"blue5\": \"hsl(209, 95.0%, 90.1%)\",\n        \"blue6\": \"hsl(209, 81.2%, 84.5%)\",\n        \"blue7\": \"hsl(208, 77.5%, 76.9%)\",\n        \"blue8\": \"hsl(206, 81.9%, 65.3%)\",\n        \"blue9\": \"hsl(206, 100%, 50.0%)\",\n        \"blue10\": \"hsl(208, 100%, 47.3%)\",\n        \"blue11\": \"hsl(211, 100%, 43.2%)\",\n        \"blue12\": \"hsl(211, 100%, 15.0%)\",\n        \"gray1\": \"hsl(0, 0%, 99.0%)\",\n        \"gray2\": \"hsl(0, 0%, 97.3%)\",\n        \"gray3\": \"hsl(0, 0%, 95.1%)\",\n        \"gray4\": \"hsl(0, 0%, 93.0%)\",\n        \"gray5\": \"hsl(0, 0%, 90.9%)\",\n        \"gray6\": \"hsl(0, 0%, 88.7%)\",\n        \"gray7\": \"hsl(0, 0%, 85.8%)\",\n        \"gray8\": \"hsl(0, 0%, 78.0%)\",\n        \"gray9\": \"hsl(0, 0%, 56.1%)\",\n        \"gray10\": \"hsl(0, 0%, 52.3%)\",\n        \"gray11\": \"hsl(0, 0%, 43.5%)\",\n        \"gray12\": \"hsl(0, 0%, 99.0%)\",\n        \"gray13\": \"hsl(0, 0%, 9.0%)\",\n        \"green1\": \"hsl(136, 50.0%, 98.9%)\",\n        \"green2\": \"hsl(138, 62.5%, 96.9%)\",\n        \"green3\": \"hsl(139, 55.2%, 94.5%)\",\n        \"green4\": \"hsl(140, 48.7%, 91.0%)\",\n        \"green5\": \"hsl(141, 43.7%, 86.0%)\",\n        \"green6\": \"hsl(143, 40.3%, 79.0%)\",\n        \"green7\": \"hsl(146, 38.5%, 69.0%)\",\n        \"green8\": \"hsl(151, 40.2%, 54.1%)\",\n        \"green9\": \"hsl(151, 55.0%, 41.5%)\",\n        \"green10\": \"hsl(152, 57.5%, 37.6%)\",\n        \"green11\": \"hsl(153, 67.0%, 28.5%)\",\n        \"green12\": \"hsl(155, 40.0%, 14.0%)\",\n        \"purple1\": \"hsl(280, 65.0%, 99.4%)\",\n        \"purple2\": \"hsl(276, 100%, 99.0%)\",\n        \"purple3\": \"hsl(276, 83.1%, 97.0%)\",\n        \"purple4\": \"hsl(275, 76.4%, 94.7%)\",\n        \"purple5\": \"hsl(275, 70.8%, 91.8%)\",\n        \"purple6\": \"hsl(274, 65.4%, 87.8%)\",\n        \"purple7\": \"hsl(273, 61.0%, 81.7%)\",\n        \"purple8\": \"hsl(272, 60.0%, 73.5%)\",\n        \"purple9\": \"hsl(272, 51.0%, 54.0%)\",\n        \"purple10\": \"hsl(272, 46.8%, 50.3%)\",\n        \"purple11\": \"hsl(272, 50.0%, 45.8%)\",\n        \"purple12\": \"hsl(272, 66.0%, 16.0%)\",\n        \"red1\": \"hsl(359, 100%, 99.4%)\",\n        \"red2\": \"hsl(359, 100%, 98.6%)\",\n        \"red3\": \"hsl(360, 100%, 96.8%)\",\n        \"red4\": \"hsl(360, 97.9%, 94.8%)\",\n        \"red5\": \"hsl(360, 90.2%, 91.9%)\",\n        \"red6\": \"hsl(360, 81.7%, 87.8%)\",\n        \"red7\": \"hsl(359, 74.2%, 81.7%)\",\n        \"red8\": \"hsl(359, 69.5%, 74.3%)\",\n        \"red9\": \"hsl(358, 75.0%, 59.0%)\",\n        \"red10\": \"hsl(358, 69.4%, 55.2%)\",\n        \"red11\": \"hsl(358, 65.0%, 48.7%)\",\n        \"red12\": \"hsl(354, 50.0%, 14.6%)\",\n        \"yellow1\": \"hsl(60, 54.0%, 98.5%)\",\n        \"yellow2\": \"hsl(52, 100%, 95.5%)\",\n        \"yellow3\": \"hsl(55, 100%, 90.9%)\",\n        \"yellow4\": \"hsl(54, 100%, 86.6%)\",\n        \"yellow5\": \"hsl(52, 97.9%, 82.0%)\",\n        \"yellow6\": \"hsl(50, 89.4%, 76.1%)\",\n        \"yellow7\": \"hsl(47, 80.4%, 68.0%)\",\n        \"yellow8\": \"hsl(48, 100%, 46.1%)\",\n        \"yellow9\": \"hsl(53, 92.0%, 50.0%)\",\n        \"yellow10\": \"hsl(50, 100%, 48.5%)\",\n        \"yellow11\": \"hsl(42, 100%, 29.0%)\",\n        \"yellow12\": \"hsl(40, 55.0%, 13.5%)\",\n        \"brand1\": \"hsl(180, 29%, 17%)\",\n        \"brand2\": \"hsl(180, 36%, 22%)\",\n        \"brand3\": \"hsl(166, 30%, 29%)\",\n        \"brand4\": \"hsl(166, 55%, 31%)\",\n        \"brand5\": \"hsl(171, 96%, 28%)\",\n        \"brand6\": \"hsl(148, 44%, 47%)\",\n        \"brand7\": \"hsl(144, 55%, 57%)\",\n        \"brand8\": \"hsl(144, 73%, 68%)\",\n        \"brand9\": \"hsl(133, 54%, 78%)\",\n        \"brand10\": \"hsl(133, 63%, 83%)\",\n        \"brand11\": \"hsl(122, 53%, 88%)\",\n        \"brand12\": \"hsl(123, 50%, 93%)\",\n        \"brandHighlight\": \"hsl(125, 50%, 96%)\",\n        \"shadowColor\": \"rgba(0,0,0,0.066)\",\n        \"shadowColorHover\": \"rgba(0,0,0,0.066)\",\n        \"shadowColorPress\": \"rgba(0,0,0,0.02)\",\n        \"shadowColorFocus\": \"rgba(0,0,0,0.02)\",\n        \"id\": \"light_blue\"\n      },\n      \"light_purple\": {\n        \"color1\": \"hsl(280, 65.0%, 99.4%)\",\n        \"color2\": \"hsl(276, 100%, 99.0%)\",\n        \"color3\": \"hsl(276, 83.1%, 97.0%)\",\n        \"color4\": \"hsl(275, 76.4%, 94.7%)\",\n        \"color5\": \"hsl(275, 70.8%, 91.8%)\",\n        \"color6\": \"hsl(274, 65.4%, 87.8%)\",\n        \"color7\": \"hsl(272, 60.0%, 73.5%)\",\n        \"color8\": \"hsl(272, 51.0%, 54.0%)\",\n        \"color9\": \"hsl(272, 46.8%, 50.3%)\",\n        \"color10\": \"hsl(272, 50.0%, 45.8%)\",\n        \"color11\": \"hsl(272, 66.0%, 16.0%)\",\n        \"color12\": \"hsl(0, 0%, 9.0%)\",\n        \"background\": \"hsl(276, 100%, 99.0%)\",\n        \"backgroundHover\": \"hsl(276, 83.1%, 97.0%)\",\n        \"backgroundPress\": \"hsl(275, 76.4%, 94.7%)\",\n        \"backgroundFocus\": \"hsl(275, 70.8%, 91.8%)\",\n        \"backgroundStrong\": \"hsl(280, 65.0%, 99.4%)\",\n        \"backgroundTransparent\": \"hsla(280, 65.0%, 99.4%, 0)\",\n        \"color\": \"hsl(0, 0%, 9.0%)\",\n        \"colorHover\": \"hsl(272, 66.0%, 16.0%)\",\n        \"colorPress\": \"hsl(0, 0%, 9.0%)\",\n        \"colorFocus\": \"hsl(272, 66.0%, 16.0%)\",\n        \"colorTransparent\": \"hsla(272, 66.0%, 16.0%, 0)\",\n        \"borderColor\": \"hsl(275, 76.4%, 94.7%)\",\n        \"borderColorHover\": \"hsl(275, 70.8%, 91.8%)\",\n        \"borderColorFocus\": \"hsl(275, 76.4%, 94.7%)\",\n        \"borderColorPress\": \"hsl(275, 76.4%, 94.7%)\",\n        \"placeholderColor\": \"hsl(272, 46.8%, 50.3%)\",\n        \"outlineColor\": \"hsl(275, 70.8%, 91.8%)\",\n        \"blue1\": \"hsl(206, 100%, 99.2%)\",\n        \"blue2\": \"hsl(210, 100%, 98.0%)\",\n        \"blue3\": \"hsl(209, 100%, 96.5%)\",\n        \"blue4\": \"hsl(210, 98.8%, 94.0%)\",\n        \"blue5\": \"hsl(209, 95.0%, 90.1%)\",\n        \"blue6\": \"hsl(209, 81.2%, 84.5%)\",\n        \"blue7\": \"hsl(208, 77.5%, 76.9%)\",\n        \"blue8\": \"hsl(206, 81.9%, 65.3%)\",\n        \"blue9\": \"hsl(206, 100%, 50.0%)\",\n        \"blue10\": \"hsl(208, 100%, 47.3%)\",\n        \"blue11\": \"hsl(211, 100%, 43.2%)\",\n        \"blue12\": \"hsl(211, 100%, 15.0%)\",\n        \"gray1\": \"hsl(0, 0%, 99.0%)\",\n        \"gray2\": \"hsl(0, 0%, 97.3%)\",\n        \"gray3\": \"hsl(0, 0%, 95.1%)\",\n        \"gray4\": \"hsl(0, 0%, 93.0%)\",\n        \"gray5\": \"hsl(0, 0%, 90.9%)\",\n        \"gray6\": \"hsl(0, 0%, 88.7%)\",\n        \"gray7\": \"hsl(0, 0%, 85.8%)\",\n        \"gray8\": \"hsl(0, 0%, 78.0%)\",\n        \"gray9\": \"hsl(0, 0%, 56.1%)\",\n        \"gray10\": \"hsl(0, 0%, 52.3%)\",\n        \"gray11\": \"hsl(0, 0%, 43.5%)\",\n        \"gray12\": \"hsl(0, 0%, 99.0%)\",\n        \"gray13\": \"hsl(0, 0%, 9.0%)\",\n        \"green1\": \"hsl(136, 50.0%, 98.9%)\",\n        \"green2\": \"hsl(138, 62.5%, 96.9%)\",\n        \"green3\": \"hsl(139, 55.2%, 94.5%)\",\n        \"green4\": \"hsl(140, 48.7%, 91.0%)\",\n        \"green5\": \"hsl(141, 43.7%, 86.0%)\",\n        \"green6\": \"hsl(143, 40.3%, 79.0%)\",\n        \"green7\": \"hsl(146, 38.5%, 69.0%)\",\n        \"green8\": \"hsl(151, 40.2%, 54.1%)\",\n        \"green9\": \"hsl(151, 55.0%, 41.5%)\",\n        \"green10\": \"hsl(152, 57.5%, 37.6%)\",\n        \"green11\": \"hsl(153, 67.0%, 28.5%)\",\n        \"green12\": \"hsl(155, 40.0%, 14.0%)\",\n        \"purple1\": \"hsl(280, 65.0%, 99.4%)\",\n        \"purple2\": \"hsl(276, 100%, 99.0%)\",\n        \"purple3\": \"hsl(276, 83.1%, 97.0%)\",\n        \"purple4\": \"hsl(275, 76.4%, 94.7%)\",\n        \"purple5\": \"hsl(275, 70.8%, 91.8%)\",\n        \"purple6\": \"hsl(274, 65.4%, 87.8%)\",\n        \"purple7\": \"hsl(273, 61.0%, 81.7%)\",\n        \"purple8\": \"hsl(272, 60.0%, 73.5%)\",\n        \"purple9\": \"hsl(272, 51.0%, 54.0%)\",\n        \"purple10\": \"hsl(272, 46.8%, 50.3%)\",\n        \"purple11\": \"hsl(272, 50.0%, 45.8%)\",\n        \"purple12\": \"hsl(272, 66.0%, 16.0%)\",\n        \"red1\": \"hsl(359, 100%, 99.4%)\",\n        \"red2\": \"hsl(359, 100%, 98.6%)\",\n        \"red3\": \"hsl(360, 100%, 96.8%)\",\n        \"red4\": \"hsl(360, 97.9%, 94.8%)\",\n        \"red5\": \"hsl(360, 90.2%, 91.9%)\",\n        \"red6\": \"hsl(360, 81.7%, 87.8%)\",\n        \"red7\": \"hsl(359, 74.2%, 81.7%)\",\n        \"red8\": \"hsl(359, 69.5%, 74.3%)\",\n        \"red9\": \"hsl(358, 75.0%, 59.0%)\",\n        \"red10\": \"hsl(358, 69.4%, 55.2%)\",\n        \"red11\": \"hsl(358, 65.0%, 48.7%)\",\n        \"red12\": \"hsl(354, 50.0%, 14.6%)\",\n        \"yellow1\": \"hsl(60, 54.0%, 98.5%)\",\n        \"yellow2\": \"hsl(52, 100%, 95.5%)\",\n        \"yellow3\": \"hsl(55, 100%, 90.9%)\",\n        \"yellow4\": \"hsl(54, 100%, 86.6%)\",\n        \"yellow5\": \"hsl(52, 97.9%, 82.0%)\",\n        \"yellow6\": \"hsl(50, 89.4%, 76.1%)\",\n        \"yellow7\": \"hsl(47, 80.4%, 68.0%)\",\n        \"yellow8\": \"hsl(48, 100%, 46.1%)\",\n        \"yellow9\": \"hsl(53, 92.0%, 50.0%)\",\n        \"yellow10\": \"hsl(50, 100%, 48.5%)\",\n        \"yellow11\": \"hsl(42, 100%, 29.0%)\",\n        \"yellow12\": \"hsl(40, 55.0%, 13.5%)\",\n        \"brand1\": \"hsl(180, 29%, 17%)\",\n        \"brand2\": \"hsl(180, 36%, 22%)\",\n        \"brand3\": \"hsl(166, 30%, 29%)\",\n        \"brand4\": \"hsl(166, 55%, 31%)\",\n        \"brand5\": \"hsl(171, 96%, 28%)\",\n        \"brand6\": \"hsl(148, 44%, 47%)\",\n        \"brand7\": \"hsl(144, 55%, 57%)\",\n        \"brand8\": \"hsl(144, 73%, 68%)\",\n        \"brand9\": \"hsl(133, 54%, 78%)\",\n        \"brand10\": \"hsl(133, 63%, 83%)\",\n        \"brand11\": \"hsl(122, 53%, 88%)\",\n        \"brand12\": \"hsl(123, 50%, 93%)\",\n        \"brandHighlight\": \"hsl(125, 50%, 96%)\",\n        \"shadowColor\": \"rgba(0,0,0,0.066)\",\n        \"shadowColorHover\": \"rgba(0,0,0,0.066)\",\n        \"shadowColorPress\": \"rgba(0,0,0,0.02)\",\n        \"shadowColorFocus\": \"rgba(0,0,0,0.02)\",\n        \"id\": \"light_purple\"\n      },\n      \"light_red\": {\n        \"color1\": \"hsl(359, 100%, 99.4%)\",\n        \"color2\": \"hsl(359, 100%, 98.6%)\",\n        \"color3\": \"hsl(360, 100%, 96.8%)\",\n        \"color4\": \"hsl(360, 97.9%, 94.8%)\",\n        \"color5\": \"hsl(360, 90.2%, 91.9%)\",\n        \"color6\": \"hsl(360, 81.7%, 87.8%)\",\n        \"color7\": \"hsl(359, 69.5%, 74.3%)\",\n        \"color8\": \"hsl(358, 75.0%, 59.0%)\",\n        \"color9\": \"hsl(358, 69.4%, 55.2%)\",\n        \"color10\": \"hsl(358, 65.0%, 48.7%)\",\n        \"color11\": \"hsl(354, 50.0%, 14.6%)\",\n        \"color12\": \"hsl(0, 0%, 9.0%)\",\n        \"background\": \"hsl(359, 100%, 98.6%)\",\n        \"backgroundHover\": \"hsl(360, 100%, 96.8%)\",\n        \"backgroundPress\": \"hsl(360, 97.9%, 94.8%)\",\n        \"backgroundFocus\": \"hsl(360, 90.2%, 91.9%)\",\n        \"backgroundStrong\": \"hsl(359, 100%, 99.4%)\",\n        \"backgroundTransparent\": \"hsla(359, 100%, 99.4%, 0)\",\n        \"color\": \"hsl(0, 0%, 9.0%)\",\n        \"colorHover\": \"hsl(354, 50.0%, 14.6%)\",\n        \"colorPress\": \"hsl(0, 0%, 9.0%)\",\n        \"colorFocus\": \"hsl(354, 50.0%, 14.6%)\",\n        \"colorTransparent\": \"hsla(354, 50.0%, 14.6%, 0)\",\n        \"borderColor\": \"hsl(360, 97.9%, 94.8%)\",\n        \"borderColorHover\": \"hsl(360, 90.2%, 91.9%)\",\n        \"borderColorFocus\": \"hsl(360, 97.9%, 94.8%)\",\n        \"borderColorPress\": \"hsl(360, 97.9%, 94.8%)\",\n        \"placeholderColor\": \"hsl(358, 69.4%, 55.2%)\",\n        \"outlineColor\": \"hsl(360, 90.2%, 91.9%)\",\n        \"blue1\": \"hsl(206, 100%, 99.2%)\",\n        \"blue2\": \"hsl(210, 100%, 98.0%)\",\n        \"blue3\": \"hsl(209, 100%, 96.5%)\",\n        \"blue4\": \"hsl(210, 98.8%, 94.0%)\",\n        \"blue5\": \"hsl(209, 95.0%, 90.1%)\",\n        \"blue6\": \"hsl(209, 81.2%, 84.5%)\",\n        \"blue7\": \"hsl(208, 77.5%, 76.9%)\",\n        \"blue8\": \"hsl(206, 81.9%, 65.3%)\",\n        \"blue9\": \"hsl(206, 100%, 50.0%)\",\n        \"blue10\": \"hsl(208, 100%, 47.3%)\",\n        \"blue11\": \"hsl(211, 100%, 43.2%)\",\n        \"blue12\": \"hsl(211, 100%, 15.0%)\",\n        \"gray1\": \"hsl(0, 0%, 99.0%)\",\n        \"gray2\": \"hsl(0, 0%, 97.3%)\",\n        \"gray3\": \"hsl(0, 0%, 95.1%)\",\n        \"gray4\": \"hsl(0, 0%, 93.0%)\",\n        \"gray5\": \"hsl(0, 0%, 90.9%)\",\n        \"gray6\": \"hsl(0, 0%, 88.7%)\",\n        \"gray7\": \"hsl(0, 0%, 85.8%)\",\n        \"gray8\": \"hsl(0, 0%, 78.0%)\",\n        \"gray9\": \"hsl(0, 0%, 56.1%)\",\n        \"gray10\": \"hsl(0, 0%, 52.3%)\",\n        \"gray11\": \"hsl(0, 0%, 43.5%)\",\n        \"gray12\": \"hsl(0, 0%, 99.0%)\",\n        \"gray13\": \"hsl(0, 0%, 9.0%)\",\n        \"green1\": \"hsl(136, 50.0%, 98.9%)\",\n        \"green2\": \"hsl(138, 62.5%, 96.9%)\",\n        \"green3\": \"hsl(139, 55.2%, 94.5%)\",\n        \"green4\": \"hsl(140, 48.7%, 91.0%)\",\n        \"green5\": \"hsl(141, 43.7%, 86.0%)\",\n        \"green6\": \"hsl(143, 40.3%, 79.0%)\",\n        \"green7\": \"hsl(146, 38.5%, 69.0%)\",\n        \"green8\": \"hsl(151, 40.2%, 54.1%)\",\n        \"green9\": \"hsl(151, 55.0%, 41.5%)\",\n        \"green10\": \"hsl(152, 57.5%, 37.6%)\",\n        \"green11\": \"hsl(153, 67.0%, 28.5%)\",\n        \"green12\": \"hsl(155, 40.0%, 14.0%)\",\n        \"purple1\": \"hsl(280, 65.0%, 99.4%)\",\n        \"purple2\": \"hsl(276, 100%, 99.0%)\",\n        \"purple3\": \"hsl(276, 83.1%, 97.0%)\",\n        \"purple4\": \"hsl(275, 76.4%, 94.7%)\",\n        \"purple5\": \"hsl(275, 70.8%, 91.8%)\",\n        \"purple6\": \"hsl(274, 65.4%, 87.8%)\",\n        \"purple7\": \"hsl(273, 61.0%, 81.7%)\",\n        \"purple8\": \"hsl(272, 60.0%, 73.5%)\",\n        \"purple9\": \"hsl(272, 51.0%, 54.0%)\",\n        \"purple10\": \"hsl(272, 46.8%, 50.3%)\",\n        \"purple11\": \"hsl(272, 50.0%, 45.8%)\",\n        \"purple12\": \"hsl(272, 66.0%, 16.0%)\",\n        \"red1\": \"hsl(359, 100%, 99.4%)\",\n        \"red2\": \"hsl(359, 100%, 98.6%)\",\n        \"red3\": \"hsl(360, 100%, 96.8%)\",\n        \"red4\": \"hsl(360, 97.9%, 94.8%)\",\n        \"red5\": \"hsl(360, 90.2%, 91.9%)\",\n        \"red6\": \"hsl(360, 81.7%, 87.8%)\",\n        \"red7\": \"hsl(359, 74.2%, 81.7%)\",\n        \"red8\": \"hsl(359, 69.5%, 74.3%)\",\n        \"red9\": \"hsl(358, 75.0%, 59.0%)\",\n        \"red10\": \"hsl(358, 69.4%, 55.2%)\",\n        \"red11\": \"hsl(358, 65.0%, 48.7%)\",\n        \"red12\": \"hsl(354, 50.0%, 14.6%)\",\n        \"yellow1\": \"hsl(60, 54.0%, 98.5%)\",\n        \"yellow2\": \"hsl(52, 100%, 95.5%)\",\n        \"yellow3\": \"hsl(55, 100%, 90.9%)\",\n        \"yellow4\": \"hsl(54, 100%, 86.6%)\",\n        \"yellow5\": \"hsl(52, 97.9%, 82.0%)\",\n        \"yellow6\": \"hsl(50, 89.4%, 76.1%)\",\n        \"yellow7\": \"hsl(47, 80.4%, 68.0%)\",\n        \"yellow8\": \"hsl(48, 100%, 46.1%)\",\n        \"yellow9\": \"hsl(53, 92.0%, 50.0%)\",\n        \"yellow10\": \"hsl(50, 100%, 48.5%)\",\n        \"yellow11\": \"hsl(42, 100%, 29.0%)\",\n        \"yellow12\": \"hsl(40, 55.0%, 13.5%)\",\n        \"brand1\": \"hsl(180, 29%, 17%)\",\n        \"brand2\": \"hsl(180, 36%, 22%)\",\n        \"brand3\": \"hsl(166, 30%, 29%)\",\n        \"brand4\": \"hsl(166, 55%, 31%)\",\n        \"brand5\": \"hsl(171, 96%, 28%)\",\n        \"brand6\": \"hsl(148, 44%, 47%)\",\n        \"brand7\": \"hsl(144, 55%, 57%)\",\n        \"brand8\": \"hsl(144, 73%, 68%)\",\n        \"brand9\": \"hsl(133, 54%, 78%)\",\n        \"brand10\": \"hsl(133, 63%, 83%)\",\n        \"brand11\": \"hsl(122, 53%, 88%)\",\n        \"brand12\": \"hsl(123, 50%, 93%)\",\n        \"brandHighlight\": \"hsl(125, 50%, 96%)\",\n        \"shadowColor\": \"rgba(0,0,0,0.066)\",\n        \"shadowColorHover\": \"rgba(0,0,0,0.066)\",\n        \"shadowColorPress\": \"rgba(0,0,0,0.02)\",\n        \"shadowColorFocus\": \"rgba(0,0,0,0.02)\",\n        \"id\": \"light_red\"\n      },\n      \"light_brand\": {\n        \"color1\": \"hsl(180, 29%, 17%)\",\n        \"color2\": \"hsl(180, 36%, 22%)\",\n        \"color3\": \"hsl(166, 30%, 29%)\",\n        \"color4\": \"hsl(166, 55%, 31%)\",\n        \"color5\": \"hsl(171, 96%, 28%)\",\n        \"color6\": \"hsl(148, 44%, 47%)\",\n        \"color7\": \"hsl(133, 54%, 78%)\",\n        \"color8\": \"hsl(133, 63%, 83%)\",\n        \"color9\": \"hsl(122, 53%, 88%)\",\n        \"color10\": \"hsl(123, 50%, 93%)\",\n        \"color11\": \"hsl(125, 50%, 96%)\",\n        \"color12\": \"hsl(0, 0%, 9.0%)\",\n        \"background\": \"hsl(180, 36%, 22%)\",\n        \"backgroundHover\": \"hsl(166, 30%, 29%)\",\n        \"backgroundPress\": \"hsl(166, 55%, 31%)\",\n        \"backgroundFocus\": \"hsl(171, 96%, 28%)\",\n        \"backgroundStrong\": \"hsl(180, 29%, 17%)\",\n        \"backgroundTransparent\": \"hsla(180, 29%, 17%, 0)\",\n        \"color\": \"hsl(0, 0%, 9.0%)\",\n        \"colorHover\": \"hsl(125, 50%, 96%)\",\n        \"colorPress\": \"hsl(0, 0%, 9.0%)\",\n        \"colorFocus\": \"hsl(125, 50%, 96%)\",\n        \"colorTransparent\": \"hsla(125, 50%, 96%, 0)\",\n        \"borderColor\": \"hsl(166, 55%, 31%)\",\n        \"borderColorHover\": \"hsl(171, 96%, 28%)\",\n        \"borderColorFocus\": \"hsl(166, 55%, 31%)\",\n        \"borderColorPress\": \"hsl(166, 55%, 31%)\",\n        \"placeholderColor\": \"hsl(122, 53%, 88%)\",\n        \"outlineColor\": \"hsl(171, 96%, 28%)\",\n        \"blue1\": \"hsl(206, 100%, 99.2%)\",\n        \"blue2\": \"hsl(210, 100%, 98.0%)\",\n        \"blue3\": \"hsl(209, 100%, 96.5%)\",\n        \"blue4\": \"hsl(210, 98.8%, 94.0%)\",\n        \"blue5\": \"hsl(209, 95.0%, 90.1%)\",\n        \"blue6\": \"hsl(209, 81.2%, 84.5%)\",\n        \"blue7\": \"hsl(208, 77.5%, 76.9%)\",\n        \"blue8\": \"hsl(206, 81.9%, 65.3%)\",\n        \"blue9\": \"hsl(206, 100%, 50.0%)\",\n        \"blue10\": \"hsl(208, 100%, 47.3%)\",\n        \"blue11\": \"hsl(211, 100%, 43.2%)\",\n        \"blue12\": \"hsl(211, 100%, 15.0%)\",\n        \"gray1\": \"hsl(0, 0%, 99.0%)\",\n        \"gray2\": \"hsl(0, 0%, 97.3%)\",\n        \"gray3\": \"hsl(0, 0%, 95.1%)\",\n        \"gray4\": \"hsl(0, 0%, 93.0%)\",\n        \"gray5\": \"hsl(0, 0%, 90.9%)\",\n        \"gray6\": \"hsl(0, 0%, 88.7%)\",\n        \"gray7\": \"hsl(0, 0%, 85.8%)\",\n        \"gray8\": \"hsl(0, 0%, 78.0%)\",\n        \"gray9\": \"hsl(0, 0%, 56.1%)\",\n        \"gray10\": \"hsl(0, 0%, 52.3%)\",\n        \"gray11\": \"hsl(0, 0%, 43.5%)\",\n        \"gray12\": \"hsl(0, 0%, 99.0%)\",\n        \"gray13\": \"hsl(0, 0%, 9.0%)\",\n        \"green1\": \"hsl(136, 50.0%, 98.9%)\",\n        \"green2\": \"hsl(138, 62.5%, 96.9%)\",\n        \"green3\": \"hsl(139, 55.2%, 94.5%)\",\n        \"green4\": \"hsl(140, 48.7%, 91.0%)\",\n        \"green5\": \"hsl(141, 43.7%, 86.0%)\",\n        \"green6\": \"hsl(143, 40.3%, 79.0%)\",\n        \"green7\": \"hsl(146, 38.5%, 69.0%)\",\n        \"green8\": \"hsl(151, 40.2%, 54.1%)\",\n        \"green9\": \"hsl(151, 55.0%, 41.5%)\",\n        \"green10\": \"hsl(152, 57.5%, 37.6%)\",\n        \"green11\": \"hsl(153, 67.0%, 28.5%)\",\n        \"green12\": \"hsl(155, 40.0%, 14.0%)\",\n        \"purple1\": \"hsl(280, 65.0%, 99.4%)\",\n        \"purple2\": \"hsl(276, 100%, 99.0%)\",\n        \"purple3\": \"hsl(276, 83.1%, 97.0%)\",\n        \"purple4\": \"hsl(275, 76.4%, 94.7%)\",\n        \"purple5\": \"hsl(275, 70.8%, 91.8%)\",\n        \"purple6\": \"hsl(274, 65.4%, 87.8%)\",\n        \"purple7\": \"hsl(273, 61.0%, 81.7%)\",\n        \"purple8\": \"hsl(272, 60.0%, 73.5%)\",\n        \"purple9\": \"hsl(272, 51.0%, 54.0%)\",\n        \"purple10\": \"hsl(272, 46.8%, 50.3%)\",\n        \"purple11\": \"hsl(272, 50.0%, 45.8%)\",\n        \"purple12\": \"hsl(272, 66.0%, 16.0%)\",\n        \"red1\": \"hsl(359, 100%, 99.4%)\",\n        \"red2\": \"hsl(359, 100%, 98.6%)\",\n        \"red3\": \"hsl(360, 100%, 96.8%)\",\n        \"red4\": \"hsl(360, 97.9%, 94.8%)\",\n        \"red5\": \"hsl(360, 90.2%, 91.9%)\",\n        \"red6\": \"hsl(360, 81.7%, 87.8%)\",\n        \"red7\": \"hsl(359, 74.2%, 81.7%)\",\n        \"red8\": \"hsl(359, 69.5%, 74.3%)\",\n        \"red9\": \"hsl(358, 75.0%, 59.0%)\",\n        \"red10\": \"hsl(358, 69.4%, 55.2%)\",\n        \"red11\": \"hsl(358, 65.0%, 48.7%)\",\n        \"red12\": \"hsl(354, 50.0%, 14.6%)\",\n        \"yellow1\": \"hsl(60, 54.0%, 98.5%)\",\n        \"yellow2\": \"hsl(52, 100%, 95.5%)\",\n        \"yellow3\": \"hsl(55, 100%, 90.9%)\",\n        \"yellow4\": \"hsl(54, 100%, 86.6%)\",\n        \"yellow5\": \"hsl(52, 97.9%, 82.0%)\",\n        \"yellow6\": \"hsl(50, 89.4%, 76.1%)\",\n        \"yellow7\": \"hsl(47, 80.4%, 68.0%)\",\n        \"yellow8\": \"hsl(48, 100%, 46.1%)\",\n        \"yellow9\": \"hsl(53, 92.0%, 50.0%)\",\n        \"yellow10\": \"hsl(50, 100%, 48.5%)\",\n        \"yellow11\": \"hsl(42, 100%, 29.0%)\",\n        \"yellow12\": \"hsl(40, 55.0%, 13.5%)\",\n        \"brand1\": \"hsl(180, 29%, 17%)\",\n        \"brand2\": \"hsl(180, 36%, 22%)\",\n        \"brand3\": \"hsl(166, 30%, 29%)\",\n        \"brand4\": \"hsl(166, 55%, 31%)\",\n        \"brand5\": \"hsl(171, 96%, 28%)\",\n        \"brand6\": \"hsl(148, 44%, 47%)\",\n        \"brand7\": \"hsl(144, 55%, 57%)\",\n        \"brand8\": \"hsl(144, 73%, 68%)\",\n        \"brand9\": \"hsl(133, 54%, 78%)\",\n        \"brand10\": \"hsl(133, 63%, 83%)\",\n        \"brand11\": \"hsl(122, 53%, 88%)\",\n        \"brand12\": \"hsl(123, 50%, 93%)\",\n        \"brandHighlight\": \"hsl(125, 50%, 96%)\",\n        \"shadowColor\": \"rgba(0,0,0,0.066)\",\n        \"shadowColorHover\": \"rgba(0,0,0,0.066)\",\n        \"shadowColorPress\": \"rgba(0,0,0,0.02)\",\n        \"shadowColorFocus\": \"rgba(0,0,0,0.02)\",\n        \"id\": \"light_brand\"\n      },\n      \"dark_yellow\": {\n        \"color1\": \"hsl(45, 100%, 5.5%)\",\n        \"color2\": \"hsl(46, 100%, 6.7%)\",\n        \"color3\": \"hsl(45, 100%, 8.7%)\",\n        \"color4\": \"hsl(45, 100%, 10.4%)\",\n        \"color5\": \"hsl(47, 100%, 12.1%)\",\n        \"color6\": \"hsl(49, 100%, 14.3%)\",\n        \"color7\": \"hsl(50, 100%, 22.0%)\",\n        \"color8\": \"hsl(53, 92.0%, 50.0%)\",\n        \"color9\": \"hsl(54, 100%, 68.0%)\",\n        \"color10\": \"hsl(48, 100%, 47.0%)\",\n        \"color11\": \"hsl(53, 100%, 91.0%)\",\n        \"color12\": \"#fff\",\n        \"background\": \"hsl(46, 100%, 6.7%)\",\n        \"backgroundHover\": \"hsl(45, 100%, 8.7%)\",\n        \"backgroundPress\": \"hsl(45, 100%, 10.4%)\",\n        \"backgroundFocus\": \"hsl(47, 100%, 12.1%)\",\n        \"backgroundStrong\": \"hsl(45, 100%, 5.5%)\",\n        \"backgroundTransparent\": \"hsla(45, 100%, 5.5%, 0)\",\n        \"color\": \"#fff\",\n        \"colorHover\": \"hsl(53, 100%, 91.0%)\",\n        \"colorPress\": \"#fff\",\n        \"colorFocus\": \"hsl(53, 100%, 91.0%)\",\n        \"colorTransparent\": \"hsla(53, 100%, 91.0%, 0)\",\n        \"borderColor\": \"hsl(47, 100%, 12.1%)\",\n        \"borderColorHover\": \"hsl(49, 100%, 14.3%)\",\n        \"borderColorFocus\": \"hsl(45, 100%, 10.4%)\",\n        \"borderColorPress\": \"hsl(47, 100%, 12.1%)\",\n        \"placeholderColor\": \"hsl(54, 100%, 68.0%)\",\n        \"outlineColor\": \"hsl(47, 100%, 12.1%)\",\n        \"blue1\": \"hsl(212, 35.0%, 9.2%)\",\n        \"blue2\": \"hsl(216, 50.0%, 11.8%)\",\n        \"blue3\": \"hsl(214, 59.4%, 15.3%)\",\n        \"blue4\": \"hsl(214, 65.8%, 17.9%)\",\n        \"blue5\": \"hsl(213, 71.2%, 20.2%)\",\n        \"blue6\": \"hsl(212, 77.4%, 23.1%)\",\n        \"blue7\": \"hsl(211, 85.1%, 27.4%)\",\n        \"blue8\": \"hsl(211, 89.7%, 34.1%)\",\n        \"blue9\": \"hsl(206, 100%, 50.0%)\",\n        \"blue10\": \"hsl(209, 100%, 60.6%)\",\n        \"blue11\": \"hsl(210, 100%, 66.1%)\",\n        \"blue12\": \"hsl(206, 98.0%, 95.8%)\",\n        \"gray1\": \"hsl(0, 0%, 8.5%)\",\n        \"gray2\": \"hsl(0, 0%, 11.0%)\",\n        \"gray3\": \"hsl(0, 0%, 13.6%)\",\n        \"gray4\": \"hsl(0, 0%, 15.8%)\",\n        \"gray5\": \"hsl(0, 0%, 17.9%)\",\n        \"gray6\": \"hsl(0, 0%, 20.5%)\",\n        \"gray7\": \"hsl(0, 0%, 24.3%)\",\n        \"gray8\": \"hsl(0, 0%, 31.2%)\",\n        \"gray9\": \"hsl(0, 0%, 43.9%)\",\n        \"gray10\": \"hsl(0, 0%, 49.4%)\",\n        \"gray11\": \"hsl(0, 0%, 62.8%)\",\n        \"gray12\": \"hsl(0, 0%, 18%)\",\n        \"gray13\": \"hsl(0, 0%, 93.0%)\",\n        \"green1\": \"hsl(146, 30.0%, 7.4%)\",\n        \"green2\": \"hsl(155, 44.2%, 8.4%)\",\n        \"green3\": \"hsl(155, 46.7%, 10.9%)\",\n        \"green4\": \"hsl(154, 48.4%, 12.9%)\",\n        \"green5\": \"hsl(154, 49.7%, 14.9%)\",\n        \"green6\": \"hsl(154, 50.9%, 17.6%)\",\n        \"green7\": \"hsl(153, 51.8%, 21.8%)\",\n        \"green8\": \"hsl(151, 51.7%, 28.4%)\",\n        \"green9\": \"hsl(151, 55.0%, 41.5%)\",\n        \"green10\": \"hsl(151, 49.3%, 46.5%)\",\n        \"green11\": \"hsl(151, 50.0%, 53.2%)\",\n        \"green12\": \"hsl(137, 72.0%, 94.0%)\",\n        \"purple1\": \"hsl(284, 20.0%, 9.6%)\",\n        \"purple2\": \"hsl(283, 30.0%, 11.8%)\",\n        \"purple3\": \"hsl(281, 37.5%, 16.5%)\",\n        \"purple4\": \"hsl(280, 41.2%, 20.0%)\",\n        \"purple5\": \"hsl(279, 43.8%, 23.3%)\",\n        \"purple6\": \"hsl(277, 46.4%, 27.5%)\",\n        \"purple7\": \"hsl(275, 49.3%, 34.6%)\",\n        \"purple8\": \"hsl(272, 52.1%, 45.9%)\",\n        \"purple9\": \"hsl(272, 51.0%, 54.0%)\",\n        \"purple10\": \"hsl(273, 57.3%, 59.1%)\",\n        \"purple11\": \"hsl(275, 80.0%, 71.0%)\",\n        \"purple12\": \"hsl(279, 75.0%, 95.7%)\",\n        \"red1\": \"hsl(353, 23.0%, 9.8%)\",\n        \"red2\": \"hsl(357, 34.4%, 12.0%)\",\n        \"red3\": \"hsl(356, 43.4%, 16.4%)\",\n        \"red4\": \"hsl(356, 47.6%, 19.2%)\",\n        \"red5\": \"hsl(356, 51.1%, 21.9%)\",\n        \"red6\": \"hsl(356, 55.2%, 25.9%)\",\n        \"red7\": \"hsl(357, 60.2%, 31.8%)\",\n        \"red8\": \"hsl(358, 65.0%, 40.4%)\",\n        \"red9\": \"hsl(358, 75.0%, 59.0%)\",\n        \"red10\": \"hsl(358, 85.3%, 64.0%)\",\n        \"red11\": \"hsl(358, 100%, 69.5%)\",\n        \"red12\": \"hsl(351, 89.0%, 96.0%)\",\n        \"yellow1\": \"hsl(45, 100%, 5.5%)\",\n        \"yellow2\": \"hsl(46, 100%, 6.7%)\",\n        \"yellow3\": \"hsl(45, 100%, 8.7%)\",\n        \"yellow4\": \"hsl(45, 100%, 10.4%)\",\n        \"yellow5\": \"hsl(47, 100%, 12.1%)\",\n        \"yellow6\": \"hsl(49, 100%, 14.3%)\",\n        \"yellow7\": \"hsl(49, 90.3%, 18.4%)\",\n        \"yellow8\": \"hsl(50, 100%, 22.0%)\",\n        \"yellow9\": \"hsl(53, 92.0%, 50.0%)\",\n        \"yellow10\": \"hsl(54, 100%, 68.0%)\",\n        \"yellow11\": \"hsl(48, 100%, 47.0%)\",\n        \"yellow12\": \"hsl(53, 100%, 91.0%)\",\n        \"brand1\": \"hsl(123, 50%, 93%)\",\n        \"brand2\": \"hsl(122, 53%, 88%)\",\n        \"brand3\": \"hsl(125, 100%, 98%)\",\n        \"brand4\": \"hsl(166, 55%, 31%)\",\n        \"brand5\": \"hsl(171, 96%, 28%)\",\n        \"brand6\": \"hsl(148, 44%, 47%)\",\n        \"brand7\": \"hsl(144, 55%, 57%)\",\n        \"brand8\": \"hsl(144, 73%, 68%)\",\n        \"brand9\": \"hsl(133, 54%, 78%)\",\n        \"brand10\": \"hsl(166, 30%, 29%)\",\n        \"brand11\": \"hsl(180, 36%, 22%)\",\n        \"brand12\": \"hsl(180, 29%, 17%)\",\n        \"brandHighlight\": \"hsl(180, 41%, 8%)\",\n        \"shadowColor\": \"rgba(0,0,0,0.3)\",\n        \"shadowColorHover\": \"rgba(0,0,0,0.3)\",\n        \"shadowColorPress\": \"rgba(0,0,0,0.2)\",\n        \"shadowColorFocus\": \"rgba(0,0,0,0.2)\",\n        \"id\": \"dark_yellow\"\n      },\n      \"dark_green\": {\n        \"color1\": \"hsl(146, 30.0%, 7.4%)\",\n        \"color2\": \"hsl(155, 44.2%, 8.4%)\",\n        \"color3\": \"hsl(155, 46.7%, 10.9%)\",\n        \"color4\": \"hsl(154, 48.4%, 12.9%)\",\n        \"color5\": \"hsl(154, 49.7%, 14.9%)\",\n        \"color6\": \"hsl(154, 50.9%, 17.6%)\",\n        \"color7\": \"hsl(151, 51.7%, 28.4%)\",\n        \"color8\": \"hsl(151, 55.0%, 41.5%)\",\n        \"color9\": \"hsl(151, 49.3%, 46.5%)\",\n        \"color10\": \"hsl(151, 50.0%, 53.2%)\",\n        \"color11\": \"hsl(137, 72.0%, 94.0%)\",\n        \"color12\": \"#fff\",\n        \"background\": \"hsl(155, 44.2%, 8.4%)\",\n        \"backgroundHover\": \"hsl(155, 46.7%, 10.9%)\",\n        \"backgroundPress\": \"hsl(154, 48.4%, 12.9%)\",\n        \"backgroundFocus\": \"hsl(154, 49.7%, 14.9%)\",\n        \"backgroundStrong\": \"hsl(146, 30.0%, 7.4%)\",\n        \"backgroundTransparent\": \"hsla(146, 30.0%, 7.4%, 0)\",\n        \"color\": \"#fff\",\n        \"colorHover\": \"hsl(137, 72.0%, 94.0%)\",\n        \"colorPress\": \"#fff\",\n        \"colorFocus\": \"hsl(137, 72.0%, 94.0%)\",\n        \"colorTransparent\": \"hsla(137, 72.0%, 94.0%, 0)\",\n        \"borderColor\": \"hsl(154, 49.7%, 14.9%)\",\n        \"borderColorHover\": \"hsl(154, 50.9%, 17.6%)\",\n        \"borderColorFocus\": \"hsl(154, 48.4%, 12.9%)\",\n        \"borderColorPress\": \"hsl(154, 49.7%, 14.9%)\",\n        \"placeholderColor\": \"hsl(151, 49.3%, 46.5%)\",\n        \"outlineColor\": \"hsl(154, 49.7%, 14.9%)\",\n        \"blue1\": \"hsl(212, 35.0%, 9.2%)\",\n        \"blue2\": \"hsl(216, 50.0%, 11.8%)\",\n        \"blue3\": \"hsl(214, 59.4%, 15.3%)\",\n        \"blue4\": \"hsl(214, 65.8%, 17.9%)\",\n        \"blue5\": \"hsl(213, 71.2%, 20.2%)\",\n        \"blue6\": \"hsl(212, 77.4%, 23.1%)\",\n        \"blue7\": \"hsl(211, 85.1%, 27.4%)\",\n        \"blue8\": \"hsl(211, 89.7%, 34.1%)\",\n        \"blue9\": \"hsl(206, 100%, 50.0%)\",\n        \"blue10\": \"hsl(209, 100%, 60.6%)\",\n        \"blue11\": \"hsl(210, 100%, 66.1%)\",\n        \"blue12\": \"hsl(206, 98.0%, 95.8%)\",\n        \"gray1\": \"hsl(0, 0%, 8.5%)\",\n        \"gray2\": \"hsl(0, 0%, 11.0%)\",\n        \"gray3\": \"hsl(0, 0%, 13.6%)\",\n        \"gray4\": \"hsl(0, 0%, 15.8%)\",\n        \"gray5\": \"hsl(0, 0%, 17.9%)\",\n        \"gray6\": \"hsl(0, 0%, 20.5%)\",\n        \"gray7\": \"hsl(0, 0%, 24.3%)\",\n        \"gray8\": \"hsl(0, 0%, 31.2%)\",\n        \"gray9\": \"hsl(0, 0%, 43.9%)\",\n        \"gray10\": \"hsl(0, 0%, 49.4%)\",\n        \"gray11\": \"hsl(0, 0%, 62.8%)\",\n        \"gray12\": \"hsl(0, 0%, 18%)\",\n        \"gray13\": \"hsl(0, 0%, 93.0%)\",\n        \"green1\": \"hsl(146, 30.0%, 7.4%)\",\n        \"green2\": \"hsl(155, 44.2%, 8.4%)\",\n        \"green3\": \"hsl(155, 46.7%, 10.9%)\",\n        \"green4\": \"hsl(154, 48.4%, 12.9%)\",\n        \"green5\": \"hsl(154, 49.7%, 14.9%)\",\n        \"green6\": \"hsl(154, 50.9%, 17.6%)\",\n        \"green7\": \"hsl(153, 51.8%, 21.8%)\",\n        \"green8\": \"hsl(151, 51.7%, 28.4%)\",\n        \"green9\": \"hsl(151, 55.0%, 41.5%)\",\n        \"green10\": \"hsl(151, 49.3%, 46.5%)\",\n        \"green11\": \"hsl(151, 50.0%, 53.2%)\",\n        \"green12\": \"hsl(137, 72.0%, 94.0%)\",\n        \"purple1\": \"hsl(284, 20.0%, 9.6%)\",\n        \"purple2\": \"hsl(283, 30.0%, 11.8%)\",\n        \"purple3\": \"hsl(281, 37.5%, 16.5%)\",\n        \"purple4\": \"hsl(280, 41.2%, 20.0%)\",\n        \"purple5\": \"hsl(279, 43.8%, 23.3%)\",\n        \"purple6\": \"hsl(277, 46.4%, 27.5%)\",\n        \"purple7\": \"hsl(275, 49.3%, 34.6%)\",\n        \"purple8\": \"hsl(272, 52.1%, 45.9%)\",\n        \"purple9\": \"hsl(272, 51.0%, 54.0%)\",\n        \"purple10\": \"hsl(273, 57.3%, 59.1%)\",\n        \"purple11\": \"hsl(275, 80.0%, 71.0%)\",\n        \"purple12\": \"hsl(279, 75.0%, 95.7%)\",\n        \"red1\": \"hsl(353, 23.0%, 9.8%)\",\n        \"red2\": \"hsl(357, 34.4%, 12.0%)\",\n        \"red3\": \"hsl(356, 43.4%, 16.4%)\",\n        \"red4\": \"hsl(356, 47.6%, 19.2%)\",\n        \"red5\": \"hsl(356, 51.1%, 21.9%)\",\n        \"red6\": \"hsl(356, 55.2%, 25.9%)\",\n        \"red7\": \"hsl(357, 60.2%, 31.8%)\",\n        \"red8\": \"hsl(358, 65.0%, 40.4%)\",\n        \"red9\": \"hsl(358, 75.0%, 59.0%)\",\n        \"red10\": \"hsl(358, 85.3%, 64.0%)\",\n        \"red11\": \"hsl(358, 100%, 69.5%)\",\n        \"red12\": \"hsl(351, 89.0%, 96.0%)\",\n        \"yellow1\": \"hsl(45, 100%, 5.5%)\",\n        \"yellow2\": \"hsl(46, 100%, 6.7%)\",\n        \"yellow3\": \"hsl(45, 100%, 8.7%)\",\n        \"yellow4\": \"hsl(45, 100%, 10.4%)\",\n        \"yellow5\": \"hsl(47, 100%, 12.1%)\",\n        \"yellow6\": \"hsl(49, 100%, 14.3%)\",\n        \"yellow7\": \"hsl(49, 90.3%, 18.4%)\",\n        \"yellow8\": \"hsl(50, 100%, 22.0%)\",\n        \"yellow9\": \"hsl(53, 92.0%, 50.0%)\",\n        \"yellow10\": \"hsl(54, 100%, 68.0%)\",\n        \"yellow11\": \"hsl(48, 100%, 47.0%)\",\n        \"yellow12\": \"hsl(53, 100%, 91.0%)\",\n        \"brand1\": \"hsl(123, 50%, 93%)\",\n        \"brand2\": \"hsl(122, 53%, 88%)\",\n        \"brand3\": \"hsl(125, 100%, 98%)\",\n        \"brand4\": \"hsl(166, 55%, 31%)\",\n        \"brand5\": \"hsl(171, 96%, 28%)\",\n        \"brand6\": \"hsl(148, 44%, 47%)\",\n        \"brand7\": \"hsl(144, 55%, 57%)\",\n        \"brand8\": \"hsl(144, 73%, 68%)\",\n        \"brand9\": \"hsl(133, 54%, 78%)\",\n        \"brand10\": \"hsl(166, 30%, 29%)\",\n        \"brand11\": \"hsl(180, 36%, 22%)\",\n        \"brand12\": \"hsl(180, 29%, 17%)\",\n        \"brandHighlight\": \"hsl(180, 41%, 8%)\",\n        \"shadowColor\": \"rgba(0,0,0,0.3)\",\n        \"shadowColorHover\": \"rgba(0,0,0,0.3)\",\n        \"shadowColorPress\": \"rgba(0,0,0,0.2)\",\n        \"shadowColorFocus\": \"rgba(0,0,0,0.2)\",\n        \"id\": \"dark_green\"\n      },\n      \"dark_blue\": {\n        \"color1\": \"hsl(212, 35.0%, 9.2%)\",\n        \"color2\": \"hsl(216, 50.0%, 11.8%)\",\n        \"color3\": \"hsl(214, 59.4%, 15.3%)\",\n        \"color4\": \"hsl(214, 65.8%, 17.9%)\",\n        \"color5\": \"hsl(213, 71.2%, 20.2%)\",\n        \"color6\": \"hsl(212, 77.4%, 23.1%)\",\n        \"color7\": \"hsl(211, 89.7%, 34.1%)\",\n        \"color8\": \"hsl(206, 100%, 50.0%)\",\n        \"color9\": \"hsl(209, 100%, 60.6%)\",\n        \"color10\": \"hsl(210, 100%, 66.1%)\",\n        \"color11\": \"hsl(206, 98.0%, 95.8%)\",\n        \"color12\": \"#fff\",\n        \"background\": \"hsl(216, 50.0%, 11.8%)\",\n        \"backgroundHover\": \"hsl(214, 59.4%, 15.3%)\",\n        \"backgroundPress\": \"hsl(214, 65.8%, 17.9%)\",\n        \"backgroundFocus\": \"hsl(213, 71.2%, 20.2%)\",\n        \"backgroundStrong\": \"hsl(212, 35.0%, 9.2%)\",\n        \"backgroundTransparent\": \"hsla(212, 35.0%, 9.2%, 0)\",\n        \"color\": \"#fff\",\n        \"colorHover\": \"hsl(206, 98.0%, 95.8%)\",\n        \"colorPress\": \"#fff\",\n        \"colorFocus\": \"hsl(206, 98.0%, 95.8%)\",\n        \"colorTransparent\": \"hsla(206, 98.0%, 95.8%, 0)\",\n        \"borderColor\": \"hsl(213, 71.2%, 20.2%)\",\n        \"borderColorHover\": \"hsl(212, 77.4%, 23.1%)\",\n        \"borderColorFocus\": \"hsl(214, 65.8%, 17.9%)\",\n        \"borderColorPress\": \"hsl(213, 71.2%, 20.2%)\",\n        \"placeholderColor\": \"hsl(209, 100%, 60.6%)\",\n        \"outlineColor\": \"hsl(213, 71.2%, 20.2%)\",\n        \"blue1\": \"hsl(212, 35.0%, 9.2%)\",\n        \"blue2\": \"hsl(216, 50.0%, 11.8%)\",\n        \"blue3\": \"hsl(214, 59.4%, 15.3%)\",\n        \"blue4\": \"hsl(214, 65.8%, 17.9%)\",\n        \"blue5\": \"hsl(213, 71.2%, 20.2%)\",\n        \"blue6\": \"hsl(212, 77.4%, 23.1%)\",\n        \"blue7\": \"hsl(211, 85.1%, 27.4%)\",\n        \"blue8\": \"hsl(211, 89.7%, 34.1%)\",\n        \"blue9\": \"hsl(206, 100%, 50.0%)\",\n        \"blue10\": \"hsl(209, 100%, 60.6%)\",\n        \"blue11\": \"hsl(210, 100%, 66.1%)\",\n        \"blue12\": \"hsl(206, 98.0%, 95.8%)\",\n        \"gray1\": \"hsl(0, 0%, 8.5%)\",\n        \"gray2\": \"hsl(0, 0%, 11.0%)\",\n        \"gray3\": \"hsl(0, 0%, 13.6%)\",\n        \"gray4\": \"hsl(0, 0%, 15.8%)\",\n        \"gray5\": \"hsl(0, 0%, 17.9%)\",\n        \"gray6\": \"hsl(0, 0%, 20.5%)\",\n        \"gray7\": \"hsl(0, 0%, 24.3%)\",\n        \"gray8\": \"hsl(0, 0%, 31.2%)\",\n        \"gray9\": \"hsl(0, 0%, 43.9%)\",\n        \"gray10\": \"hsl(0, 0%, 49.4%)\",\n        \"gray11\": \"hsl(0, 0%, 62.8%)\",\n        \"gray12\": \"hsl(0, 0%, 18%)\",\n        \"gray13\": \"hsl(0, 0%, 93.0%)\",\n        \"green1\": \"hsl(146, 30.0%, 7.4%)\",\n        \"green2\": \"hsl(155, 44.2%, 8.4%)\",\n        \"green3\": \"hsl(155, 46.7%, 10.9%)\",\n        \"green4\": \"hsl(154, 48.4%, 12.9%)\",\n        \"green5\": \"hsl(154, 49.7%, 14.9%)\",\n        \"green6\": \"hsl(154, 50.9%, 17.6%)\",\n        \"green7\": \"hsl(153, 51.8%, 21.8%)\",\n        \"green8\": \"hsl(151, 51.7%, 28.4%)\",\n        \"green9\": \"hsl(151, 55.0%, 41.5%)\",\n        \"green10\": \"hsl(151, 49.3%, 46.5%)\",\n        \"green11\": \"hsl(151, 50.0%, 53.2%)\",\n        \"green12\": \"hsl(137, 72.0%, 94.0%)\",\n        \"purple1\": \"hsl(284, 20.0%, 9.6%)\",\n        \"purple2\": \"hsl(283, 30.0%, 11.8%)\",\n        \"purple3\": \"hsl(281, 37.5%, 16.5%)\",\n        \"purple4\": \"hsl(280, 41.2%, 20.0%)\",\n        \"purple5\": \"hsl(279, 43.8%, 23.3%)\",\n        \"purple6\": \"hsl(277, 46.4%, 27.5%)\",\n        \"purple7\": \"hsl(275, 49.3%, 34.6%)\",\n        \"purple8\": \"hsl(272, 52.1%, 45.9%)\",\n        \"purple9\": \"hsl(272, 51.0%, 54.0%)\",\n        \"purple10\": \"hsl(273, 57.3%, 59.1%)\",\n        \"purple11\": \"hsl(275, 80.0%, 71.0%)\",\n        \"purple12\": \"hsl(279, 75.0%, 95.7%)\",\n        \"red1\": \"hsl(353, 23.0%, 9.8%)\",\n        \"red2\": \"hsl(357, 34.4%, 12.0%)\",\n        \"red3\": \"hsl(356, 43.4%, 16.4%)\",\n        \"red4\": \"hsl(356, 47.6%, 19.2%)\",\n        \"red5\": \"hsl(356, 51.1%, 21.9%)\",\n        \"red6\": \"hsl(356, 55.2%, 25.9%)\",\n        \"red7\": \"hsl(357, 60.2%, 31.8%)\",\n        \"red8\": \"hsl(358, 65.0%, 40.4%)\",\n        \"red9\": \"hsl(358, 75.0%, 59.0%)\",\n        \"red10\": \"hsl(358, 85.3%, 64.0%)\",\n        \"red11\": \"hsl(358, 100%, 69.5%)\",\n        \"red12\": \"hsl(351, 89.0%, 96.0%)\",\n        \"yellow1\": \"hsl(45, 100%, 5.5%)\",\n        \"yellow2\": \"hsl(46, 100%, 6.7%)\",\n        \"yellow3\": \"hsl(45, 100%, 8.7%)\",\n        \"yellow4\": \"hsl(45, 100%, 10.4%)\",\n        \"yellow5\": \"hsl(47, 100%, 12.1%)\",\n        \"yellow6\": \"hsl(49, 100%, 14.3%)\",\n        \"yellow7\": \"hsl(49, 90.3%, 18.4%)\",\n        \"yellow8\": \"hsl(50, 100%, 22.0%)\",\n        \"yellow9\": \"hsl(53, 92.0%, 50.0%)\",\n        \"yellow10\": \"hsl(54, 100%, 68.0%)\",\n        \"yellow11\": \"hsl(48, 100%, 47.0%)\",\n        \"yellow12\": \"hsl(53, 100%, 91.0%)\",\n        \"brand1\": \"hsl(123, 50%, 93%)\",\n        \"brand2\": \"hsl(122, 53%, 88%)\",\n        \"brand3\": \"hsl(125, 100%, 98%)\",\n        \"brand4\": \"hsl(166, 55%, 31%)\",\n        \"brand5\": \"hsl(171, 96%, 28%)\",\n        \"brand6\": \"hsl(148, 44%, 47%)\",\n        \"brand7\": \"hsl(144, 55%, 57%)\",\n        \"brand8\": \"hsl(144, 73%, 68%)\",\n        \"brand9\": \"hsl(133, 54%, 78%)\",\n        \"brand10\": \"hsl(166, 30%, 29%)\",\n        \"brand11\": \"hsl(180, 36%, 22%)\",\n        \"brand12\": \"hsl(180, 29%, 17%)\",\n        \"brandHighlight\": \"hsl(180, 41%, 8%)\",\n        \"shadowColor\": \"rgba(0,0,0,0.3)\",\n        \"shadowColorHover\": \"rgba(0,0,0,0.3)\",\n        \"shadowColorPress\": \"rgba(0,0,0,0.2)\",\n        \"shadowColorFocus\": \"rgba(0,0,0,0.2)\",\n        \"id\": \"dark_blue\"\n      },\n      \"dark_purple\": {\n        \"color1\": \"hsl(284, 20.0%, 9.6%)\",\n        \"color2\": \"hsl(283, 30.0%, 11.8%)\",\n        \"color3\": \"hsl(281, 37.5%, 16.5%)\",\n        \"color4\": \"hsl(280, 41.2%, 20.0%)\",\n        \"color5\": \"hsl(279, 43.8%, 23.3%)\",\n        \"color6\": \"hsl(277, 46.4%, 27.5%)\",\n        \"color7\": \"hsl(272, 52.1%, 45.9%)\",\n        \"color8\": \"hsl(272, 51.0%, 54.0%)\",\n        \"color9\": \"hsl(273, 57.3%, 59.1%)\",\n        \"color10\": \"hsl(275, 80.0%, 71.0%)\",\n        \"color11\": \"hsl(279, 75.0%, 95.7%)\",\n        \"color12\": \"#fff\",\n        \"background\": \"hsl(283, 30.0%, 11.8%)\",\n        \"backgroundHover\": \"hsl(281, 37.5%, 16.5%)\",\n        \"backgroundPress\": \"hsl(280, 41.2%, 20.0%)\",\n        \"backgroundFocus\": \"hsl(279, 43.8%, 23.3%)\",\n        \"backgroundStrong\": \"hsl(284, 20.0%, 9.6%)\",\n        \"backgroundTransparent\": \"hsla(284, 20.0%, 9.6%, 0)\",\n        \"color\": \"#fff\",\n        \"colorHover\": \"hsl(279, 75.0%, 95.7%)\",\n        \"colorPress\": \"#fff\",\n        \"colorFocus\": \"hsl(279, 75.0%, 95.7%)\",\n        \"colorTransparent\": \"hsla(279, 75.0%, 95.7%, 0)\",\n        \"borderColor\": \"hsl(279, 43.8%, 23.3%)\",\n        \"borderColorHover\": \"hsl(277, 46.4%, 27.5%)\",\n        \"borderColorFocus\": \"hsl(280, 41.2%, 20.0%)\",\n        \"borderColorPress\": \"hsl(279, 43.8%, 23.3%)\",\n        \"placeholderColor\": \"hsl(273, 57.3%, 59.1%)\",\n        \"outlineColor\": \"hsl(279, 43.8%, 23.3%)\",\n        \"blue1\": \"hsl(212, 35.0%, 9.2%)\",\n        \"blue2\": \"hsl(216, 50.0%, 11.8%)\",\n        \"blue3\": \"hsl(214, 59.4%, 15.3%)\",\n        \"blue4\": \"hsl(214, 65.8%, 17.9%)\",\n        \"blue5\": \"hsl(213, 71.2%, 20.2%)\",\n        \"blue6\": \"hsl(212, 77.4%, 23.1%)\",\n        \"blue7\": \"hsl(211, 85.1%, 27.4%)\",\n        \"blue8\": \"hsl(211, 89.7%, 34.1%)\",\n        \"blue9\": \"hsl(206, 100%, 50.0%)\",\n        \"blue10\": \"hsl(209, 100%, 60.6%)\",\n        \"blue11\": \"hsl(210, 100%, 66.1%)\",\n        \"blue12\": \"hsl(206, 98.0%, 95.8%)\",\n        \"gray1\": \"hsl(0, 0%, 8.5%)\",\n        \"gray2\": \"hsl(0, 0%, 11.0%)\",\n        \"gray3\": \"hsl(0, 0%, 13.6%)\",\n        \"gray4\": \"hsl(0, 0%, 15.8%)\",\n        \"gray5\": \"hsl(0, 0%, 17.9%)\",\n        \"gray6\": \"hsl(0, 0%, 20.5%)\",\n        \"gray7\": \"hsl(0, 0%, 24.3%)\",\n        \"gray8\": \"hsl(0, 0%, 31.2%)\",\n        \"gray9\": \"hsl(0, 0%, 43.9%)\",\n        \"gray10\": \"hsl(0, 0%, 49.4%)\",\n        \"gray11\": \"hsl(0, 0%, 62.8%)\",\n        \"gray12\": \"hsl(0, 0%, 18%)\",\n        \"gray13\": \"hsl(0, 0%, 93.0%)\",\n        \"green1\": \"hsl(146, 30.0%, 7.4%)\",\n        \"green2\": \"hsl(155, 44.2%, 8.4%)\",\n        \"green3\": \"hsl(155, 46.7%, 10.9%)\",\n        \"green4\": \"hsl(154, 48.4%, 12.9%)\",\n        \"green5\": \"hsl(154, 49.7%, 14.9%)\",\n        \"green6\": \"hsl(154, 50.9%, 17.6%)\",\n        \"green7\": \"hsl(153, 51.8%, 21.8%)\",\n        \"green8\": \"hsl(151, 51.7%, 28.4%)\",\n        \"green9\": \"hsl(151, 55.0%, 41.5%)\",\n        \"green10\": \"hsl(151, 49.3%, 46.5%)\",\n        \"green11\": \"hsl(151, 50.0%, 53.2%)\",\n        \"green12\": \"hsl(137, 72.0%, 94.0%)\",\n        \"purple1\": \"hsl(284, 20.0%, 9.6%)\",\n        \"purple2\": \"hsl(283, 30.0%, 11.8%)\",\n        \"purple3\": \"hsl(281, 37.5%, 16.5%)\",\n        \"purple4\": \"hsl(280, 41.2%, 20.0%)\",\n        \"purple5\": \"hsl(279, 43.8%, 23.3%)\",\n        \"purple6\": \"hsl(277, 46.4%, 27.5%)\",\n        \"purple7\": \"hsl(275, 49.3%, 34.6%)\",\n        \"purple8\": \"hsl(272, 52.1%, 45.9%)\",\n        \"purple9\": \"hsl(272, 51.0%, 54.0%)\",\n        \"purple10\": \"hsl(273, 57.3%, 59.1%)\",\n        \"purple11\": \"hsl(275, 80.0%, 71.0%)\",\n        \"purple12\": \"hsl(279, 75.0%, 95.7%)\",\n        \"red1\": \"hsl(353, 23.0%, 9.8%)\",\n        \"red2\": \"hsl(357, 34.4%, 12.0%)\",\n        \"red3\": \"hsl(356, 43.4%, 16.4%)\",\n        \"red4\": \"hsl(356, 47.6%, 19.2%)\",\n        \"red5\": \"hsl(356, 51.1%, 21.9%)\",\n        \"red6\": \"hsl(356, 55.2%, 25.9%)\",\n        \"red7\": \"hsl(357, 60.2%, 31.8%)\",\n        \"red8\": \"hsl(358, 65.0%, 40.4%)\",\n        \"red9\": \"hsl(358, 75.0%, 59.0%)\",\n        \"red10\": \"hsl(358, 85.3%, 64.0%)\",\n        \"red11\": \"hsl(358, 100%, 69.5%)\",\n        \"red12\": \"hsl(351, 89.0%, 96.0%)\",\n        \"yellow1\": \"hsl(45, 100%, 5.5%)\",\n        \"yellow2\": \"hsl(46, 100%, 6.7%)\",\n        \"yellow3\": \"hsl(45, 100%, 8.7%)\",\n        \"yellow4\": \"hsl(45, 100%, 10.4%)\",\n        \"yellow5\": \"hsl(47, 100%, 12.1%)\",\n        \"yellow6\": \"hsl(49, 100%, 14.3%)\",\n        \"yellow7\": \"hsl(49, 90.3%, 18.4%)\",\n        \"yellow8\": \"hsl(50, 100%, 22.0%)\",\n        \"yellow9\": \"hsl(53, 92.0%, 50.0%)\",\n        \"yellow10\": \"hsl(54, 100%, 68.0%)\",\n        \"yellow11\": \"hsl(48, 100%, 47.0%)\",\n        \"yellow12\": \"hsl(53, 100%, 91.0%)\",\n        \"brand1\": \"hsl(123, 50%, 93%)\",\n        \"brand2\": \"hsl(122, 53%, 88%)\",\n        \"brand3\": \"hsl(125, 100%, 98%)\",\n        \"brand4\": \"hsl(166, 55%, 31%)\",\n        \"brand5\": \"hsl(171, 96%, 28%)\",\n        \"brand6\": \"hsl(148, 44%, 47%)\",\n        \"brand7\": \"hsl(144, 55%, 57%)\",\n        \"brand8\": \"hsl(144, 73%, 68%)\",\n        \"brand9\": \"hsl(133, 54%, 78%)\",\n        \"brand10\": \"hsl(166, 30%, 29%)\",\n        \"brand11\": \"hsl(180, 36%, 22%)\",\n        \"brand12\": \"hsl(180, 29%, 17%)\",\n        \"brandHighlight\": \"hsl(180, 41%, 8%)\",\n        \"shadowColor\": \"rgba(0,0,0,0.3)\",\n        \"shadowColorHover\": \"rgba(0,0,0,0.3)\",\n        \"shadowColorPress\": \"rgba(0,0,0,0.2)\",\n        \"shadowColorFocus\": \"rgba(0,0,0,0.2)\",\n        \"id\": \"dark_purple\"\n      },\n      \"dark_red\": {\n        \"color1\": \"hsl(353, 23.0%, 9.8%)\",\n        \"color2\": \"hsl(357, 34.4%, 12.0%)\",\n        \"color3\": \"hsl(356, 43.4%, 16.4%)\",\n        \"color4\": \"hsl(356, 47.6%, 19.2%)\",\n        \"color5\": \"hsl(356, 51.1%, 21.9%)\",\n        \"color6\": \"hsl(356, 55.2%, 25.9%)\",\n        \"color7\": \"hsl(358, 65.0%, 40.4%)\",\n        \"color8\": \"hsl(358, 75.0%, 59.0%)\",\n        \"color9\": \"hsl(358, 85.3%, 64.0%)\",\n        \"color10\": \"hsl(358, 100%, 69.5%)\",\n        \"color11\": \"hsl(351, 89.0%, 96.0%)\",\n        \"color12\": \"#fff\",\n        \"background\": \"hsl(357, 34.4%, 12.0%)\",\n        \"backgroundHover\": \"hsl(356, 43.4%, 16.4%)\",\n        \"backgroundPress\": \"hsl(356, 47.6%, 19.2%)\",\n        \"backgroundFocus\": \"hsl(356, 51.1%, 21.9%)\",\n        \"backgroundStrong\": \"hsl(353, 23.0%, 9.8%)\",\n        \"backgroundTransparent\": \"hsla(353, 23.0%, 9.8%, 0)\",\n        \"color\": \"#fff\",\n        \"colorHover\": \"hsl(351, 89.0%, 96.0%)\",\n        \"colorPress\": \"#fff\",\n        \"colorFocus\": \"hsl(351, 89.0%, 96.0%)\",\n        \"colorTransparent\": \"hsla(351, 89.0%, 96.0%, 0)\",\n        \"borderColor\": \"hsl(356, 51.1%, 21.9%)\",\n        \"borderColorHover\": \"hsl(356, 55.2%, 25.9%)\",\n        \"borderColorFocus\": \"hsl(356, 47.6%, 19.2%)\",\n        \"borderColorPress\": \"hsl(356, 51.1%, 21.9%)\",\n        \"placeholderColor\": \"hsl(358, 85.3%, 64.0%)\",\n        \"outlineColor\": \"hsl(356, 51.1%, 21.9%)\",\n        \"blue1\": \"hsl(212, 35.0%, 9.2%)\",\n        \"blue2\": \"hsl(216, 50.0%, 11.8%)\",\n        \"blue3\": \"hsl(214, 59.4%, 15.3%)\",\n        \"blue4\": \"hsl(214, 65.8%, 17.9%)\",\n        \"blue5\": \"hsl(213, 71.2%, 20.2%)\",\n        \"blue6\": \"hsl(212, 77.4%, 23.1%)\",\n        \"blue7\": \"hsl(211, 85.1%, 27.4%)\",\n        \"blue8\": \"hsl(211, 89.7%, 34.1%)\",\n        \"blue9\": \"hsl(206, 100%, 50.0%)\",\n        \"blue10\": \"hsl(209, 100%, 60.6%)\",\n        \"blue11\": \"hsl(210, 100%, 66.1%)\",\n        \"blue12\": \"hsl(206, 98.0%, 95.8%)\",\n        \"gray1\": \"hsl(0, 0%, 8.5%)\",\n        \"gray2\": \"hsl(0, 0%, 11.0%)\",\n        \"gray3\": \"hsl(0, 0%, 13.6%)\",\n        \"gray4\": \"hsl(0, 0%, 15.8%)\",\n        \"gray5\": \"hsl(0, 0%, 17.9%)\",\n        \"gray6\": \"hsl(0, 0%, 20.5%)\",\n        \"gray7\": \"hsl(0, 0%, 24.3%)\",\n        \"gray8\": \"hsl(0, 0%, 31.2%)\",\n        \"gray9\": \"hsl(0, 0%, 43.9%)\",\n        \"gray10\": \"hsl(0, 0%, 49.4%)\",\n        \"gray11\": \"hsl(0, 0%, 62.8%)\",\n        \"gray12\": \"hsl(0, 0%, 18%)\",\n        \"gray13\": \"hsl(0, 0%, 93.0%)\",\n        \"green1\": \"hsl(146, 30.0%, 7.4%)\",\n        \"green2\": \"hsl(155, 44.2%, 8.4%)\",\n        \"green3\": \"hsl(155, 46.7%, 10.9%)\",\n        \"green4\": \"hsl(154, 48.4%, 12.9%)\",\n        \"green5\": \"hsl(154, 49.7%, 14.9%)\",\n        \"green6\": \"hsl(154, 50.9%, 17.6%)\",\n        \"green7\": \"hsl(153, 51.8%, 21.8%)\",\n        \"green8\": \"hsl(151, 51.7%, 28.4%)\",\n        \"green9\": \"hsl(151, 55.0%, 41.5%)\",\n        \"green10\": \"hsl(151, 49.3%, 46.5%)\",\n        \"green11\": \"hsl(151, 50.0%, 53.2%)\",\n        \"green12\": \"hsl(137, 72.0%, 94.0%)\",\n        \"purple1\": \"hsl(284, 20.0%, 9.6%)\",\n        \"purple2\": \"hsl(283, 30.0%, 11.8%)\",\n        \"purple3\": \"hsl(281, 37.5%, 16.5%)\",\n        \"purple4\": \"hsl(280, 41.2%, 20.0%)\",\n        \"purple5\": \"hsl(279, 43.8%, 23.3%)\",\n        \"purple6\": \"hsl(277, 46.4%, 27.5%)\",\n        \"purple7\": \"hsl(275, 49.3%, 34.6%)\",\n        \"purple8\": \"hsl(272, 52.1%, 45.9%)\",\n        \"purple9\": \"hsl(272, 51.0%, 54.0%)\",\n        \"purple10\": \"hsl(273, 57.3%, 59.1%)\",\n        \"purple11\": \"hsl(275, 80.0%, 71.0%)\",\n        \"purple12\": \"hsl(279, 75.0%, 95.7%)\",\n        \"red1\": \"hsl(353, 23.0%, 9.8%)\",\n        \"red2\": \"hsl(357, 34.4%, 12.0%)\",\n        \"red3\": \"hsl(356, 43.4%, 16.4%)\",\n        \"red4\": \"hsl(356, 47.6%, 19.2%)\",\n        \"red5\": \"hsl(356, 51.1%, 21.9%)\",\n        \"red6\": \"hsl(356, 55.2%, 25.9%)\",\n        \"red7\": \"hsl(357, 60.2%, 31.8%)\",\n        \"red8\": \"hsl(358, 65.0%, 40.4%)\",\n        \"red9\": \"hsl(358, 75.0%, 59.0%)\",\n        \"red10\": \"hsl(358, 85.3%, 64.0%)\",\n        \"red11\": \"hsl(358, 100%, 69.5%)\",\n        \"red12\": \"hsl(351, 89.0%, 96.0%)\",\n        \"yellow1\": \"hsl(45, 100%, 5.5%)\",\n        \"yellow2\": \"hsl(46, 100%, 6.7%)\",\n        \"yellow3\": \"hsl(45, 100%, 8.7%)\",\n        \"yellow4\": \"hsl(45, 100%, 10.4%)\",\n        \"yellow5\": \"hsl(47, 100%, 12.1%)\",\n        \"yellow6\": \"hsl(49, 100%, 14.3%)\",\n        \"yellow7\": \"hsl(49, 90.3%, 18.4%)\",\n        \"yellow8\": \"hsl(50, 100%, 22.0%)\",\n        \"yellow9\": \"hsl(53, 92.0%, 50.0%)\",\n        \"yellow10\": \"hsl(54, 100%, 68.0%)\",\n        \"yellow11\": \"hsl(48, 100%, 47.0%)\",\n        \"yellow12\": \"hsl(53, 100%, 91.0%)\",\n        \"brand1\": \"hsl(123, 50%, 93%)\",\n        \"brand2\": \"hsl(122, 53%, 88%)\",\n        \"brand3\": \"hsl(125, 100%, 98%)\",\n        \"brand4\": \"hsl(166, 55%, 31%)\",\n        \"brand5\": \"hsl(171, 96%, 28%)\",\n        \"brand6\": \"hsl(148, 44%, 47%)\",\n        \"brand7\": \"hsl(144, 55%, 57%)\",\n        \"brand8\": \"hsl(144, 73%, 68%)\",\n        \"brand9\": \"hsl(133, 54%, 78%)\",\n        \"brand10\": \"hsl(166, 30%, 29%)\",\n        \"brand11\": \"hsl(180, 36%, 22%)\",\n        \"brand12\": \"hsl(180, 29%, 17%)\",\n        \"brandHighlight\": \"hsl(180, 41%, 8%)\",\n        \"shadowColor\": \"rgba(0,0,0,0.3)\",\n        \"shadowColorHover\": \"rgba(0,0,0,0.3)\",\n        \"shadowColorPress\": \"rgba(0,0,0,0.2)\",\n        \"shadowColorFocus\": \"rgba(0,0,0,0.2)\",\n        \"id\": \"dark_red\"\n      },\n      \"dark_brand\": {\n        \"color1\": \"hsl(123, 50%, 93%)\",\n        \"color2\": \"hsl(122, 53%, 88%)\",\n        \"color3\": \"hsl(125, 100%, 98%)\",\n        \"color4\": \"hsl(166, 55%, 31%)\",\n        \"color5\": \"hsl(171, 96%, 28%)\",\n        \"color6\": \"hsl(148, 44%, 47%)\",\n        \"color7\": \"hsl(133, 54%, 78%)\",\n        \"color8\": \"hsl(166, 30%, 29%)\",\n        \"color9\": \"hsl(180, 36%, 22%)\",\n        \"color10\": \"hsl(180, 29%, 17%)\",\n        \"color11\": \"hsl(180, 41%, 8%)\",\n        \"color12\": \"#fff\",\n        \"background\": \"hsl(122, 53%, 88%)\",\n        \"backgroundHover\": \"hsl(125, 100%, 98%)\",\n        \"backgroundPress\": \"hsl(166, 55%, 31%)\",\n        \"backgroundFocus\": \"hsl(171, 96%, 28%)\",\n        \"backgroundStrong\": \"hsl(123, 50%, 93%)\",\n        \"backgroundTransparent\": \"hsla(123, 50%, 93%, 0)\",\n        \"color\": \"#fff\",\n        \"colorHover\": \"hsl(180, 41%, 8%)\",\n        \"colorPress\": \"#fff\",\n        \"colorFocus\": \"hsl(180, 41%, 8%)\",\n        \"colorTransparent\": \"hsla(180, 41%, 8%, 0)\",\n        \"borderColor\": \"hsl(171, 96%, 28%)\",\n        \"borderColorHover\": \"hsl(148, 44%, 47%)\",\n        \"borderColorFocus\": \"hsl(166, 55%, 31%)\",\n        \"borderColorPress\": \"hsl(171, 96%, 28%)\",\n        \"placeholderColor\": \"hsl(180, 36%, 22%)\",\n        \"outlineColor\": \"hsl(171, 96%, 28%)\",\n        \"blue1\": \"hsl(212, 35.0%, 9.2%)\",\n        \"blue2\": \"hsl(216, 50.0%, 11.8%)\",\n        \"blue3\": \"hsl(214, 59.4%, 15.3%)\",\n        \"blue4\": \"hsl(214, 65.8%, 17.9%)\",\n        \"blue5\": \"hsl(213, 71.2%, 20.2%)\",\n        \"blue6\": \"hsl(212, 77.4%, 23.1%)\",\n        \"blue7\": \"hsl(211, 85.1%, 27.4%)\",\n        \"blue8\": \"hsl(211, 89.7%, 34.1%)\",\n        \"blue9\": \"hsl(206, 100%, 50.0%)\",\n        \"blue10\": \"hsl(209, 100%, 60.6%)\",\n        \"blue11\": \"hsl(210, 100%, 66.1%)\",\n        \"blue12\": \"hsl(206, 98.0%, 95.8%)\",\n        \"gray1\": \"hsl(0, 0%, 8.5%)\",\n        \"gray2\": \"hsl(0, 0%, 11.0%)\",\n        \"gray3\": \"hsl(0, 0%, 13.6%)\",\n        \"gray4\": \"hsl(0, 0%, 15.8%)\",\n        \"gray5\": \"hsl(0, 0%, 17.9%)\",\n        \"gray6\": \"hsl(0, 0%, 20.5%)\",\n        \"gray7\": \"hsl(0, 0%, 24.3%)\",\n        \"gray8\": \"hsl(0, 0%, 31.2%)\",\n        \"gray9\": \"hsl(0, 0%, 43.9%)\",\n        \"gray10\": \"hsl(0, 0%, 49.4%)\",\n        \"gray11\": \"hsl(0, 0%, 62.8%)\",\n        \"gray12\": \"hsl(0, 0%, 18%)\",\n        \"gray13\": \"hsl(0, 0%, 93.0%)\",\n        \"green1\": \"hsl(146, 30.0%, 7.4%)\",\n        \"green2\": \"hsl(155, 44.2%, 8.4%)\",\n        \"green3\": \"hsl(155, 46.7%, 10.9%)\",\n        \"green4\": \"hsl(154, 48.4%, 12.9%)\",\n        \"green5\": \"hsl(154, 49.7%, 14.9%)\",\n        \"green6\": \"hsl(154, 50.9%, 17.6%)\",\n        \"green7\": \"hsl(153, 51.8%, 21.8%)\",\n        \"green8\": \"hsl(151, 51.7%, 28.4%)\",\n        \"green9\": \"hsl(151, 55.0%, 41.5%)\",\n        \"green10\": \"hsl(151, 49.3%, 46.5%)\",\n        \"green11\": \"hsl(151, 50.0%, 53.2%)\",\n        \"green12\": \"hsl(137, 72.0%, 94.0%)\",\n        \"purple1\": \"hsl(284, 20.0%, 9.6%)\",\n        \"purple2\": \"hsl(283, 30.0%, 11.8%)\",\n        \"purple3\": \"hsl(281, 37.5%, 16.5%)\",\n        \"purple4\": \"hsl(280, 41.2%, 20.0%)\",\n        \"purple5\": \"hsl(279, 43.8%, 23.3%)\",\n        \"purple6\": \"hsl(277, 46.4%, 27.5%)\",\n        \"purple7\": \"hsl(275, 49.3%, 34.6%)\",\n        \"purple8\": \"hsl(272, 52.1%, 45.9%)\",\n        \"purple9\": \"hsl(272, 51.0%, 54.0%)\",\n        \"purple10\": \"hsl(273, 57.3%, 59.1%)\",\n        \"purple11\": \"hsl(275, 80.0%, 71.0%)\",\n        \"purple12\": \"hsl(279, 75.0%, 95.7%)\",\n        \"red1\": \"hsl(353, 23.0%, 9.8%)\",\n        \"red2\": \"hsl(357, 34.4%, 12.0%)\",\n        \"red3\": \"hsl(356, 43.4%, 16.4%)\",\n        \"red4\": \"hsl(356, 47.6%, 19.2%)\",\n        \"red5\": \"hsl(356, 51.1%, 21.9%)\",\n        \"red6\": \"hsl(356, 55.2%, 25.9%)\",\n        \"red7\": \"hsl(357, 60.2%, 31.8%)\",\n        \"red8\": \"hsl(358, 65.0%, 40.4%)\",\n        \"red9\": \"hsl(358, 75.0%, 59.0%)\",\n        \"red10\": \"hsl(358, 85.3%, 64.0%)\",\n        \"red11\": \"hsl(358, 100%, 69.5%)\",\n        \"red12\": \"hsl(351, 89.0%, 96.0%)\",\n        \"yellow1\": \"hsl(45, 100%, 5.5%)\",\n        \"yellow2\": \"hsl(46, 100%, 6.7%)\",\n        \"yellow3\": \"hsl(45, 100%, 8.7%)\",\n        \"yellow4\": \"hsl(45, 100%, 10.4%)\",\n        \"yellow5\": \"hsl(47, 100%, 12.1%)\",\n        \"yellow6\": \"hsl(49, 100%, 14.3%)\",\n        \"yellow7\": \"hsl(49, 90.3%, 18.4%)\",\n        \"yellow8\": \"hsl(50, 100%, 22.0%)\",\n        \"yellow9\": \"hsl(53, 92.0%, 50.0%)\",\n        \"yellow10\": \"hsl(54, 100%, 68.0%)\",\n        \"yellow11\": \"hsl(48, 100%, 47.0%)\",\n        \"yellow12\": \"hsl(53, 100%, 91.0%)\",\n        \"brand1\": \"hsl(123, 50%, 93%)\",\n        \"brand2\": \"hsl(122, 53%, 88%)\",\n        \"brand3\": \"hsl(125, 100%, 98%)\",\n        \"brand4\": \"hsl(166, 55%, 31%)\",\n        \"brand5\": \"hsl(171, 96%, 28%)\",\n        \"brand6\": \"hsl(148, 44%, 47%)\",\n        \"brand7\": \"hsl(144, 55%, 57%)\",\n        \"brand8\": \"hsl(144, 73%, 68%)\",\n        \"brand9\": \"hsl(133, 54%, 78%)\",\n        \"brand10\": \"hsl(166, 30%, 29%)\",\n        \"brand11\": \"hsl(180, 36%, 22%)\",\n        \"brand12\": \"hsl(180, 29%, 17%)\",\n        \"brandHighlight\": \"hsl(180, 41%, 8%)\",\n        \"shadowColor\": \"rgba(0,0,0,0.3)\",\n        \"shadowColorHover\": \"rgba(0,0,0,0.3)\",\n        \"shadowColorPress\": \"rgba(0,0,0,0.2)\",\n        \"shadowColorFocus\": \"rgba(0,0,0,0.2)\",\n        \"id\": \"dark_brand\"\n      }\n    },\n    \"defaultFont\": \"body\",\n    \"shouldAddPrefersColorThemes\": true,\n    \"themeClassNameOnRoot\": true,\n    \"shorthands\": {\n      \"ussel\": \"userSelect\",\n      \"cur\": \"cursor\",\n      \"pe\": \"pointerEvents\",\n      \"col\": \"color\",\n      \"ff\": \"fontFamily\",\n      \"fos\": \"fontSize\",\n      \"fost\": \"fontStyle\",\n      \"fow\": \"fontWeight\",\n      \"ls\": \"letterSpacing\",\n      \"lh\": \"lineHeight\",\n      \"ta\": \"textAlign\",\n      \"tt\": \"textTransform\",\n      \"ww\": \"wordWrap\",\n      \"ac\": \"alignContent\",\n      \"ai\": \"alignItems\",\n      \"als\": \"alignSelf\",\n      \"b\": \"bottom\",\n      \"bc\": \"backgroundColor\",\n      \"bg\": \"backgroundColor\",\n      \"bbc\": \"borderBottomColor\",\n      \"bblr\": \"borderBottomLeftRadius\",\n      \"bbrr\": \"borderBottomRightRadius\",\n      \"bbw\": \"borderBottomWidth\",\n      \"blc\": \"borderLeftColor\",\n      \"blw\": \"borderLeftWidth\",\n      \"boc\": \"borderColor\",\n      \"br\": \"borderRadius\",\n      \"bs\": \"borderStyle\",\n      \"brw\": \"borderRightWidth\",\n      \"brc\": \"borderRightColor\",\n      \"btc\": \"borderTopColor\",\n      \"btlr\": \"borderTopLeftRadius\",\n      \"btrr\": \"borderTopRightRadius\",\n      \"btw\": \"borderTopWidth\",\n      \"bw\": \"borderWidth\",\n      \"dsp\": \"display\",\n      \"f\": \"flex\",\n      \"fb\": \"flexBasis\",\n      \"fd\": \"flexDirection\",\n      \"fg\": \"flexGrow\",\n      \"fs\": \"flexShrink\",\n      \"fw\": \"flexWrap\",\n      \"h\": \"height\",\n      \"jc\": \"justifyContent\",\n      \"l\": \"left\",\n      \"m\": \"margin\",\n      \"mah\": \"maxHeight\",\n      \"maw\": \"maxWidth\",\n      \"mb\": \"marginBottom\",\n      \"mih\": \"minHeight\",\n      \"miw\": \"minWidth\",\n      \"ml\": \"marginLeft\",\n      \"mr\": \"marginRight\",\n      \"mt\": \"marginTop\",\n      \"mx\": \"marginHorizontal\",\n      \"my\": \"marginVertical\",\n      \"o\": \"opacity\",\n      \"ov\": \"overflow\",\n      \"p\": \"padding\",\n      \"pb\": \"paddingBottom\",\n      \"pl\": \"paddingLeft\",\n      \"pos\": \"position\",\n      \"pr\": \"paddingRight\",\n      \"pt\": \"paddingTop\",\n      \"px\": \"paddingHorizontal\",\n      \"py\": \"paddingVertical\",\n      \"r\": \"right\",\n      \"shac\": \"shadowColor\",\n      \"shar\": \"shadowRadius\",\n      \"shof\": \"shadowOffset\",\n      \"shop\": \"shadowOpacity\",\n      \"t\": \"top\",\n      \"w\": \"width\",\n      \"zi\": \"zIndex\",\n      \"bls\": \"borderLeftStyle\",\n      \"brs\": \"borderRightStyle\",\n      \"bts\": \"borderTopStyle\",\n      \"bbs\": \"borderBottomStyle\",\n      \"bxs\": \"boxSizing\",\n      \"bxsh\": \"boxShadow\",\n      \"ox\": \"overflowX\",\n      \"oy\": \"overflowY\"\n    },\n    \"tokens\": {\n      \"color\": {\n        \"blue1Light\": {\n          \"isVar\": true,\n          \"key\": \"$blue1Light\",\n          \"name\": \"c-blue1Light\",\n          \"val\": \"hsl(206, 100%, 99.2%)\",\n          \"variable\": \"var(--c-blue1Light)\"\n        },\n        \"blue2Light\": {\n          \"isVar\": true,\n          \"key\": \"$blue2Light\",\n          \"name\": \"c-blue2Light\",\n          \"val\": \"hsl(210, 100%, 98.0%)\",\n          \"variable\": \"var(--c-blue2Light)\"\n        },\n        \"blue3Light\": {\n          \"isVar\": true,\n          \"key\": \"$blue3Light\",\n          \"name\": \"c-blue3Light\",\n          \"val\": \"hsl(209, 100%, 96.5%)\",\n          \"variable\": \"var(--c-blue3Light)\"\n        },\n        \"blue4Light\": {\n          \"isVar\": true,\n          \"key\": \"$blue4Light\",\n          \"name\": \"c-blue4Light\",\n          \"val\": \"hsl(210, 98.8%, 94.0%)\",\n          \"variable\": \"var(--c-blue4Light)\"\n        },\n        \"blue5Light\": {\n          \"isVar\": true,\n          \"key\": \"$blue5Light\",\n          \"name\": \"c-blue5Light\",\n          \"val\": \"hsl(209, 95.0%, 90.1%)\",\n          \"variable\": \"var(--c-blue5Light)\"\n        },\n        \"blue6Light\": {\n          \"isVar\": true,\n          \"key\": \"$blue6Light\",\n          \"name\": \"c-blue6Light\",\n          \"val\": \"hsl(209, 81.2%, 84.5%)\",\n          \"variable\": \"var(--c-blue6Light)\"\n        },\n        \"blue7Light\": {\n          \"isVar\": true,\n          \"key\": \"$blue7Light\",\n          \"name\": \"c-blue7Light\",\n          \"val\": \"hsl(208, 77.5%, 76.9%)\",\n          \"variable\": \"var(--c-blue7Light)\"\n        },\n        \"blue8Light\": {\n          \"isVar\": true,\n          \"key\": \"$blue8Light\",\n          \"name\": \"c-blue8Light\",\n          \"val\": \"hsl(206, 81.9%, 65.3%)\",\n          \"variable\": \"var(--c-blue8Light)\"\n        },\n        \"blue9Light\": {\n          \"isVar\": true,\n          \"key\": \"$blue9Light\",\n          \"name\": \"c-blue9Light\",\n          \"val\": \"hsl(206, 100%, 50.0%)\",\n          \"variable\": \"var(--c-blue9Light)\"\n        },\n        \"blue10Light\": {\n          \"isVar\": true,\n          \"key\": \"$blue10Light\",\n          \"name\": \"c-blue10Light\",\n          \"val\": \"hsl(208, 100%, 47.3%)\",\n          \"variable\": \"var(--c-blue10Light)\"\n        },\n        \"blue11Light\": {\n          \"isVar\": true,\n          \"key\": \"$blue11Light\",\n          \"name\": \"c-blue11Light\",\n          \"val\": \"hsl(211, 100%, 43.2%)\",\n          \"variable\": \"var(--c-blue11Light)\"\n        },\n        \"blue12Light\": {\n          \"isVar\": true,\n          \"key\": \"$blue12Light\",\n          \"name\": \"c-blue12Light\",\n          \"val\": \"hsl(211, 100%, 15.0%)\",\n          \"variable\": \"var(--c-blue12Light)\"\n        },\n        \"gray1Light\": {\n          \"isVar\": true,\n          \"key\": \"$gray1Light\",\n          \"name\": \"c-gray1Light\",\n          \"val\": \"hsl(0, 0%, 99.0%)\",\n          \"variable\": \"var(--c-gray1Light)\"\n        },\n        \"gray2Light\": {\n          \"isVar\": true,\n          \"key\": \"$gray2Light\",\n          \"name\": \"c-gray2Light\",\n          \"val\": \"hsl(0, 0%, 97.3%)\",\n          \"variable\": \"var(--c-gray2Light)\"\n        },\n        \"gray3Light\": {\n          \"isVar\": true,\n          \"key\": \"$gray3Light\",\n          \"name\": \"c-gray3Light\",\n          \"val\": \"hsl(0, 0%, 95.1%)\",\n          \"variable\": \"var(--c-gray3Light)\"\n        },\n        \"gray4Light\": {\n          \"isVar\": true,\n          \"key\": \"$gray4Light\",\n          \"name\": \"c-gray4Light\",\n          \"val\": \"hsl(0, 0%, 93.0%)\",\n          \"variable\": \"var(--c-gray4Light)\"\n        },\n        \"gray5Light\": {\n          \"isVar\": true,\n          \"key\": \"$gray5Light\",\n          \"name\": \"c-gray5Light\",\n          \"val\": \"hsl(0, 0%, 90.9%)\",\n          \"variable\": \"var(--c-gray5Light)\"\n        },\n        \"gray6Light\": {\n          \"isVar\": true,\n          \"key\": \"$gray6Light\",\n          \"name\": \"c-gray6Light\",\n          \"val\": \"hsl(0, 0%, 88.7%)\",\n          \"variable\": \"var(--c-gray6Light)\"\n        },\n        \"gray7Light\": {\n          \"isVar\": true,\n          \"key\": \"$gray7Light\",\n          \"name\": \"c-gray7Light\",\n          \"val\": \"hsl(0, 0%, 85.8%)\",\n          \"variable\": \"var(--c-gray7Light)\"\n        },\n        \"gray8Light\": {\n          \"isVar\": true,\n          \"key\": \"$gray8Light\",\n          \"name\": \"c-gray8Light\",\n          \"val\": \"hsl(0, 0%, 78.0%)\",\n          \"variable\": \"var(--c-gray8Light)\"\n        },\n        \"gray9Light\": {\n          \"isVar\": true,\n          \"key\": \"$gray9Light\",\n          \"name\": \"c-gray9Light\",\n          \"val\": \"hsl(0, 0%, 56.1%)\",\n          \"variable\": \"var(--c-gray9Light)\"\n        },\n        \"gray10Light\": {\n          \"isVar\": true,\n          \"key\": \"$gray10Light\",\n          \"name\": \"c-gray10Light\",\n          \"val\": \"hsl(0, 0%, 52.3%)\",\n          \"variable\": \"var(--c-gray10Light)\"\n        },\n        \"gray11Light\": {\n          \"isVar\": true,\n          \"key\": \"$gray11Light\",\n          \"name\": \"c-gray11Light\",\n          \"val\": \"hsl(0, 0%, 43.5%)\",\n          \"variable\": \"var(--c-gray11Light)\"\n        },\n        \"gray12Light\": {\n          \"isVar\": true,\n          \"key\": \"$gray12Light\",\n          \"name\": \"c-gray12Light\",\n          \"val\": \"hsl(0, 0%, 99.0%)\",\n          \"variable\": \"var(--c-gray12Light)\"\n        },\n        \"gray13Light\": {\n          \"isVar\": true,\n          \"key\": \"$gray13Light\",\n          \"name\": \"c-gray13Light\",\n          \"val\": \"hsl(0, 0%, 9.0%)\",\n          \"variable\": \"var(--c-gray13Light)\"\n        },\n        \"green1Light\": {\n          \"isVar\": true,\n          \"key\": \"$green1Light\",\n          \"name\": \"c-green1Light\",\n          \"val\": \"hsl(136, 50.0%, 98.9%)\",\n          \"variable\": \"var(--c-green1Light)\"\n        },\n        \"green2Light\": {\n          \"isVar\": true,\n          \"key\": \"$green2Light\",\n          \"name\": \"c-green2Light\",\n          \"val\": \"hsl(138, 62.5%, 96.9%)\",\n          \"variable\": \"var(--c-green2Light)\"\n        },\n        \"green3Light\": {\n          \"isVar\": true,\n          \"key\": \"$green3Light\",\n          \"name\": \"c-green3Light\",\n          \"val\": \"hsl(139, 55.2%, 94.5%)\",\n          \"variable\": \"var(--c-green3Light)\"\n        },\n        \"green4Light\": {\n          \"isVar\": true,\n          \"key\": \"$green4Light\",\n          \"name\": \"c-green4Light\",\n          \"val\": \"hsl(140, 48.7%, 91.0%)\",\n          \"variable\": \"var(--c-green4Light)\"\n        },\n        \"green5Light\": {\n          \"isVar\": true,\n          \"key\": \"$green5Light\",\n          \"name\": \"c-green5Light\",\n          \"val\": \"hsl(141, 43.7%, 86.0%)\",\n          \"variable\": \"var(--c-green5Light)\"\n        },\n        \"green6Light\": {\n          \"isVar\": true,\n          \"key\": \"$green6Light\",\n          \"name\": \"c-green6Light\",\n          \"val\": \"hsl(143, 40.3%, 79.0%)\",\n          \"variable\": \"var(--c-green6Light)\"\n        },\n        \"green7Light\": {\n          \"isVar\": true,\n          \"key\": \"$green7Light\",\n          \"name\": \"c-green7Light\",\n          \"val\": \"hsl(146, 38.5%, 69.0%)\",\n          \"variable\": \"var(--c-green7Light)\"\n        },\n        \"green8Light\": {\n          \"isVar\": true,\n          \"key\": \"$green8Light\",\n          \"name\": \"c-green8Light\",\n          \"val\": \"hsl(151, 40.2%, 54.1%)\",\n          \"variable\": \"var(--c-green8Light)\"\n        },\n        \"green9Light\": {\n          \"isVar\": true,\n          \"key\": \"$green9Light\",\n          \"name\": \"c-green9Light\",\n          \"val\": \"hsl(151, 55.0%, 41.5%)\",\n          \"variable\": \"var(--c-green9Light)\"\n        },\n        \"green10Light\": {\n          \"isVar\": true,\n          \"key\": \"$green10Light\",\n          \"name\": \"c-green10Light\",\n          \"val\": \"hsl(152, 57.5%, 37.6%)\",\n          \"variable\": \"var(--c-green10Light)\"\n        },\n        \"green11Light\": {\n          \"isVar\": true,\n          \"key\": \"$green11Light\",\n          \"name\": \"c-green11Light\",\n          \"val\": \"hsl(153, 67.0%, 28.5%)\",\n          \"variable\": \"var(--c-green11Light)\"\n        },\n        \"green12Light\": {\n          \"isVar\": true,\n          \"key\": \"$green12Light\",\n          \"name\": \"c-green12Light\",\n          \"val\": \"hsl(155, 40.0%, 14.0%)\",\n          \"variable\": \"var(--c-green12Light)\"\n        },\n        \"purple1Light\": {\n          \"isVar\": true,\n          \"key\": \"$purple1Light\",\n          \"name\": \"c-purple1Light\",\n          \"val\": \"hsl(280, 65.0%, 99.4%)\",\n          \"variable\": \"var(--c-purple1Light)\"\n        },\n        \"purple2Light\": {\n          \"isVar\": true,\n          \"key\": \"$purple2Light\",\n          \"name\": \"c-purple2Light\",\n          \"val\": \"hsl(276, 100%, 99.0%)\",\n          \"variable\": \"var(--c-purple2Light)\"\n        },\n        \"purple3Light\": {\n          \"isVar\": true,\n          \"key\": \"$purple3Light\",\n          \"name\": \"c-purple3Light\",\n          \"val\": \"hsl(276, 83.1%, 97.0%)\",\n          \"variable\": \"var(--c-purple3Light)\"\n        },\n        \"purple4Light\": {\n          \"isVar\": true,\n          \"key\": \"$purple4Light\",\n          \"name\": \"c-purple4Light\",\n          \"val\": \"hsl(275, 76.4%, 94.7%)\",\n          \"variable\": \"var(--c-purple4Light)\"\n        },\n        \"purple5Light\": {\n          \"isVar\": true,\n          \"key\": \"$purple5Light\",\n          \"name\": \"c-purple5Light\",\n          \"val\": \"hsl(275, 70.8%, 91.8%)\",\n          \"variable\": \"var(--c-purple5Light)\"\n        },\n        \"purple6Light\": {\n          \"isVar\": true,\n          \"key\": \"$purple6Light\",\n          \"name\": \"c-purple6Light\",\n          \"val\": \"hsl(274, 65.4%, 87.8%)\",\n          \"variable\": \"var(--c-purple6Light)\"\n        },\n        \"purple7Light\": {\n          \"isVar\": true,\n          \"key\": \"$purple7Light\",\n          \"name\": \"c-purple7Light\",\n          \"val\": \"hsl(273, 61.0%, 81.7%)\",\n          \"variable\": \"var(--c-purple7Light)\"\n        },\n        \"purple8Light\": {\n          \"isVar\": true,\n          \"key\": \"$purple8Light\",\n          \"name\": \"c-purple8Light\",\n          \"val\": \"hsl(272, 60.0%, 73.5%)\",\n          \"variable\": \"var(--c-purple8Light)\"\n        },\n        \"purple9Light\": {\n          \"isVar\": true,\n          \"key\": \"$purple9Light\",\n          \"name\": \"c-purple9Light\",\n          \"val\": \"hsl(272, 51.0%, 54.0%)\",\n          \"variable\": \"var(--c-purple9Light)\"\n        },\n        \"purple10Light\": {\n          \"isVar\": true,\n          \"key\": \"$purple10Light\",\n          \"name\": \"c-purple10Light\",\n          \"val\": \"hsl(272, 46.8%, 50.3%)\",\n          \"variable\": \"var(--c-purple10Light)\"\n        },\n        \"purple11Light\": {\n          \"isVar\": true,\n          \"key\": \"$purple11Light\",\n          \"name\": \"c-purple11Light\",\n          \"val\": \"hsl(272, 50.0%, 45.8%)\",\n          \"variable\": \"var(--c-purple11Light)\"\n        },\n        \"purple12Light\": {\n          \"isVar\": true,\n          \"key\": \"$purple12Light\",\n          \"name\": \"c-purple12Light\",\n          \"val\": \"hsl(272, 66.0%, 16.0%)\",\n          \"variable\": \"var(--c-purple12Light)\"\n        },\n        \"red1Light\": {\n          \"isVar\": true,\n          \"key\": \"$red1Light\",\n          \"name\": \"c-red1Light\",\n          \"val\": \"hsl(359, 100%, 99.4%)\",\n          \"variable\": \"var(--c-red1Light)\"\n        },\n        \"red2Light\": {\n          \"isVar\": true,\n          \"key\": \"$red2Light\",\n          \"name\": \"c-red2Light\",\n          \"val\": \"hsl(359, 100%, 98.6%)\",\n          \"variable\": \"var(--c-red2Light)\"\n        },\n        \"red3Light\": {\n          \"isVar\": true,\n          \"key\": \"$red3Light\",\n          \"name\": \"c-red3Light\",\n          \"val\": \"hsl(360, 100%, 96.8%)\",\n          \"variable\": \"var(--c-red3Light)\"\n        },\n        \"red4Light\": {\n          \"isVar\": true,\n          \"key\": \"$red4Light\",\n          \"name\": \"c-red4Light\",\n          \"val\": \"hsl(360, 97.9%, 94.8%)\",\n          \"variable\": \"var(--c-red4Light)\"\n        },\n        \"red5Light\": {\n          \"isVar\": true,\n          \"key\": \"$red5Light\",\n          \"name\": \"c-red5Light\",\n          \"val\": \"hsl(360, 90.2%, 91.9%)\",\n          \"variable\": \"var(--c-red5Light)\"\n        },\n        \"red6Light\": {\n          \"isVar\": true,\n          \"key\": \"$red6Light\",\n          \"name\": \"c-red6Light\",\n          \"val\": \"hsl(360, 81.7%, 87.8%)\",\n          \"variable\": \"var(--c-red6Light)\"\n        },\n        \"red7Light\": {\n          \"isVar\": true,\n          \"key\": \"$red7Light\",\n          \"name\": \"c-red7Light\",\n          \"val\": \"hsl(359, 74.2%, 81.7%)\",\n          \"variable\": \"var(--c-red7Light)\"\n        },\n        \"red8Light\": {\n          \"isVar\": true,\n          \"key\": \"$red8Light\",\n          \"name\": \"c-red8Light\",\n          \"val\": \"hsl(359, 69.5%, 74.3%)\",\n          \"variable\": \"var(--c-red8Light)\"\n        },\n        \"red9Light\": {\n          \"isVar\": true,\n          \"key\": \"$red9Light\",\n          \"name\": \"c-red9Light\",\n          \"val\": \"hsl(358, 75.0%, 59.0%)\",\n          \"variable\": \"var(--c-red9Light)\"\n        },\n        \"red10Light\": {\n          \"isVar\": true,\n          \"key\": \"$red10Light\",\n          \"name\": \"c-red10Light\",\n          \"val\": \"hsl(358, 69.4%, 55.2%)\",\n          \"variable\": \"var(--c-red10Light)\"\n        },\n        \"red11Light\": {\n          \"isVar\": true,\n          \"key\": \"$red11Light\",\n          \"name\": \"c-red11Light\",\n          \"val\": \"hsl(358, 65.0%, 48.7%)\",\n          \"variable\": \"var(--c-red11Light)\"\n        },\n        \"red12Light\": {\n          \"isVar\": true,\n          \"key\": \"$red12Light\",\n          \"name\": \"c-red12Light\",\n          \"val\": \"hsl(354, 50.0%, 14.6%)\",\n          \"variable\": \"var(--c-red12Light)\"\n        },\n        \"yellow1Light\": {\n          \"isVar\": true,\n          \"key\": \"$yellow1Light\",\n          \"name\": \"c-yellow1Light\",\n          \"val\": \"hsl(60, 54.0%, 98.5%)\",\n          \"variable\": \"var(--c-yellow1Light)\"\n        },\n        \"yellow2Light\": {\n          \"isVar\": true,\n          \"key\": \"$yellow2Light\",\n          \"name\": \"c-yellow2Light\",\n          \"val\": \"hsl(52, 100%, 95.5%)\",\n          \"variable\": \"var(--c-yellow2Light)\"\n        },\n        \"yellow3Light\": {\n          \"isVar\": true,\n          \"key\": \"$yellow3Light\",\n          \"name\": \"c-yellow3Light\",\n          \"val\": \"hsl(55, 100%, 90.9%)\",\n          \"variable\": \"var(--c-yellow3Light)\"\n        },\n        \"yellow4Light\": {\n          \"isVar\": true,\n          \"key\": \"$yellow4Light\",\n          \"name\": \"c-yellow4Light\",\n          \"val\": \"hsl(54, 100%, 86.6%)\",\n          \"variable\": \"var(--c-yellow4Light)\"\n        },\n        \"yellow5Light\": {\n          \"isVar\": true,\n          \"key\": \"$yellow5Light\",\n          \"name\": \"c-yellow5Light\",\n          \"val\": \"hsl(52, 97.9%, 82.0%)\",\n          \"variable\": \"var(--c-yellow5Light)\"\n        },\n        \"yellow6Light\": {\n          \"isVar\": true,\n          \"key\": \"$yellow6Light\",\n          \"name\": \"c-yellow6Light\",\n          \"val\": \"hsl(50, 89.4%, 76.1%)\",\n          \"variable\": \"var(--c-yellow6Light)\"\n        },\n        \"yellow7Light\": {\n          \"isVar\": true,\n          \"key\": \"$yellow7Light\",\n          \"name\": \"c-yellow7Light\",\n          \"val\": \"hsl(47, 80.4%, 68.0%)\",\n          \"variable\": \"var(--c-yellow7Light)\"\n        },\n        \"yellow8Light\": {\n          \"isVar\": true,\n          \"key\": \"$yellow8Light\",\n          \"name\": \"c-yellow8Light\",\n          \"val\": \"hsl(48, 100%, 46.1%)\",\n          \"variable\": \"var(--c-yellow8Light)\"\n        },\n        \"yellow9Light\": {\n          \"isVar\": true,\n          \"key\": \"$yellow9Light\",\n          \"name\": \"c-yellow9Light\",\n          \"val\": \"hsl(53, 92.0%, 50.0%)\",\n          \"variable\": \"var(--c-yellow9Light)\"\n        },\n        \"yellow10Light\": {\n          \"isVar\": true,\n          \"key\": \"$yellow10Light\",\n          \"name\": \"c-yellow10Light\",\n          \"val\": \"hsl(50, 100%, 48.5%)\",\n          \"variable\": \"var(--c-yellow10Light)\"\n        },\n        \"yellow11Light\": {\n          \"isVar\": true,\n          \"key\": \"$yellow11Light\",\n          \"name\": \"c-yellow11Light\",\n          \"val\": \"hsl(42, 100%, 29.0%)\",\n          \"variable\": \"var(--c-yellow11Light)\"\n        },\n        \"yellow12Light\": {\n          \"isVar\": true,\n          \"key\": \"$yellow12Light\",\n          \"name\": \"c-yellow12Light\",\n          \"val\": \"hsl(40, 55.0%, 13.5%)\",\n          \"variable\": \"var(--c-yellow12Light)\"\n        },\n        \"brand1Light\": {\n          \"isVar\": true,\n          \"key\": \"$brand1Light\",\n          \"name\": \"c-brand1Light\",\n          \"val\": \"hsl(180, 29%, 17%)\",\n          \"variable\": \"var(--c-brand1Light)\"\n        },\n        \"brand2Light\": {\n          \"isVar\": true,\n          \"key\": \"$brand2Light\",\n          \"name\": \"c-brand2Light\",\n          \"val\": \"hsl(180, 36%, 22%)\",\n          \"variable\": \"var(--c-brand2Light)\"\n        },\n        \"brand3Light\": {\n          \"isVar\": true,\n          \"key\": \"$brand3Light\",\n          \"name\": \"c-brand3Light\",\n          \"val\": \"hsl(166, 30%, 29%)\",\n          \"variable\": \"var(--c-brand3Light)\"\n        },\n        \"brand4Light\": {\n          \"isVar\": true,\n          \"key\": \"$brand4Light\",\n          \"name\": \"c-brand4Light\",\n          \"val\": \"hsl(166, 55%, 31%)\",\n          \"variable\": \"var(--c-brand4Light)\"\n        },\n        \"brand5Light\": {\n          \"isVar\": true,\n          \"key\": \"$brand5Light\",\n          \"name\": \"c-brand5Light\",\n          \"val\": \"hsl(171, 96%, 28%)\",\n          \"variable\": \"var(--c-brand5Light)\"\n        },\n        \"brand6Light\": {\n          \"isVar\": true,\n          \"key\": \"$brand6Light\",\n          \"name\": \"c-brand6Light\",\n          \"val\": \"hsl(148, 44%, 47%)\",\n          \"variable\": \"var(--c-brand6Light)\"\n        },\n        \"brand7Light\": {\n          \"isVar\": true,\n          \"key\": \"$brand7Light\",\n          \"name\": \"c-brand7Light\",\n          \"val\": \"hsl(144, 55%, 57%)\",\n          \"variable\": \"var(--c-brand7Light)\"\n        },\n        \"brand8Light\": {\n          \"isVar\": true,\n          \"key\": \"$brand8Light\",\n          \"name\": \"c-brand8Light\",\n          \"val\": \"hsl(144, 73%, 68%)\",\n          \"variable\": \"var(--c-brand8Light)\"\n        },\n        \"brand9Light\": {\n          \"isVar\": true,\n          \"key\": \"$brand9Light\",\n          \"name\": \"c-brand9Light\",\n          \"val\": \"hsl(133, 54%, 78%)\",\n          \"variable\": \"var(--c-brand9Light)\"\n        },\n        \"brand10Light\": {\n          \"isVar\": true,\n          \"key\": \"$brand10Light\",\n          \"name\": \"c-brand10Light\",\n          \"val\": \"hsl(133, 63%, 83%)\",\n          \"variable\": \"var(--c-brand10Light)\"\n        },\n        \"brand11Light\": {\n          \"isVar\": true,\n          \"key\": \"$brand11Light\",\n          \"name\": \"c-brand11Light\",\n          \"val\": \"hsl(122, 53%, 88%)\",\n          \"variable\": \"var(--c-brand11Light)\"\n        },\n        \"brand12Light\": {\n          \"isVar\": true,\n          \"key\": \"$brand12Light\",\n          \"name\": \"c-brand12Light\",\n          \"val\": \"hsl(123, 50%, 93%)\",\n          \"variable\": \"var(--c-brand12Light)\"\n        },\n        \"brandHighlightLight\": {\n          \"isVar\": true,\n          \"key\": \"$brandHighlightLight\",\n          \"name\": \"c-brandHighlightLight\",\n          \"val\": \"hsl(125, 50%, 96%)\",\n          \"variable\": \"var(--c-brandHighlightLight)\"\n        },\n        \"blue1Dark\": {\n          \"isVar\": true,\n          \"key\": \"$blue1Dark\",\n          \"name\": \"c-blue1Dark\",\n          \"val\": \"hsl(212, 35.0%, 9.2%)\",\n          \"variable\": \"var(--c-blue1Dark)\"\n        },\n        \"blue2Dark\": {\n          \"isVar\": true,\n          \"key\": \"$blue2Dark\",\n          \"name\": \"c-blue2Dark\",\n          \"val\": \"hsl(216, 50.0%, 11.8%)\",\n          \"variable\": \"var(--c-blue2Dark)\"\n        },\n        \"blue3Dark\": {\n          \"isVar\": true,\n          \"key\": \"$blue3Dark\",\n          \"name\": \"c-blue3Dark\",\n          \"val\": \"hsl(214, 59.4%, 15.3%)\",\n          \"variable\": \"var(--c-blue3Dark)\"\n        },\n        \"blue4Dark\": {\n          \"isVar\": true,\n          \"key\": \"$blue4Dark\",\n          \"name\": \"c-blue4Dark\",\n          \"val\": \"hsl(214, 65.8%, 17.9%)\",\n          \"variable\": \"var(--c-blue4Dark)\"\n        },\n        \"blue5Dark\": {\n          \"isVar\": true,\n          \"key\": \"$blue5Dark\",\n          \"name\": \"c-blue5Dark\",\n          \"val\": \"hsl(213, 71.2%, 20.2%)\",\n          \"variable\": \"var(--c-blue5Dark)\"\n        },\n        \"blue6Dark\": {\n          \"isVar\": true,\n          \"key\": \"$blue6Dark\",\n          \"name\": \"c-blue6Dark\",\n          \"val\": \"hsl(212, 77.4%, 23.1%)\",\n          \"variable\": \"var(--c-blue6Dark)\"\n        },\n        \"blue7Dark\": {\n          \"isVar\": true,\n          \"key\": \"$blue7Dark\",\n          \"name\": \"c-blue7Dark\",\n          \"val\": \"hsl(211, 85.1%, 27.4%)\",\n          \"variable\": \"var(--c-blue7Dark)\"\n        },\n        \"blue8Dark\": {\n          \"isVar\": true,\n          \"key\": \"$blue8Dark\",\n          \"name\": \"c-blue8Dark\",\n          \"val\": \"hsl(211, 89.7%, 34.1%)\",\n          \"variable\": \"var(--c-blue8Dark)\"\n        },\n        \"blue9Dark\": {\n          \"isVar\": true,\n          \"key\": \"$blue9Dark\",\n          \"name\": \"c-blue9Dark\",\n          \"val\": \"hsl(206, 100%, 50.0%)\",\n          \"variable\": \"var(--c-blue9Dark)\"\n        },\n        \"blue10Dark\": {\n          \"isVar\": true,\n          \"key\": \"$blue10Dark\",\n          \"name\": \"c-blue10Dark\",\n          \"val\": \"hsl(209, 100%, 60.6%)\",\n          \"variable\": \"var(--c-blue10Dark)\"\n        },\n        \"blue11Dark\": {\n          \"isVar\": true,\n          \"key\": \"$blue11Dark\",\n          \"name\": \"c-blue11Dark\",\n          \"val\": \"hsl(210, 100%, 66.1%)\",\n          \"variable\": \"var(--c-blue11Dark)\"\n        },\n        \"blue12Dark\": {\n          \"isVar\": true,\n          \"key\": \"$blue12Dark\",\n          \"name\": \"c-blue12Dark\",\n          \"val\": \"hsl(206, 98.0%, 95.8%)\",\n          \"variable\": \"var(--c-blue12Dark)\"\n        },\n        \"gray1Dark\": {\n          \"isVar\": true,\n          \"key\": \"$gray1Dark\",\n          \"name\": \"c-gray1Dark\",\n          \"val\": \"hsl(0, 0%, 8.5%)\",\n          \"variable\": \"var(--c-gray1Dark)\"\n        },\n        \"gray2Dark\": {\n          \"isVar\": true,\n          \"key\": \"$gray2Dark\",\n          \"name\": \"c-gray2Dark\",\n          \"val\": \"hsl(0, 0%, 11.0%)\",\n          \"variable\": \"var(--c-gray2Dark)\"\n        },\n        \"gray3Dark\": {\n          \"isVar\": true,\n          \"key\": \"$gray3Dark\",\n          \"name\": \"c-gray3Dark\",\n          \"val\": \"hsl(0, 0%, 13.6%)\",\n          \"variable\": \"var(--c-gray3Dark)\"\n        },\n        \"gray4Dark\": {\n          \"isVar\": true,\n          \"key\": \"$gray4Dark\",\n          \"name\": \"c-gray4Dark\",\n          \"val\": \"hsl(0, 0%, 15.8%)\",\n          \"variable\": \"var(--c-gray4Dark)\"\n        },\n        \"gray5Dark\": {\n          \"isVar\": true,\n          \"key\": \"$gray5Dark\",\n          \"name\": \"c-gray5Dark\",\n          \"val\": \"hsl(0, 0%, 17.9%)\",\n          \"variable\": \"var(--c-gray5Dark)\"\n        },\n        \"gray6Dark\": {\n          \"isVar\": true,\n          \"key\": \"$gray6Dark\",\n          \"name\": \"c-gray6Dark\",\n          \"val\": \"hsl(0, 0%, 20.5%)\",\n          \"variable\": \"var(--c-gray6Dark)\"\n        },\n        \"gray7Dark\": {\n          \"isVar\": true,\n          \"key\": \"$gray7Dark\",\n          \"name\": \"c-gray7Dark\",\n          \"val\": \"hsl(0, 0%, 24.3%)\",\n          \"variable\": \"var(--c-gray7Dark)\"\n        },\n        \"gray8Dark\": {\n          \"isVar\": true,\n          \"key\": \"$gray8Dark\",\n          \"name\": \"c-gray8Dark\",\n          \"val\": \"hsl(0, 0%, 31.2%)\",\n          \"variable\": \"var(--c-gray8Dark)\"\n        },\n        \"gray9Dark\": {\n          \"isVar\": true,\n          \"key\": \"$gray9Dark\",\n          \"name\": \"c-gray9Dark\",\n          \"val\": \"hsl(0, 0%, 43.9%)\",\n          \"variable\": \"var(--c-gray9Dark)\"\n        },\n        \"gray10Dark\": {\n          \"isVar\": true,\n          \"key\": \"$gray10Dark\",\n          \"name\": \"c-gray10Dark\",\n          \"val\": \"hsl(0, 0%, 49.4%)\",\n          \"variable\": \"var(--c-gray10Dark)\"\n        },\n        \"gray11Dark\": {\n          \"isVar\": true,\n          \"key\": \"$gray11Dark\",\n          \"name\": \"c-gray11Dark\",\n          \"val\": \"hsl(0, 0%, 62.8%)\",\n          \"variable\": \"var(--c-gray11Dark)\"\n        },\n        \"gray12Dark\": {\n          \"isVar\": true,\n          \"key\": \"$gray12Dark\",\n          \"name\": \"c-gray12Dark\",\n          \"val\": \"hsl(0, 0%, 18%)\",\n          \"variable\": \"var(--c-gray12Dark)\"\n        },\n        \"gray13Dark\": {\n          \"isVar\": true,\n          \"key\": \"$gray13Dark\",\n          \"name\": \"c-gray13Dark\",\n          \"val\": \"hsl(0, 0%, 93.0%)\",\n          \"variable\": \"var(--c-gray13Dark)\"\n        },\n        \"green1Dark\": {\n          \"isVar\": true,\n          \"key\": \"$green1Dark\",\n          \"name\": \"c-green1Dark\",\n          \"val\": \"hsl(146, 30.0%, 7.4%)\",\n          \"variable\": \"var(--c-green1Dark)\"\n        },\n        \"green2Dark\": {\n          \"isVar\": true,\n          \"key\": \"$green2Dark\",\n          \"name\": \"c-green2Dark\",\n          \"val\": \"hsl(155, 44.2%, 8.4%)\",\n          \"variable\": \"var(--c-green2Dark)\"\n        },\n        \"green3Dark\": {\n          \"isVar\": true,\n          \"key\": \"$green3Dark\",\n          \"name\": \"c-green3Dark\",\n          \"val\": \"hsl(155, 46.7%, 10.9%)\",\n          \"variable\": \"var(--c-green3Dark)\"\n        },\n        \"green4Dark\": {\n          \"isVar\": true,\n          \"key\": \"$green4Dark\",\n          \"name\": \"c-green4Dark\",\n          \"val\": \"hsl(154, 48.4%, 12.9%)\",\n          \"variable\": \"var(--c-green4Dark)\"\n        },\n        \"green5Dark\": {\n          \"isVar\": true,\n          \"key\": \"$green5Dark\",\n          \"name\": \"c-green5Dark\",\n          \"val\": \"hsl(154, 49.7%, 14.9%)\",\n          \"variable\": \"var(--c-green5Dark)\"\n        },\n        \"green6Dark\": {\n          \"isVar\": true,\n          \"key\": \"$green6Dark\",\n          \"name\": \"c-green6Dark\",\n          \"val\": \"hsl(154, 50.9%, 17.6%)\",\n          \"variable\": \"var(--c-green6Dark)\"\n        },\n        \"green7Dark\": {\n          \"isVar\": true,\n          \"key\": \"$green7Dark\",\n          \"name\": \"c-green7Dark\",\n          \"val\": \"hsl(153, 51.8%, 21.8%)\",\n          \"variable\": \"var(--c-green7Dark)\"\n        },\n        \"green8Dark\": {\n          \"isVar\": true,\n          \"key\": \"$green8Dark\",\n          \"name\": \"c-green8Dark\",\n          \"val\": \"hsl(151, 51.7%, 28.4%)\",\n          \"variable\": \"var(--c-green8Dark)\"\n        },\n        \"green9Dark\": {\n          \"isVar\": true,\n          \"key\": \"$green9Dark\",\n          \"name\": \"c-green9Dark\",\n          \"val\": \"hsl(151, 55.0%, 41.5%)\",\n          \"variable\": \"var(--c-green9Dark)\"\n        },\n        \"green10Dark\": {\n          \"isVar\": true,\n          \"key\": \"$green10Dark\",\n          \"name\": \"c-green10Dark\",\n          \"val\": \"hsl(151, 49.3%, 46.5%)\",\n          \"variable\": \"var(--c-green10Dark)\"\n        },\n        \"green11Dark\": {\n          \"isVar\": true,\n          \"key\": \"$green11Dark\",\n          \"name\": \"c-green11Dark\",\n          \"val\": \"hsl(151, 50.0%, 53.2%)\",\n          \"variable\": \"var(--c-green11Dark)\"\n        },\n        \"green12Dark\": {\n          \"isVar\": true,\n          \"key\": \"$green12Dark\",\n          \"name\": \"c-green12Dark\",\n          \"val\": \"hsl(137, 72.0%, 94.0%)\",\n          \"variable\": \"var(--c-green12Dark)\"\n        },\n        \"purple1Dark\": {\n          \"isVar\": true,\n          \"key\": \"$purple1Dark\",\n          \"name\": \"c-purple1Dark\",\n          \"val\": \"hsl(284, 20.0%, 9.6%)\",\n          \"variable\": \"var(--c-purple1Dark)\"\n        },\n        \"purple2Dark\": {\n          \"isVar\": true,\n          \"key\": \"$purple2Dark\",\n          \"name\": \"c-purple2Dark\",\n          \"val\": \"hsl(283, 30.0%, 11.8%)\",\n          \"variable\": \"var(--c-purple2Dark)\"\n        },\n        \"purple3Dark\": {\n          \"isVar\": true,\n          \"key\": \"$purple3Dark\",\n          \"name\": \"c-purple3Dark\",\n          \"val\": \"hsl(281, 37.5%, 16.5%)\",\n          \"variable\": \"var(--c-purple3Dark)\"\n        },\n        \"purple4Dark\": {\n          \"isVar\": true,\n          \"key\": \"$purple4Dark\",\n          \"name\": \"c-purple4Dark\",\n          \"val\": \"hsl(280, 41.2%, 20.0%)\",\n          \"variable\": \"var(--c-purple4Dark)\"\n        },\n        \"purple5Dark\": {\n          \"isVar\": true,\n          \"key\": \"$purple5Dark\",\n          \"name\": \"c-purple5Dark\",\n          \"val\": \"hsl(279, 43.8%, 23.3%)\",\n          \"variable\": \"var(--c-purple5Dark)\"\n        },\n        \"purple6Dark\": {\n          \"isVar\": true,\n          \"key\": \"$purple6Dark\",\n          \"name\": \"c-purple6Dark\",\n          \"val\": \"hsl(277, 46.4%, 27.5%)\",\n          \"variable\": \"var(--c-purple6Dark)\"\n        },\n        \"purple7Dark\": {\n          \"isVar\": true,\n          \"key\": \"$purple7Dark\",\n          \"name\": \"c-purple7Dark\",\n          \"val\": \"hsl(275, 49.3%, 34.6%)\",\n          \"variable\": \"var(--c-purple7Dark)\"\n        },\n        \"purple8Dark\": {\n          \"isVar\": true,\n          \"key\": \"$purple8Dark\",\n          \"name\": \"c-purple8Dark\",\n          \"val\": \"hsl(272, 52.1%, 45.9%)\",\n          \"variable\": \"var(--c-purple8Dark)\"\n        },\n        \"purple9Dark\": {\n          \"isVar\": true,\n          \"key\": \"$purple9Dark\",\n          \"name\": \"c-purple9Dark\",\n          \"val\": \"hsl(272, 51.0%, 54.0%)\",\n          \"variable\": \"var(--c-purple9Dark)\"\n        },\n        \"purple10Dark\": {\n          \"isVar\": true,\n          \"key\": \"$purple10Dark\",\n          \"name\": \"c-purple10Dark\",\n          \"val\": \"hsl(273, 57.3%, 59.1%)\",\n          \"variable\": \"var(--c-purple10Dark)\"\n        },\n        \"purple11Dark\": {\n          \"isVar\": true,\n          \"key\": \"$purple11Dark\",\n          \"name\": \"c-purple11Dark\",\n          \"val\": \"hsl(275, 80.0%, 71.0%)\",\n          \"variable\": \"var(--c-purple11Dark)\"\n        },\n        \"purple12Dark\": {\n          \"isVar\": true,\n          \"key\": \"$purple12Dark\",\n          \"name\": \"c-purple12Dark\",\n          \"val\": \"hsl(279, 75.0%, 95.7%)\",\n          \"variable\": \"var(--c-purple12Dark)\"\n        },\n        \"red1Dark\": {\n          \"isVar\": true,\n          \"key\": \"$red1Dark\",\n          \"name\": \"c-red1Dark\",\n          \"val\": \"hsl(353, 23.0%, 9.8%)\",\n          \"variable\": \"var(--c-red1Dark)\"\n        },\n        \"red2Dark\": {\n          \"isVar\": true,\n          \"key\": \"$red2Dark\",\n          \"name\": \"c-red2Dark\",\n          \"val\": \"hsl(357, 34.4%, 12.0%)\",\n          \"variable\": \"var(--c-red2Dark)\"\n        },\n        \"red3Dark\": {\n          \"isVar\": true,\n          \"key\": \"$red3Dark\",\n          \"name\": \"c-red3Dark\",\n          \"val\": \"hsl(356, 43.4%, 16.4%)\",\n          \"variable\": \"var(--c-red3Dark)\"\n        },\n        \"red4Dark\": {\n          \"isVar\": true,\n          \"key\": \"$red4Dark\",\n          \"name\": \"c-red4Dark\",\n          \"val\": \"hsl(356, 47.6%, 19.2%)\",\n          \"variable\": \"var(--c-red4Dark)\"\n        },\n        \"red5Dark\": {\n          \"isVar\": true,\n          \"key\": \"$red5Dark\",\n          \"name\": \"c-red5Dark\",\n          \"val\": \"hsl(356, 51.1%, 21.9%)\",\n          \"variable\": \"var(--c-red5Dark)\"\n        },\n        \"red6Dark\": {\n          \"isVar\": true,\n          \"key\": \"$red6Dark\",\n          \"name\": \"c-red6Dark\",\n          \"val\": \"hsl(356, 55.2%, 25.9%)\",\n          \"variable\": \"var(--c-red6Dark)\"\n        },\n        \"red7Dark\": {\n          \"isVar\": true,\n          \"key\": \"$red7Dark\",\n          \"name\": \"c-red7Dark\",\n          \"val\": \"hsl(357, 60.2%, 31.8%)\",\n          \"variable\": \"var(--c-red7Dark)\"\n        },\n        \"red8Dark\": {\n          \"isVar\": true,\n          \"key\": \"$red8Dark\",\n          \"name\": \"c-red8Dark\",\n          \"val\": \"hsl(358, 65.0%, 40.4%)\",\n          \"variable\": \"var(--c-red8Dark)\"\n        },\n        \"red9Dark\": {\n          \"isVar\": true,\n          \"key\": \"$red9Dark\",\n          \"name\": \"c-red9Dark\",\n          \"val\": \"hsl(358, 75.0%, 59.0%)\",\n          \"variable\": \"var(--c-red9Dark)\"\n        },\n        \"red10Dark\": {\n          \"isVar\": true,\n          \"key\": \"$red10Dark\",\n          \"name\": \"c-red10Dark\",\n          \"val\": \"hsl(358, 85.3%, 64.0%)\",\n          \"variable\": \"var(--c-red10Dark)\"\n        },\n        \"red11Dark\": {\n          \"isVar\": true,\n          \"key\": \"$red11Dark\",\n          \"name\": \"c-red11Dark\",\n          \"val\": \"hsl(358, 100%, 69.5%)\",\n          \"variable\": \"var(--c-red11Dark)\"\n        },\n        \"red12Dark\": {\n          \"isVar\": true,\n          \"key\": \"$red12Dark\",\n          \"name\": \"c-red12Dark\",\n          \"val\": \"hsl(351, 89.0%, 96.0%)\",\n          \"variable\": \"var(--c-red12Dark)\"\n        },\n        \"yellow1Dark\": {\n          \"isVar\": true,\n          \"key\": \"$yellow1Dark\",\n          \"name\": \"c-yellow1Dark\",\n          \"val\": \"hsl(45, 100%, 5.5%)\",\n          \"variable\": \"var(--c-yellow1Dark)\"\n        },\n        \"yellow2Dark\": {\n          \"isVar\": true,\n          \"key\": \"$yellow2Dark\",\n          \"name\": \"c-yellow2Dark\",\n          \"val\": \"hsl(46, 100%, 6.7%)\",\n          \"variable\": \"var(--c-yellow2Dark)\"\n        },\n        \"yellow3Dark\": {\n          \"isVar\": true,\n          \"key\": \"$yellow3Dark\",\n          \"name\": \"c-yellow3Dark\",\n          \"val\": \"hsl(45, 100%, 8.7%)\",\n          \"variable\": \"var(--c-yellow3Dark)\"\n        },\n        \"yellow4Dark\": {\n          \"isVar\": true,\n          \"key\": \"$yellow4Dark\",\n          \"name\": \"c-yellow4Dark\",\n          \"val\": \"hsl(45, 100%, 10.4%)\",\n          \"variable\": \"var(--c-yellow4Dark)\"\n        },\n        \"yellow5Dark\": {\n          \"isVar\": true,\n          \"key\": \"$yellow5Dark\",\n          \"name\": \"c-yellow5Dark\",\n          \"val\": \"hsl(47, 100%, 12.1%)\",\n          \"variable\": \"var(--c-yellow5Dark)\"\n        },\n        \"yellow6Dark\": {\n          \"isVar\": true,\n          \"key\": \"$yellow6Dark\",\n          \"name\": \"c-yellow6Dark\",\n          \"val\": \"hsl(49, 100%, 14.3%)\",\n          \"variable\": \"var(--c-yellow6Dark)\"\n        },\n        \"yellow7Dark\": {\n          \"isVar\": true,\n          \"key\": \"$yellow7Dark\",\n          \"name\": \"c-yellow7Dark\",\n          \"val\": \"hsl(49, 90.3%, 18.4%)\",\n          \"variable\": \"var(--c-yellow7Dark)\"\n        },\n        \"yellow8Dark\": {\n          \"isVar\": true,\n          \"key\": \"$yellow8Dark\",\n          \"name\": \"c-yellow8Dark\",\n          \"val\": \"hsl(50, 100%, 22.0%)\",\n          \"variable\": \"var(--c-yellow8Dark)\"\n        },\n        \"yellow9Dark\": {\n          \"isVar\": true,\n          \"key\": \"$yellow9Dark\",\n          \"name\": \"c-yellow9Dark\",\n          \"val\": \"hsl(53, 92.0%, 50.0%)\",\n          \"variable\": \"var(--c-yellow9Dark)\"\n        },\n        \"yellow10Dark\": {\n          \"isVar\": true,\n          \"key\": \"$yellow10Dark\",\n          \"name\": \"c-yellow10Dark\",\n          \"val\": \"hsl(54, 100%, 68.0%)\",\n          \"variable\": \"var(--c-yellow10Dark)\"\n        },\n        \"yellow11Dark\": {\n          \"isVar\": true,\n          \"key\": \"$yellow11Dark\",\n          \"name\": \"c-yellow11Dark\",\n          \"val\": \"hsl(48, 100%, 47.0%)\",\n          \"variable\": \"var(--c-yellow11Dark)\"\n        },\n        \"yellow12Dark\": {\n          \"isVar\": true,\n          \"key\": \"$yellow12Dark\",\n          \"name\": \"c-yellow12Dark\",\n          \"val\": \"hsl(53, 100%, 91.0%)\",\n          \"variable\": \"var(--c-yellow12Dark)\"\n        },\n        \"brand1Dark\": {\n          \"isVar\": true,\n          \"key\": \"$brand1Dark\",\n          \"name\": \"c-brand1Dark\",\n          \"val\": \"hsl(123, 50%, 93%)\",\n          \"variable\": \"var(--c-brand1Dark)\"\n        },\n        \"brand2Dark\": {\n          \"isVar\": true,\n          \"key\": \"$brand2Dark\",\n          \"name\": \"c-brand2Dark\",\n          \"val\": \"hsl(122, 53%, 88%)\",\n          \"variable\": \"var(--c-brand2Dark)\"\n        },\n        \"brand3Dark\": {\n          \"isVar\": true,\n          \"key\": \"$brand3Dark\",\n          \"name\": \"c-brand3Dark\",\n          \"val\": \"hsl(125, 100%, 98%)\",\n          \"variable\": \"var(--c-brand3Dark)\"\n        },\n        \"brand4Dark\": {\n          \"isVar\": true,\n          \"key\": \"$brand4Dark\",\n          \"name\": \"c-brand4Dark\",\n          \"val\": \"hsl(166, 55%, 31%)\",\n          \"variable\": \"var(--c-brand4Dark)\"\n        },\n        \"brand5Dark\": {\n          \"isVar\": true,\n          \"key\": \"$brand5Dark\",\n          \"name\": \"c-brand5Dark\",\n          \"val\": \"hsl(171, 96%, 28%)\",\n          \"variable\": \"var(--c-brand5Dark)\"\n        },\n        \"brand6Dark\": {\n          \"isVar\": true,\n          \"key\": \"$brand6Dark\",\n          \"name\": \"c-brand6Dark\",\n          \"val\": \"hsl(148, 44%, 47%)\",\n          \"variable\": \"var(--c-brand6Dark)\"\n        },\n        \"brand7Dark\": {\n          \"isVar\": true,\n          \"key\": \"$brand7Dark\",\n          \"name\": \"c-brand7Dark\",\n          \"val\": \"hsl(144, 55%, 57%)\",\n          \"variable\": \"var(--c-brand7Dark)\"\n        },\n        \"brand8Dark\": {\n          \"isVar\": true,\n          \"key\": \"$brand8Dark\",\n          \"name\": \"c-brand8Dark\",\n          \"val\": \"hsl(144, 73%, 68%)\",\n          \"variable\": \"var(--c-brand8Dark)\"\n        },\n        \"brand9Dark\": {\n          \"isVar\": true,\n          \"key\": \"$brand9Dark\",\n          \"name\": \"c-brand9Dark\",\n          \"val\": \"hsl(133, 54%, 78%)\",\n          \"variable\": \"var(--c-brand9Dark)\"\n        },\n        \"brand10Dark\": {\n          \"isVar\": true,\n          \"key\": \"$brand10Dark\",\n          \"name\": \"c-brand10Dark\",\n          \"val\": \"hsl(166, 30%, 29%)\",\n          \"variable\": \"var(--c-brand10Dark)\"\n        },\n        \"brand11Dark\": {\n          \"isVar\": true,\n          \"key\": \"$brand11Dark\",\n          \"name\": \"c-brand11Dark\",\n          \"val\": \"hsl(180, 36%, 22%)\",\n          \"variable\": \"var(--c-brand11Dark)\"\n        },\n        \"brand12Dark\": {\n          \"isVar\": true,\n          \"key\": \"$brand12Dark\",\n          \"name\": \"c-brand12Dark\",\n          \"val\": \"hsl(180, 29%, 17%)\",\n          \"variable\": \"var(--c-brand12Dark)\"\n        },\n        \"brandHighlightDark\": {\n          \"isVar\": true,\n          \"key\": \"$brandHighlightDark\",\n          \"name\": \"c-brandHighlightDark\",\n          \"val\": \"hsl(180, 41%, 8%)\",\n          \"variable\": \"var(--c-brandHighlightDark)\"\n        }\n      },\n      \"radius\": {\n        \"0\": {\n          \"isVar\": true,\n          \"key\": \"$0\",\n          \"name\": \"t-radius-0\",\n          \"val\": 0,\n          \"variable\": \"var(--t-radius-0)\"\n        },\n        \"1\": {\n          \"isVar\": true,\n          \"key\": \"$1\",\n          \"name\": \"t-radius-1\",\n          \"val\": 3,\n          \"variable\": \"var(--t-radius-1)\"\n        },\n        \"2\": {\n          \"isVar\": true,\n          \"key\": \"$2\",\n          \"name\": \"t-radius-2\",\n          \"val\": 5,\n          \"variable\": \"var(--t-radius-2)\"\n        },\n        \"3\": {\n          \"isVar\": true,\n          \"key\": \"$3\",\n          \"name\": \"t-radius-3\",\n          \"val\": 7,\n          \"variable\": \"var(--t-radius-3)\"\n        },\n        \"4\": {\n          \"isVar\": true,\n          \"key\": \"$4\",\n          \"name\": \"t-radius-4\",\n          \"val\": 9,\n          \"variable\": \"var(--t-radius-4)\"\n        },\n        \"5\": {\n          \"isVar\": true,\n          \"key\": \"$5\",\n          \"name\": \"t-radius-5\",\n          \"val\": 10,\n          \"variable\": \"var(--t-radius-5)\"\n        },\n        \"6\": {\n          \"isVar\": true,\n          \"key\": \"$6\",\n          \"name\": \"t-radius-6\",\n          \"val\": 16,\n          \"variable\": \"var(--t-radius-6)\"\n        },\n        \"7\": {\n          \"isVar\": true,\n          \"key\": \"$7\",\n          \"name\": \"t-radius-7\",\n          \"val\": 19,\n          \"variable\": \"var(--t-radius-7)\"\n        },\n        \"8\": {\n          \"isVar\": true,\n          \"key\": \"$8\",\n          \"name\": \"t-radius-8\",\n          \"val\": 22,\n          \"variable\": \"var(--t-radius-8)\"\n        },\n        \"9\": {\n          \"isVar\": true,\n          \"key\": \"$9\",\n          \"name\": \"t-radius-9\",\n          \"val\": 26,\n          \"variable\": \"var(--t-radius-9)\"\n        },\n        \"10\": {\n          \"isVar\": true,\n          \"key\": \"$10\",\n          \"name\": \"t-radius-10\",\n          \"val\": 34,\n          \"variable\": \"var(--t-radius-10)\"\n        },\n        \"11\": {\n          \"isVar\": true,\n          \"key\": \"$11\",\n          \"name\": \"t-radius-11\",\n          \"val\": 42,\n          \"variable\": \"var(--t-radius-11)\"\n        },\n        \"12\": {\n          \"isVar\": true,\n          \"key\": \"$12\",\n          \"name\": \"t-radius-12\",\n          \"val\": 50,\n          \"variable\": \"var(--t-radius-12)\"\n        },\n        \"true\": {\n          \"isVar\": true,\n          \"key\": \"$true\",\n          \"name\": \"t-radius-true\",\n          \"val\": 9,\n          \"variable\": \"var(--t-radius-true)\"\n        }\n      },\n      \"zIndex\": {\n        \"0\": {\n          \"isVar\": true,\n          \"key\": \"$0\",\n          \"name\": \"t-zIndex-0\",\n          \"val\": 0,\n          \"variable\": \"var(--t-zIndex-0)\"\n        },\n        \"1\": {\n          \"isVar\": true,\n          \"key\": \"$1\",\n          \"name\": \"t-zIndex-1\",\n          \"val\": 100,\n          \"variable\": \"var(--t-zIndex-1)\"\n        },\n        \"2\": {\n          \"isVar\": true,\n          \"key\": \"$2\",\n          \"name\": \"t-zIndex-2\",\n          \"val\": 200,\n          \"variable\": \"var(--t-zIndex-2)\"\n        },\n        \"3\": {\n          \"isVar\": true,\n          \"key\": \"$3\",\n          \"name\": \"t-zIndex-3\",\n          \"val\": 300,\n          \"variable\": \"var(--t-zIndex-3)\"\n        },\n        \"4\": {\n          \"isVar\": true,\n          \"key\": \"$4\",\n          \"name\": \"t-zIndex-4\",\n          \"val\": 400,\n          \"variable\": \"var(--t-zIndex-4)\"\n        },\n        \"5\": {\n          \"isVar\": true,\n          \"key\": \"$5\",\n          \"name\": \"t-zIndex-5\",\n          \"val\": 500,\n          \"variable\": \"var(--t-zIndex-5)\"\n        },\n        \"6\": {\n          \"isVar\": true,\n          \"key\": \"$6\",\n          \"name\": \"t-zIndex-6\",\n          \"val\": 600,\n          \"variable\": \"var(--t-zIndex-6)\"\n        },\n        \"7\": {\n          \"isVar\": true,\n          \"key\": \"$7\",\n          \"name\": \"t-zIndex-7\",\n          \"val\": 700,\n          \"variable\": \"var(--t-zIndex-7)\"\n        },\n        \"8\": {\n          \"isVar\": true,\n          \"key\": \"$8\",\n          \"name\": \"t-zIndex-8\",\n          \"val\": 800,\n          \"variable\": \"var(--t-zIndex-8)\"\n        },\n        \"9\": {\n          \"isVar\": true,\n          \"key\": \"$9\",\n          \"name\": \"t-zIndex-9\",\n          \"val\": 900,\n          \"variable\": \"var(--t-zIndex-9)\"\n        }\n      },\n      \"space\": {\n        \"0\": {\n          \"isVar\": true,\n          \"key\": \"$0\",\n          \"name\": \"t-space-0\",\n          \"val\": 0,\n          \"variable\": \"var(--t-space-0)\"\n        },\n        \"1\": {\n          \"isVar\": true,\n          \"key\": \"$1\",\n          \"name\": \"t-space-1\",\n          \"val\": 2,\n          \"variable\": \"var(--t-space-1)\"\n        },\n        \"2\": {\n          \"isVar\": true,\n          \"key\": \"$2\",\n          \"name\": \"t-space-2\",\n          \"val\": 7,\n          \"variable\": \"var(--t-space-2)\"\n        },\n        \"3\": {\n          \"isVar\": true,\n          \"key\": \"$3\",\n          \"name\": \"t-space-3\",\n          \"val\": 13,\n          \"variable\": \"var(--t-space-3)\"\n        },\n        \"4\": {\n          \"isVar\": true,\n          \"key\": \"$4\",\n          \"name\": \"t-space-4\",\n          \"val\": 18,\n          \"variable\": \"var(--t-space-4)\"\n        },\n        \"5\": {\n          \"isVar\": true,\n          \"key\": \"$5\",\n          \"name\": \"t-space-5\",\n          \"val\": 24,\n          \"variable\": \"var(--t-space-5)\"\n        },\n        \"6\": {\n          \"isVar\": true,\n          \"key\": \"$6\",\n          \"name\": \"t-space-6\",\n          \"val\": 32,\n          \"variable\": \"var(--t-space-6)\"\n        },\n        \"7\": {\n          \"isVar\": true,\n          \"key\": \"$7\",\n          \"name\": \"t-space-7\",\n          \"val\": 39,\n          \"variable\": \"var(--t-space-7)\"\n        },\n        \"8\": {\n          \"isVar\": true,\n          \"key\": \"$8\",\n          \"name\": \"t-space-8\",\n          \"val\": 46,\n          \"variable\": \"var(--t-space-8)\"\n        },\n        \"9\": {\n          \"isVar\": true,\n          \"key\": \"$9\",\n          \"name\": \"t-space-9\",\n          \"val\": 53,\n          \"variable\": \"var(--t-space-9)\"\n        },\n        \"10\": {\n          \"isVar\": true,\n          \"key\": \"$10\",\n          \"name\": \"t-space-10\",\n          \"val\": 60,\n          \"variable\": \"var(--t-space-10)\"\n        },\n        \"11\": {\n          \"isVar\": true,\n          \"key\": \"$11\",\n          \"name\": \"t-space-11\",\n          \"val\": 74,\n          \"variable\": \"var(--t-space-11)\"\n        },\n        \"12\": {\n          \"isVar\": true,\n          \"key\": \"$12\",\n          \"name\": \"t-space-12\",\n          \"val\": 88,\n          \"variable\": \"var(--t-space-12)\"\n        },\n        \"13\": {\n          \"isVar\": true,\n          \"key\": \"$13\",\n          \"name\": \"t-space-13\",\n          \"val\": 102,\n          \"variable\": \"var(--t-space-13)\"\n        },\n        \"14\": {\n          \"isVar\": true,\n          \"key\": \"$14\",\n          \"name\": \"t-space-14\",\n          \"val\": 116,\n          \"variable\": \"var(--t-space-14)\"\n        },\n        \"15\": {\n          \"isVar\": true,\n          \"key\": \"$15\",\n          \"name\": \"t-space-15\",\n          \"val\": 130,\n          \"variable\": \"var(--t-space-15)\"\n        },\n        \"16\": {\n          \"isVar\": true,\n          \"key\": \"$16\",\n          \"name\": \"t-space-16\",\n          \"val\": 144,\n          \"variable\": \"var(--t-space-16)\"\n        },\n        \"17\": {\n          \"isVar\": true,\n          \"key\": \"$17\",\n          \"name\": \"t-space-17\",\n          \"val\": 144,\n          \"variable\": \"var(--t-space-17)\"\n        },\n        \"18\": {\n          \"isVar\": true,\n          \"key\": \"$18\",\n          \"name\": \"t-space-18\",\n          \"val\": 158,\n          \"variable\": \"var(--t-space-18)\"\n        },\n        \"19\": {\n          \"isVar\": true,\n          \"key\": \"$19\",\n          \"name\": \"t-space-19\",\n          \"val\": 172,\n          \"variable\": \"var(--t-space-19)\"\n        },\n        \"20\": {\n          \"isVar\": true,\n          \"key\": \"$20\",\n          \"name\": \"t-space-20\",\n          \"val\": 186,\n          \"variable\": \"var(--t-space-20)\"\n        },\n        \"0.25\": {\n          \"isVar\": true,\n          \"key\": \"$0.25\",\n          \"name\": \"t-space-0--25\",\n          \"val\": 0.5,\n          \"variable\": \"var(--t-space-0--25)\"\n        },\n        \"0.5\": {\n          \"isVar\": true,\n          \"key\": \"$0.5\",\n          \"name\": \"t-space-0--5\",\n          \"val\": 1,\n          \"variable\": \"var(--t-space-0--5)\"\n        },\n        \"0.75\": {\n          \"isVar\": true,\n          \"key\": \"$0.75\",\n          \"name\": \"t-space-0--75\",\n          \"val\": 1.5,\n          \"variable\": \"var(--t-space-0--75)\"\n        },\n        \"1.5\": {\n          \"isVar\": true,\n          \"key\": \"$1.5\",\n          \"name\": \"t-space-1--5\",\n          \"val\": 4,\n          \"variable\": \"var(--t-space-1--5)\"\n        },\n        \"2.5\": {\n          \"isVar\": true,\n          \"key\": \"$2.5\",\n          \"name\": \"t-space-2--5\",\n          \"val\": 10,\n          \"variable\": \"var(--t-space-2--5)\"\n        },\n        \"3.5\": {\n          \"isVar\": true,\n          \"key\": \"$3.5\",\n          \"name\": \"t-space-3--5\",\n          \"val\": 16,\n          \"variable\": \"var(--t-space-3--5)\"\n        },\n        \"true\": {\n          \"isVar\": true,\n          \"key\": \"$true\",\n          \"name\": \"t-space-true\",\n          \"val\": 18,\n          \"variable\": \"var(--t-space-true)\"\n        },\n        \"4.5\": {\n          \"isVar\": true,\n          \"key\": \"$4.5\",\n          \"name\": \"t-space-4--5\",\n          \"val\": 21,\n          \"variable\": \"var(--t-space-4--5)\"\n        },\n        \"-0.25\": {\n          \"isVar\": true,\n          \"key\": \"$-0.25\",\n          \"name\": \"t-space--0--25\",\n          \"val\": -0.5,\n          \"variable\": \"var(--t-space--0--25)\"\n        },\n        \"-0.5\": {\n          \"isVar\": true,\n          \"key\": \"$-0.5\",\n          \"name\": \"t-space--0--5\",\n          \"val\": -1,\n          \"variable\": \"var(--t-space--0--5)\"\n        },\n        \"-0.75\": {\n          \"isVar\": true,\n          \"key\": \"$-0.75\",\n          \"name\": \"t-space--0--75\",\n          \"val\": -1.5,\n          \"variable\": \"var(--t-space--0--75)\"\n        },\n        \"-1\": {\n          \"isVar\": true,\n          \"key\": \"$-1\",\n          \"name\": \"t-space--1\",\n          \"val\": -2,\n          \"variable\": \"var(--t-space--1)\"\n        },\n        \"-1.5\": {\n          \"isVar\": true,\n          \"key\": \"$-1.5\",\n          \"name\": \"t-space--1--5\",\n          \"val\": -4,\n          \"variable\": \"var(--t-space--1--5)\"\n        },\n        \"-2\": {\n          \"isVar\": true,\n          \"key\": \"$-2\",\n          \"name\": \"t-space--2\",\n          \"val\": -7,\n          \"variable\": \"var(--t-space--2)\"\n        },\n        \"-2.5\": {\n          \"isVar\": true,\n          \"key\": \"$-2.5\",\n          \"name\": \"t-space--2--5\",\n          \"val\": -10,\n          \"variable\": \"var(--t-space--2--5)\"\n        },\n        \"-3\": {\n          \"isVar\": true,\n          \"key\": \"$-3\",\n          \"name\": \"t-space--3\",\n          \"val\": -13,\n          \"variable\": \"var(--t-space--3)\"\n        },\n        \"-3.5\": {\n          \"isVar\": true,\n          \"key\": \"$-3.5\",\n          \"name\": \"t-space--3--5\",\n          \"val\": -16,\n          \"variable\": \"var(--t-space--3--5)\"\n        },\n        \"-4\": {\n          \"isVar\": true,\n          \"key\": \"$-4\",\n          \"name\": \"t-space--4\",\n          \"val\": -18,\n          \"variable\": \"var(--t-space--4)\"\n        },\n        \"-true\": {\n          \"isVar\": true,\n          \"key\": \"$-true\",\n          \"name\": \"t-space--true\",\n          \"val\": -18,\n          \"variable\": \"var(--t-space--true)\"\n        },\n        \"-4.5\": {\n          \"isVar\": true,\n          \"key\": \"$-4.5\",\n          \"name\": \"t-space--4--5\",\n          \"val\": -21,\n          \"variable\": \"var(--t-space--4--5)\"\n        },\n        \"-5\": {\n          \"isVar\": true,\n          \"key\": \"$-5\",\n          \"name\": \"t-space--5\",\n          \"val\": -24,\n          \"variable\": \"var(--t-space--5)\"\n        },\n        \"-6\": {\n          \"isVar\": true,\n          \"key\": \"$-6\",\n          \"name\": \"t-space--6\",\n          \"val\": -32,\n          \"variable\": \"var(--t-space--6)\"\n        },\n        \"-7\": {\n          \"isVar\": true,\n          \"key\": \"$-7\",\n          \"name\": \"t-space--7\",\n          \"val\": -39,\n          \"variable\": \"var(--t-space--7)\"\n        },\n        \"-8\": {\n          \"isVar\": true,\n          \"key\": \"$-8\",\n          \"name\": \"t-space--8\",\n          \"val\": -46,\n          \"variable\": \"var(--t-space--8)\"\n        },\n        \"-9\": {\n          \"isVar\": true,\n          \"key\": \"$-9\",\n          \"name\": \"t-space--9\",\n          \"val\": -53,\n          \"variable\": \"var(--t-space--9)\"\n        },\n        \"-10\": {\n          \"isVar\": true,\n          \"key\": \"$-10\",\n          \"name\": \"t-space--10\",\n          \"val\": -60,\n          \"variable\": \"var(--t-space--10)\"\n        },\n        \"-11\": {\n          \"isVar\": true,\n          \"key\": \"$-11\",\n          \"name\": \"t-space--11\",\n          \"val\": -74,\n          \"variable\": \"var(--t-space--11)\"\n        },\n        \"-12\": {\n          \"isVar\": true,\n          \"key\": \"$-12\",\n          \"name\": \"t-space--12\",\n          \"val\": -88,\n          \"variable\": \"var(--t-space--12)\"\n        },\n        \"-13\": {\n          \"isVar\": true,\n          \"key\": \"$-13\",\n          \"name\": \"t-space--13\",\n          \"val\": -102,\n          \"variable\": \"var(--t-space--13)\"\n        },\n        \"-14\": {\n          \"isVar\": true,\n          \"key\": \"$-14\",\n          \"name\": \"t-space--14\",\n          \"val\": -116,\n          \"variable\": \"var(--t-space--14)\"\n        },\n        \"-15\": {\n          \"isVar\": true,\n          \"key\": \"$-15\",\n          \"name\": \"t-space--15\",\n          \"val\": -130,\n          \"variable\": \"var(--t-space--15)\"\n        },\n        \"-16\": {\n          \"isVar\": true,\n          \"key\": \"$-16\",\n          \"name\": \"t-space--16\",\n          \"val\": -144,\n          \"variable\": \"var(--t-space--16)\"\n        },\n        \"-17\": {\n          \"isVar\": true,\n          \"key\": \"$-17\",\n          \"name\": \"t-space--17\",\n          \"val\": -144,\n          \"variable\": \"var(--t-space--17)\"\n        },\n        \"-18\": {\n          \"isVar\": true,\n          \"key\": \"$-18\",\n          \"name\": \"t-space--18\",\n          \"val\": -158,\n          \"variable\": \"var(--t-space--18)\"\n        },\n        \"-19\": {\n          \"isVar\": true,\n          \"key\": \"$-19\",\n          \"name\": \"t-space--19\",\n          \"val\": -172,\n          \"variable\": \"var(--t-space--19)\"\n        },\n        \"-20\": {\n          \"isVar\": true,\n          \"key\": \"$-20\",\n          \"name\": \"t-space--20\",\n          \"val\": -186,\n          \"variable\": \"var(--t-space--20)\"\n        }\n      },\n      \"size\": {\n        \"0\": {\n          \"isVar\": true,\n          \"key\": \"$0\",\n          \"name\": \"t-size-0\",\n          \"val\": 0,\n          \"variable\": \"var(--t-size-0)\"\n        },\n        \"1\": {\n          \"isVar\": true,\n          \"key\": \"$1\",\n          \"name\": \"t-size-1\",\n          \"val\": 20,\n          \"variable\": \"var(--t-size-1)\"\n        },\n        \"2\": {\n          \"isVar\": true,\n          \"key\": \"$2\",\n          \"name\": \"t-size-2\",\n          \"val\": 28,\n          \"variable\": \"var(--t-size-2)\"\n        },\n        \"3\": {\n          \"isVar\": true,\n          \"key\": \"$3\",\n          \"name\": \"t-size-3\",\n          \"val\": 36,\n          \"variable\": \"var(--t-size-3)\"\n        },\n        \"4\": {\n          \"isVar\": true,\n          \"key\": \"$4\",\n          \"name\": \"t-size-4\",\n          \"val\": 44,\n          \"variable\": \"var(--t-size-4)\"\n        },\n        \"5\": {\n          \"isVar\": true,\n          \"key\": \"$5\",\n          \"name\": \"t-size-5\",\n          \"val\": 52,\n          \"variable\": \"var(--t-size-5)\"\n        },\n        \"6\": {\n          \"isVar\": true,\n          \"key\": \"$6\",\n          \"name\": \"t-size-6\",\n          \"val\": 64,\n          \"variable\": \"var(--t-size-6)\"\n        },\n        \"7\": {\n          \"isVar\": true,\n          \"key\": \"$7\",\n          \"name\": \"t-size-7\",\n          \"val\": 74,\n          \"variable\": \"var(--t-size-7)\"\n        },\n        \"8\": {\n          \"isVar\": true,\n          \"key\": \"$8\",\n          \"name\": \"t-size-8\",\n          \"val\": 84,\n          \"variable\": \"var(--t-size-8)\"\n        },\n        \"9\": {\n          \"isVar\": true,\n          \"key\": \"$9\",\n          \"name\": \"t-size-9\",\n          \"val\": 94,\n          \"variable\": \"var(--t-size-9)\"\n        },\n        \"10\": {\n          \"isVar\": true,\n          \"key\": \"$10\",\n          \"name\": \"t-size-10\",\n          \"val\": 104,\n          \"variable\": \"var(--t-size-10)\"\n        },\n        \"11\": {\n          \"isVar\": true,\n          \"key\": \"$11\",\n          \"name\": \"t-size-11\",\n          \"val\": 124,\n          \"variable\": \"var(--t-size-11)\"\n        },\n        \"12\": {\n          \"isVar\": true,\n          \"key\": \"$12\",\n          \"name\": \"t-size-12\",\n          \"val\": 144,\n          \"variable\": \"var(--t-size-12)\"\n        },\n        \"13\": {\n          \"isVar\": true,\n          \"key\": \"$13\",\n          \"name\": \"t-size-13\",\n          \"val\": 164,\n          \"variable\": \"var(--t-size-13)\"\n        },\n        \"14\": {\n          \"isVar\": true,\n          \"key\": \"$14\",\n          \"name\": \"t-size-14\",\n          \"val\": 184,\n          \"variable\": \"var(--t-size-14)\"\n        },\n        \"15\": {\n          \"isVar\": true,\n          \"key\": \"$15\",\n          \"name\": \"t-size-15\",\n          \"val\": 204,\n          \"variable\": \"var(--t-size-15)\"\n        },\n        \"16\": {\n          \"isVar\": true,\n          \"key\": \"$16\",\n          \"name\": \"t-size-16\",\n          \"val\": 224,\n          \"variable\": \"var(--t-size-16)\"\n        },\n        \"17\": {\n          \"isVar\": true,\n          \"key\": \"$17\",\n          \"name\": \"t-size-17\",\n          \"val\": 224,\n          \"variable\": \"var(--t-size-17)\"\n        },\n        \"18\": {\n          \"isVar\": true,\n          \"key\": \"$18\",\n          \"name\": \"t-size-18\",\n          \"val\": 244,\n          \"variable\": \"var(--t-size-18)\"\n        },\n        \"19\": {\n          \"isVar\": true,\n          \"key\": \"$19\",\n          \"name\": \"t-size-19\",\n          \"val\": 264,\n          \"variable\": \"var(--t-size-19)\"\n        },\n        \"20\": {\n          \"isVar\": true,\n          \"key\": \"$20\",\n          \"name\": \"t-size-20\",\n          \"val\": 284,\n          \"variable\": \"var(--t-size-20)\"\n        },\n        \"0.25\": {\n          \"isVar\": true,\n          \"key\": \"$0.25\",\n          \"name\": \"t-size-0--25\",\n          \"val\": 2,\n          \"variable\": \"var(--t-size-0--25)\"\n        },\n        \"0.5\": {\n          \"isVar\": true,\n          \"key\": \"$0.5\",\n          \"name\": \"t-size-0--5\",\n          \"val\": 4,\n          \"variable\": \"var(--t-size-0--5)\"\n        },\n        \"0.75\": {\n          \"isVar\": true,\n          \"key\": \"$0.75\",\n          \"name\": \"t-size-0--75\",\n          \"val\": 8,\n          \"variable\": \"var(--t-size-0--75)\"\n        },\n        \"1.5\": {\n          \"isVar\": true,\n          \"key\": \"$1.5\",\n          \"name\": \"t-size-1--5\",\n          \"val\": 24,\n          \"variable\": \"var(--t-size-1--5)\"\n        },\n        \"2.5\": {\n          \"isVar\": true,\n          \"key\": \"$2.5\",\n          \"name\": \"t-size-2--5\",\n          \"val\": 32,\n          \"variable\": \"var(--t-size-2--5)\"\n        },\n        \"3.5\": {\n          \"isVar\": true,\n          \"key\": \"$3.5\",\n          \"name\": \"t-size-3--5\",\n          \"val\": 40,\n          \"variable\": \"var(--t-size-3--5)\"\n        },\n        \"true\": {\n          \"isVar\": true,\n          \"key\": \"$true\",\n          \"name\": \"t-size-true\",\n          \"val\": 44,\n          \"variable\": \"var(--t-size-true)\"\n        },\n        \"4.5\": {\n          \"isVar\": true,\n          \"key\": \"$4.5\",\n          \"name\": \"t-size-4--5\",\n          \"val\": 48,\n          \"variable\": \"var(--t-size-4--5)\"\n        }\n      },\n      \"opacity\": {\n        \"low\": {\n          \"isVar\": true,\n          \"key\": \"$low\",\n          \"name\": \"t-opacity-low\",\n          \"val\": 0.4,\n          \"variable\": \"var(--t-opacity-low)\"\n        },\n        \"medium\": {\n          \"isVar\": true,\n          \"key\": \"$medium\",\n          \"name\": \"t-opacity-medium\",\n          \"val\": 0.6,\n          \"variable\": \"var(--t-opacity-medium)\"\n        },\n        \"high\": {\n          \"isVar\": true,\n          \"key\": \"$high\",\n          \"name\": \"t-opacity-high\",\n          \"val\": 0.8,\n          \"variable\": \"var(--t-opacity-high)\"\n        },\n        \"full\": {\n          \"isVar\": true,\n          \"key\": \"$full\",\n          \"name\": \"t-opacity-full\",\n          \"val\": 1,\n          \"variable\": \"var(--t-opacity-full)\"\n        }\n      }\n    },\n    \"settings\": {\n      \"defaultFont\": \"body\",\n      \"mediaQueryDefaultActive\": {\n        \"xxs\": false,\n        \"xs\": true,\n        \"sm\": true,\n        \"md\": true,\n        \"lg\": true,\n        \"xl\": true,\n        \"gtXs\": false,\n        \"gtSm\": false,\n        \"gtMd\": false,\n        \"gtLg\": false,\n        \"gtXl\": false\n      },\n      \"themeClassNameOnRoot\": true,\n      \"webContainerType\": \"inherit\"\n    },\n    \"mediaQueryDefaultActive\": {\n      \"xxs\": false,\n      \"xs\": true,\n      \"sm\": true,\n      \"md\": true,\n      \"lg\": true,\n      \"xl\": true,\n      \"gtXs\": false,\n      \"gtSm\": false,\n      \"gtMd\": false,\n      \"gtLg\": false,\n      \"gtXl\": false\n    },\n    \"unset\": {\n      \"fontFamily\": \"$body\"\n    },\n    \"inverseShorthands\": {\n      \"userSelect\": \"ussel\",\n      \"cursor\": \"cur\",\n      \"pointerEvents\": \"pe\",\n      \"color\": \"col\",\n      \"fontFamily\": \"ff\",\n      \"fontSize\": \"fos\",\n      \"fontStyle\": \"fost\",\n      \"fontWeight\": \"fow\",\n      \"letterSpacing\": \"ls\",\n      \"lineHeight\": \"lh\",\n      \"textAlign\": \"ta\",\n      \"textTransform\": \"tt\",\n      \"wordWrap\": \"ww\",\n      \"alignContent\": \"ac\",\n      \"alignItems\": \"ai\",\n      \"alignSelf\": \"als\",\n      \"bottom\": \"b\",\n      \"backgroundColor\": \"bg\",\n      \"borderBottomColor\": \"bbc\",\n      \"borderBottomLeftRadius\": \"bblr\",\n      \"borderBottomRightRadius\": \"bbrr\",\n      \"borderBottomWidth\": \"bbw\",\n      \"borderLeftColor\": \"blc\",\n      \"borderLeftWidth\": \"blw\",\n      \"borderColor\": \"boc\",\n      \"borderRadius\": \"br\",\n      \"borderStyle\": \"bs\",\n      \"borderRightWidth\": \"brw\",\n      \"borderRightColor\": \"brc\",\n      \"borderTopColor\": \"btc\",\n      \"borderTopLeftRadius\": \"btlr\",\n      \"borderTopRightRadius\": \"btrr\",\n      \"borderTopWidth\": \"btw\",\n      \"borderWidth\": \"bw\",\n      \"display\": \"dsp\",\n      \"flex\": \"f\",\n      \"flexBasis\": \"fb\",\n      \"flexDirection\": \"fd\",\n      \"flexGrow\": \"fg\",\n      \"flexShrink\": \"fs\",\n      \"flexWrap\": \"fw\",\n      \"height\": \"h\",\n      \"justifyContent\": \"jc\",\n      \"left\": \"l\",\n      \"margin\": \"m\",\n      \"maxHeight\": \"mah\",\n      \"maxWidth\": \"maw\",\n      \"marginBottom\": \"mb\",\n      \"minHeight\": \"mih\",\n      \"minWidth\": \"miw\",\n      \"marginLeft\": \"ml\",\n      \"marginRight\": \"mr\",\n      \"marginTop\": \"mt\",\n      \"marginHorizontal\": \"mx\",\n      \"marginVertical\": \"my\",\n      \"opacity\": \"o\",\n      \"overflow\": \"ov\",\n      \"padding\": \"p\",\n      \"paddingBottom\": \"pb\",\n      \"paddingLeft\": \"pl\",\n      \"position\": \"pos\",\n      \"paddingRight\": \"pr\",\n      \"paddingTop\": \"pt\",\n      \"paddingHorizontal\": \"px\",\n      \"paddingVertical\": \"py\",\n      \"right\": \"r\",\n      \"shadowColor\": \"shac\",\n      \"shadowRadius\": \"shar\",\n      \"shadowOffset\": \"shof\",\n      \"shadowOpacity\": \"shop\",\n      \"top\": \"t\",\n      \"width\": \"w\",\n      \"zIndex\": \"zi\",\n      \"borderLeftStyle\": \"bls\",\n      \"borderRightStyle\": \"brs\",\n      \"borderTopStyle\": \"bts\",\n      \"borderBottomStyle\": \"bbs\",\n      \"boxSizing\": \"bxs\",\n      \"boxShadow\": \"bxsh\",\n      \"overflowX\": \"ox\",\n      \"overflowY\": \"oy\"\n    },\n    \"parsed\": true,\n    \"getNewCSS\": \"Function\",\n    \"fontSizeTokens\": {},\n    \"specificTokens\": {\n      \"$color.blue1Light\": {\n        \"isVar\": true,\n        \"key\": \"$blue1Light\",\n        \"name\": \"c-blue1Light\",\n        \"val\": \"hsl(206, 100%, 99.2%)\",\n        \"variable\": \"var(--c-blue1Light)\"\n      },\n      \"$color.blue2Light\": {\n        \"isVar\": true,\n        \"key\": \"$blue2Light\",\n        \"name\": \"c-blue2Light\",\n        \"val\": \"hsl(210, 100%, 98.0%)\",\n        \"variable\": \"var(--c-blue2Light)\"\n      },\n      \"$color.blue3Light\": {\n        \"isVar\": true,\n        \"key\": \"$blue3Light\",\n        \"name\": \"c-blue3Light\",\n        \"val\": \"hsl(209, 100%, 96.5%)\",\n        \"variable\": \"var(--c-blue3Light)\"\n      },\n      \"$color.blue4Light\": {\n        \"isVar\": true,\n        \"key\": \"$blue4Light\",\n        \"name\": \"c-blue4Light\",\n        \"val\": \"hsl(210, 98.8%, 94.0%)\",\n        \"variable\": \"var(--c-blue4Light)\"\n      },\n      \"$color.blue5Light\": {\n        \"isVar\": true,\n        \"key\": \"$blue5Light\",\n        \"name\": \"c-blue5Light\",\n        \"val\": \"hsl(209, 95.0%, 90.1%)\",\n        \"variable\": \"var(--c-blue5Light)\"\n      },\n      \"$color.blue6Light\": {\n        \"isVar\": true,\n        \"key\": \"$blue6Light\",\n        \"name\": \"c-blue6Light\",\n        \"val\": \"hsl(209, 81.2%, 84.5%)\",\n        \"variable\": \"var(--c-blue6Light)\"\n      },\n      \"$color.blue7Light\": {\n        \"isVar\": true,\n        \"key\": \"$blue7Light\",\n        \"name\": \"c-blue7Light\",\n        \"val\": \"hsl(208, 77.5%, 76.9%)\",\n        \"variable\": \"var(--c-blue7Light)\"\n      },\n      \"$color.blue8Light\": {\n        \"isVar\": true,\n        \"key\": \"$blue8Light\",\n        \"name\": \"c-blue8Light\",\n        \"val\": \"hsl(206, 81.9%, 65.3%)\",\n        \"variable\": \"var(--c-blue8Light)\"\n      },\n      \"$color.blue9Light\": {\n        \"isVar\": true,\n        \"key\": \"$blue9Light\",\n        \"name\": \"c-blue9Light\",\n        \"val\": \"hsl(206, 100%, 50.0%)\",\n        \"variable\": \"var(--c-blue9Light)\"\n      },\n      \"$color.blue10Light\": {\n        \"isVar\": true,\n        \"key\": \"$blue10Light\",\n        \"name\": \"c-blue10Light\",\n        \"val\": \"hsl(208, 100%, 47.3%)\",\n        \"variable\": \"var(--c-blue10Light)\"\n      },\n      \"$color.blue11Light\": {\n        \"isVar\": true,\n        \"key\": \"$blue11Light\",\n        \"name\": \"c-blue11Light\",\n        \"val\": \"hsl(211, 100%, 43.2%)\",\n        \"variable\": \"var(--c-blue11Light)\"\n      },\n      \"$color.blue12Light\": {\n        \"isVar\": true,\n        \"key\": \"$blue12Light\",\n        \"name\": \"c-blue12Light\",\n        \"val\": \"hsl(211, 100%, 15.0%)\",\n        \"variable\": \"var(--c-blue12Light)\"\n      },\n      \"$color.gray1Light\": {\n        \"isVar\": true,\n        \"key\": \"$gray1Light\",\n        \"name\": \"c-gray1Light\",\n        \"val\": \"hsl(0, 0%, 99.0%)\",\n        \"variable\": \"var(--c-gray1Light)\"\n      },\n      \"$color.gray2Light\": {\n        \"isVar\": true,\n        \"key\": \"$gray2Light\",\n        \"name\": \"c-gray2Light\",\n        \"val\": \"hsl(0, 0%, 97.3%)\",\n        \"variable\": \"var(--c-gray2Light)\"\n      },\n      \"$color.gray3Light\": {\n        \"isVar\": true,\n        \"key\": \"$gray3Light\",\n        \"name\": \"c-gray3Light\",\n        \"val\": \"hsl(0, 0%, 95.1%)\",\n        \"variable\": \"var(--c-gray3Light)\"\n      },\n      \"$color.gray4Light\": {\n        \"isVar\": true,\n        \"key\": \"$gray4Light\",\n        \"name\": \"c-gray4Light\",\n        \"val\": \"hsl(0, 0%, 93.0%)\",\n        \"variable\": \"var(--c-gray4Light)\"\n      },\n      \"$color.gray5Light\": {\n        \"isVar\": true,\n        \"key\": \"$gray5Light\",\n        \"name\": \"c-gray5Light\",\n        \"val\": \"hsl(0, 0%, 90.9%)\",\n        \"variable\": \"var(--c-gray5Light)\"\n      },\n      \"$color.gray6Light\": {\n        \"isVar\": true,\n        \"key\": \"$gray6Light\",\n        \"name\": \"c-gray6Light\",\n        \"val\": \"hsl(0, 0%, 88.7%)\",\n        \"variable\": \"var(--c-gray6Light)\"\n      },\n      \"$color.gray7Light\": {\n        \"isVar\": true,\n        \"key\": \"$gray7Light\",\n        \"name\": \"c-gray7Light\",\n        \"val\": \"hsl(0, 0%, 85.8%)\",\n        \"variable\": \"var(--c-gray7Light)\"\n      },\n      \"$color.gray8Light\": {\n        \"isVar\": true,\n        \"key\": \"$gray8Light\",\n        \"name\": \"c-gray8Light\",\n        \"val\": \"hsl(0, 0%, 78.0%)\",\n        \"variable\": \"var(--c-gray8Light)\"\n      },\n      \"$color.gray9Light\": {\n        \"isVar\": true,\n        \"key\": \"$gray9Light\",\n        \"name\": \"c-gray9Light\",\n        \"val\": \"hsl(0, 0%, 56.1%)\",\n        \"variable\": \"var(--c-gray9Light)\"\n      },\n      \"$color.gray10Light\": {\n        \"isVar\": true,\n        \"key\": \"$gray10Light\",\n        \"name\": \"c-gray10Light\",\n        \"val\": \"hsl(0, 0%, 52.3%)\",\n        \"variable\": \"var(--c-gray10Light)\"\n      },\n      \"$color.gray11Light\": {\n        \"isVar\": true,\n        \"key\": \"$gray11Light\",\n        \"name\": \"c-gray11Light\",\n        \"val\": \"hsl(0, 0%, 43.5%)\",\n        \"variable\": \"var(--c-gray11Light)\"\n      },\n      \"$color.gray12Light\": {\n        \"isVar\": true,\n        \"key\": \"$gray12Light\",\n        \"name\": \"c-gray12Light\",\n        \"val\": \"hsl(0, 0%, 99.0%)\",\n        \"variable\": \"var(--c-gray12Light)\"\n      },\n      \"$color.gray13Light\": {\n        \"isVar\": true,\n        \"key\": \"$gray13Light\",\n        \"name\": \"c-gray13Light\",\n        \"val\": \"hsl(0, 0%, 9.0%)\",\n        \"variable\": \"var(--c-gray13Light)\"\n      },\n      \"$color.green1Light\": {\n        \"isVar\": true,\n        \"key\": \"$green1Light\",\n        \"name\": \"c-green1Light\",\n        \"val\": \"hsl(136, 50.0%, 98.9%)\",\n        \"variable\": \"var(--c-green1Light)\"\n      },\n      \"$color.green2Light\": {\n        \"isVar\": true,\n        \"key\": \"$green2Light\",\n        \"name\": \"c-green2Light\",\n        \"val\": \"hsl(138, 62.5%, 96.9%)\",\n        \"variable\": \"var(--c-green2Light)\"\n      },\n      \"$color.green3Light\": {\n        \"isVar\": true,\n        \"key\": \"$green3Light\",\n        \"name\": \"c-green3Light\",\n        \"val\": \"hsl(139, 55.2%, 94.5%)\",\n        \"variable\": \"var(--c-green3Light)\"\n      },\n      \"$color.green4Light\": {\n        \"isVar\": true,\n        \"key\": \"$green4Light\",\n        \"name\": \"c-green4Light\",\n        \"val\": \"hsl(140, 48.7%, 91.0%)\",\n        \"variable\": \"var(--c-green4Light)\"\n      },\n      \"$color.green5Light\": {\n        \"isVar\": true,\n        \"key\": \"$green5Light\",\n        \"name\": \"c-green5Light\",\n        \"val\": \"hsl(141, 43.7%, 86.0%)\",\n        \"variable\": \"var(--c-green5Light)\"\n      },\n      \"$color.green6Light\": {\n        \"isVar\": true,\n        \"key\": \"$green6Light\",\n        \"name\": \"c-green6Light\",\n        \"val\": \"hsl(143, 40.3%, 79.0%)\",\n        \"variable\": \"var(--c-green6Light)\"\n      },\n      \"$color.green7Light\": {\n        \"isVar\": true,\n        \"key\": \"$green7Light\",\n        \"name\": \"c-green7Light\",\n        \"val\": \"hsl(146, 38.5%, 69.0%)\",\n        \"variable\": \"var(--c-green7Light)\"\n      },\n      \"$color.green8Light\": {\n        \"isVar\": true,\n        \"key\": \"$green8Light\",\n        \"name\": \"c-green8Light\",\n        \"val\": \"hsl(151, 40.2%, 54.1%)\",\n        \"variable\": \"var(--c-green8Light)\"\n      },\n      \"$color.green9Light\": {\n        \"isVar\": true,\n        \"key\": \"$green9Light\",\n        \"name\": \"c-green9Light\",\n        \"val\": \"hsl(151, 55.0%, 41.5%)\",\n        \"variable\": \"var(--c-green9Light)\"\n      },\n      \"$color.green10Light\": {\n        \"isVar\": true,\n        \"key\": \"$green10Light\",\n        \"name\": \"c-green10Light\",\n        \"val\": \"hsl(152, 57.5%, 37.6%)\",\n        \"variable\": \"var(--c-green10Light)\"\n      },\n      \"$color.green11Light\": {\n        \"isVar\": true,\n        \"key\": \"$green11Light\",\n        \"name\": \"c-green11Light\",\n        \"val\": \"hsl(153, 67.0%, 28.5%)\",\n        \"variable\": \"var(--c-green11Light)\"\n      },\n      \"$color.green12Light\": {\n        \"isVar\": true,\n        \"key\": \"$green12Light\",\n        \"name\": \"c-green12Light\",\n        \"val\": \"hsl(155, 40.0%, 14.0%)\",\n        \"variable\": \"var(--c-green12Light)\"\n      },\n      \"$color.purple1Light\": {\n        \"isVar\": true,\n        \"key\": \"$purple1Light\",\n        \"name\": \"c-purple1Light\",\n        \"val\": \"hsl(280, 65.0%, 99.4%)\",\n        \"variable\": \"var(--c-purple1Light)\"\n      },\n      \"$color.purple2Light\": {\n        \"isVar\": true,\n        \"key\": \"$purple2Light\",\n        \"name\": \"c-purple2Light\",\n        \"val\": \"hsl(276, 100%, 99.0%)\",\n        \"variable\": \"var(--c-purple2Light)\"\n      },\n      \"$color.purple3Light\": {\n        \"isVar\": true,\n        \"key\": \"$purple3Light\",\n        \"name\": \"c-purple3Light\",\n        \"val\": \"hsl(276, 83.1%, 97.0%)\",\n        \"variable\": \"var(--c-purple3Light)\"\n      },\n      \"$color.purple4Light\": {\n        \"isVar\": true,\n        \"key\": \"$purple4Light\",\n        \"name\": \"c-purple4Light\",\n        \"val\": \"hsl(275, 76.4%, 94.7%)\",\n        \"variable\": \"var(--c-purple4Light)\"\n      },\n      \"$color.purple5Light\": {\n        \"isVar\": true,\n        \"key\": \"$purple5Light\",\n        \"name\": \"c-purple5Light\",\n        \"val\": \"hsl(275, 70.8%, 91.8%)\",\n        \"variable\": \"var(--c-purple5Light)\"\n      },\n      \"$color.purple6Light\": {\n        \"isVar\": true,\n        \"key\": \"$purple6Light\",\n        \"name\": \"c-purple6Light\",\n        \"val\": \"hsl(274, 65.4%, 87.8%)\",\n        \"variable\": \"var(--c-purple6Light)\"\n      },\n      \"$color.purple7Light\": {\n        \"isVar\": true,\n        \"key\": \"$purple7Light\",\n        \"name\": \"c-purple7Light\",\n        \"val\": \"hsl(273, 61.0%, 81.7%)\",\n        \"variable\": \"var(--c-purple7Light)\"\n      },\n      \"$color.purple8Light\": {\n        \"isVar\": true,\n        \"key\": \"$purple8Light\",\n        \"name\": \"c-purple8Light\",\n        \"val\": \"hsl(272, 60.0%, 73.5%)\",\n        \"variable\": \"var(--c-purple8Light)\"\n      },\n      \"$color.purple9Light\": {\n        \"isVar\": true,\n        \"key\": \"$purple9Light\",\n        \"name\": \"c-purple9Light\",\n        \"val\": \"hsl(272, 51.0%, 54.0%)\",\n        \"variable\": \"var(--c-purple9Light)\"\n      },\n      \"$color.purple10Light\": {\n        \"isVar\": true,\n        \"key\": \"$purple10Light\",\n        \"name\": \"c-purple10Light\",\n        \"val\": \"hsl(272, 46.8%, 50.3%)\",\n        \"variable\": \"var(--c-purple10Light)\"\n      },\n      \"$color.purple11Light\": {\n        \"isVar\": true,\n        \"key\": \"$purple11Light\",\n        \"name\": \"c-purple11Light\",\n        \"val\": \"hsl(272, 50.0%, 45.8%)\",\n        \"variable\": \"var(--c-purple11Light)\"\n      },\n      \"$color.purple12Light\": {\n        \"isVar\": true,\n        \"key\": \"$purple12Light\",\n        \"name\": \"c-purple12Light\",\n        \"val\": \"hsl(272, 66.0%, 16.0%)\",\n        \"variable\": \"var(--c-purple12Light)\"\n      },\n      \"$color.red1Light\": {\n        \"isVar\": true,\n        \"key\": \"$red1Light\",\n        \"name\": \"c-red1Light\",\n        \"val\": \"hsl(359, 100%, 99.4%)\",\n        \"variable\": \"var(--c-red1Light)\"\n      },\n      \"$color.red2Light\": {\n        \"isVar\": true,\n        \"key\": \"$red2Light\",\n        \"name\": \"c-red2Light\",\n        \"val\": \"hsl(359, 100%, 98.6%)\",\n        \"variable\": \"var(--c-red2Light)\"\n      },\n      \"$color.red3Light\": {\n        \"isVar\": true,\n        \"key\": \"$red3Light\",\n        \"name\": \"c-red3Light\",\n        \"val\": \"hsl(360, 100%, 96.8%)\",\n        \"variable\": \"var(--c-red3Light)\"\n      },\n      \"$color.red4Light\": {\n        \"isVar\": true,\n        \"key\": \"$red4Light\",\n        \"name\": \"c-red4Light\",\n        \"val\": \"hsl(360, 97.9%, 94.8%)\",\n        \"variable\": \"var(--c-red4Light)\"\n      },\n      \"$color.red5Light\": {\n        \"isVar\": true,\n        \"key\": \"$red5Light\",\n        \"name\": \"c-red5Light\",\n        \"val\": \"hsl(360, 90.2%, 91.9%)\",\n        \"variable\": \"var(--c-red5Light)\"\n      },\n      \"$color.red6Light\": {\n        \"isVar\": true,\n        \"key\": \"$red6Light\",\n        \"name\": \"c-red6Light\",\n        \"val\": \"hsl(360, 81.7%, 87.8%)\",\n        \"variable\": \"var(--c-red6Light)\"\n      },\n      \"$color.red7Light\": {\n        \"isVar\": true,\n        \"key\": \"$red7Light\",\n        \"name\": \"c-red7Light\",\n        \"val\": \"hsl(359, 74.2%, 81.7%)\",\n        \"variable\": \"var(--c-red7Light)\"\n      },\n      \"$color.red8Light\": {\n        \"isVar\": true,\n        \"key\": \"$red8Light\",\n        \"name\": \"c-red8Light\",\n        \"val\": \"hsl(359, 69.5%, 74.3%)\",\n        \"variable\": \"var(--c-red8Light)\"\n      },\n      \"$color.red9Light\": {\n        \"isVar\": true,\n        \"key\": \"$red9Light\",\n        \"name\": \"c-red9Light\",\n        \"val\": \"hsl(358, 75.0%, 59.0%)\",\n        \"variable\": \"var(--c-red9Light)\"\n      },\n      \"$color.red10Light\": {\n        \"isVar\": true,\n        \"key\": \"$red10Light\",\n        \"name\": \"c-red10Light\",\n        \"val\": \"hsl(358, 69.4%, 55.2%)\",\n        \"variable\": \"var(--c-red10Light)\"\n      },\n      \"$color.red11Light\": {\n        \"isVar\": true,\n        \"key\": \"$red11Light\",\n        \"name\": \"c-red11Light\",\n        \"val\": \"hsl(358, 65.0%, 48.7%)\",\n        \"variable\": \"var(--c-red11Light)\"\n      },\n      \"$color.red12Light\": {\n        \"isVar\": true,\n        \"key\": \"$red12Light\",\n        \"name\": \"c-red12Light\",\n        \"val\": \"hsl(354, 50.0%, 14.6%)\",\n        \"variable\": \"var(--c-red12Light)\"\n      },\n      \"$color.yellow1Light\": {\n        \"isVar\": true,\n        \"key\": \"$yellow1Light\",\n        \"name\": \"c-yellow1Light\",\n        \"val\": \"hsl(60, 54.0%, 98.5%)\",\n        \"variable\": \"var(--c-yellow1Light)\"\n      },\n      \"$color.yellow2Light\": {\n        \"isVar\": true,\n        \"key\": \"$yellow2Light\",\n        \"name\": \"c-yellow2Light\",\n        \"val\": \"hsl(52, 100%, 95.5%)\",\n        \"variable\": \"var(--c-yellow2Light)\"\n      },\n      \"$color.yellow3Light\": {\n        \"isVar\": true,\n        \"key\": \"$yellow3Light\",\n        \"name\": \"c-yellow3Light\",\n        \"val\": \"hsl(55, 100%, 90.9%)\",\n        \"variable\": \"var(--c-yellow3Light)\"\n      },\n      \"$color.yellow4Light\": {\n        \"isVar\": true,\n        \"key\": \"$yellow4Light\",\n        \"name\": \"c-yellow4Light\",\n        \"val\": \"hsl(54, 100%, 86.6%)\",\n        \"variable\": \"var(--c-yellow4Light)\"\n      },\n      \"$color.yellow5Light\": {\n        \"isVar\": true,\n        \"key\": \"$yellow5Light\",\n        \"name\": \"c-yellow5Light\",\n        \"val\": \"hsl(52, 97.9%, 82.0%)\",\n        \"variable\": \"var(--c-yellow5Light)\"\n      },\n      \"$color.yellow6Light\": {\n        \"isVar\": true,\n        \"key\": \"$yellow6Light\",\n        \"name\": \"c-yellow6Light\",\n        \"val\": \"hsl(50, 89.4%, 76.1%)\",\n        \"variable\": \"var(--c-yellow6Light)\"\n      },\n      \"$color.yellow7Light\": {\n        \"isVar\": true,\n        \"key\": \"$yellow7Light\",\n        \"name\": \"c-yellow7Light\",\n        \"val\": \"hsl(47, 80.4%, 68.0%)\",\n        \"variable\": \"var(--c-yellow7Light)\"\n      },\n      \"$color.yellow8Light\": {\n        \"isVar\": true,\n        \"key\": \"$yellow8Light\",\n        \"name\": \"c-yellow8Light\",\n        \"val\": \"hsl(48, 100%, 46.1%)\",\n        \"variable\": \"var(--c-yellow8Light)\"\n      },\n      \"$color.yellow9Light\": {\n        \"isVar\": true,\n        \"key\": \"$yellow9Light\",\n        \"name\": \"c-yellow9Light\",\n        \"val\": \"hsl(53, 92.0%, 50.0%)\",\n        \"variable\": \"var(--c-yellow9Light)\"\n      },\n      \"$color.yellow10Light\": {\n        \"isVar\": true,\n        \"key\": \"$yellow10Light\",\n        \"name\": \"c-yellow10Light\",\n        \"val\": \"hsl(50, 100%, 48.5%)\",\n        \"variable\": \"var(--c-yellow10Light)\"\n      },\n      \"$color.yellow11Light\": {\n        \"isVar\": true,\n        \"key\": \"$yellow11Light\",\n        \"name\": \"c-yellow11Light\",\n        \"val\": \"hsl(42, 100%, 29.0%)\",\n        \"variable\": \"var(--c-yellow11Light)\"\n      },\n      \"$color.yellow12Light\": {\n        \"isVar\": true,\n        \"key\": \"$yellow12Light\",\n        \"name\": \"c-yellow12Light\",\n        \"val\": \"hsl(40, 55.0%, 13.5%)\",\n        \"variable\": \"var(--c-yellow12Light)\"\n      },\n      \"$color.brand1Light\": {\n        \"isVar\": true,\n        \"key\": \"$brand1Light\",\n        \"name\": \"c-brand1Light\",\n        \"val\": \"hsl(180, 29%, 17%)\",\n        \"variable\": \"var(--c-brand1Light)\"\n      },\n      \"$color.brand2Light\": {\n        \"isVar\": true,\n        \"key\": \"$brand2Light\",\n        \"name\": \"c-brand2Light\",\n        \"val\": \"hsl(180, 36%, 22%)\",\n        \"variable\": \"var(--c-brand2Light)\"\n      },\n      \"$color.brand3Light\": {\n        \"isVar\": true,\n        \"key\": \"$brand3Light\",\n        \"name\": \"c-brand3Light\",\n        \"val\": \"hsl(166, 30%, 29%)\",\n        \"variable\": \"var(--c-brand3Light)\"\n      },\n      \"$color.brand4Light\": {\n        \"isVar\": true,\n        \"key\": \"$brand4Light\",\n        \"name\": \"c-brand4Light\",\n        \"val\": \"hsl(166, 55%, 31%)\",\n        \"variable\": \"var(--c-brand4Light)\"\n      },\n      \"$color.brand5Light\": {\n        \"isVar\": true,\n        \"key\": \"$brand5Light\",\n        \"name\": \"c-brand5Light\",\n        \"val\": \"hsl(171, 96%, 28%)\",\n        \"variable\": \"var(--c-brand5Light)\"\n      },\n      \"$color.brand6Light\": {\n        \"isVar\": true,\n        \"key\": \"$brand6Light\",\n        \"name\": \"c-brand6Light\",\n        \"val\": \"hsl(148, 44%, 47%)\",\n        \"variable\": \"var(--c-brand6Light)\"\n      },\n      \"$color.brand7Light\": {\n        \"isVar\": true,\n        \"key\": \"$brand7Light\",\n        \"name\": \"c-brand7Light\",\n        \"val\": \"hsl(144, 55%, 57%)\",\n        \"variable\": \"var(--c-brand7Light)\"\n      },\n      \"$color.brand8Light\": {\n        \"isVar\": true,\n        \"key\": \"$brand8Light\",\n        \"name\": \"c-brand8Light\",\n        \"val\": \"hsl(144, 73%, 68%)\",\n        \"variable\": \"var(--c-brand8Light)\"\n      },\n      \"$color.brand9Light\": {\n        \"isVar\": true,\n        \"key\": \"$brand9Light\",\n        \"name\": \"c-brand9Light\",\n        \"val\": \"hsl(133, 54%, 78%)\",\n        \"variable\": \"var(--c-brand9Light)\"\n      },\n      \"$color.brand10Light\": {\n        \"isVar\": true,\n        \"key\": \"$brand10Light\",\n        \"name\": \"c-brand10Light\",\n        \"val\": \"hsl(133, 63%, 83%)\",\n        \"variable\": \"var(--c-brand10Light)\"\n      },\n      \"$color.brand11Light\": {\n        \"isVar\": true,\n        \"key\": \"$brand11Light\",\n        \"name\": \"c-brand11Light\",\n        \"val\": \"hsl(122, 53%, 88%)\",\n        \"variable\": \"var(--c-brand11Light)\"\n      },\n      \"$color.brand12Light\": {\n        \"isVar\": true,\n        \"key\": \"$brand12Light\",\n        \"name\": \"c-brand12Light\",\n        \"val\": \"hsl(123, 50%, 93%)\",\n        \"variable\": \"var(--c-brand12Light)\"\n      },\n      \"$color.brandHighlightLight\": {\n        \"isVar\": true,\n        \"key\": \"$brandHighlightLight\",\n        \"name\": \"c-brandHighlightLight\",\n        \"val\": \"hsl(125, 50%, 96%)\",\n        \"variable\": \"var(--c-brandHighlightLight)\"\n      },\n      \"$color.blue1Dark\": {\n        \"isVar\": true,\n        \"key\": \"$blue1Dark\",\n        \"name\": \"c-blue1Dark\",\n        \"val\": \"hsl(212, 35.0%, 9.2%)\",\n        \"variable\": \"var(--c-blue1Dark)\"\n      },\n      \"$color.blue2Dark\": {\n        \"isVar\": true,\n        \"key\": \"$blue2Dark\",\n        \"name\": \"c-blue2Dark\",\n        \"val\": \"hsl(216, 50.0%, 11.8%)\",\n        \"variable\": \"var(--c-blue2Dark)\"\n      },\n      \"$color.blue3Dark\": {\n        \"isVar\": true,\n        \"key\": \"$blue3Dark\",\n        \"name\": \"c-blue3Dark\",\n        \"val\": \"hsl(214, 59.4%, 15.3%)\",\n        \"variable\": \"var(--c-blue3Dark)\"\n      },\n      \"$color.blue4Dark\": {\n        \"isVar\": true,\n        \"key\": \"$blue4Dark\",\n        \"name\": \"c-blue4Dark\",\n        \"val\": \"hsl(214, 65.8%, 17.9%)\",\n        \"variable\": \"var(--c-blue4Dark)\"\n      },\n      \"$color.blue5Dark\": {\n        \"isVar\": true,\n        \"key\": \"$blue5Dark\",\n        \"name\": \"c-blue5Dark\",\n        \"val\": \"hsl(213, 71.2%, 20.2%)\",\n        \"variable\": \"var(--c-blue5Dark)\"\n      },\n      \"$color.blue6Dark\": {\n        \"isVar\": true,\n        \"key\": \"$blue6Dark\",\n        \"name\": \"c-blue6Dark\",\n        \"val\": \"hsl(212, 77.4%, 23.1%)\",\n        \"variable\": \"var(--c-blue6Dark)\"\n      },\n      \"$color.blue7Dark\": {\n        \"isVar\": true,\n        \"key\": \"$blue7Dark\",\n        \"name\": \"c-blue7Dark\",\n        \"val\": \"hsl(211, 85.1%, 27.4%)\",\n        \"variable\": \"var(--c-blue7Dark)\"\n      },\n      \"$color.blue8Dark\": {\n        \"isVar\": true,\n        \"key\": \"$blue8Dark\",\n        \"name\": \"c-blue8Dark\",\n        \"val\": \"hsl(211, 89.7%, 34.1%)\",\n        \"variable\": \"var(--c-blue8Dark)\"\n      },\n      \"$color.blue9Dark\": {\n        \"isVar\": true,\n        \"key\": \"$blue9Dark\",\n        \"name\": \"c-blue9Dark\",\n        \"val\": \"hsl(206, 100%, 50.0%)\",\n        \"variable\": \"var(--c-blue9Dark)\"\n      },\n      \"$color.blue10Dark\": {\n        \"isVar\": true,\n        \"key\": \"$blue10Dark\",\n        \"name\": \"c-blue10Dark\",\n        \"val\": \"hsl(209, 100%, 60.6%)\",\n        \"variable\": \"var(--c-blue10Dark)\"\n      },\n      \"$color.blue11Dark\": {\n        \"isVar\": true,\n        \"key\": \"$blue11Dark\",\n        \"name\": \"c-blue11Dark\",\n        \"val\": \"hsl(210, 100%, 66.1%)\",\n        \"variable\": \"var(--c-blue11Dark)\"\n      },\n      \"$color.blue12Dark\": {\n        \"isVar\": true,\n        \"key\": \"$blue12Dark\",\n        \"name\": \"c-blue12Dark\",\n        \"val\": \"hsl(206, 98.0%, 95.8%)\",\n        \"variable\": \"var(--c-blue12Dark)\"\n      },\n      \"$color.gray1Dark\": {\n        \"isVar\": true,\n        \"key\": \"$gray1Dark\",\n        \"name\": \"c-gray1Dark\",\n        \"val\": \"hsl(0, 0%, 8.5%)\",\n        \"variable\": \"var(--c-gray1Dark)\"\n      },\n      \"$color.gray2Dark\": {\n        \"isVar\": true,\n        \"key\": \"$gray2Dark\",\n        \"name\": \"c-gray2Dark\",\n        \"val\": \"hsl(0, 0%, 11.0%)\",\n        \"variable\": \"var(--c-gray2Dark)\"\n      },\n      \"$color.gray3Dark\": {\n        \"isVar\": true,\n        \"key\": \"$gray3Dark\",\n        \"name\": \"c-gray3Dark\",\n        \"val\": \"hsl(0, 0%, 13.6%)\",\n        \"variable\": \"var(--c-gray3Dark)\"\n      },\n      \"$color.gray4Dark\": {\n        \"isVar\": true,\n        \"key\": \"$gray4Dark\",\n        \"name\": \"c-gray4Dark\",\n        \"val\": \"hsl(0, 0%, 15.8%)\",\n        \"variable\": \"var(--c-gray4Dark)\"\n      },\n      \"$color.gray5Dark\": {\n        \"isVar\": true,\n        \"key\": \"$gray5Dark\",\n        \"name\": \"c-gray5Dark\",\n        \"val\": \"hsl(0, 0%, 17.9%)\",\n        \"variable\": \"var(--c-gray5Dark)\"\n      },\n      \"$color.gray6Dark\": {\n        \"isVar\": true,\n        \"key\": \"$gray6Dark\",\n        \"name\": \"c-gray6Dark\",\n        \"val\": \"hsl(0, 0%, 20.5%)\",\n        \"variable\": \"var(--c-gray6Dark)\"\n      },\n      \"$color.gray7Dark\": {\n        \"isVar\": true,\n        \"key\": \"$gray7Dark\",\n        \"name\": \"c-gray7Dark\",\n        \"val\": \"hsl(0, 0%, 24.3%)\",\n        \"variable\": \"var(--c-gray7Dark)\"\n      },\n      \"$color.gray8Dark\": {\n        \"isVar\": true,\n        \"key\": \"$gray8Dark\",\n        \"name\": \"c-gray8Dark\",\n        \"val\": \"hsl(0, 0%, 31.2%)\",\n        \"variable\": \"var(--c-gray8Dark)\"\n      },\n      \"$color.gray9Dark\": {\n        \"isVar\": true,\n        \"key\": \"$gray9Dark\",\n        \"name\": \"c-gray9Dark\",\n        \"val\": \"hsl(0, 0%, 43.9%)\",\n        \"variable\": \"var(--c-gray9Dark)\"\n      },\n      \"$color.gray10Dark\": {\n        \"isVar\": true,\n        \"key\": \"$gray10Dark\",\n        \"name\": \"c-gray10Dark\",\n        \"val\": \"hsl(0, 0%, 49.4%)\",\n        \"variable\": \"var(--c-gray10Dark)\"\n      },\n      \"$color.gray11Dark\": {\n        \"isVar\": true,\n        \"key\": \"$gray11Dark\",\n        \"name\": \"c-gray11Dark\",\n        \"val\": \"hsl(0, 0%, 62.8%)\",\n        \"variable\": \"var(--c-gray11Dark)\"\n      },\n      \"$color.gray12Dark\": {\n        \"isVar\": true,\n        \"key\": \"$gray12Dark\",\n        \"name\": \"c-gray12Dark\",\n        \"val\": \"hsl(0, 0%, 18%)\",\n        \"variable\": \"var(--c-gray12Dark)\"\n      },\n      \"$color.gray13Dark\": {\n        \"isVar\": true,\n        \"key\": \"$gray13Dark\",\n        \"name\": \"c-gray13Dark\",\n        \"val\": \"hsl(0, 0%, 93.0%)\",\n        \"variable\": \"var(--c-gray13Dark)\"\n      },\n      \"$color.green1Dark\": {\n        \"isVar\": true,\n        \"key\": \"$green1Dark\",\n        \"name\": \"c-green1Dark\",\n        \"val\": \"hsl(146, 30.0%, 7.4%)\",\n        \"variable\": \"var(--c-green1Dark)\"\n      },\n      \"$color.green2Dark\": {\n        \"isVar\": true,\n        \"key\": \"$green2Dark\",\n        \"name\": \"c-green2Dark\",\n        \"val\": \"hsl(155, 44.2%, 8.4%)\",\n        \"variable\": \"var(--c-green2Dark)\"\n      },\n      \"$color.green3Dark\": {\n        \"isVar\": true,\n        \"key\": \"$green3Dark\",\n        \"name\": \"c-green3Dark\",\n        \"val\": \"hsl(155, 46.7%, 10.9%)\",\n        \"variable\": \"var(--c-green3Dark)\"\n      },\n      \"$color.green4Dark\": {\n        \"isVar\": true,\n        \"key\": \"$green4Dark\",\n        \"name\": \"c-green4Dark\",\n        \"val\": \"hsl(154, 48.4%, 12.9%)\",\n        \"variable\": \"var(--c-green4Dark)\"\n      },\n      \"$color.green5Dark\": {\n        \"isVar\": true,\n        \"key\": \"$green5Dark\",\n        \"name\": \"c-green5Dark\",\n        \"val\": \"hsl(154, 49.7%, 14.9%)\",\n        \"variable\": \"var(--c-green5Dark)\"\n      },\n      \"$color.green6Dark\": {\n        \"isVar\": true,\n        \"key\": \"$green6Dark\",\n        \"name\": \"c-green6Dark\",\n        \"val\": \"hsl(154, 50.9%, 17.6%)\",\n        \"variable\": \"var(--c-green6Dark)\"\n      },\n      \"$color.green7Dark\": {\n        \"isVar\": true,\n        \"key\": \"$green7Dark\",\n        \"name\": \"c-green7Dark\",\n        \"val\": \"hsl(153, 51.8%, 21.8%)\",\n        \"variable\": \"var(--c-green7Dark)\"\n      },\n      \"$color.green8Dark\": {\n        \"isVar\": true,\n        \"key\": \"$green8Dark\",\n        \"name\": \"c-green8Dark\",\n        \"val\": \"hsl(151, 51.7%, 28.4%)\",\n        \"variable\": \"var(--c-green8Dark)\"\n      },\n      \"$color.green9Dark\": {\n        \"isVar\": true,\n        \"key\": \"$green9Dark\",\n        \"name\": \"c-green9Dark\",\n        \"val\": \"hsl(151, 55.0%, 41.5%)\",\n        \"variable\": \"var(--c-green9Dark)\"\n      },\n      \"$color.green10Dark\": {\n        \"isVar\": true,\n        \"key\": \"$green10Dark\",\n        \"name\": \"c-green10Dark\",\n        \"val\": \"hsl(151, 49.3%, 46.5%)\",\n        \"variable\": \"var(--c-green10Dark)\"\n      },\n      \"$color.green11Dark\": {\n        \"isVar\": true,\n        \"key\": \"$green11Dark\",\n        \"name\": \"c-green11Dark\",\n        \"val\": \"hsl(151, 50.0%, 53.2%)\",\n        \"variable\": \"var(--c-green11Dark)\"\n      },\n      \"$color.green12Dark\": {\n        \"isVar\": true,\n        \"key\": \"$green12Dark\",\n        \"name\": \"c-green12Dark\",\n        \"val\": \"hsl(137, 72.0%, 94.0%)\",\n        \"variable\": \"var(--c-green12Dark)\"\n      },\n      \"$color.purple1Dark\": {\n        \"isVar\": true,\n        \"key\": \"$purple1Dark\",\n        \"name\": \"c-purple1Dark\",\n        \"val\": \"hsl(284, 20.0%, 9.6%)\",\n        \"variable\": \"var(--c-purple1Dark)\"\n      },\n      \"$color.purple2Dark\": {\n        \"isVar\": true,\n        \"key\": \"$purple2Dark\",\n        \"name\": \"c-purple2Dark\",\n        \"val\": \"hsl(283, 30.0%, 11.8%)\",\n        \"variable\": \"var(--c-purple2Dark)\"\n      },\n      \"$color.purple3Dark\": {\n        \"isVar\": true,\n        \"key\": \"$purple3Dark\",\n        \"name\": \"c-purple3Dark\",\n        \"val\": \"hsl(281, 37.5%, 16.5%)\",\n        \"variable\": \"var(--c-purple3Dark)\"\n      },\n      \"$color.purple4Dark\": {\n        \"isVar\": true,\n        \"key\": \"$purple4Dark\",\n        \"name\": \"c-purple4Dark\",\n        \"val\": \"hsl(280, 41.2%, 20.0%)\",\n        \"variable\": \"var(--c-purple4Dark)\"\n      },\n      \"$color.purple5Dark\": {\n        \"isVar\": true,\n        \"key\": \"$purple5Dark\",\n        \"name\": \"c-purple5Dark\",\n        \"val\": \"hsl(279, 43.8%, 23.3%)\",\n        \"variable\": \"var(--c-purple5Dark)\"\n      },\n      \"$color.purple6Dark\": {\n        \"isVar\": true,\n        \"key\": \"$purple6Dark\",\n        \"name\": \"c-purple6Dark\",\n        \"val\": \"hsl(277, 46.4%, 27.5%)\",\n        \"variable\": \"var(--c-purple6Dark)\"\n      },\n      \"$color.purple7Dark\": {\n        \"isVar\": true,\n        \"key\": \"$purple7Dark\",\n        \"name\": \"c-purple7Dark\",\n        \"val\": \"hsl(275, 49.3%, 34.6%)\",\n        \"variable\": \"var(--c-purple7Dark)\"\n      },\n      \"$color.purple8Dark\": {\n        \"isVar\": true,\n        \"key\": \"$purple8Dark\",\n        \"name\": \"c-purple8Dark\",\n        \"val\": \"hsl(272, 52.1%, 45.9%)\",\n        \"variable\": \"var(--c-purple8Dark)\"\n      },\n      \"$color.purple9Dark\": {\n        \"isVar\": true,\n        \"key\": \"$purple9Dark\",\n        \"name\": \"c-purple9Dark\",\n        \"val\": \"hsl(272, 51.0%, 54.0%)\",\n        \"variable\": \"var(--c-purple9Dark)\"\n      },\n      \"$color.purple10Dark\": {\n        \"isVar\": true,\n        \"key\": \"$purple10Dark\",\n        \"name\": \"c-purple10Dark\",\n        \"val\": \"hsl(273, 57.3%, 59.1%)\",\n        \"variable\": \"var(--c-purple10Dark)\"\n      },\n      \"$color.purple11Dark\": {\n        \"isVar\": true,\n        \"key\": \"$purple11Dark\",\n        \"name\": \"c-purple11Dark\",\n        \"val\": \"hsl(275, 80.0%, 71.0%)\",\n        \"variable\": \"var(--c-purple11Dark)\"\n      },\n      \"$color.purple12Dark\": {\n        \"isVar\": true,\n        \"key\": \"$purple12Dark\",\n        \"name\": \"c-purple12Dark\",\n        \"val\": \"hsl(279, 75.0%, 95.7%)\",\n        \"variable\": \"var(--c-purple12Dark)\"\n      },\n      \"$color.red1Dark\": {\n        \"isVar\": true,\n        \"key\": \"$red1Dark\",\n        \"name\": \"c-red1Dark\",\n        \"val\": \"hsl(353, 23.0%, 9.8%)\",\n        \"variable\": \"var(--c-red1Dark)\"\n      },\n      \"$color.red2Dark\": {\n        \"isVar\": true,\n        \"key\": \"$red2Dark\",\n        \"name\": \"c-red2Dark\",\n        \"val\": \"hsl(357, 34.4%, 12.0%)\",\n        \"variable\": \"var(--c-red2Dark)\"\n      },\n      \"$color.red3Dark\": {\n        \"isVar\": true,\n        \"key\": \"$red3Dark\",\n        \"name\": \"c-red3Dark\",\n        \"val\": \"hsl(356, 43.4%, 16.4%)\",\n        \"variable\": \"var(--c-red3Dark)\"\n      },\n      \"$color.red4Dark\": {\n        \"isVar\": true,\n        \"key\": \"$red4Dark\",\n        \"name\": \"c-red4Dark\",\n        \"val\": \"hsl(356, 47.6%, 19.2%)\",\n        \"variable\": \"var(--c-red4Dark)\"\n      },\n      \"$color.red5Dark\": {\n        \"isVar\": true,\n        \"key\": \"$red5Dark\",\n        \"name\": \"c-red5Dark\",\n        \"val\": \"hsl(356, 51.1%, 21.9%)\",\n        \"variable\": \"var(--c-red5Dark)\"\n      },\n      \"$color.red6Dark\": {\n        \"isVar\": true,\n        \"key\": \"$red6Dark\",\n        \"name\": \"c-red6Dark\",\n        \"val\": \"hsl(356, 55.2%, 25.9%)\",\n        \"variable\": \"var(--c-red6Dark)\"\n      },\n      \"$color.red7Dark\": {\n        \"isVar\": true,\n        \"key\": \"$red7Dark\",\n        \"name\": \"c-red7Dark\",\n        \"val\": \"hsl(357, 60.2%, 31.8%)\",\n        \"variable\": \"var(--c-red7Dark)\"\n      },\n      \"$color.red8Dark\": {\n        \"isVar\": true,\n        \"key\": \"$red8Dark\",\n        \"name\": \"c-red8Dark\",\n        \"val\": \"hsl(358, 65.0%, 40.4%)\",\n        \"variable\": \"var(--c-red8Dark)\"\n      },\n      \"$color.red9Dark\": {\n        \"isVar\": true,\n        \"key\": \"$red9Dark\",\n        \"name\": \"c-red9Dark\",\n        \"val\": \"hsl(358, 75.0%, 59.0%)\",\n        \"variable\": \"var(--c-red9Dark)\"\n      },\n      \"$color.red10Dark\": {\n        \"isVar\": true,\n        \"key\": \"$red10Dark\",\n        \"name\": \"c-red10Dark\",\n        \"val\": \"hsl(358, 85.3%, 64.0%)\",\n        \"variable\": \"var(--c-red10Dark)\"\n      },\n      \"$color.red11Dark\": {\n        \"isVar\": true,\n        \"key\": \"$red11Dark\",\n        \"name\": \"c-red11Dark\",\n        \"val\": \"hsl(358, 100%, 69.5%)\",\n        \"variable\": \"var(--c-red11Dark)\"\n      },\n      \"$color.red12Dark\": {\n        \"isVar\": true,\n        \"key\": \"$red12Dark\",\n        \"name\": \"c-red12Dark\",\n        \"val\": \"hsl(351, 89.0%, 96.0%)\",\n        \"variable\": \"var(--c-red12Dark)\"\n      },\n      \"$color.yellow1Dark\": {\n        \"isVar\": true,\n        \"key\": \"$yellow1Dark\",\n        \"name\": \"c-yellow1Dark\",\n        \"val\": \"hsl(45, 100%, 5.5%)\",\n        \"variable\": \"var(--c-yellow1Dark)\"\n      },\n      \"$color.yellow2Dark\": {\n        \"isVar\": true,\n        \"key\": \"$yellow2Dark\",\n        \"name\": \"c-yellow2Dark\",\n        \"val\": \"hsl(46, 100%, 6.7%)\",\n        \"variable\": \"var(--c-yellow2Dark)\"\n      },\n      \"$color.yellow3Dark\": {\n        \"isVar\": true,\n        \"key\": \"$yellow3Dark\",\n        \"name\": \"c-yellow3Dark\",\n        \"val\": \"hsl(45, 100%, 8.7%)\",\n        \"variable\": \"var(--c-yellow3Dark)\"\n      },\n      \"$color.yellow4Dark\": {\n        \"isVar\": true,\n        \"key\": \"$yellow4Dark\",\n        \"name\": \"c-yellow4Dark\",\n        \"val\": \"hsl(45, 100%, 10.4%)\",\n        \"variable\": \"var(--c-yellow4Dark)\"\n      },\n      \"$color.yellow5Dark\": {\n        \"isVar\": true,\n        \"key\": \"$yellow5Dark\",\n        \"name\": \"c-yellow5Dark\",\n        \"val\": \"hsl(47, 100%, 12.1%)\",\n        \"variable\": \"var(--c-yellow5Dark)\"\n      },\n      \"$color.yellow6Dark\": {\n        \"isVar\": true,\n        \"key\": \"$yellow6Dark\",\n        \"name\": \"c-yellow6Dark\",\n        \"val\": \"hsl(49, 100%, 14.3%)\",\n        \"variable\": \"var(--c-yellow6Dark)\"\n      },\n      \"$color.yellow7Dark\": {\n        \"isVar\": true,\n        \"key\": \"$yellow7Dark\",\n        \"name\": \"c-yellow7Dark\",\n        \"val\": \"hsl(49, 90.3%, 18.4%)\",\n        \"variable\": \"var(--c-yellow7Dark)\"\n      },\n      \"$color.yellow8Dark\": {\n        \"isVar\": true,\n        \"key\": \"$yellow8Dark\",\n        \"name\": \"c-yellow8Dark\",\n        \"val\": \"hsl(50, 100%, 22.0%)\",\n        \"variable\": \"var(--c-yellow8Dark)\"\n      },\n      \"$color.yellow9Dark\": {\n        \"isVar\": true,\n        \"key\": \"$yellow9Dark\",\n        \"name\": \"c-yellow9Dark\",\n        \"val\": \"hsl(53, 92.0%, 50.0%)\",\n        \"variable\": \"var(--c-yellow9Dark)\"\n      },\n      \"$color.yellow10Dark\": {\n        \"isVar\": true,\n        \"key\": \"$yellow10Dark\",\n        \"name\": \"c-yellow10Dark\",\n        \"val\": \"hsl(54, 100%, 68.0%)\",\n        \"variable\": \"var(--c-yellow10Dark)\"\n      },\n      \"$color.yellow11Dark\": {\n        \"isVar\": true,\n        \"key\": \"$yellow11Dark\",\n        \"name\": \"c-yellow11Dark\",\n        \"val\": \"hsl(48, 100%, 47.0%)\",\n        \"variable\": \"var(--c-yellow11Dark)\"\n      },\n      \"$color.yellow12Dark\": {\n        \"isVar\": true,\n        \"key\": \"$yellow12Dark\",\n        \"name\": \"c-yellow12Dark\",\n        \"val\": \"hsl(53, 100%, 91.0%)\",\n        \"variable\": \"var(--c-yellow12Dark)\"\n      },\n      \"$color.brand1Dark\": {\n        \"isVar\": true,\n        \"key\": \"$brand1Dark\",\n        \"name\": \"c-brand1Dark\",\n        \"val\": \"hsl(123, 50%, 93%)\",\n        \"variable\": \"var(--c-brand1Dark)\"\n      },\n      \"$color.brand2Dark\": {\n        \"isVar\": true,\n        \"key\": \"$brand2Dark\",\n        \"name\": \"c-brand2Dark\",\n        \"val\": \"hsl(122, 53%, 88%)\",\n        \"variable\": \"var(--c-brand2Dark)\"\n      },\n      \"$color.brand3Dark\": {\n        \"isVar\": true,\n        \"key\": \"$brand3Dark\",\n        \"name\": \"c-brand3Dark\",\n        \"val\": \"hsl(125, 100%, 98%)\",\n        \"variable\": \"var(--c-brand3Dark)\"\n      },\n      \"$color.brand4Dark\": {\n        \"isVar\": true,\n        \"key\": \"$brand4Dark\",\n        \"name\": \"c-brand4Dark\",\n        \"val\": \"hsl(166, 55%, 31%)\",\n        \"variable\": \"var(--c-brand4Dark)\"\n      },\n      \"$color.brand5Dark\": {\n        \"isVar\": true,\n        \"key\": \"$brand5Dark\",\n        \"name\": \"c-brand5Dark\",\n        \"val\": \"hsl(171, 96%, 28%)\",\n        \"variable\": \"var(--c-brand5Dark)\"\n      },\n      \"$color.brand6Dark\": {\n        \"isVar\": true,\n        \"key\": \"$brand6Dark\",\n        \"name\": \"c-brand6Dark\",\n        \"val\": \"hsl(148, 44%, 47%)\",\n        \"variable\": \"var(--c-brand6Dark)\"\n      },\n      \"$color.brand7Dark\": {\n        \"isVar\": true,\n        \"key\": \"$brand7Dark\",\n        \"name\": \"c-brand7Dark\",\n        \"val\": \"hsl(144, 55%, 57%)\",\n        \"variable\": \"var(--c-brand7Dark)\"\n      },\n      \"$color.brand8Dark\": {\n        \"isVar\": true,\n        \"key\": \"$brand8Dark\",\n        \"name\": \"c-brand8Dark\",\n        \"val\": \"hsl(144, 73%, 68%)\",\n        \"variable\": \"var(--c-brand8Dark)\"\n      },\n      \"$color.brand9Dark\": {\n        \"isVar\": true,\n        \"key\": \"$brand9Dark\",\n        \"name\": \"c-brand9Dark\",\n        \"val\": \"hsl(133, 54%, 78%)\",\n        \"variable\": \"var(--c-brand9Dark)\"\n      },\n      \"$color.brand10Dark\": {\n        \"isVar\": true,\n        \"key\": \"$brand10Dark\",\n        \"name\": \"c-brand10Dark\",\n        \"val\": \"hsl(166, 30%, 29%)\",\n        \"variable\": \"var(--c-brand10Dark)\"\n      },\n      \"$color.brand11Dark\": {\n        \"isVar\": true,\n        \"key\": \"$brand11Dark\",\n        \"name\": \"c-brand11Dark\",\n        \"val\": \"hsl(180, 36%, 22%)\",\n        \"variable\": \"var(--c-brand11Dark)\"\n      },\n      \"$color.brand12Dark\": {\n        \"isVar\": true,\n        \"key\": \"$brand12Dark\",\n        \"name\": \"c-brand12Dark\",\n        \"val\": \"hsl(180, 29%, 17%)\",\n        \"variable\": \"var(--c-brand12Dark)\"\n      },\n      \"$color.brandHighlightDark\": {\n        \"isVar\": true,\n        \"key\": \"$brandHighlightDark\",\n        \"name\": \"c-brandHighlightDark\",\n        \"val\": \"hsl(180, 41%, 8%)\",\n        \"variable\": \"var(--c-brandHighlightDark)\"\n      },\n      \"$radius.0\": {\n        \"isVar\": true,\n        \"key\": \"$0\",\n        \"name\": \"t-radius-0\",\n        \"val\": 0,\n        \"variable\": \"var(--t-radius-0)\"\n      },\n      \"$radius.1\": {\n        \"isVar\": true,\n        \"key\": \"$1\",\n        \"name\": \"t-radius-1\",\n        \"val\": 3,\n        \"variable\": \"var(--t-radius-1)\"\n      },\n      \"$radius.2\": {\n        \"isVar\": true,\n        \"key\": \"$2\",\n        \"name\": \"t-radius-2\",\n        \"val\": 5,\n        \"variable\": \"var(--t-radius-2)\"\n      },\n      \"$radius.3\": {\n        \"isVar\": true,\n        \"key\": \"$3\",\n        \"name\": \"t-radius-3\",\n        \"val\": 7,\n        \"variable\": \"var(--t-radius-3)\"\n      },\n      \"$radius.4\": {\n        \"isVar\": true,\n        \"key\": \"$4\",\n        \"name\": \"t-radius-4\",\n        \"val\": 9,\n        \"variable\": \"var(--t-radius-4)\"\n      },\n      \"$radius.5\": {\n        \"isVar\": true,\n        \"key\": \"$5\",\n        \"name\": \"t-radius-5\",\n        \"val\": 10,\n        \"variable\": \"var(--t-radius-5)\"\n      },\n      \"$radius.6\": {\n        \"isVar\": true,\n        \"key\": \"$6\",\n        \"name\": \"t-radius-6\",\n        \"val\": 16,\n        \"variable\": \"var(--t-radius-6)\"\n      },\n      \"$radius.7\": {\n        \"isVar\": true,\n        \"key\": \"$7\",\n        \"name\": \"t-radius-7\",\n        \"val\": 19,\n        \"variable\": \"var(--t-radius-7)\"\n      },\n      \"$radius.8\": {\n        \"isVar\": true,\n        \"key\": \"$8\",\n        \"name\": \"t-radius-8\",\n        \"val\": 22,\n        \"variable\": \"var(--t-radius-8)\"\n      },\n      \"$radius.9\": {\n        \"isVar\": true,\n        \"key\": \"$9\",\n        \"name\": \"t-radius-9\",\n        \"val\": 26,\n        \"variable\": \"var(--t-radius-9)\"\n      },\n      \"$radius.10\": {\n        \"isVar\": true,\n        \"key\": \"$10\",\n        \"name\": \"t-radius-10\",\n        \"val\": 34,\n        \"variable\": \"var(--t-radius-10)\"\n      },\n      \"$radius.11\": {\n        \"isVar\": true,\n        \"key\": \"$11\",\n        \"name\": \"t-radius-11\",\n        \"val\": 42,\n        \"variable\": \"var(--t-radius-11)\"\n      },\n      \"$radius.12\": {\n        \"isVar\": true,\n        \"key\": \"$12\",\n        \"name\": \"t-radius-12\",\n        \"val\": 50,\n        \"variable\": \"var(--t-radius-12)\"\n      },\n      \"$radius.true\": {\n        \"isVar\": true,\n        \"key\": \"$true\",\n        \"name\": \"t-radius-true\",\n        \"val\": 9,\n        \"variable\": \"var(--t-radius-true)\"\n      },\n      \"$zIndex.0\": {\n        \"isVar\": true,\n        \"key\": \"$0\",\n        \"name\": \"t-zIndex-0\",\n        \"val\": 0,\n        \"variable\": \"var(--t-zIndex-0)\"\n      },\n      \"$zIndex.1\": {\n        \"isVar\": true,\n        \"key\": \"$1\",\n        \"name\": \"t-zIndex-1\",\n        \"val\": 100,\n        \"variable\": \"var(--t-zIndex-1)\"\n      },\n      \"$zIndex.2\": {\n        \"isVar\": true,\n        \"key\": \"$2\",\n        \"name\": \"t-zIndex-2\",\n        \"val\": 200,\n        \"variable\": \"var(--t-zIndex-2)\"\n      },\n      \"$zIndex.3\": {\n        \"isVar\": true,\n        \"key\": \"$3\",\n        \"name\": \"t-zIndex-3\",\n        \"val\": 300,\n        \"variable\": \"var(--t-zIndex-3)\"\n      },\n      \"$zIndex.4\": {\n        \"isVar\": true,\n        \"key\": \"$4\",\n        \"name\": \"t-zIndex-4\",\n        \"val\": 400,\n        \"variable\": \"var(--t-zIndex-4)\"\n      },\n      \"$zIndex.5\": {\n        \"isVar\": true,\n        \"key\": \"$5\",\n        \"name\": \"t-zIndex-5\",\n        \"val\": 500,\n        \"variable\": \"var(--t-zIndex-5)\"\n      },\n      \"$zIndex.6\": {\n        \"isVar\": true,\n        \"key\": \"$6\",\n        \"name\": \"t-zIndex-6\",\n        \"val\": 600,\n        \"variable\": \"var(--t-zIndex-6)\"\n      },\n      \"$zIndex.7\": {\n        \"isVar\": true,\n        \"key\": \"$7\",\n        \"name\": \"t-zIndex-7\",\n        \"val\": 700,\n        \"variable\": \"var(--t-zIndex-7)\"\n      },\n      \"$zIndex.8\": {\n        \"isVar\": true,\n        \"key\": \"$8\",\n        \"name\": \"t-zIndex-8\",\n        \"val\": 800,\n        \"variable\": \"var(--t-zIndex-8)\"\n      },\n      \"$zIndex.9\": {\n        \"isVar\": true,\n        \"key\": \"$9\",\n        \"name\": \"t-zIndex-9\",\n        \"val\": 900,\n        \"variable\": \"var(--t-zIndex-9)\"\n      },\n      \"$space.0\": {\n        \"isVar\": true,\n        \"key\": \"$0\",\n        \"name\": \"t-space-0\",\n        \"val\": 0,\n        \"variable\": \"var(--t-space-0)\"\n      },\n      \"$space.1\": {\n        \"isVar\": true,\n        \"key\": \"$1\",\n        \"name\": \"t-space-1\",\n        \"val\": 2,\n        \"variable\": \"var(--t-space-1)\"\n      },\n      \"$space.2\": {\n        \"isVar\": true,\n        \"key\": \"$2\",\n        \"name\": \"t-space-2\",\n        \"val\": 7,\n        \"variable\": \"var(--t-space-2)\"\n      },\n      \"$space.3\": {\n        \"isVar\": true,\n        \"key\": \"$3\",\n        \"name\": \"t-space-3\",\n        \"val\": 13,\n        \"variable\": \"var(--t-space-3)\"\n      },\n      \"$space.4\": {\n        \"isVar\": true,\n        \"key\": \"$4\",\n        \"name\": \"t-space-4\",\n        \"val\": 18,\n        \"variable\": \"var(--t-space-4)\"\n      },\n      \"$space.5\": {\n        \"isVar\": true,\n        \"key\": \"$5\",\n        \"name\": \"t-space-5\",\n        \"val\": 24,\n        \"variable\": \"var(--t-space-5)\"\n      },\n      \"$space.6\": {\n        \"isVar\": true,\n        \"key\": \"$6\",\n        \"name\": \"t-space-6\",\n        \"val\": 32,\n        \"variable\": \"var(--t-space-6)\"\n      },\n      \"$space.7\": {\n        \"isVar\": true,\n        \"key\": \"$7\",\n        \"name\": \"t-space-7\",\n        \"val\": 39,\n        \"variable\": \"var(--t-space-7)\"\n      },\n      \"$space.8\": {\n        \"isVar\": true,\n        \"key\": \"$8\",\n        \"name\": \"t-space-8\",\n        \"val\": 46,\n        \"variable\": \"var(--t-space-8)\"\n      },\n      \"$space.9\": {\n        \"isVar\": true,\n        \"key\": \"$9\",\n        \"name\": \"t-space-9\",\n        \"val\": 53,\n        \"variable\": \"var(--t-space-9)\"\n      },\n      \"$space.10\": {\n        \"isVar\": true,\n        \"key\": \"$10\",\n        \"name\": \"t-space-10\",\n        \"val\": 60,\n        \"variable\": \"var(--t-space-10)\"\n      },\n      \"$space.11\": {\n        \"isVar\": true,\n        \"key\": \"$11\",\n        \"name\": \"t-space-11\",\n        \"val\": 74,\n        \"variable\": \"var(--t-space-11)\"\n      },\n      \"$space.12\": {\n        \"isVar\": true,\n        \"key\": \"$12\",\n        \"name\": \"t-space-12\",\n        \"val\": 88,\n        \"variable\": \"var(--t-space-12)\"\n      },\n      \"$space.13\": {\n        \"isVar\": true,\n        \"key\": \"$13\",\n        \"name\": \"t-space-13\",\n        \"val\": 102,\n        \"variable\": \"var(--t-space-13)\"\n      },\n      \"$space.14\": {\n        \"isVar\": true,\n        \"key\": \"$14\",\n        \"name\": \"t-space-14\",\n        \"val\": 116,\n        \"variable\": \"var(--t-space-14)\"\n      },\n      \"$space.15\": {\n        \"isVar\": true,\n        \"key\": \"$15\",\n        \"name\": \"t-space-15\",\n        \"val\": 130,\n        \"variable\": \"var(--t-space-15)\"\n      },\n      \"$space.16\": {\n        \"isVar\": true,\n        \"key\": \"$16\",\n        \"name\": \"t-space-16\",\n        \"val\": 144,\n        \"variable\": \"var(--t-space-16)\"\n      },\n      \"$space.17\": {\n        \"isVar\": true,\n        \"key\": \"$17\",\n        \"name\": \"t-space-17\",\n        \"val\": 144,\n        \"variable\": \"var(--t-space-17)\"\n      },\n      \"$space.18\": {\n        \"isVar\": true,\n        \"key\": \"$18\",\n        \"name\": \"t-space-18\",\n        \"val\": 158,\n        \"variable\": \"var(--t-space-18)\"\n      },\n      \"$space.19\": {\n        \"isVar\": true,\n        \"key\": \"$19\",\n        \"name\": \"t-space-19\",\n        \"val\": 172,\n        \"variable\": \"var(--t-space-19)\"\n      },\n      \"$space.20\": {\n        \"isVar\": true,\n        \"key\": \"$20\",\n        \"name\": \"t-space-20\",\n        \"val\": 186,\n        \"variable\": \"var(--t-space-20)\"\n      },\n      \"$space.0.25\": {\n        \"isVar\": true,\n        \"key\": \"$0.25\",\n        \"name\": \"t-space-0--25\",\n        \"val\": 0.5,\n        \"variable\": \"var(--t-space-0--25)\"\n      },\n      \"$space.0.5\": {\n        \"isVar\": true,\n        \"key\": \"$0.5\",\n        \"name\": \"t-space-0--5\",\n        \"val\": 1,\n        \"variable\": \"var(--t-space-0--5)\"\n      },\n      \"$space.0.75\": {\n        \"isVar\": true,\n        \"key\": \"$0.75\",\n        \"name\": \"t-space-0--75\",\n        \"val\": 1.5,\n        \"variable\": \"var(--t-space-0--75)\"\n      },\n      \"$space.1.5\": {\n        \"isVar\": true,\n        \"key\": \"$1.5\",\n        \"name\": \"t-space-1--5\",\n        \"val\": 4,\n        \"variable\": \"var(--t-space-1--5)\"\n      },\n      \"$space.2.5\": {\n        \"isVar\": true,\n        \"key\": \"$2.5\",\n        \"name\": \"t-space-2--5\",\n        \"val\": 10,\n        \"variable\": \"var(--t-space-2--5)\"\n      },\n      \"$space.3.5\": {\n        \"isVar\": true,\n        \"key\": \"$3.5\",\n        \"name\": \"t-space-3--5\",\n        \"val\": 16,\n        \"variable\": \"var(--t-space-3--5)\"\n      },\n      \"$space.true\": {\n        \"isVar\": true,\n        \"key\": \"$true\",\n        \"name\": \"t-space-true\",\n        \"val\": 18,\n        \"variable\": \"var(--t-space-true)\"\n      },\n      \"$space.4.5\": {\n        \"isVar\": true,\n        \"key\": \"$4.5\",\n        \"name\": \"t-space-4--5\",\n        \"val\": 21,\n        \"variable\": \"var(--t-space-4--5)\"\n      },\n      \"$space.-0.25\": {\n        \"isVar\": true,\n        \"key\": \"$-0.25\",\n        \"name\": \"t-space--0--25\",\n        \"val\": -0.5,\n        \"variable\": \"var(--t-space--0--25)\"\n      },\n      \"$space.-0.5\": {\n        \"isVar\": true,\n        \"key\": \"$-0.5\",\n        \"name\": \"t-space--0--5\",\n        \"val\": -1,\n        \"variable\": \"var(--t-space--0--5)\"\n      },\n      \"$space.-0.75\": {\n        \"isVar\": true,\n        \"key\": \"$-0.75\",\n        \"name\": \"t-space--0--75\",\n        \"val\": -1.5,\n        \"variable\": \"var(--t-space--0--75)\"\n      },\n      \"$space.-1\": {\n        \"isVar\": true,\n        \"key\": \"$-1\",\n        \"name\": \"t-space--1\",\n        \"val\": -2,\n        \"variable\": \"var(--t-space--1)\"\n      },\n      \"$space.-1.5\": {\n        \"isVar\": true,\n        \"key\": \"$-1.5\",\n        \"name\": \"t-space--1--5\",\n        \"val\": -4,\n        \"variable\": \"var(--t-space--1--5)\"\n      },\n      \"$space.-2\": {\n        \"isVar\": true,\n        \"key\": \"$-2\",\n        \"name\": \"t-space--2\",\n        \"val\": -7,\n        \"variable\": \"var(--t-space--2)\"\n      },\n      \"$space.-2.5\": {\n        \"isVar\": true,\n        \"key\": \"$-2.5\",\n        \"name\": \"t-space--2--5\",\n        \"val\": -10,\n        \"variable\": \"var(--t-space--2--5)\"\n      },\n      \"$space.-3\": {\n        \"isVar\": true,\n        \"key\": \"$-3\",\n        \"name\": \"t-space--3\",\n        \"val\": -13,\n        \"variable\": \"var(--t-space--3)\"\n      },\n      \"$space.-3.5\": {\n        \"isVar\": true,\n        \"key\": \"$-3.5\",\n        \"name\": \"t-space--3--5\",\n        \"val\": -16,\n        \"variable\": \"var(--t-space--3--5)\"\n      },\n      \"$space.-4\": {\n        \"isVar\": true,\n        \"key\": \"$-4\",\n        \"name\": \"t-space--4\",\n        \"val\": -18,\n        \"variable\": \"var(--t-space--4)\"\n      },\n      \"$space.-true\": {\n        \"isVar\": true,\n        \"key\": \"$-true\",\n        \"name\": \"t-space--true\",\n        \"val\": -18,\n        \"variable\": \"var(--t-space--true)\"\n      },\n      \"$space.-4.5\": {\n        \"isVar\": true,\n        \"key\": \"$-4.5\",\n        \"name\": \"t-space--4--5\",\n        \"val\": -21,\n        \"variable\": \"var(--t-space--4--5)\"\n      },\n      \"$space.-5\": {\n        \"isVar\": true,\n        \"key\": \"$-5\",\n        \"name\": \"t-space--5\",\n        \"val\": -24,\n        \"variable\": \"var(--t-space--5)\"\n      },\n      \"$space.-6\": {\n        \"isVar\": true,\n        \"key\": \"$-6\",\n        \"name\": \"t-space--6\",\n        \"val\": -32,\n        \"variable\": \"var(--t-space--6)\"\n      },\n      \"$space.-7\": {\n        \"isVar\": true,\n        \"key\": \"$-7\",\n        \"name\": \"t-space--7\",\n        \"val\": -39,\n        \"variable\": \"var(--t-space--7)\"\n      },\n      \"$space.-8\": {\n        \"isVar\": true,\n        \"key\": \"$-8\",\n        \"name\": \"t-space--8\",\n        \"val\": -46,\n        \"variable\": \"var(--t-space--8)\"\n      },\n      \"$space.-9\": {\n        \"isVar\": true,\n        \"key\": \"$-9\",\n        \"name\": \"t-space--9\",\n        \"val\": -53,\n        \"variable\": \"var(--t-space--9)\"\n      },\n      \"$space.-10\": {\n        \"isVar\": true,\n        \"key\": \"$-10\",\n        \"name\": \"t-space--10\",\n        \"val\": -60,\n        \"variable\": \"var(--t-space--10)\"\n      },\n      \"$space.-11\": {\n        \"isVar\": true,\n        \"key\": \"$-11\",\n        \"name\": \"t-space--11\",\n        \"val\": -74,\n        \"variable\": \"var(--t-space--11)\"\n      },\n      \"$space.-12\": {\n        \"isVar\": true,\n        \"key\": \"$-12\",\n        \"name\": \"t-space--12\",\n        \"val\": -88,\n        \"variable\": \"var(--t-space--12)\"\n      },\n      \"$space.-13\": {\n        \"isVar\": true,\n        \"key\": \"$-13\",\n        \"name\": \"t-space--13\",\n        \"val\": -102,\n        \"variable\": \"var(--t-space--13)\"\n      },\n      \"$space.-14\": {\n        \"isVar\": true,\n        \"key\": \"$-14\",\n        \"name\": \"t-space--14\",\n        \"val\": -116,\n        \"variable\": \"var(--t-space--14)\"\n      },\n      \"$space.-15\": {\n        \"isVar\": true,\n        \"key\": \"$-15\",\n        \"name\": \"t-space--15\",\n        \"val\": -130,\n        \"variable\": \"var(--t-space--15)\"\n      },\n      \"$space.-16\": {\n        \"isVar\": true,\n        \"key\": \"$-16\",\n        \"name\": \"t-space--16\",\n        \"val\": -144,\n        \"variable\": \"var(--t-space--16)\"\n      },\n      \"$space.-17\": {\n        \"isVar\": true,\n        \"key\": \"$-17\",\n        \"name\": \"t-space--17\",\n        \"val\": -144,\n        \"variable\": \"var(--t-space--17)\"\n      },\n      \"$space.-18\": {\n        \"isVar\": true,\n        \"key\": \"$-18\",\n        \"name\": \"t-space--18\",\n        \"val\": -158,\n        \"variable\": \"var(--t-space--18)\"\n      },\n      \"$space.-19\": {\n        \"isVar\": true,\n        \"key\": \"$-19\",\n        \"name\": \"t-space--19\",\n        \"val\": -172,\n        \"variable\": \"var(--t-space--19)\"\n      },\n      \"$space.-20\": {\n        \"isVar\": true,\n        \"key\": \"$-20\",\n        \"name\": \"t-space--20\",\n        \"val\": -186,\n        \"variable\": \"var(--t-space--20)\"\n      },\n      \"$size.0\": {\n        \"isVar\": true,\n        \"key\": \"$0\",\n        \"name\": \"t-size-0\",\n        \"val\": 0,\n        \"variable\": \"var(--t-size-0)\"\n      },\n      \"$size.1\": {\n        \"isVar\": true,\n        \"key\": \"$1\",\n        \"name\": \"t-size-1\",\n        \"val\": 20,\n        \"variable\": \"var(--t-size-1)\"\n      },\n      \"$size.2\": {\n        \"isVar\": true,\n        \"key\": \"$2\",\n        \"name\": \"t-size-2\",\n        \"val\": 28,\n        \"variable\": \"var(--t-size-2)\"\n      },\n      \"$size.3\": {\n        \"isVar\": true,\n        \"key\": \"$3\",\n        \"name\": \"t-size-3\",\n        \"val\": 36,\n        \"variable\": \"var(--t-size-3)\"\n      },\n      \"$size.4\": {\n        \"isVar\": true,\n        \"key\": \"$4\",\n        \"name\": \"t-size-4\",\n        \"val\": 44,\n        \"variable\": \"var(--t-size-4)\"\n      },\n      \"$size.5\": {\n        \"isVar\": true,\n        \"key\": \"$5\",\n        \"name\": \"t-size-5\",\n        \"val\": 52,\n        \"variable\": \"var(--t-size-5)\"\n      },\n      \"$size.6\": {\n        \"isVar\": true,\n        \"key\": \"$6\",\n        \"name\": \"t-size-6\",\n        \"val\": 64,\n        \"variable\": \"var(--t-size-6)\"\n      },\n      \"$size.7\": {\n        \"isVar\": true,\n        \"key\": \"$7\",\n        \"name\": \"t-size-7\",\n        \"val\": 74,\n        \"variable\": \"var(--t-size-7)\"\n      },\n      \"$size.8\": {\n        \"isVar\": true,\n        \"key\": \"$8\",\n        \"name\": \"t-size-8\",\n        \"val\": 84,\n        \"variable\": \"var(--t-size-8)\"\n      },\n      \"$size.9\": {\n        \"isVar\": true,\n        \"key\": \"$9\",\n        \"name\": \"t-size-9\",\n        \"val\": 94,\n        \"variable\": \"var(--t-size-9)\"\n      },\n      \"$size.10\": {\n        \"isVar\": true,\n        \"key\": \"$10\",\n        \"name\": \"t-size-10\",\n        \"val\": 104,\n        \"variable\": \"var(--t-size-10)\"\n      },\n      \"$size.11\": {\n        \"isVar\": true,\n        \"key\": \"$11\",\n        \"name\": \"t-size-11\",\n        \"val\": 124,\n        \"variable\": \"var(--t-size-11)\"\n      },\n      \"$size.12\": {\n        \"isVar\": true,\n        \"key\": \"$12\",\n        \"name\": \"t-size-12\",\n        \"val\": 144,\n        \"variable\": \"var(--t-size-12)\"\n      },\n      \"$size.13\": {\n        \"isVar\": true,\n        \"key\": \"$13\",\n        \"name\": \"t-size-13\",\n        \"val\": 164,\n        \"variable\": \"var(--t-size-13)\"\n      },\n      \"$size.14\": {\n        \"isVar\": true,\n        \"key\": \"$14\",\n        \"name\": \"t-size-14\",\n        \"val\": 184,\n        \"variable\": \"var(--t-size-14)\"\n      },\n      \"$size.15\": {\n        \"isVar\": true,\n        \"key\": \"$15\",\n        \"name\": \"t-size-15\",\n        \"val\": 204,\n        \"variable\": \"var(--t-size-15)\"\n      },\n      \"$size.16\": {\n        \"isVar\": true,\n        \"key\": \"$16\",\n        \"name\": \"t-size-16\",\n        \"val\": 224,\n        \"variable\": \"var(--t-size-16)\"\n      },\n      \"$size.17\": {\n        \"isVar\": true,\n        \"key\": \"$17\",\n        \"name\": \"t-size-17\",\n        \"val\": 224,\n        \"variable\": \"var(--t-size-17)\"\n      },\n      \"$size.18\": {\n        \"isVar\": true,\n        \"key\": \"$18\",\n        \"name\": \"t-size-18\",\n        \"val\": 244,\n        \"variable\": \"var(--t-size-18)\"\n      },\n      \"$size.19\": {\n        \"isVar\": true,\n        \"key\": \"$19\",\n        \"name\": \"t-size-19\",\n        \"val\": 264,\n        \"variable\": \"var(--t-size-19)\"\n      },\n      \"$size.20\": {\n        \"isVar\": true,\n        \"key\": \"$20\",\n        \"name\": \"t-size-20\",\n        \"val\": 284,\n        \"variable\": \"var(--t-size-20)\"\n      },\n      \"$size.0.25\": {\n        \"isVar\": true,\n        \"key\": \"$0.25\",\n        \"name\": \"t-size-0--25\",\n        \"val\": 2,\n        \"variable\": \"var(--t-size-0--25)\"\n      },\n      \"$size.0.5\": {\n        \"isVar\": true,\n        \"key\": \"$0.5\",\n        \"name\": \"t-size-0--5\",\n        \"val\": 4,\n        \"variable\": \"var(--t-size-0--5)\"\n      },\n      \"$size.0.75\": {\n        \"isVar\": true,\n        \"key\": \"$0.75\",\n        \"name\": \"t-size-0--75\",\n        \"val\": 8,\n        \"variable\": \"var(--t-size-0--75)\"\n      },\n      \"$size.1.5\": {\n        \"isVar\": true,\n        \"key\": \"$1.5\",\n        \"name\": \"t-size-1--5\",\n        \"val\": 24,\n        \"variable\": \"var(--t-size-1--5)\"\n      },\n      \"$size.2.5\": {\n        \"isVar\": true,\n        \"key\": \"$2.5\",\n        \"name\": \"t-size-2--5\",\n        \"val\": 32,\n        \"variable\": \"var(--t-size-2--5)\"\n      },\n      \"$size.3.5\": {\n        \"isVar\": true,\n        \"key\": \"$3.5\",\n        \"name\": \"t-size-3--5\",\n        \"val\": 40,\n        \"variable\": \"var(--t-size-3--5)\"\n      },\n      \"$size.true\": {\n        \"isVar\": true,\n        \"key\": \"$true\",\n        \"name\": \"t-size-true\",\n        \"val\": 44,\n        \"variable\": \"var(--t-size-true)\"\n      },\n      \"$size.4.5\": {\n        \"isVar\": true,\n        \"key\": \"$4.5\",\n        \"name\": \"t-size-4--5\",\n        \"val\": 48,\n        \"variable\": \"var(--t-size-4--5)\"\n      },\n      \"$opacity.low\": {\n        \"isVar\": true,\n        \"key\": \"$low\",\n        \"name\": \"t-opacity-low\",\n        \"val\": 0.4,\n        \"variable\": \"var(--t-opacity-low)\"\n      },\n      \"$opacity.medium\": {\n        \"isVar\": true,\n        \"key\": \"$medium\",\n        \"name\": \"t-opacity-medium\",\n        \"val\": 0.6,\n        \"variable\": \"var(--t-opacity-medium)\"\n      },\n      \"$opacity.high\": {\n        \"isVar\": true,\n        \"key\": \"$high\",\n        \"name\": \"t-opacity-high\",\n        \"val\": 0.8,\n        \"variable\": \"var(--t-opacity-high)\"\n      },\n      \"$opacity.full\": {\n        \"isVar\": true,\n        \"key\": \"$full\",\n        \"name\": \"t-opacity-full\",\n        \"val\": 1,\n        \"variable\": \"var(--t-opacity-full)\"\n      }\n    },\n    \"defaultFontToken\": \"$body\"\n  }\n}\n"
  },
  {
    "path": ".tamagui/theme-builder.json",
    "content": "{\n  \"palettes\": {\n    \"light\": [\n      \"rgba(255,255,255,0)\",\n      \"#fff\",\n      \"#f9f9f9\",\n      \"hsl(0, 0%, 97.3%)\",\n      \"hsl(0, 0%, 95.1%)\",\n      \"hsl(0, 0%, 94.0%)\",\n      \"hsl(0, 0%, 92.0%)\",\n      \"hsl(0, 0%, 89.5%)\",\n      \"hsl(0, 0%, 81.0%)\",\n      \"hsl(0, 0%, 56.1%)\",\n      \"hsl(0, 0%, 50.3%)\",\n      \"hsl(0, 0%, 42.5%)\",\n      \"hsl(0, 0%, 9.0%)\",\n      \"rgba(10,10,10,0)\"\n    ],\n    \"dark\": [\n      \"rgba(10,10,10,0)\",\n      \"#050505\",\n      \"#151515\",\n      \"#191919\",\n      \"#232323\",\n      \"#282828\",\n      \"#323232\",\n      \"#424242\",\n      \"#494949\",\n      \"#545454\",\n      \"#626262\",\n      \"#a5a5a5\",\n      \"#fff\",\n      \"rgba(255,255,255,0)\"\n    ],\n    \"light_blue\": [\n      \"hsla(206, 100%, 99.2%, 0)\",\n      \"hsl(206, 100%, 99.2%)\",\n      \"hsl(210, 100%, 98.0%)\",\n      \"hsl(209, 100%, 96.5%)\",\n      \"hsl(210, 98.8%, 94.0%)\",\n      \"hsl(209, 95.0%, 90.1%)\",\n      \"hsl(209, 81.2%, 84.5%)\",\n      \"hsl(206, 81.9%, 65.3%)\",\n      \"hsl(206, 100%, 50.0%)\",\n      \"hsl(208, 100%, 47.3%)\",\n      \"hsl(211, 100%, 43.2%)\",\n      \"hsl(211, 100%, 15.0%)\",\n      \"hsl(0, 0%, 9.0%)\",\n      \"hsla(211, 100%, 15.0%, 0)\"\n    ],\n    \"light_customGray\": [\n      \"hsla(0, 0%, 99.0%, 0)\",\n      \"hsl(0, 0%, 99.0%)\",\n      \"hsl(0, 0%, 97.3%)\",\n      \"hsl(0, 0%, 95.1%)\",\n      \"hsl(0, 0%, 93.0%)\",\n      \"hsl(0, 0%, 90.9%)\",\n      \"hsl(0, 0%, 88.7%)\",\n      \"hsl(0, 0%, 56.1%)\",\n      \"hsl(0, 0%, 52.3%)\",\n      \"hsl(0, 0%, 43.5%)\",\n      \"hsl(0, 0%, 92.0%)\",\n      \"hsl(0, 0%, 9.0%)\",\n      \"hsl(0, 0%, 9.0%)\",\n      \"hsla(0, 0%, 9.0%, 0)\"\n    ],\n    \"light_green\": [\n      \"hsla(136, 50.0%, 98.9%, 0)\",\n      \"hsl(136, 50.0%, 98.9%)\",\n      \"hsl(138, 62.5%, 96.9%)\",\n      \"hsl(139, 55.2%, 94.5%)\",\n      \"hsl(140, 48.7%, 91.0%)\",\n      \"hsl(141, 43.7%, 86.0%)\",\n      \"hsl(143, 40.3%, 79.0%)\",\n      \"hsl(151, 40.2%, 54.1%)\",\n      \"hsl(151, 55.0%, 41.5%)\",\n      \"hsl(152, 57.5%, 37.6%)\",\n      \"hsl(153, 67.0%, 28.5%)\",\n      \"hsl(155, 40.0%, 14.0%)\",\n      \"hsl(0, 0%, 9.0%)\",\n      \"hsla(155, 40.0%, 14.0%, 0)\"\n    ],\n    \"light_purple\": [\n      \"hsla(280, 65.0%, 99.4%, 0)\",\n      \"hsl(280, 65.0%, 99.4%)\",\n      \"hsl(276, 100%, 99.0%)\",\n      \"hsl(276, 83.1%, 97.0%)\",\n      \"hsl(275, 76.4%, 94.7%)\",\n      \"hsl(275, 70.8%, 91.8%)\",\n      \"hsl(274, 65.4%, 87.8%)\",\n      \"hsl(272, 60.0%, 73.5%)\",\n      \"hsl(272, 51.0%, 54.0%)\",\n      \"hsl(272, 46.8%, 50.3%)\",\n      \"hsl(272, 50.0%, 45.8%)\",\n      \"hsl(272, 66.0%, 16.0%)\",\n      \"hsl(0, 0%, 9.0%)\",\n      \"hsla(272, 66.0%, 16.0%, 0)\"\n    ],\n    \"light_red\": [\n      \"hsla(359, 100%, 99.4%, 0)\",\n      \"hsl(359, 100%, 99.4%)\",\n      \"hsl(359, 100%, 98.6%)\",\n      \"hsl(360, 100%, 96.8%)\",\n      \"hsl(360, 97.9%, 94.8%)\",\n      \"hsl(360, 90.2%, 91.9%)\",\n      \"hsl(360, 81.7%, 87.8%)\",\n      \"hsl(359, 69.5%, 74.3%)\",\n      \"hsl(358, 75.0%, 59.0%)\",\n      \"hsl(358, 69.4%, 55.2%)\",\n      \"hsl(358, 65.0%, 48.7%)\",\n      \"hsl(354, 50.0%, 14.6%)\",\n      \"hsl(0, 0%, 9.0%)\",\n      \"hsla(354, 50.0%, 14.6%, 0)\"\n    ],\n    \"light_yellow\": [\n      \"hsla(60, 54.0%, 98.5%, 0)\",\n      \"hsl(60, 54.0%, 98.5%)\",\n      \"hsl(52, 100%, 95.5%)\",\n      \"hsl(55, 100%, 90.9%)\",\n      \"hsl(54, 100%, 86.6%)\",\n      \"hsl(52, 97.9%, 82.0%)\",\n      \"hsl(50, 89.4%, 76.1%)\",\n      \"hsl(48, 100%, 46.1%)\",\n      \"hsl(53, 92.0%, 50.0%)\",\n      \"hsl(50, 100%, 48.5%)\",\n      \"hsl(42, 100%, 29.0%)\",\n      \"hsl(40, 55.0%, 13.5%)\",\n      \"hsl(0, 0%, 9.0%)\",\n      \"hsla(40, 55.0%, 13.5%, 0)\"\n    ],\n    \"light_brand\": [\n      \"hsla(180, 29%, 17%, 0)\",\n      \"hsl(180, 29%, 17%)\",\n      \"hsl(180, 36%, 22%)\",\n      \"hsl(166, 30%, 29%)\",\n      \"hsl(166, 55%, 31%)\",\n      \"hsl(171, 96%, 28%)\",\n      \"hsl(148, 44%, 47%)\",\n      \"hsl(133, 54%, 78%)\",\n      \"hsl(133, 63%, 83%)\",\n      \"hsl(122, 53%, 88%)\",\n      \"hsl(123, 50%, 93%)\",\n      \"hsl(125, 50%, 96%)\",\n      \"hsl(0, 0%, 9.0%)\",\n      \"hsla(125, 50%, 96%, 0)\"\n    ],\n    \"light_brandDark\": [\n      \"hsla(123, 50%, 93%, 0)\",\n      \"hsl(123, 50%, 93%)\",\n      \"hsl(122, 53%, 88%)\",\n      \"hsl(125, 100%, 98%)\",\n      \"hsl(166, 55%, 31%)\",\n      \"hsl(171, 96%, 28%)\",\n      \"hsl(148, 44%, 47%)\",\n      \"hsl(133, 54%, 78%)\",\n      \"hsl(166, 30%, 29%)\",\n      \"hsl(180, 36%, 22%)\",\n      \"hsl(180, 29%, 17%)\",\n      \"hsl(180, 41%, 8%)\",\n      \"hsl(0, 0%, 9.0%)\",\n      \"hsla(180, 41%, 8%, 0)\"\n    ],\n    \"light_whiteA\": [\n      \"hsla(0, 0%, 100%, 0)\",\n      \"hsla(0, 0%, 100%, 0)\",\n      \"hsla(0, 0%, 100%, 0.013)\",\n      \"hsla(0, 0%, 100%, 0.034)\",\n      \"hsla(0, 0%, 100%, 0.056)\",\n      \"hsla(0, 0%, 100%, 0.086)\",\n      \"hsla(0, 0%, 100%, 0.124)\",\n      \"hsla(0, 0%, 100%, 0.249)\",\n      \"hsla(0, 0%, 100%, 0.386)\",\n      \"hsla(0, 0%, 100%, 0.446)\",\n      \"hsla(0, 0%, 100%, 0.592)\",\n      \"hsla(0, 0%, 100%, 0.923)\",\n      \"hsl(0, 0%, 9.0%)\",\n      \"hsla(0, 0%, 100%, 0.923)\"\n    ],\n    \"dark_blue\": [\n      \"hsla(212, 35.0%, 9.2%, 0)\",\n      \"hsl(212, 35.0%, 9.2%)\",\n      \"hsl(216, 50.0%, 11.8%)\",\n      \"hsl(214, 59.4%, 15.3%)\",\n      \"hsl(214, 65.8%, 17.9%)\",\n      \"hsl(213, 71.2%, 20.2%)\",\n      \"hsl(212, 77.4%, 23.1%)\",\n      \"hsl(211, 89.7%, 34.1%)\",\n      \"hsl(206, 100%, 50.0%)\",\n      \"hsl(209, 100%, 60.6%)\",\n      \"hsl(210, 100%, 66.1%)\",\n      \"hsl(206, 98.0%, 95.8%)\",\n      \"#fff\",\n      \"hsla(206, 98.0%, 95.8%, 0)\"\n    ],\n    \"dark_gray\": [\n      \"hsla(0, 0%, 8.5%, 0)\",\n      \"hsl(0, 0%, 8.5%)\",\n      \"hsl(0, 0%, 11.0%)\",\n      \"hsl(0, 0%, 13.6%)\",\n      \"hsl(0, 0%, 15.8%)\",\n      \"hsl(0, 0%, 17.9%)\",\n      \"hsl(0, 0%, 20.5%)\",\n      \"hsl(0, 0%, 43.9%)\",\n      \"hsl(0, 0%, 49.4%)\",\n      \"hsl(0, 0%, 62.8%)\",\n      \"hsl(0, 0%, 18%)\",\n      \"hsl(0, 0%, 93.0%)\",\n      \"#fff\",\n      \"hsla(0, 0%, 93.0%, 0)\"\n    ],\n    \"dark_green\": [\n      \"hsla(146, 30.0%, 7.4%, 0)\",\n      \"hsl(146, 30.0%, 7.4%)\",\n      \"hsl(155, 44.2%, 8.4%)\",\n      \"hsl(155, 46.7%, 10.9%)\",\n      \"hsl(154, 48.4%, 12.9%)\",\n      \"hsl(154, 49.7%, 14.9%)\",\n      \"hsl(154, 50.9%, 17.6%)\",\n      \"hsl(151, 51.7%, 28.4%)\",\n      \"hsl(151, 55.0%, 41.5%)\",\n      \"hsl(151, 49.3%, 46.5%)\",\n      \"hsl(151, 50.0%, 53.2%)\",\n      \"hsl(137, 72.0%, 94.0%)\",\n      \"#fff\",\n      \"hsla(137, 72.0%, 94.0%, 0)\"\n    ],\n    \"dark_purple\": [\n      \"hsla(284, 20.0%, 9.6%, 0)\",\n      \"hsl(284, 20.0%, 9.6%)\",\n      \"hsl(283, 30.0%, 11.8%)\",\n      \"hsl(281, 37.5%, 16.5%)\",\n      \"hsl(280, 41.2%, 20.0%)\",\n      \"hsl(279, 43.8%, 23.3%)\",\n      \"hsl(277, 46.4%, 27.5%)\",\n      \"hsl(272, 52.1%, 45.9%)\",\n      \"hsl(272, 51.0%, 54.0%)\",\n      \"hsl(273, 57.3%, 59.1%)\",\n      \"hsl(275, 80.0%, 71.0%)\",\n      \"hsl(279, 75.0%, 95.7%)\",\n      \"#fff\",\n      \"hsla(279, 75.0%, 95.7%, 0)\"\n    ],\n    \"dark_red\": [\n      \"hsla(353, 23.0%, 9.8%, 0)\",\n      \"hsl(353, 23.0%, 9.8%)\",\n      \"hsl(357, 34.4%, 12.0%)\",\n      \"hsl(356, 43.4%, 16.4%)\",\n      \"hsl(356, 47.6%, 19.2%)\",\n      \"hsl(356, 51.1%, 21.9%)\",\n      \"hsl(356, 55.2%, 25.9%)\",\n      \"hsl(358, 65.0%, 40.4%)\",\n      \"hsl(358, 75.0%, 59.0%)\",\n      \"hsl(358, 85.3%, 64.0%)\",\n      \"hsl(358, 100%, 69.5%)\",\n      \"hsl(351, 89.0%, 96.0%)\",\n      \"#fff\",\n      \"hsla(351, 89.0%, 96.0%, 0)\"\n    ],\n    \"dark_yellow\": [\n      \"hsla(45, 100%, 5.5%, 0)\",\n      \"hsl(45, 100%, 5.5%)\",\n      \"hsl(46, 100%, 6.7%)\",\n      \"hsl(45, 100%, 8.7%)\",\n      \"hsl(45, 100%, 10.4%)\",\n      \"hsl(47, 100%, 12.1%)\",\n      \"hsl(49, 100%, 14.3%)\",\n      \"hsl(50, 100%, 22.0%)\",\n      \"hsl(53, 92.0%, 50.0%)\",\n      \"hsl(54, 100%, 68.0%)\",\n      \"hsl(48, 100%, 47.0%)\",\n      \"hsl(53, 100%, 91.0%)\",\n      \"#fff\",\n      \"hsla(53, 100%, 91.0%, 0)\"\n    ],\n    \"dark_brand\": [\n      \"hsla(123, 50%, 93%, 0)\",\n      \"hsl(123, 50%, 93%)\",\n      \"hsl(122, 53%, 88%)\",\n      \"hsl(125, 100%, 98%)\",\n      \"hsl(166, 55%, 31%)\",\n      \"hsl(171, 96%, 28%)\",\n      \"hsl(148, 44%, 47%)\",\n      \"hsl(133, 54%, 78%)\",\n      \"hsl(166, 30%, 29%)\",\n      \"hsl(180, 36%, 22%)\",\n      \"hsl(180, 29%, 17%)\",\n      \"hsl(180, 41%, 8%)\",\n      \"#fff\",\n      \"hsla(180, 41%, 8%, 0)\"\n    ],\n    \"dark_whiteA\": [\n      \"hsla(0, 0%, 0%, 0.012)\",\n      \"hsla(0, 0%, 0%, 0.012)\",\n      \"hsla(0, 0%, 0%, 0.027)\",\n      \"hsla(0, 0%, 0%, 0.047)\",\n      \"hsla(0, 0%, 0%, 0.071)\",\n      \"hsla(0, 0%, 0%, 0.090)\",\n      \"hsla(0, 0%, 0%, 0.114)\",\n      \"hsla(0, 0%, 0%, 0.220)\",\n      \"hsla(0, 0%, 0%, 0.439)\",\n      \"hsla(0, 0%, 0%, 0.478)\",\n      \"hsla(0, 0%, 0%, 0.565)\",\n      \"hsla(0, 0%, 0%, 0.910)\",\n      \"#fff\",\n      \"hsla(0, 0%, 0%, 0.910)\"\n    ]\n  },\n  \"templates\": {\n    \"base\": {\n      \"color1\": 1,\n      \"color2\": 2,\n      \"color3\": 3,\n      \"color4\": 4,\n      \"color5\": 5,\n      \"color6\": 6,\n      \"color7\": 7,\n      \"color8\": 8,\n      \"color9\": 9,\n      \"color10\": 10,\n      \"color11\": 11,\n      \"color12\": 12,\n      \"background\": 2,\n      \"backgroundHover\": 3,\n      \"backgroundPress\": 4,\n      \"backgroundFocus\": 5,\n      \"backgroundStrong\": 1,\n      \"backgroundTransparent\": 0,\n      \"color\": -1,\n      \"colorHover\": -2,\n      \"colorPress\": -1,\n      \"colorFocus\": -2,\n      \"colorTransparent\": 0,\n      \"borderColor\": 5,\n      \"borderColorHover\": 6,\n      \"borderColorFocus\": 4,\n      \"borderColorPress\": 5,\n      \"placeholderColor\": -4,\n      \"outlineColor\": 5\n    },\n    \"colorLight\": {\n      \"color1\": 1,\n      \"color2\": 2,\n      \"color3\": 3,\n      \"color4\": 4,\n      \"color5\": 5,\n      \"color6\": 6,\n      \"color7\": 7,\n      \"color8\": 8,\n      \"color9\": 9,\n      \"color10\": 10,\n      \"color11\": 11,\n      \"color12\": 12,\n      \"background\": 2,\n      \"backgroundHover\": 3,\n      \"backgroundPress\": 4,\n      \"backgroundFocus\": 5,\n      \"backgroundStrong\": 1,\n      \"backgroundTransparent\": 0,\n      \"color\": -1,\n      \"colorHover\": -2,\n      \"colorPress\": -1,\n      \"colorFocus\": -2,\n      \"colorTransparent\": 0,\n      \"borderColor\": 4,\n      \"borderColorHover\": 5,\n      \"borderColorFocus\": 4,\n      \"borderColorPress\": 4,\n      \"placeholderColor\": -4,\n      \"outlineColor\": 5\n    }\n  },\n  \"masks\": {\n    \"identity\": { \"name\": \"identity-mask\" },\n    \"soften\": { \"name\": \"soften-mask\" },\n    \"soften2\": { \"name\": \"soften-mask\" },\n    \"soften3\": { \"name\": \"soften-mask\" },\n    \"strengthen\": { \"name\": \"strengthen-mask\" },\n    \"inverse\": { \"name\": \"inverse-mask\" },\n    \"inverseSoften\": { \"name\": \"combine-mask\" },\n    \"inverseStrengthen2\": { \"name\": \"combine-mask\" },\n    \"strengthenButSoftenBorder\": { \"name\": \"unnamed\" },\n    \"softenBorder\": { \"name\": \"unnamed\" }\n  },\n  \"themes\": {\n    \"light\": {\n      \"template\": \"base\",\n      \"palette\": \"light\",\n      \"nonInheritedValues\": {\n        \"blue1\": \"hsl(206, 100%, 99.2%)\",\n        \"blue2\": \"hsl(210, 100%, 98.0%)\",\n        \"blue3\": \"hsl(209, 100%, 96.5%)\",\n        \"blue4\": \"hsl(210, 98.8%, 94.0%)\",\n        \"blue5\": \"hsl(209, 95.0%, 90.1%)\",\n        \"blue6\": \"hsl(209, 81.2%, 84.5%)\",\n        \"blue7\": \"hsl(208, 77.5%, 76.9%)\",\n        \"blue8\": \"hsl(206, 81.9%, 65.3%)\",\n        \"blue9\": \"hsl(206, 100%, 50.0%)\",\n        \"blue10\": \"hsl(208, 100%, 47.3%)\",\n        \"blue11\": \"hsl(211, 100%, 43.2%)\",\n        \"blue12\": \"hsl(211, 100%, 15.0%)\",\n        \"gray1\": \"hsl(0, 0%, 99.0%)\",\n        \"gray2\": \"hsl(0, 0%, 97.3%)\",\n        \"gray3\": \"hsl(0, 0%, 95.1%)\",\n        \"gray4\": \"hsl(0, 0%, 93.0%)\",\n        \"gray5\": \"hsl(0, 0%, 90.9%)\",\n        \"gray6\": \"hsl(0, 0%, 88.7%)\",\n        \"gray7\": \"hsl(0, 0%, 85.8%)\",\n        \"gray8\": \"hsl(0, 0%, 78.0%)\",\n        \"gray9\": \"hsl(0, 0%, 56.1%)\",\n        \"gray10\": \"hsl(0, 0%, 52.3%)\",\n        \"gray11\": \"hsl(0, 0%, 43.5%)\",\n        \"gray12\": \"hsl(0, 0%, 92.0%)\",\n        \"gray13\": \"hsl(0, 0%, 9.0%)\",\n        \"green1\": \"hsl(136, 50.0%, 98.9%)\",\n        \"green2\": \"hsl(138, 62.5%, 96.9%)\",\n        \"green3\": \"hsl(139, 55.2%, 94.5%)\",\n        \"green4\": \"hsl(140, 48.7%, 91.0%)\",\n        \"green5\": \"hsl(141, 43.7%, 86.0%)\",\n        \"green6\": \"hsl(143, 40.3%, 79.0%)\",\n        \"green7\": \"hsl(146, 38.5%, 69.0%)\",\n        \"green8\": \"hsl(151, 40.2%, 54.1%)\",\n        \"green9\": \"hsl(151, 55.0%, 41.5%)\",\n        \"green10\": \"hsl(152, 57.5%, 37.6%)\",\n        \"green11\": \"hsl(153, 67.0%, 28.5%)\",\n        \"green12\": \"hsl(155, 40.0%, 14.0%)\",\n        \"purple1\": \"hsl(280, 65.0%, 99.4%)\",\n        \"purple2\": \"hsl(276, 100%, 99.0%)\",\n        \"purple3\": \"hsl(276, 83.1%, 97.0%)\",\n        \"purple4\": \"hsl(275, 76.4%, 94.7%)\",\n        \"purple5\": \"hsl(275, 70.8%, 91.8%)\",\n        \"purple6\": \"hsl(274, 65.4%, 87.8%)\",\n        \"purple7\": \"hsl(273, 61.0%, 81.7%)\",\n        \"purple8\": \"hsl(272, 60.0%, 73.5%)\",\n        \"purple9\": \"hsl(272, 51.0%, 54.0%)\",\n        \"purple10\": \"hsl(272, 46.8%, 50.3%)\",\n        \"purple11\": \"hsl(272, 50.0%, 45.8%)\",\n        \"purple12\": \"hsl(272, 66.0%, 16.0%)\",\n        \"red1\": \"hsl(359, 100%, 99.4%)\",\n        \"red2\": \"hsl(359, 100%, 98.6%)\",\n        \"red3\": \"hsl(360, 100%, 96.8%)\",\n        \"red4\": \"hsl(360, 97.9%, 94.8%)\",\n        \"red5\": \"hsl(360, 90.2%, 91.9%)\",\n        \"red6\": \"hsl(360, 81.7%, 87.8%)\",\n        \"red7\": \"hsl(359, 74.2%, 81.7%)\",\n        \"red8\": \"hsl(359, 69.5%, 74.3%)\",\n        \"red9\": \"hsl(358, 75.0%, 59.0%)\",\n        \"red10\": \"hsl(358, 69.4%, 55.2%)\",\n        \"red11\": \"hsl(358, 65.0%, 48.7%)\",\n        \"red12\": \"hsl(354, 50.0%, 14.6%)\",\n        \"yellow1\": \"hsl(60, 54.0%, 98.5%)\",\n        \"yellow2\": \"hsl(52, 100%, 95.5%)\",\n        \"yellow3\": \"hsl(55, 100%, 90.9%)\",\n        \"yellow4\": \"hsl(54, 100%, 86.6%)\",\n        \"yellow5\": \"hsl(52, 97.9%, 82.0%)\",\n        \"yellow6\": \"hsl(50, 89.4%, 76.1%)\",\n        \"yellow7\": \"hsl(47, 80.4%, 68.0%)\",\n        \"yellow8\": \"hsl(48, 100%, 46.1%)\",\n        \"yellow9\": \"hsl(53, 92.0%, 50.0%)\",\n        \"yellow10\": \"hsl(50, 100%, 48.5%)\",\n        \"yellow11\": \"hsl(42, 100%, 29.0%)\",\n        \"yellow12\": \"hsl(40, 55.0%, 13.5%)\",\n        \"brand1\": \"hsl(180, 29%, 17%)\",\n        \"brand2\": \"hsl(180, 36%, 22%)\",\n        \"brand3\": \"hsl(166, 30%, 29%)\",\n        \"brand4\": \"hsl(166, 55%, 31%)\",\n        \"brand5\": \"hsl(171, 96%, 28%)\",\n        \"brand6\": \"hsl(148, 44%, 47%)\",\n        \"brand7\": \"hsl(144, 55%, 57%)\",\n        \"brand8\": \"hsl(144, 73%, 68%)\",\n        \"brand9\": \"hsl(133, 54%, 78%)\",\n        \"brand10\": \"hsl(133, 63%, 83%)\",\n        \"brand11\": \"hsl(122, 53%, 88%)\",\n        \"brand12\": \"hsl(123, 50%, 93%)\",\n        \"brandHighlight\": \"hsl(125, 50%, 96%)\",\n        \"shadowColor\": \"rgba(0,0,0,0.066)\",\n        \"shadowColorHover\": \"rgba(0,0,0,0.066)\",\n        \"shadowColorPress\": \"rgba(0,0,0,0.02)\",\n        \"shadowColorFocus\": \"rgba(0,0,0,0.02)\"\n      }\n    },\n    \"dark\": {\n      \"template\": \"base\",\n      \"palette\": \"dark\",\n      \"nonInheritedValues\": {\n        \"blue1\": \"hsl(212, 35.0%, 9.2%)\",\n        \"blue2\": \"hsl(216, 50.0%, 11.8%)\",\n        \"blue3\": \"hsl(214, 59.4%, 15.3%)\",\n        \"blue4\": \"hsl(214, 65.8%, 17.9%)\",\n        \"blue5\": \"hsl(213, 71.2%, 20.2%)\",\n        \"blue6\": \"hsl(212, 77.4%, 23.1%)\",\n        \"blue7\": \"hsl(211, 85.1%, 27.4%)\",\n        \"blue8\": \"hsl(211, 89.7%, 34.1%)\",\n        \"blue9\": \"hsl(206, 100%, 50.0%)\",\n        \"blue10\": \"hsl(209, 100%, 60.6%)\",\n        \"blue11\": \"hsl(210, 100%, 66.1%)\",\n        \"blue12\": \"hsl(206, 98.0%, 95.8%)\",\n        \"gray1\": \"hsl(0, 0%, 8.5%)\",\n        \"gray2\": \"hsl(0, 0%, 11.0%)\",\n        \"gray3\": \"hsl(0, 0%, 13.6%)\",\n        \"gray4\": \"hsl(0, 0%, 15.8%)\",\n        \"gray5\": \"hsl(0, 0%, 17.9%)\",\n        \"gray6\": \"hsl(0, 0%, 20.5%)\",\n        \"gray7\": \"hsl(0, 0%, 24.3%)\",\n        \"gray8\": \"hsl(0, 0%, 31.2%)\",\n        \"gray9\": \"hsl(0, 0%, 43.9%)\",\n        \"gray10\": \"hsl(0, 0%, 49.4%)\",\n        \"gray11\": \"hsl(0, 0%, 62.8%)\",\n        \"gray12\": \"hsl(0, 0%, 18%)\",\n        \"gray13\": \"hsl(0, 0%, 93.0%)\",\n        \"green1\": \"hsl(146, 30.0%, 7.4%)\",\n        \"green2\": \"hsl(155, 44.2%, 8.4%)\",\n        \"green3\": \"hsl(155, 46.7%, 10.9%)\",\n        \"green4\": \"hsl(154, 48.4%, 12.9%)\",\n        \"green5\": \"hsl(154, 49.7%, 14.9%)\",\n        \"green6\": \"hsl(154, 50.9%, 17.6%)\",\n        \"green7\": \"hsl(153, 51.8%, 21.8%)\",\n        \"green8\": \"hsl(151, 51.7%, 28.4%)\",\n        \"green9\": \"hsl(151, 55.0%, 41.5%)\",\n        \"green10\": \"hsl(151, 49.3%, 46.5%)\",\n        \"green11\": \"hsl(151, 50.0%, 53.2%)\",\n        \"green12\": \"hsl(137, 72.0%, 94.0%)\",\n        \"purple1\": \"hsl(284, 20.0%, 9.6%)\",\n        \"purple2\": \"hsl(283, 30.0%, 11.8%)\",\n        \"purple3\": \"hsl(281, 37.5%, 16.5%)\",\n        \"purple4\": \"hsl(280, 41.2%, 20.0%)\",\n        \"purple5\": \"hsl(279, 43.8%, 23.3%)\",\n        \"purple6\": \"hsl(277, 46.4%, 27.5%)\",\n        \"purple7\": \"hsl(275, 49.3%, 34.6%)\",\n        \"purple8\": \"hsl(272, 52.1%, 45.9%)\",\n        \"purple9\": \"hsl(272, 51.0%, 54.0%)\",\n        \"purple10\": \"hsl(273, 57.3%, 59.1%)\",\n        \"purple11\": \"hsl(275, 80.0%, 71.0%)\",\n        \"purple12\": \"hsl(279, 75.0%, 95.7%)\",\n        \"red1\": \"hsl(353, 23.0%, 9.8%)\",\n        \"red2\": \"hsl(357, 34.4%, 12.0%)\",\n        \"red3\": \"hsl(356, 43.4%, 16.4%)\",\n        \"red4\": \"hsl(356, 47.6%, 19.2%)\",\n        \"red5\": \"hsl(356, 51.1%, 21.9%)\",\n        \"red6\": \"hsl(356, 55.2%, 25.9%)\",\n        \"red7\": \"hsl(357, 60.2%, 31.8%)\",\n        \"red8\": \"hsl(358, 65.0%, 40.4%)\",\n        \"red9\": \"hsl(358, 75.0%, 59.0%)\",\n        \"red10\": \"hsl(358, 85.3%, 64.0%)\",\n        \"red11\": \"hsl(358, 100%, 69.5%)\",\n        \"red12\": \"hsl(351, 89.0%, 96.0%)\",\n        \"yellow1\": \"hsl(45, 100%, 5.5%)\",\n        \"yellow2\": \"hsl(46, 100%, 6.7%)\",\n        \"yellow3\": \"hsl(45, 100%, 8.7%)\",\n        \"yellow4\": \"hsl(45, 100%, 10.4%)\",\n        \"yellow5\": \"hsl(47, 100%, 12.1%)\",\n        \"yellow6\": \"hsl(49, 100%, 14.3%)\",\n        \"yellow7\": \"hsl(49, 90.3%, 18.4%)\",\n        \"yellow8\": \"hsl(50, 100%, 22.0%)\",\n        \"yellow9\": \"hsl(53, 92.0%, 50.0%)\",\n        \"yellow10\": \"hsl(54, 100%, 68.0%)\",\n        \"yellow11\": \"hsl(48, 100%, 47.0%)\",\n        \"yellow12\": \"hsl(53, 100%, 91.0%)\",\n        \"brand1\": \"hsl(123, 50%, 93%)\",\n        \"brand2\": \"hsl(122, 53%, 88%)\",\n        \"brand3\": \"hsl(125, 100%, 98%)\",\n        \"brand4\": \"hsl(166, 55%, 31%)\",\n        \"brand5\": \"hsl(171, 96%, 28%)\",\n        \"brand6\": \"hsl(148, 44%, 47%)\",\n        \"brand7\": \"hsl(144, 55%, 57%)\",\n        \"brand8\": \"hsl(144, 73%, 68%)\",\n        \"brand9\": \"hsl(133, 54%, 78%)\",\n        \"brand10\": \"hsl(166, 30%, 29%)\",\n        \"brand11\": \"hsl(180, 36%, 22%)\",\n        \"brand12\": \"hsl(180, 29%, 17%)\",\n        \"brandHighlight\": \"hsl(180, 41%, 8%)\",\n        \"shadowColor\": \"rgba(0,0,0,0.3)\",\n        \"shadowColorHover\": \"rgba(0,0,0,0.3)\",\n        \"shadowColorPress\": \"rgba(0,0,0,0.2)\",\n        \"shadowColorFocus\": \"rgba(0,0,0,0.2)\"\n      }\n    },\n    \"light_yellow\": [\n      { \"parent\": \"light\", \"palette\": \"yellow\", \"template\": \"colorLight\" },\n      { \"parent\": \"dark\", \"palette\": \"yellow\", \"template\": \"base\" }\n    ],\n    \"light_green\": [\n      { \"parent\": \"light\", \"palette\": \"green\", \"template\": \"colorLight\" },\n      { \"parent\": \"dark\", \"palette\": \"green\", \"template\": \"base\" }\n    ],\n    \"light_blue\": [\n      { \"parent\": \"light\", \"palette\": \"blue\", \"template\": \"colorLight\" },\n      { \"parent\": \"dark\", \"palette\": \"blue\", \"template\": \"base\" }\n    ],\n    \"light_purple\": [\n      { \"parent\": \"light\", \"palette\": \"purple\", \"template\": \"colorLight\" },\n      { \"parent\": \"dark\", \"palette\": \"purple\", \"template\": \"base\" }\n    ],\n    \"light_red\": [\n      { \"parent\": \"light\", \"palette\": \"red\", \"template\": \"colorLight\" },\n      { \"parent\": \"dark\", \"palette\": \"red\", \"template\": \"base\" }\n    ],\n    \"light_brand\": [\n      { \"parent\": \"light\", \"palette\": \"brand\", \"template\": \"colorLight\" },\n      { \"parent\": \"dark\", \"palette\": \"brand\", \"template\": \"base\" }\n    ],\n    \"dark_yellow\": [\n      { \"parent\": \"light\", \"palette\": \"yellow\", \"template\": \"colorLight\" },\n      { \"parent\": \"dark\", \"palette\": \"yellow\", \"template\": \"base\" }\n    ],\n    \"dark_green\": [\n      { \"parent\": \"light\", \"palette\": \"green\", \"template\": \"colorLight\" },\n      { \"parent\": \"dark\", \"palette\": \"green\", \"template\": \"base\" }\n    ],\n    \"dark_blue\": [\n      { \"parent\": \"light\", \"palette\": \"blue\", \"template\": \"colorLight\" },\n      { \"parent\": \"dark\", \"palette\": \"blue\", \"template\": \"base\" }\n    ],\n    \"dark_purple\": [\n      { \"parent\": \"light\", \"palette\": \"purple\", \"template\": \"colorLight\" },\n      { \"parent\": \"dark\", \"palette\": \"purple\", \"template\": \"base\" }\n    ],\n    \"dark_red\": [\n      { \"parent\": \"light\", \"palette\": \"red\", \"template\": \"colorLight\" },\n      { \"parent\": \"dark\", \"palette\": \"red\", \"template\": \"base\" }\n    ],\n    \"dark_brand\": [\n      { \"parent\": \"light\", \"palette\": \"brand\", \"template\": \"colorLight\" },\n      { \"parent\": \"dark\", \"palette\": \"brand\", \"template\": \"base\" }\n    ]\n  }\n}\n"
  },
  {
    "path": ".vscode/.debug.script.mjs",
    "content": "import fs from 'node:fs'\nimport path from 'node:path'\nimport { fileURLToPath } from 'node:url'\nimport { createRequire } from 'node:module'\nimport { spawn } from 'node:child_process'\n\nconst pkg = createRequire(import.meta.url)('../package.json')\nconst __dirname = path.dirname(fileURLToPath(import.meta.url))\n\n// write .debug.env\nconst envContent = Object.entries(pkg.debug.env).map(([key, val]) => `${key}=${val}`)\nfs.writeFileSync(path.join(__dirname, '.debug.env'), envContent.join('\\n'))\n\n// bootstrap\nspawn(\n  // TODO: terminate `npm run dev` when Debug exits.\n  process.platform === 'win32' ? 'npm.cmd' : 'npm',\n  ['run', 'dev'],\n  {\n    stdio: 'inherit',\n    env: Object.assign(process.env, { VSCODE_DEBUG: 'true' }),\n  },\n)\n"
  },
  {
    "path": ".vscode/extensions.json",
    "content": "{\n  // See http://go.microsoft.com/fwlink/?LinkId=827846\n  // for the documentation about the extensions.json format\n  \"recommendations\": [\"mrmlnc.vscode-json5\"]\n}\n"
  },
  {
    "path": ".vscode/launch.json",
    "content": "{\n  // Use IntelliSense to learn about possible attributes.\n  // Hover to view descriptions of existing attributes.\n  // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387\n  \"version\": \"0.2.0\",\n  \"compounds\": [\n    {\n      \"name\": \"Debug App\",\n      \"preLaunchTask\": \"Before Debug\",\n      \"configurations\": [\"Debug Main Process\", \"Debug Renderer Process\"],\n      \"presentation\": {\n        \"hidden\": false,\n        \"group\": \"\",\n        \"order\": 1\n      },\n      \"stopAll\": true\n    }\n  ],\n  \"configurations\": [\n    {\n      \"name\": \"Debug Main Process\",\n      \"type\": \"node\",\n      \"request\": \"launch\",\n      \"runtimeExecutable\": \"${workspaceRoot}/node_modules/.bin/electron\",\n      \"windows\": {\n        \"runtimeExecutable\": \"${workspaceRoot}/node_modules/.bin/electron.cmd\"\n      },\n      \"runtimeArgs\": [\"--no-sandbox\", \"--remote-debugging-port=9229\", \".\"],\n      \"envFile\": \"${workspaceFolder}/.vscode/.debug.env\",\n      \"console\": \"integratedTerminal\"\n    },\n    {\n      \"name\": \"Debug Renderer Process\",\n      \"port\": 9229,\n      \"request\": \"attach\",\n      \"type\": \"chrome\",\n      \"timeout\": 60000,\n      \"skipFiles\": [\n        \"<node_internals>/**\",\n        \"${workspaceRoot}/node_modules/**\",\n        \"${workspaceRoot}/dist-electron/**\",\n        // Skip files in host(VITE_DEV_SERVER_URL)\n        \"http://127.0.0.1:7777/**\"\n      ]\n    }\n  ]\n}\n"
  },
  {
    "path": ".vscode/settings.json",
    "content": "{\n  \"typescript.tsdk\": \"node_modules/typescript/lib\",\n  \"typescript.tsc.autoDetect\": \"off\",\n  \"json.schemas\": [\n    {\n      \"fileMatch\": [\"/*electron-builder.json5\", \"/*electron-builder.json\"],\n      \"url\": \"https://json.schemastore.org/electron-builder\"\n    }\n  ],\n  \"editor.codeActionsOnSave\": {\n    \"source.fixAll\": \"explicit\"\n    // \"source.organizeImports\": \"explicit\"\n  },\n  \"eslint.alwaysShowStatus\": true,\n  \"eslint.format.enable\": false,\n  // \"eslint.run\": \"\",\n  \"editor.formatOnSave\": false,\n  \"editor.codeActionsOnSaveMode\": \"explicit\" // This is the updated setting\n}\n"
  },
  {
    "path": ".vscode/tasks.json",
    "content": "{\n  // See https://go.microsoft.com/fwlink/?LinkId=733558\n  // for the documentation about the tasks.json format\n  \"version\": \"2.0.0\",\n  \"tasks\": [\n    {\n      \"label\": \"Before Debug\",\n      \"type\": \"shell\",\n      \"command\": \"node .vscode/.debug.script.mjs\",\n      \"isBackground\": true,\n      \"problemMatcher\": {\n        \"owner\": \"typescript\",\n        \"fileLocation\": \"relative\",\n        \"pattern\": {\n          // TODO: correct \"regexp\"\n          \"regexp\": \"^([a-zA-Z]\\\\:\\/?([\\\\w\\\\-]\\/?)+\\\\.\\\\w+):(\\\\d+):(\\\\d+): (ERROR|WARNING)\\\\: (.*)$\",\n          \"file\": 1,\n          \"line\": 3,\n          \"column\": 4,\n          \"code\": 5,\n          \"message\": 6\n        },\n        \"background\": {\n          \"activeOnStart\": true,\n          \"beginsPattern\": \"^.*VITE v.*  ready in \\\\d* ms.*$\",\n          \"endsPattern\": \"^.*\\\\[startup\\\\] Electron App.*$\"\n        }\n      }\n    }\n  ]\n}\n"
  },
  {
    "path": "Containerfile",
    "content": "FROM ghcr.io/electron/build:latest\n\nCOPY . .\nRUN npm ci --verbose \\\n&&  npm run build\n\nEXPOSE 3000\nCMD [\"npm\", \"run\", \"dev\"]\n"
  },
  {
    "path": "LICENSE",
    "content": "                    GNU AFFERO GENERAL PUBLIC LICENSE\n                       Version 3, 19 November 2007\n\n Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n                            Preamble\n\n  The GNU Affero General Public License is a free, copyleft license for\nsoftware and other kinds of works, specifically designed to ensure\ncooperation with the community in the case of network server software.\n\n  The licenses for most software and other practical works are designed\nto take away your freedom to share and change the works.  By contrast,\nour General Public Licenses are intended to guarantee your freedom to\nshare and change all versions of a program--to make sure it remains free\nsoftware for all its users.\n\n  When we speak of free software, we are referring to freedom, not\nprice.  Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthem if you wish), that you receive source code or can get it if you\nwant it, that you can change the software or use pieces of it in new\nfree programs, and that you know you can do these things.\n\n  Developers that use our General Public Licenses protect your rights\nwith two steps: (1) assert copyright on the software, and (2) offer\nyou this License which gives you legal permission to copy, distribute\nand/or modify the software.\n\n  A secondary benefit of defending all users' freedom is that\nimprovements made in alternate versions of the program, if they\nreceive widespread use, become available for other developers to\nincorporate.  Many developers of free software are heartened and\nencouraged by the resulting cooperation.  However, in the case of\nsoftware used on network servers, this result may fail to come about.\nThe GNU General Public License permits making a modified version and\nletting the public access it on a server without ever releasing its\nsource code to the public.\n\n  The GNU Affero General Public License is designed specifically to\nensure that, in such cases, the modified source code becomes available\nto the community.  It requires the operator of a network server to\nprovide the source code of the modified version running there to the\nusers of that server.  Therefore, public use of a modified version, on\na publicly accessible server, gives the public access to the source\ncode of the modified version.\n\n  An older license, called the Affero General Public License and\npublished by Affero, was designed to accomplish similar goals.  This is\na different license, not a version of the Affero GPL, but Affero has\nreleased a new version of the Affero GPL which permits relicensing under\nthis license.\n\n  The precise terms and conditions for copying, distribution and\nmodification follow.\n\n                       TERMS AND CONDITIONS\n\n  0. Definitions.\n\n  \"This License\" refers to version 3 of the GNU Affero General Public License.\n\n  \"Copyright\" also means copyright-like laws that apply to other kinds of\nworks, such as semiconductor masks.\n\n  \"The Program\" refers to any copyrightable work licensed under this\nLicense.  Each licensee is addressed as \"you\".  \"Licensees\" and\n\"recipients\" may be individuals or organizations.\n\n  To \"modify\" a work means to copy from or adapt all or part of the work\nin a fashion requiring copyright permission, other than the making of an\nexact copy.  The resulting work is called a \"modified version\" of the\nearlier work or a work \"based on\" the earlier work.\n\n  A \"covered work\" means either the unmodified Program or a work based\non the Program.\n\n  To \"propagate\" a work means to do anything with it that, without\npermission, would make you directly or secondarily liable for\ninfringement under applicable copyright law, except executing it on a\ncomputer or modifying a private copy.  Propagation includes copying,\ndistribution (with or without modification), making available to the\npublic, and in some countries other activities as well.\n\n  To \"convey\" a work means any kind of propagation that enables other\nparties to make or receive copies.  Mere interaction with a user through\na computer network, with no transfer of a copy, is not conveying.\n\n  An interactive user interface displays \"Appropriate Legal Notices\"\nto the extent that it includes a convenient and prominently visible\nfeature that (1) displays an appropriate copyright notice, and (2)\ntells the user that there is no warranty for the work (except to the\nextent that warranties are provided), that licensees may convey the\nwork under this License, and how to view a copy of this License.  If\nthe interface presents a list of user commands or options, such as a\nmenu, a prominent item in the list meets this criterion.\n\n  1. Source Code.\n\n  The \"source code\" for a work means the preferred form of the work\nfor making modifications to it.  \"Object code\" means any non-source\nform of a work.\n\n  A \"Standard Interface\" means an interface that either is an official\nstandard defined by a recognized standards body, or, in the case of\ninterfaces specified for a particular programming language, one that\nis widely used among developers working in that language.\n\n  The \"System Libraries\" of an executable work include anything, other\nthan the work as a whole, that (a) is included in the normal form of\npackaging a Major Component, but which is not part of that Major\nComponent, and (b) serves only to enable use of the work with that\nMajor Component, or to implement a Standard Interface for which an\nimplementation is available to the public in source code form.  A\n\"Major Component\", in this context, means a major essential component\n(kernel, window system, and so on) of the specific operating system\n(if any) on which the executable work runs, or a compiler used to\nproduce the work, or an object code interpreter used to run it.\n\n  The \"Corresponding Source\" for a work in object code form means all\nthe source code needed to generate, install, and (for an executable\nwork) run the object code and to modify the work, including scripts to\ncontrol those activities.  However, it does not include the work's\nSystem Libraries, or general-purpose tools or generally available free\nprograms which are used unmodified in performing those activities but\nwhich are not part of the work.  For example, Corresponding Source\nincludes interface definition files associated with source files for\nthe work, and the source code for shared libraries and dynamically\nlinked subprograms that the work is specifically designed to require,\nsuch as by intimate data communication or control flow between those\nsubprograms and other parts of the work.\n\n  The Corresponding Source need not include anything that users\ncan regenerate automatically from other parts of the Corresponding\nSource.\n\n  The Corresponding Source for a work in source code form is that\nsame work.\n\n  2. Basic Permissions.\n\n  All rights granted under this License are granted for the term of\ncopyright on the Program, and are irrevocable provided the stated\nconditions are met.  This License explicitly affirms your unlimited\npermission to run the unmodified Program.  The output from running a\ncovered work is covered by this License only if the output, given its\ncontent, constitutes a covered work.  This License acknowledges your\nrights of fair use or other equivalent, as provided by copyright law.\n\n  You may make, run and propagate covered works that you do not\nconvey, without conditions so long as your license otherwise remains\nin force.  You may convey covered works to others for the sole purpose\nof having them make modifications exclusively for you, or provide you\nwith facilities for running those works, provided that you comply with\nthe terms of this License in conveying all material for which you do\nnot control copyright.  Those thus making or running the covered works\nfor you must do so exclusively on your behalf, under your direction\nand control, on terms that prohibit them from making any copies of\nyour copyrighted material outside their relationship with you.\n\n  Conveying under any other circumstances is permitted solely under\nthe conditions stated below.  Sublicensing is not allowed; section 10\nmakes it unnecessary.\n\n  3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n\n  No covered work shall be deemed part of an effective technological\nmeasure under any applicable law fulfilling obligations under article\n11 of the WIPO copyright treaty adopted on 20 December 1996, or\nsimilar laws prohibiting or restricting circumvention of such\nmeasures.\n\n  When you convey a covered work, you waive any legal power to forbid\ncircumvention of technological measures to the extent such circumvention\nis effected by exercising rights under this License with respect to\nthe covered work, and you disclaim any intention to limit operation or\nmodification of the work as a means of enforcing, against the work's\nusers, your or third parties' legal rights to forbid circumvention of\ntechnological measures.\n\n  4. Conveying Verbatim Copies.\n\n  You may convey verbatim copies of the Program's source code as you\nreceive it, in any medium, provided that you conspicuously and\nappropriately publish on each copy an appropriate copyright notice;\nkeep intact all notices stating that this License and any\nnon-permissive terms added in accord with section 7 apply to the code;\nkeep intact all notices of the absence of any warranty; and give all\nrecipients a copy of this License along with the Program.\n\n  You may charge any price or no price for each copy that you convey,\nand you may offer support or warranty protection for a fee.\n\n  5. Conveying Modified Source Versions.\n\n  You may convey a work based on the Program, or the modifications to\nproduce it from the Program, in the form of source code under the\nterms of section 4, provided that you also meet all of these conditions:\n\n    a) The work must carry prominent notices stating that you modified\n    it, and giving a relevant date.\n\n    b) The work must carry prominent notices stating that it is\n    released under this License and any conditions added under section\n    7.  This requirement modifies the requirement in section 4 to\n    \"keep intact all notices\".\n\n    c) You must license the entire work, as a whole, under this\n    License to anyone who comes into possession of a copy.  This\n    License will therefore apply, along with any applicable section 7\n    additional terms, to the whole of the work, and all its parts,\n    regardless of how they are packaged.  This License gives no\n    permission to license the work in any other way, but it does not\n    invalidate such permission if you have separately received it.\n\n    d) If the work has interactive user interfaces, each must display\n    Appropriate Legal Notices; however, if the Program has interactive\n    interfaces that do not display Appropriate Legal Notices, your\n    work need not make them do so.\n\n  A compilation of a covered work with other separate and independent\nworks, which are not by their nature extensions of the covered work,\nand which are not combined with it such as to form a larger program,\nin or on a volume of a storage or distribution medium, is called an\n\"aggregate\" if the compilation and its resulting copyright are not\nused to limit the access or legal rights of the compilation's users\nbeyond what the individual works permit.  Inclusion of a covered work\nin an aggregate does not cause this License to apply to the other\nparts of the aggregate.\n\n  6. Conveying Non-Source Forms.\n\n  You may convey a covered work in object code form under the terms\nof sections 4 and 5, provided that you also convey the\nmachine-readable Corresponding Source under the terms of this License,\nin one of these ways:\n\n    a) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by the\n    Corresponding Source fixed on a durable physical medium\n    customarily used for software interchange.\n\n    b) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by a\n    written offer, valid for at least three years and valid for as\n    long as you offer spare parts or customer support for that product\n    model, to give anyone who possesses the object code either (1) a\n    copy of the Corresponding Source for all the software in the\n    product that is covered by this License, on a durable physical\n    medium customarily used for software interchange, for a price no\n    more than your reasonable cost of physically performing this\n    conveying of source, or (2) access to copy the\n    Corresponding Source from a network server at no charge.\n\n    c) Convey individual copies of the object code with a copy of the\n    written offer to provide the Corresponding Source.  This\n    alternative is allowed only occasionally and noncommercially, and\n    only if you received the object code with such an offer, in accord\n    with subsection 6b.\n\n    d) Convey the object code by offering access from a designated\n    place (gratis or for a charge), and offer equivalent access to the\n    Corresponding Source in the same way through the same place at no\n    further charge.  You need not require recipients to copy the\n    Corresponding Source along with the object code.  If the place to\n    copy the object code is a network server, the Corresponding Source\n    may be on a different server (operated by you or a third party)\n    that supports equivalent copying facilities, provided you maintain\n    clear directions next to the object code saying where to find the\n    Corresponding Source.  Regardless of what server hosts the\n    Corresponding Source, you remain obligated to ensure that it is\n    available for as long as needed to satisfy these requirements.\n\n    e) Convey the object code using peer-to-peer transmission, provided\n    you inform other peers where the object code and Corresponding\n    Source of the work are being offered to the general public at no\n    charge under subsection 6d.\n\n  A separable portion of the object code, whose source code is excluded\nfrom the Corresponding Source as a System Library, need not be\nincluded in conveying the object code work.\n\n  A \"User Product\" is either (1) a \"consumer product\", which means any\ntangible personal property which is normally used for personal, family,\nor household purposes, or (2) anything designed or sold for incorporation\ninto a dwelling.  In determining whether a product is a consumer product,\ndoubtful cases shall be resolved in favor of coverage.  For a particular\nproduct received by a particular user, \"normally used\" refers to a\ntypical or common use of that class of product, regardless of the status\nof the particular user or of the way in which the particular user\nactually uses, or expects or is expected to use, the product.  A product\nis a consumer product regardless of whether the product has substantial\ncommercial, industrial or non-consumer uses, unless such uses represent\nthe only significant mode of use of the product.\n\n  \"Installation Information\" for a User Product means any methods,\nprocedures, authorization keys, or other information required to install\nand execute modified versions of a covered work in that User Product from\na modified version of its Corresponding Source.  The information must\nsuffice to ensure that the continued functioning of the modified object\ncode is in no case prevented or interfered with solely because\nmodification has been made.\n\n  If you convey an object code work under this section in, or with, or\nspecifically for use in, a User Product, and the conveying occurs as\npart of a transaction in which the right of possession and use of the\nUser Product is transferred to the recipient in perpetuity or for a\nfixed term (regardless of how the transaction is characterized), the\nCorresponding Source conveyed under this section must be accompanied\nby the Installation Information.  But this requirement does not apply\nif neither you nor any third party retains the ability to install\nmodified object code on the User Product (for example, the work has\nbeen installed in ROM).\n\n  The requirement to provide Installation Information does not include a\nrequirement to continue to provide support service, warranty, or updates\nfor a work that has been modified or installed by the recipient, or for\nthe User Product in which it has been modified or installed.  Access to a\nnetwork may be denied when the modification itself materially and\nadversely affects the operation of the network or violates the rules and\nprotocols for communication across the network.\n\n  Corresponding Source conveyed, and Installation Information provided,\nin accord with this section must be in a format that is publicly\ndocumented (and with an implementation available to the public in\nsource code form), and must require no special password or key for\nunpacking, reading or copying.\n\n  7. Additional Terms.\n\n  \"Additional permissions\" are terms that supplement the terms of this\nLicense by making exceptions from one or more of its conditions.\nAdditional permissions that are applicable to the entire Program shall\nbe treated as though they were included in this License, to the extent\nthat they are valid under applicable law.  If additional permissions\napply only to part of the Program, that part may be used separately\nunder those permissions, but the entire Program remains governed by\nthis License without regard to the additional permissions.\n\n  When you convey a copy of a covered work, you may at your option\nremove any additional permissions from that copy, or from any part of\nit.  (Additional permissions may be written to require their own\nremoval in certain cases when you modify the work.)  You may place\nadditional permissions on material, added by you to a covered work,\nfor which you have or can give appropriate copyright permission.\n\n  Notwithstanding any other provision of this License, for material you\nadd to a covered work, you may (if authorized by the copyright holders of\nthat material) supplement the terms of this License with terms:\n\n    a) Disclaiming warranty or limiting liability differently from the\n    terms of sections 15 and 16 of this License; or\n\n    b) Requiring preservation of specified reasonable legal notices or\n    author attributions in that material or in the Appropriate Legal\n    Notices displayed by works containing it; or\n\n    c) Prohibiting misrepresentation of the origin of that material, or\n    requiring that modified versions of such material be marked in\n    reasonable ways as different from the original version; or\n\n    d) Limiting the use for publicity purposes of names of licensors or\n    authors of the material; or\n\n    e) Declining to grant rights under trademark law for use of some\n    trade names, trademarks, or service marks; or\n\n    f) Requiring indemnification of licensors and authors of that\n    material by anyone who conveys the material (or modified versions of\n    it) with contractual assumptions of liability to the recipient, for\n    any liability that these contractual assumptions directly impose on\n    those licensors and authors.\n\n  All other non-permissive additional terms are considered \"further\nrestrictions\" within the meaning of section 10.  If the Program as you\nreceived it, or any part of it, contains a notice stating that it is\ngoverned by this License along with a term that is a further\nrestriction, you may remove that term.  If a license document contains\na further restriction but permits relicensing or conveying under this\nLicense, you may add to a covered work material governed by the terms\nof that license document, provided that the further restriction does\nnot survive such relicensing or conveying.\n\n  If you add terms to a covered work in accord with this section, you\nmust place, in the relevant source files, a statement of the\nadditional terms that apply to those files, or a notice indicating\nwhere to find the applicable terms.\n\n  Additional terms, permissive or non-permissive, may be stated in the\nform of a separately written license, or stated as exceptions;\nthe above requirements apply either way.\n\n  8. Termination.\n\n  You may not propagate or modify a covered work except as expressly\nprovided under this License.  Any attempt otherwise to propagate or\nmodify it is void, and will automatically terminate your rights under\nthis License (including any patent licenses granted under the third\nparagraph of section 11).\n\n  However, if you cease all violation of this License, then your\nlicense from a particular copyright holder is reinstated (a)\nprovisionally, unless and until the copyright holder explicitly and\nfinally terminates your license, and (b) permanently, if the copyright\nholder fails to notify you of the violation by some reasonable means\nprior to 60 days after the cessation.\n\n  Moreover, your license from a particular copyright holder is\nreinstated permanently if the copyright holder notifies you of the\nviolation by some reasonable means, this is the first time you have\nreceived notice of violation of this License (for any work) from that\ncopyright holder, and you cure the violation prior to 30 days after\nyour receipt of the notice.\n\n  Termination of your rights under this section does not terminate the\nlicenses of parties who have received copies or rights from you under\nthis License.  If your rights have been terminated and not permanently\nreinstated, you do not qualify to receive new licenses for the same\nmaterial under section 10.\n\n  9. Acceptance Not Required for Having Copies.\n\n  You are not required to accept this License in order to receive or\nrun a copy of the Program.  Ancillary propagation of a covered work\noccurring solely as a consequence of using peer-to-peer transmission\nto receive a copy likewise does not require acceptance.  However,\nnothing other than this License grants you permission to propagate or\nmodify any covered work.  These actions infringe copyright if you do\nnot accept this License.  Therefore, by modifying or propagating a\ncovered work, you indicate your acceptance of this License to do so.\n\n  10. Automatic Licensing of Downstream Recipients.\n\n  Each time you convey a covered work, the recipient automatically\nreceives a license from the original licensors, to run, modify and\npropagate that work, subject to this License.  You are not responsible\nfor enforcing compliance by third parties with this License.\n\n  An \"entity transaction\" is a transaction transferring control of an\norganization, or substantially all assets of one, or subdividing an\norganization, or merging organizations.  If propagation of a covered\nwork results from an entity transaction, each party to that\ntransaction who receives a copy of the work also receives whatever\nlicenses to the work the party's predecessor in interest had or could\ngive under the previous paragraph, plus a right to possession of the\nCorresponding Source of the work from the predecessor in interest, if\nthe predecessor has it or can get it with reasonable efforts.\n\n  You may not impose any further restrictions on the exercise of the\nrights granted or affirmed under this License.  For example, you may\nnot impose a license fee, royalty, or other charge for exercise of\nrights granted under this License, and you may not initiate litigation\n(including a cross-claim or counterclaim in a lawsuit) alleging that\nany patent claim is infringed by making, using, selling, offering for\nsale, or importing the Program or any portion of it.\n\n  11. Patents.\n\n  A \"contributor\" is a copyright holder who authorizes use under this\nLicense of the Program or a work on which the Program is based.  The\nwork thus licensed is called the contributor's \"contributor version\".\n\n  A contributor's \"essential patent claims\" are all patent claims\nowned or controlled by the contributor, whether already acquired or\nhereafter acquired, that would be infringed by some manner, permitted\nby this License, of making, using, or selling its contributor version,\nbut do not include claims that would be infringed only as a\nconsequence of further modification of the contributor version.  For\npurposes of this definition, \"control\" includes the right to grant\npatent sublicenses in a manner consistent with the requirements of\nthis License.\n\n  Each contributor grants you a non-exclusive, worldwide, royalty-free\npatent license under the contributor's essential patent claims, to\nmake, use, sell, offer for sale, import and otherwise run, modify and\npropagate the contents of its contributor version.\n\n  In the following three paragraphs, a \"patent license\" is any express\nagreement or commitment, however denominated, not to enforce a patent\n(such as an express permission to practice a patent or covenant not to\nsue for patent infringement).  To \"grant\" such a patent license to a\nparty means to make such an agreement or commitment not to enforce a\npatent against the party.\n\n  If you convey a covered work, knowingly relying on a patent license,\nand the Corresponding Source of the work is not available for anyone\nto copy, free of charge and under the terms of this License, through a\npublicly available network server or other readily accessible means,\nthen you must either (1) cause the Corresponding Source to be so\navailable, or (2) arrange to deprive yourself of the benefit of the\npatent license for this particular work, or (3) arrange, in a manner\nconsistent with the requirements of this License, to extend the patent\nlicense to downstream recipients.  \"Knowingly relying\" means you have\nactual knowledge that, but for the patent license, your conveying the\ncovered work in a country, or your recipient's use of the covered work\nin a country, would infringe one or more identifiable patents in that\ncountry that you have reason to believe are valid.\n\n  If, pursuant to or in connection with a single transaction or\narrangement, you convey, or propagate by procuring conveyance of, a\ncovered work, and grant a patent license to some of the parties\nreceiving the covered work authorizing them to use, propagate, modify\nor convey a specific copy of the covered work, then the patent license\nyou grant is automatically extended to all recipients of the covered\nwork and works based on it.\n\n  A patent license is \"discriminatory\" if it does not include within\nthe scope of its coverage, prohibits the exercise of, or is\nconditioned on the non-exercise of one or more of the rights that are\nspecifically granted under this License.  You may not convey a covered\nwork if you are a party to an arrangement with a third party that is\nin the business of distributing software, under which you make payment\nto the third party based on the extent of your activity of conveying\nthe work, and under which the third party grants, to any of the\nparties who would receive the covered work from you, a discriminatory\npatent license (a) in connection with copies of the covered work\nconveyed by you (or copies made from those copies), or (b) primarily\nfor and in connection with specific products or compilations that\ncontain the covered work, unless you entered into that arrangement,\nor that patent license was granted, prior to 28 March 2007.\n\n  Nothing in this License shall be construed as excluding or limiting\nany implied license or other defenses to infringement that may\notherwise be available to you under applicable patent law.\n\n  12. No Surrender of Others' Freedom.\n\n  If conditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License.  If you cannot convey a\ncovered work so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you may\nnot convey it at all.  For example, if you agree to terms that obligate you\nto collect a royalty for further conveying from those to whom you convey\nthe Program, the only way you could satisfy both those terms and this\nLicense would be to refrain entirely from conveying the Program.\n\n  13. Remote Network Interaction; Use with the GNU General Public License.\n\n  Notwithstanding any other provision of this License, if you modify the\nProgram, your modified version must prominently offer all users\ninteracting with it remotely through a computer network (if your version\nsupports such interaction) an opportunity to receive the Corresponding\nSource of your version by providing access to the Corresponding Source\nfrom a network server at no charge, through some standard or customary\nmeans of facilitating copying of software.  This Corresponding Source\nshall include the Corresponding Source for any work covered by version 3\nof the GNU General Public License that is incorporated pursuant to the\nfollowing paragraph.\n\n  Notwithstanding any other provision of this License, you have\npermission to link or combine any covered work with a work licensed\nunder version 3 of the GNU General Public License into a single\ncombined work, and to convey the resulting work.  The terms of this\nLicense will continue to apply to the part which is the covered work,\nbut the work with which it is combined will remain governed by version\n3 of the GNU General Public License.\n\n  14. Revised Versions of this License.\n\n  The Free Software Foundation may publish revised and/or new versions of\nthe GNU Affero General Public License from time to time.  Such new versions\nwill be similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\n  Each version is given a distinguishing version number.  If the\nProgram specifies that a certain numbered version of the GNU Affero General\nPublic License \"or any later version\" applies to it, you have the\noption of following the terms and conditions either of that numbered\nversion or of any later version published by the Free Software\nFoundation.  If the Program does not specify a version number of the\nGNU Affero General Public License, you may choose any version ever published\nby the Free Software Foundation.\n\n  If the Program specifies that a proxy can decide which future\nversions of the GNU Affero General Public License can be used, that proxy's\npublic statement of acceptance of a version permanently authorizes you\nto choose that version for the Program.\n\n  Later license versions may give you additional or different\npermissions.  However, no additional obligations are imposed on any\nauthor or copyright holder as a result of your choosing to follow a\nlater version.\n\n  15. Disclaimer of Warranty.\n\n  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\nHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\nOF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\nTHE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\nIS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\nALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n  16. Limitation of Liability.\n\n  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\nTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\nGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\nUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\nDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\nPARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\nEVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGES.\n\n  17. Interpretation of Sections 15 and 16.\n\n  If the disclaimer of warranty and limitation of liability provided\nabove cannot be given local legal effect according to their terms,\nreviewing courts shall apply local law that most closely approximates\nan absolute waiver of all civil liability in connection with the\nProgram, unless a warranty or assumption of liability accompanies a\ncopy of the Program in return for a fee.\n\n                     END OF TERMS AND CONDITIONS\n\n            How to Apply These Terms to Your New Programs\n\n  If you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n\n  To do so, attach the following notices to the program.  It is safest\nto attach them to the start of each source file to most effectively\nstate the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\n    <one line to give the program's name and a brief idea of what it does.>\n    Copyright (C) <year>  <name of author>\n\n    This program is free software: you can redistribute it and/or modify\n    it under the terms of the GNU Affero General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU Affero General Public License for more details.\n\n    You should have received a copy of the GNU Affero General Public License\n    along with this program.  If not, see <https://www.gnu.org/licenses/>.\n\nAlso add information on how to contact you by electronic and paper mail.\n\n  If your software can interact with users remotely through a computer\nnetwork, you should also make sure that it provides a way for users to\nget its source.  For example, if your program is a web application, its\ninterface could display a \"Source\" link that leads users to an archive\nof the code.  There are many ways you could offer source, and different\nsolutions will be better for different programs; see section 13 for the\nspecific requirements.\n\n  You should also get your employer (if you work as a programmer) or school,\nif any, to sign a \"copyright disclaimer\" for the program, if necessary.\nFor more information on this, and how to apply and follow the GNU AGPL, see\n<https://www.gnu.org/licenses/>."
  },
  {
    "path": "Makefile",
    "content": "get-latest-tag:\n\tgit describe --tags --abbrev=0\n\nversion-bump-patch:\n\tmake version-bump type=patch\n\nversion-bump-minor:\n\tmake version-bump type=minor\n\nversion-bump-major:\n\tmake version-bump type=major\n\nfetch-tags:\n\tgit fetch --all --tags\n\nversion-bump: fetch-tags\n\t[ \"${type}\" ] || ( echo \"'type' not provided [patch, minor, major]\"; exit 1 )\n\tbump2version --current-version $(shell git describe --tags --abbrev=0) ${type} --list --tag --serialize v{major}.{minor}.{patch} --tag-name {new_version}  | grep new_version | sed -r s,\"^.*=\",, | xargs git push origin\n"
  },
  {
    "path": "README.md",
    "content": "<h1 align=\"center\">Reor Project</h1>\n<!-- <p align=\"center\">\n    <img src=\"logo_or_graphic_representation.png\" alt=\"Reor Logo\">\n</p> -->\n\n<h4 align=\"center\">\nPrivate & local AI personal knowledge management app.</h4>\n\n<p align=\"center\">\n    <a href=\"https://tooomm.github.io/github-release-stats/?username=reorproject&repository=reor\">    <img alt=\"GitHub Downloads (all assets, all releases)\" src=\"https://img.shields.io/github/downloads/reorproject/reor/total\"></a>\n<a href=\"https://discord.gg/b7zanGCTUY\" target=\"_blank\"><img src=\"https://dcbadge.vercel.app/api/server/QBhGUFJYuH?style=flat&compact=true\" alt=\"Discord\"></a>\n    <img alt=\"GitHub Repo stars\" src=\"https://img.shields.io/github/stars/reorproject/reor\">\n\n</p>\n\n> ### 📢 Announcement\n>\n> We are now on [Discord](https://discord.gg/b7zanGCTUY)! Our team is shipping very quickly right now so sharing ❤️feedback❤️ with us will really help shape the product 🚀\n\n## About\n\n**Reor** is an AI-powered desktop note-taking app: it automatically links related notes, answers questions on your notes and provides semantic search. Everything is stored locally and you can edit your notes with an Obsidian-like markdown editor.\n\nThe hypothesis of the project is that AI tools for thought should run models locally _by default_. Reor stands on the shoulders of the giants [Ollama](https://github.com/ollama/ollama), [Transformers.js](https://github.com/xenova/transformers.js) & [LanceDB](https://github.com/lancedb/lancedb) to enable both LLMs and embedding models to run locally:\n\n1. Every note you write is chunked and embedded into an internal vector database.\n2. Related notes are connected automatically via vector similarity.\n3. LLM-powered Q&A does RAG on your corpus of notes.\n4. Everything can be searched semantically.\n\n<https://github.com/reorproject/reor/assets/17236551/94a1dfeb-3361-45cd-8ebc-5cfed81ed9cb>\n\nOne way to think about Reor is as a RAG app with two generators: the LLM and the human. In Q&A mode, the LLM is fed retrieved context from the corpus to help answer a query. Similarly, in editor mode, the human can toggle the sidebar to reveal related notes \"retrieved\" from the corpus. This is quite a powerful way of \"augmenting\" your thoughts by cross-referencing ideas in a current note against related ideas from your corpus.\n\n### Getting Started\n\n1. Download from [reorproject.org](https://reorproject.org) or [releases](https://github.com/reorproject/reor/releases). Mac, Linux & Windows are all supported.\n2. Install like a normal App.\n\n### Running local models\n\nReor interacts directly with Ollama which means you can download and run models locally right from inside Reor. Head to Settings->Add New Local LLM then enter the name of the model you want Reor to download. You can find available models [here](https://ollama.com/library).\n\nYou can also [connect to an OpenAI-compatible API](https://www.reorproject.org/docs/documentation/openai-like-api) like Oobabooga, Ollama or OpenAI itself!\n\n### Importing notes from other apps\n\nReor works within a single directory in the filesystem. You choose the directory on first boot.\nTo import notes/files from another app, you'll need to populate that directory manually with markdown files. Note that if you have frontmatter in your markdown files it may not parse correctly. Integrations with other apps are hopefully coming soon!\n\n### Building from source\n\nMake sure you have [nodejs](https://nodejs.org/en/download) installed.\n\n#### Clone repo\n\n```\ngit clone https://github.com/reorproject/reor.git\n```\n\n#### Install dependencies\n\n```\nnpm install\n```\n\n#### Run for dev\n\n```\nnpm run dev\n```\n\n#### Build\n\n```\nnpm run build\n```\n\n### Interested in contributing?\n\nWe are always on the lookout for contributors keen on building the future of knowledge management. Have a feature idea? Want to squash a bug? Want to improve some styling? We'd love to hear it. Check out our issues page and the [contributing guide](https://www.reorproject.org/docs/documentation/contributing) to get started.\n\n## License\n\nAGPL-3.0 license. See `LICENSE` for details.\n\n_Reor means \"to think\" in Latin._\n"
  },
  {
    "path": "components.json",
    "content": "{\n  \"$schema\": \"https://ui.shadcn.com/schema.json\",\n  \"style\": \"new-york\",\n  \"rsc\": false,\n  \"tsx\": true,\n  \"tailwind\": {\n    \"config\": \"tailwind.config.js\",\n    \"css\": \"src/styles/global.css\",\n    \"baseColor\": \"stone\",\n    \"cssVariables\": true,\n    \"prefix\": \"\"\n  },\n  \"aliases\": {\n    \"components\": \"@/components\",\n    \"utils\": \"@/lib/utils\",\n    \"ui\": \"@/components/ui\",\n    \"lib\": \"@/lib\",\n    \"hooks\": \"@/hooks\"\n  }\n}\n"
  },
  {
    "path": "electron/electron-env.d.ts",
    "content": "/// <reference types=\"vite-electron-plugin/electron-env\" />\n\ndeclare namespace NodeJS {\n  interface ProcessEnv {\n    VSCODE_DEBUG?: 'true'\n    DIST_ELECTRON: string\n    DIST: string\n    /** /dist/ or /public/ */\n    VITE_PUBLIC: string\n  }\n}\n"
  },
  {
    "path": "electron/main/common/chunking.ts",
    "content": "import Store from 'electron-store'\nimport { RecursiveCharacterTextSplitter } from 'langchain/text_splitter'\n\nimport { StoreKeys, StoreSchema } from '../electron-store/storeConfig'\n\n// Chunk by markdown headings and then use Langchain chunker if the heading chunk is too big:\nconst store = new Store<StoreSchema>()\n\nconst chunkSize = store.get(StoreKeys.ChunkSize)\n\nexport function chunkMarkdownByHeadings(markdownContent: string): string[] {\n  const lines = markdownContent.split('\\n')\n  const chunks: string[] = []\n  let currentChunk: string[] = []\n\n  lines.forEach((line) => {\n    if (line.startsWith('#')) {\n      if (currentChunk.length) {\n        chunks.push(currentChunk.join('\\n'))\n        currentChunk = []\n      }\n    }\n    currentChunk.push(line)\n  })\n\n  if (currentChunk.length) {\n    chunks.push(currentChunk.join('\\n'))\n  }\n  return chunks\n}\n\nexport const chunkStringsRecursively = async (\n  strings: string[],\n  _chunkSize: number,\n  chunkOverlap: number,\n): Promise<string[]> => {\n  const splitter = new RecursiveCharacterTextSplitter({\n    chunkSize: _chunkSize,\n    chunkOverlap,\n  })\n\n  const chunks = await splitter.createDocuments(strings)\n  const mappedChunks = chunks.map((chunk) => chunk.pageContent)\n  return mappedChunks\n}\n\nexport const chunkMarkdownByHeadingsAndByCharsIfBig = async (markdownContent: string): Promise<string[]> => {\n  const chunkOverlap = 20\n  const chunksByHeading = chunkMarkdownByHeadings(markdownContent)\n\n  const chunksWithBigChunksSplit: string[] = []\n  const chunksWithSmallChunksSplit: string[] = []\n  chunksByHeading.forEach((chunk) => {\n    if (chunk.length > chunkSize) {\n      chunksWithBigChunksSplit.push(chunk)\n    } else {\n      chunksWithSmallChunksSplit.push(chunk)\n    }\n  })\n\n  const chunkedRecursively = await chunkStringsRecursively(chunksWithBigChunksSplit, chunkSize, chunkOverlap)\n\n  return chunksWithSmallChunksSplit.concat(chunkedRecursively)\n}\n"
  },
  {
    "path": "electron/main/common/error.ts",
    "content": "function errorToStringMainProcess(error: unknown, depth: number = 0): string {\n  if (error instanceof Error) {\n    let errorString = `${error.name}: ${error.message}`\n    if (error.cause) {\n      errorString += `\\nCaused by: ${errorToStringMainProcess(error.cause, depth + 1)}`\n    }\n    if (depth === 0) {\n      // Optionally include the stack trace at the top level\n      errorString += `\\nStack Trace:\\n${error.stack}`\n    }\n    return errorString\n  }\n  return String(error)\n}\n\nexport default errorToStringMainProcess\n"
  },
  {
    "path": "electron/main/common/network.ts",
    "content": "import { net } from 'electron'\nimport { ClientRequestConstructorOptions } from 'electron/main'\n\nconst customFetchUsingElectronNet = async (input: RequestInfo | URL, init?: RequestInit): Promise<Response> => {\n  const url = input instanceof URL ? input.href : input.toString()\n  const options = init || {}\n\n  return new Promise((resolve, reject) => {\n    const requestOptions: ClientRequestConstructorOptions = {\n      method: options.method || 'GET',\n      url,\n    }\n\n    const request = net.request(requestOptions)\n\n    // Set headers\n    if (options.headers) {\n      Object.entries(options.headers).forEach(([key, value]) => {\n        request.setHeader(key, value as string)\n      })\n    }\n\n    // Handle request body\n    if (options.body) {\n      let bodyData\n      if (options.body instanceof ArrayBuffer) {\n        bodyData = Buffer.from(options.body)\n      } else if (typeof options.body === 'string' || Buffer.isBuffer(options.body)) {\n        bodyData = options.body\n      } else if (typeof options.body === 'object') {\n        bodyData = JSON.stringify(options.body)\n        request.setHeader('Content-Type', 'application/json')\n      } else {\n        reject(new Error('Unsupported body type'))\n        return\n      }\n      request.write(bodyData)\n    }\n\n    request.on('response', (response) => {\n      const chunks: Buffer[] = []\n      response.on('data', (chunk) => chunks.push(chunk as Buffer))\n      response.on('end', () => {\n        const buffer = Buffer.concat(chunks)\n        resolve(\n          new Response(buffer, {\n            status: response.statusCode,\n            statusText: response.statusMessage,\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any\n            headers: new Headers(response.headers as any),\n          }),\n        )\n      })\n    })\n\n    request.on('error', (error) => reject(error))\n    request.end()\n  })\n}\n\nexport default customFetchUsingElectronNet\n"
  },
  {
    "path": "electron/main/common/windowManager.ts",
    "content": "/* eslint-disable class-methods-use-this */\nimport chokidar from 'chokidar'\nimport { BrowserWindow, WebContents, screen, shell } from 'electron'\nimport Store from 'electron-store'\n\nimport { StoreSchema, StoreKeys } from '../electron-store/storeConfig'\nimport LanceDBTableWrapper from '../vector-database/lanceTableWrapper'\n\ntype WindowInfo = {\n  windowID: number\n  dbTableClient: LanceDBTableWrapper\n  vaultDirectoryForWindow: string\n}\n\nclass WindowsManager {\n  activeWindows: WindowInfo[] = []\n\n  private errorStringsToSendWindow: string[] = []\n\n  watcher: chokidar.FSWatcher | undefined\n\n  async createWindow(store: Store<StoreSchema>, preload: string, url: string | undefined, indexHtml: string) {\n    const { x, y } = this.getNextWindowPosition()\n    const { width, height } = this.getWindowSize()\n\n    const win = new BrowserWindow({\n      title: 'Reor',\n      x,\n      y,\n      webPreferences: {\n        preload,\n      },\n      frame: false,\n      titleBarStyle: 'hidden',\n      titleBarOverlay: {\n        color: '#303030',\n        symbolColor: '#fff',\n        height: 30,\n      },\n      width,\n      height,\n    })\n\n    if (url) {\n      // electron-vite-vue#298\n      win.loadURL(url)\n      // Open devTool if the app is not packaged\n      win.webContents.openDevTools()\n    } else {\n      win.loadFile(indexHtml)\n    }\n\n    // Make all links open with the browser, not with the application\n    win.webContents.setWindowOpenHandler(({ url: _url }) => {\n      if (_url.startsWith('https:')) shell.openExternal(_url)\n      return { action: 'deny' }\n    })\n\n    win.on('close', () => {\n      win.webContents.send('prepare-for-window-close')\n\n      this.prepareWindowForClose(store, win)\n    })\n\n    win.webContents.on('did-finish-load', () => {\n      const errorsToSendWindow = this.getAndClearErrorStrings()\n      errorsToSendWindow.forEach((errorStrToSendWindow) => {\n        win.webContents.send('error-to-display-in-window', errorStrToSendWindow)\n      })\n    })\n  }\n\n  getAndSetupDirectoryForWindowFromPreviousAppSession(\n    webContents: Electron.WebContents,\n    store: Store<StoreSchema>,\n  ): string {\n    const lastUsedVaultDirectory = store.get(StoreKeys.DirectoryFromPreviousSession) as string\n    if (!lastUsedVaultDirectory) {\n      return ''\n    }\n    const isUserDirectoryUsed = this.activeWindows.some((w) => w.vaultDirectoryForWindow === lastUsedVaultDirectory)\n    if (!isUserDirectoryUsed) {\n      this.setVaultDirectoryForContents(webContents, lastUsedVaultDirectory, store)\n      return lastUsedVaultDirectory\n    }\n    return ''\n  }\n\n  appendNewErrorToDisplayInWindow(errorString: string) {\n    let errorSent = false\n    const activeWindows = BrowserWindow.getAllWindows()\n    activeWindows.forEach((window) => {\n      if (!window.webContents.isLoading()) {\n        window.webContents.send('error-to-display-in-window', errorString)\n        errorSent = true\n      }\n    })\n\n    if (!errorSent) {\n      this.errorStringsToSendWindow.push(errorString)\n    }\n  }\n\n  getAndClearErrorStrings(): string[] {\n    const errorStrings = this.errorStringsToSendWindow\n    this.errorStringsToSendWindow = []\n    return errorStrings\n  }\n\n  getBrowserWindowId(webContents: WebContents): number | null {\n    const browserWindow = BrowserWindow.fromWebContents(webContents)\n    return browserWindow ? browserWindow.id : null\n  }\n\n  getWindowInfoForContents(webContents: WebContents): WindowInfo | null {\n    const windowID = this.getBrowserWindowId(webContents)\n\n    if (windowID === null) {\n      return null\n    }\n\n    const windowInfo = this.activeWindows.find((w) => w.windowID === windowID)\n    return windowInfo || null\n  }\n\n  getVaultDirectoryForWinContents(webContents: WebContents): string | null {\n    const windowID = this.getBrowserWindowId(webContents)\n    return windowID ? this.getVaultDirectoryForWindowID(windowID) : null\n  }\n\n  private getVaultDirectoryForWindowID(windowID: number): string | null {\n    const windowInfo = this.activeWindows.find((w) => w.windowID === windowID)\n    return windowInfo ? windowInfo.vaultDirectoryForWindow : null\n  }\n\n  setVaultDirectoryForContents(webContents: WebContents, directory: string, store: Store<StoreSchema>): void {\n    if (!webContents) {\n      throw new Error('Invalid webContents provided.')\n    }\n\n    const windowID = this.getBrowserWindowId(webContents)\n    if (!windowID) {\n      throw new Error('Unable to find the browser window ID.')\n    }\n\n    if (!directory || typeof directory !== 'string') {\n      throw new Error('Invalid directory provided.')\n    }\n\n    let windowInfo = this.activeWindows.find((w) => w.windowID === windowID)\n\n    if (!windowInfo) {\n      windowInfo = {\n        windowID,\n        dbTableClient: new LanceDBTableWrapper(), // Assuming default value as null, modify as needed\n        vaultDirectoryForWindow: directory,\n      }\n      this.activeWindows.push(windowInfo)\n    } else {\n      windowInfo.vaultDirectoryForWindow = directory\n    }\n\n    store.set(StoreKeys.DirectoryFromPreviousSession, directory)\n  }\n\n  prepareWindowForClose(store: Store<StoreSchema>, win: BrowserWindow) {\n    const directoryToSave = this.getVaultDirectoryForWinContents(win.webContents)\n\n    // Save the directory if found\n    if (directoryToSave) {\n      store.set(StoreKeys.DirectoryFromPreviousSession, directoryToSave)\n      this.removeActiveWindowByDirectory(directoryToSave)\n    }\n  }\n\n  removeActiveWindowByDirectory(directory: string): void {\n    this.activeWindows = this.activeWindows.filter((w) => w.vaultDirectoryForWindow !== directory)\n  }\n\n  getNextWindowPosition(): { x: number | undefined; y: number | undefined } {\n    const windowOffset = 30 // Offset for each new window\n    const focusedWin = BrowserWindow.getFocusedWindow()\n\n    if (focusedWin) {\n      const [x, y] = focusedWin.getPosition()\n      return { x: x + windowOffset, y: y + windowOffset }\n    }\n    return { x: undefined, y: undefined }\n  }\n\n  getWindowSize(): { width: number; height: number } {\n    const primaryDisplay = screen.getPrimaryDisplay()\n    const { width, height } = primaryDisplay.workAreaSize\n\n    const windowWidth = Math.min(1200, width * 0.8) // e.g., 80% of screen width or 1200px\n    const windowHeight = Math.min(800, height * 0.8) // e.g., 80% of screen height or 800px\n\n    return { width: windowWidth, height: windowHeight }\n  }\n}\n\nexport default WindowsManager\n"
  },
  {
    "path": "electron/main/electron-store/ipcHandlers.ts",
    "content": "import path from 'path'\n\nimport { ipcMain } from 'electron'\nimport Store from 'electron-store'\nimport {\n  EmbeddingModelConfig,\n  EmbeddingModelWithLocalPath,\n  EmbeddingModelWithRepo,\n  StoreKeys,\n  StoreSchema,\n  TamaguiThemeTypes,\n} from './storeConfig'\n\nimport { SearchProps } from './types'\n\nimport WindowsManager from '../common/windowManager'\n\nimport { initializeAndMaybeMigrateStore } from './storeSchemaMigrator'\nimport { Chat, AgentConfig, ChatMetadata } from '@/lib/llm/types'\n\nexport const registerStoreHandlers = (store: Store<StoreSchema>, windowsManager: WindowsManager) => {\n  initializeAndMaybeMigrateStore(store)\n  ipcMain.handle('set-vault-directory-for-window', async (event, userDirectory: string): Promise<void> => {\n    windowsManager.setVaultDirectoryForContents(event.sender, userDirectory, store)\n  })\n\n  ipcMain.handle('get-vault-directory-for-window', (event) => {\n    let vaultPathForWindow = windowsManager.getVaultDirectoryForWinContents(event.sender)\n    if (!vaultPathForWindow) {\n      vaultPathForWindow = windowsManager.getAndSetupDirectoryForWindowFromPreviousAppSession(event.sender, store)\n    }\n    return vaultPathForWindow\n  })\n  ipcMain.handle('set-default-embedding-model', (event, repoName: string) => {\n    store.set(StoreKeys.DefaultEmbeddingModelAlias, repoName)\n  })\n\n  ipcMain.handle('add-new-local-embedding-model', (event, model: EmbeddingModelWithLocalPath) => {\n    const currentModels = store.get(StoreKeys.EmbeddingModels) || {}\n    const modelAlias = path.basename(model.localPath)\n    store.set(StoreKeys.EmbeddingModels, {\n      ...currentModels,\n      [modelAlias]: model,\n    })\n    store.set(StoreKeys.DefaultEmbeddingModelAlias, modelAlias)\n  })\n\n  ipcMain.handle('add-new-repo-embedding-model', (event, model: EmbeddingModelWithRepo) => {\n    const currentModels = store.get(StoreKeys.EmbeddingModels) || {}\n    store.set(StoreKeys.EmbeddingModels, {\n      ...currentModels,\n      [model.repoName]: model,\n    })\n    store.set(StoreKeys.DefaultEmbeddingModelAlias, model.repoName)\n  })\n\n  ipcMain.handle('get-embedding-models', () => store.get(StoreKeys.EmbeddingModels))\n\n  ipcMain.handle(\n    'update-embedding-model',\n    (event, modelName: string, updatedModel: EmbeddingModelWithLocalPath | EmbeddingModelWithRepo) => {\n      const currentModels = store.get(StoreKeys.EmbeddingModels) || {}\n      store.set(StoreKeys.EmbeddingModels, {\n        ...currentModels,\n        [modelName]: updatedModel,\n      })\n    },\n  )\n\n  ipcMain.handle('remove-embedding-model', (event, modelName: string) => {\n    const currentModels = store.get(StoreKeys.EmbeddingModels) || {}\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    const { [modelName]: unused, ...updatedModels } = currentModels\n\n    store.set(StoreKeys.EmbeddingModels, updatedModels)\n  })\n\n  ipcMain.handle('set-no-of-rag-examples', (event, noOfExamples: number) => {\n    store.set(StoreKeys.MaxRAGExamples, noOfExamples)\n  })\n\n  ipcMain.handle('get-no-of-rag-examples', () => store.get(StoreKeys.MaxRAGExamples))\n\n  ipcMain.handle('set-chunk-size', (event, chunkSize: number) => {\n    store.set(StoreKeys.ChunkSize, chunkSize)\n  })\n\n  ipcMain.handle('get-chunk-size', () => store.get(StoreKeys.ChunkSize))\n\n  ipcMain.handle('get-default-embedding-model', () => store.get(StoreKeys.DefaultEmbeddingModelAlias))\n\n  ipcMain.handle('set-llm-generation-params', (event, generationParams) => {\n    store.set(StoreKeys.LLMGenerationParameters, generationParams)\n  })\n\n  ipcMain.handle('get-llm-generation-params', () => {\n    return store.get(StoreKeys.LLMGenerationParameters)\n  })\n\n  ipcMain.handle('get-editor-flex-center', () => store.get(StoreKeys.EditorFlexCenter))\n\n  ipcMain.handle('set-editor-flex-center', (event, setEditorFlexCenter) => {\n    store.set(StoreKeys.EditorFlexCenter, setEditorFlexCenter)\n    event.sender.send('editor-flex-center-changed', setEditorFlexCenter)\n  })\n\n  ipcMain.handle('get-agent-configs', () => store.get(StoreKeys.AgentConfigs))\n\n  ipcMain.handle('set-agent-config', (event, agentConfig: AgentConfig) => {\n    const agentConfigs = store.get(StoreKeys.AgentConfigs) || []\n    const existingAgentIndex = agentConfigs.findIndex((config) => config.name === agentConfig.name)\n    if (existingAgentIndex !== -1) {\n      agentConfigs[existingAgentIndex] = agentConfig\n    } else {\n      agentConfigs.push(agentConfig)\n    }\n    store.set(StoreKeys.AgentConfigs, agentConfigs)\n  })\n\n  ipcMain.handle('set-analytics-mode', (event, isAnalytics) => {\n    store.set(StoreKeys.Analytics, isAnalytics)\n  })\n\n  ipcMain.handle('get-analytics-mode', () => {\n    return store.get(StoreKeys.Analytics)\n  })\n\n  ipcMain.handle('set-spellcheck-mode', (event, isSpellCheck) => {\n    store.set(StoreKeys.SpellCheck, isSpellCheck)\n  })\n\n  ipcMain.handle('get-spellcheck-mode', () => {\n    return store.get(StoreKeys.SpellCheck)\n  })\n\n  ipcMain.handle('set-document-stats', (event, showDocumentStats: boolean) => {\n    store.set(StoreKeys.showDocumentStats, showDocumentStats)\n    event.sender.send('show-doc-stats-changed', showDocumentStats)\n  })\n\n  ipcMain.handle('get-document-stats', () => {\n    return store.get(StoreKeys.showDocumentStats, false)\n  })\n\n  ipcMain.handle('has-user-opened-app-before', () => store.get(StoreKeys.hasUserOpenedAppBefore))\n\n  ipcMain.handle('set-user-has-opened-app-before', () => {\n    store.set(StoreKeys.hasUserOpenedAppBefore, true)\n  })\n\n  ipcMain.handle('get-all-chats-metadata', (event) => {\n    const vaultDir = windowsManager.getVaultDirectoryForWinContents(event.sender)\n\n    if (!vaultDir) {\n      return []\n    }\n\n    const allHistories = store.get(StoreKeys.Chats)\n    const chatHistoriesCorrespondingToVault = allHistories?.[vaultDir] ?? []\n    return chatHistoriesCorrespondingToVault.map(({ messages, ...rest }) => rest) as ChatMetadata[]\n  })\n\n  ipcMain.handle('save-chat', (event, newChat: Chat) => {\n    const vaultDir = windowsManager.getVaultDirectoryForWinContents(event.sender)\n    if (!vaultDir) {\n      return\n    }\n\n    const allChatHistories = store.get(StoreKeys.Chats)\n    const chatHistoriesCorrespondingToVault = allChatHistories?.[vaultDir] ?? []\n\n    const existingChatIndex = chatHistoriesCorrespondingToVault.findIndex((chat) => chat.id === newChat.id)\n    if (existingChatIndex !== -1) {\n      chatHistoriesCorrespondingToVault[existingChatIndex] = newChat\n    } else {\n      chatHistoriesCorrespondingToVault.push(newChat)\n    }\n    store.set(StoreKeys.Chats, {\n      ...allChatHistories,\n      [vaultDir]: chatHistoriesCorrespondingToVault,\n    })\n  })\n\n  ipcMain.handle('get-chat', (event, chatId: string | undefined) => {\n    if (!chatId) {\n      return undefined\n    }\n    const vaultDir = windowsManager.getVaultDirectoryForWinContents(event.sender)\n    if (!vaultDir) {\n      return null\n    }\n    const allChatHistories = store.get(StoreKeys.Chats)\n    const vaultChatHistories = allChatHistories[vaultDir] || []\n    return vaultChatHistories.find((chat) => chat.id === chatId)\n  })\n\n  ipcMain.handle('delete-chat', (event, chatID: string | undefined) => {\n    if (!chatID) return\n    const vaultDir = windowsManager.getVaultDirectoryForWinContents(event.sender)\n\n    if (!vaultDir) {\n      return\n    }\n\n    const chatHistoriesMap = store.get(StoreKeys.Chats)\n    const allChatHistories = chatHistoriesMap[vaultDir] || []\n    const filteredChatHistories = allChatHistories.filter((item) => item.id !== chatID)\n\n    chatHistoriesMap[vaultDir] = filteredChatHistories\n    store.set(StoreKeys.Chats, chatHistoriesMap)\n  })\n\n  ipcMain.handle('set-auto-context', (event, autoContext: boolean) => {\n    store.set(StoreKeys.AutoContext, autoContext)\n    event.sender.send('auto-context-changed', autoContext)\n  })\n\n  ipcMain.handle('get-auto-context', () => {\n    return store.get(StoreKeys.AutoContext, true) // Default to true\n  })\n\n  ipcMain.handle('set-tamagui-theme', (event, theme: TamaguiThemeTypes) => {\n    store.set(StoreKeys.TamaguiTheme, theme)\n    event.sender.send('tamagui-theme-changed', theme)\n  })\n\n  ipcMain.handle('get-tamagui-theme', () => {\n    return store.get(StoreKeys.TamaguiTheme, 'dark') // Default to dark\n  })\n\n  ipcMain.handle('get-search-params', () => {\n    return store.get(StoreKeys.SearchParams, { searchMode: 'vector', vectorWeight: 0.7 }) // Default to 'vector'\n  })\n\n  ipcMain.handle('set-search-params', (event, searchMode: SearchProps) => {\n    store.set(StoreKeys.SearchParams, searchMode)\n    event.sender.send('search-mode-changed', searchMode)\n  })\n}\n\nexport function getDefaultEmbeddingModelConfig(store: Store<StoreSchema>): EmbeddingModelConfig {\n  const defaultEmbeddingModelAlias = store.get(StoreKeys.DefaultEmbeddingModelAlias) as string | undefined\n\n  // Check if the default model alias is defined and not empty\n  if (!defaultEmbeddingModelAlias) {\n    throw new Error('No default embedding model is specified')\n  }\n\n  const embeddingModels = store.get(StoreKeys.EmbeddingModels) || {}\n\n  // Check if the model with the default alias exists\n  const model = embeddingModels[defaultEmbeddingModelAlias]\n  if (!model) {\n    throw new Error(`No embedding model found for alias '${defaultEmbeddingModelAlias}'`)\n  }\n\n  return model\n}\n"
  },
  {
    "path": "electron/main/electron-store/storeConfig.ts",
    "content": "import { AgentConfig, Chat } from '@/lib/llm/types'\nimport { SearchProps } from './types'\n\nexport type APIInterface = 'openai' | 'anthropic' | 'ollama'\n\nexport interface LLMAPIConfig {\n  name: string\n  apiInterface: APIInterface\n  apiURL?: string\n  apiKey?: string\n}\n\nexport interface LLMConfig {\n  modelName: string\n  apiName: string\n  contextLength?: number\n}\n\nexport type LLMGenerationParameters = {\n  maxTokens?: number\n  temperature?: number\n}\n\nexport type EmbeddingModelConfig = EmbeddingModelWithRepo | EmbeddingModelWithLocalPath\n\nexport type TamaguiThemeTypes = 'light' | 'dark'\n\nexport interface EmbeddingModelWithRepo {\n  type: 'repo'\n  repoName: string\n  description?: string\n  readableName?: string\n}\n\nexport interface EmbeddingModelWithLocalPath {\n  type: 'local'\n  localPath: string\n  description?: string\n  readableName?: string\n}\n\nexport interface StoreSchema {\n  hasUserOpenedAppBefore: boolean\n  schemaVersion: number\n  user: {\n    vaultDirectories: string[]\n    directoryFromPreviousSession?: string\n  }\n  LLMs: LLMConfig[]\n  LLMAPIs: LLMAPIConfig[]\n  embeddingModels: {\n    [modelAlias: string]: EmbeddingModelConfig\n  }\n  defaultLLM: string\n  defaultEmbedFuncRepo: string\n  llmGenerationParameters: LLMGenerationParameters\n  chats: {\n    [vaultDir: string]: Chat[]\n  }\n  agentConfigs: AgentConfig[]\n  analytics?: boolean\n  chunkSize: number\n  spellCheck: string\n  EditorFlexCenter: boolean\n  showDocumentStats: boolean\n  autoContext: boolean\n  tamaguiTheme: TamaguiThemeTypes\n  searchParams: SearchProps\n}\n\nexport enum StoreKeys {\n  hasUserOpenedAppBefore = 'hasUserOpenedAppBefore',\n  Analytics = 'analytics',\n  SchemaVersion = 'schemaVersion',\n  DirectoryFromPreviousSession = 'user.directoryFromPreviousSession',\n  LLMs = 'LLMs',\n  LLMAPIs = 'LLMAPIs',\n  EmbeddingModels = 'embeddingModels',\n  DefaultLLM = 'defaultLLM',\n  DefaultEmbeddingModelAlias = 'defaultEmbeddingModelAlias',\n  MaxRAGExamples = 'RAG.maxRAGExamples',\n  LLMGenerationParameters = 'llmGenerationParameters',\n  Chats = 'chats',\n  AgentConfigs = 'agentConfigs',\n  ChunkSize = 'chunkSize',\n  SpellCheck = 'spellCheck',\n  EditorFlexCenter = 'editorFlexCenter',\n  showDocumentStats = 'showDocumentStats',\n  AutoContext = 'autoContext',\n  TamaguiTheme = 'tamaguiTheme',\n  SearchParams = 'searchParams',\n}\n"
  },
  {
    "path": "electron/main/electron-store/storeSchemaMigrator.ts",
    "content": "import Store from 'electron-store'\n\nimport {\n  anthropicDefaultAPIName,\n  anthropicDefaultLLMs,\n  openAIDefaultAPIName,\n  openAIDefaultLLMs,\n} from '../../../shared/defaultLLMs'\nimport { generateChatName } from '../../../shared/utils'\nimport { StoreKeys, StoreSchema } from './storeConfig'\nimport { defaultEmbeddingModelRepos } from '../vector-database/embeddings'\nimport { defaultOllamaAPI } from '../llm/models/ollama'\nimport { addOrUpdateLLMInStore } from '../llm/llmConfig'\n\nconst currentSchemaVersion = 2\n\nconst setupDefaultAnalyticsValue = (store: Store<StoreSchema>) => {\n  if (store.get(StoreKeys.Analytics) === undefined) {\n    store.set(StoreKeys.Analytics, true)\n  }\n}\n\nconst setupDefaultSpellCheckValue = (store: Store<StoreSchema>) => {\n  if (store.get(StoreKeys.SpellCheck) === undefined) {\n    store.set(StoreKeys.SpellCheck, 'false')\n  }\n}\n\nconst setupDefaultEmbeddingModels = (store: Store<StoreSchema>) => {\n  const embeddingModels = store.get(StoreKeys.EmbeddingModels)\n\n  if (!embeddingModels) {\n    store.set(StoreKeys.EmbeddingModels, defaultEmbeddingModelRepos)\n  }\n\n  const defaultModel = store.get(StoreKeys.DefaultEmbeddingModelAlias)\n  if (!defaultModel) {\n    const storedEmbeddingModels = store.get(StoreKeys.EmbeddingModels) || {}\n    if (Object.keys(storedEmbeddingModels).length === 0) {\n      throw new Error('No embedding models found')\n    }\n    store.set(StoreKeys.DefaultEmbeddingModelAlias, Object.keys(storedEmbeddingModels)[0])\n  }\n}\n\nconst setupDefaultLLMAPIs = (store: Store<StoreSchema>) => {\n  const llmAPIs = store.get(StoreKeys.LLMAPIs)\n\n  const existingOllamaAPI = llmAPIs?.find((api) => api.name === defaultOllamaAPI.name)\n  if (!existingOllamaAPI) {\n    store.set(StoreKeys.LLMAPIs, [defaultOllamaAPI])\n  } else if (existingOllamaAPI.apiInterface !== defaultOllamaAPI.name) {\n    const updatedLLMAPIs = llmAPIs.filter((api) => api.name !== defaultOllamaAPI.name)\n    store.set(StoreKeys.LLMAPIs, [...updatedLLMAPIs, defaultOllamaAPI])\n  }\n\n  const existingOpenAIAPI = llmAPIs?.find((api) => api.name === openAIDefaultAPIName)\n  if (existingOpenAIAPI) {\n    openAIDefaultLLMs.forEach((llm) => {\n      addOrUpdateLLMInStore(store, llm)\n    })\n  }\n\n  const existingAnthropicAPI = llmAPIs?.find((api) => api.name === anthropicDefaultAPIName)\n  if (existingAnthropicAPI) {\n    anthropicDefaultLLMs.forEach((llm) => {\n      addOrUpdateLLMInStore(store, llm)\n    })\n  }\n}\n\nexport function setupDefaultStoreValues(store: Store<StoreSchema>) {\n  if (!store.get(StoreKeys.MaxRAGExamples)) {\n    store.set(StoreKeys.MaxRAGExamples, 15)\n  }\n\n  if (!store.get(StoreKeys.ChunkSize)) {\n    store.set(StoreKeys.ChunkSize, 1000)\n  }\n\n  setupDefaultAnalyticsValue(store)\n\n  setupDefaultSpellCheckValue(store)\n\n  setupDefaultEmbeddingModels(store)\n\n  setupDefaultLLMAPIs(store)\n}\n\nfunction ensureChatsIsCorrectProperty(store: Store<StoreSchema>) {\n  const oldChatHistories = store.get('chatHistories' as keyof StoreSchema)\n  if (oldChatHistories) {\n    store.set(StoreKeys.Chats, oldChatHistories)\n    store.delete('chatHistories' as keyof StoreSchema)\n  }\n  const chats = store.get(StoreKeys.Chats)\n  if (!chats) {\n    return\n  }\n\n  Object.keys(chats).forEach((vaultDir) => {\n    const chatsForVault = chats[vaultDir]\n    chatsForVault.map((chat) => {\n      const outputChat = chat\n      if (chat.displayableChatHistory) {\n        outputChat.messages = chat.displayableChatHistory\n        delete outputChat.displayableChatHistory\n      }\n      return outputChat\n    })\n    chats[vaultDir] = chatsForVault\n  })\n\n  store.set(StoreKeys.Chats, chats)\n}\n\nfunction ensureChatsHasDisplayNameAndTimestamp(store: Store<StoreSchema>) {\n  const chatHistories = store.get(StoreKeys.Chats)\n  if (!chatHistories) {\n    return\n  }\n\n  Object.keys(chatHistories).forEach((vaultDir) => {\n    const chats = chatHistories[vaultDir]\n    chats.map((chat) => {\n      const outputChat = chat\n      if (!outputChat.displayName || outputChat.displayName === chat.id) {\n        outputChat.displayName = generateChatName(chat.messages)\n      }\n      if (!outputChat.timeOfLastMessage) {\n        outputChat.timeOfLastMessage = Date.now()\n      }\n      return outputChat\n    })\n  })\n\n  store.set(StoreKeys.Chats, chatHistories)\n}\n\nexport const initializeAndMaybeMigrateStore = (store: Store<StoreSchema>) => {\n  const storeSchemaVersion = store.get(StoreKeys.SchemaVersion)\n  if (storeSchemaVersion !== currentSchemaVersion) {\n    store.set(StoreKeys.SchemaVersion, currentSchemaVersion)\n    store.set(StoreKeys.LLMAPIs, [])\n    store.set(StoreKeys.DefaultLLM, '')\n  }\n\n  ensureChatsIsCorrectProperty(store)\n  ensureChatsHasDisplayNameAndTimestamp(store)\n  setupDefaultStoreValues(store)\n}\n"
  },
  {
    "path": "electron/main/electron-store/types.ts",
    "content": "export interface SearchProps {\n  searchMode: 'vector' | 'hybrid'\n  vectorWeight: number\n}\n"
  },
  {
    "path": "electron/main/electron-utils/ipcHandlers.ts",
    "content": "import { app, ipcMain, shell } from 'electron'\nimport Store from 'electron-store'\n\nimport WindowsManager from '../common/windowManager'\nimport { StoreSchema } from '../electron-store/storeConfig'\n\nconst registerElectronUtilsHandlers = (\n  store: Store<StoreSchema>,\n  windowsManager: WindowsManager,\n  preload: string,\n  url: string | undefined,\n  indexHtml: string,\n) => {\n  ipcMain.handle('open-external', (event, _url) => {\n    shell.openExternal(_url)\n  })\n\n  ipcMain.handle('get-platform', async () => process.platform)\n\n  ipcMain.handle('open-new-window', () => {\n    windowsManager.createWindow(store, preload, url, indexHtml)\n  })\n\n  ipcMain.handle('get-reor-app-version', async () => app.getVersion())\n\n  ipcMain.handle('get-user-data-path', () => {\n    return app.getPath('userData')\n  })\n}\n\nexport default registerElectronUtilsHandlers\n"
  },
  {
    "path": "electron/main/filesystem/filesystem.test.ts",
    "content": "import * as fs from 'fs'\nimport * as path from 'path'\n\nimport * as tmp from 'tmp'\n\nimport { GetFilesInfoTree } from './filesystem'\n\ndescribe('GetFilesInfoTree', () => {\n  let tempDir: string\n\n  beforeEach(() => {\n    tempDir = tmp.dirSync({ unsafeCleanup: true }).name\n  })\n\n  afterEach(() => {\n    fs.rmdirSync(tempDir, { recursive: true })\n  })\n\n  it('should handle empty directories', () => {\n    const result = GetFilesInfoTree(tempDir)\n    expect(result).toEqual([])\n  })\n\n  it('should correctly map a single file', () => {\n    const filename = 'test.md'\n    const filePath = path.join(tempDir, filename)\n    fs.writeFileSync(filePath, 'Test content')\n    const result = GetFilesInfoTree(tempDir)\n\n    expect(result).toEqual([\n      {\n        name: filename,\n        path: filePath,\n        relativePath: filename,\n        dateModified: expect.anything(),\n        dateCreated: expect.anything(),\n        // children: undefined,\n      },\n    ])\n    // expect(result[0].dateModified).toBeInstanceOf(Date);\n  })\n\n  it('should correctly map nested directories and files', () => {\n    const dirName = 'nested'\n    const nestedDirPath = path.join(tempDir, dirName)\n    fs.mkdirSync(nestedDirPath)\n\n    const filename = 'nestedFile.md'\n    const nestedFilePath = path.join(nestedDirPath, filename)\n    fs.writeFileSync(nestedFilePath, 'Nested test content')\n\n    const result = GetFilesInfoTree(tempDir)\n\n    expect(result).toEqual([\n      {\n        name: dirName,\n        path: nestedDirPath,\n        relativePath: 'nested',\n        dateModified: expect.anything(),\n        dateCreated: expect.anything(),\n        children: [\n          {\n            name: filename,\n            path: nestedFilePath,\n            relativePath: path.join(dirName, filename),\n            dateModified: expect.anything(),\n            dateCreated: expect.anything(),\n            children: undefined,\n          },\n        ],\n      },\n    ])\n  })\n})\n"
  },
  {
    "path": "electron/main/filesystem/filesystem.ts",
    "content": "import * as fs from 'fs'\nimport * as path from 'path'\n\nimport chokidar from 'chokidar'\nimport { BrowserWindow } from 'electron'\n\nimport { FileInfo, FileInfoTree } from './types'\nimport addExtensionToFilenameIfNoExtensionPresent from '../path/path'\nimport { isFileNodeDirectory } from '../../../shared/utils'\n\nexport const markdownExtensions = ['.md', '.markdown', '.mdown', '.mkdn', '.mkd']\n\nexport function isHidden(fileName: string): boolean {\n  return fileName.startsWith('.')\n}\n\nfunction fileHasExtensionInList(filePath: string, extensions: string[]): boolean {\n  try {\n    const fileExtension = path.extname(filePath).toLowerCase()\n    return extensions.includes(fileExtension)\n  } catch (error) {\n    return false\n  }\n}\n\nexport function GetFilesInfoTree(pathInput: string, parentRelativePath: string = ''): FileInfoTree {\n  const fileInfoTree: FileInfoTree = []\n\n  if (!fs.existsSync(pathInput)) {\n    return fileInfoTree\n  }\n\n  try {\n    const stats = fs.statSync(pathInput)\n    if (stats.isFile()) {\n      if (fileHasExtensionInList(pathInput, markdownExtensions) && !isHidden(path.basename(pathInput))) {\n        fileInfoTree.push({\n          name: path.basename(pathInput),\n          path: pathInput,\n          relativePath: parentRelativePath,\n          dateModified: stats.mtime,\n          dateCreated: stats.birthtime, // Add the birthtime property here\n        })\n      }\n    } else {\n      const itemsInDir = fs.readdirSync(pathInput).filter((item) => !isHidden(item))\n\n      const childNodes: FileInfoTree = itemsInDir\n        .map((item) => {\n          const itemPath = path.join(pathInput, item)\n          return GetFilesInfoTree(itemPath, path.join(parentRelativePath, item))\n        })\n        .flat()\n\n      if (parentRelativePath === '') {\n        return childNodes\n      }\n      if (!isHidden(path.basename(pathInput))) {\n        fileInfoTree.push({\n          name: path.basename(pathInput),\n          path: pathInput,\n          relativePath: parentRelativePath,\n          dateModified: stats.mtime,\n          dateCreated: stats.birthtime,\n          children: childNodes,\n        })\n      }\n    }\n  } catch (error) {\n    // no need to throw error\n  }\n\n  return fileInfoTree\n}\n\nexport function flattenFileInfoTree(tree: FileInfoTree): FileInfo[] {\n  return tree.reduce((flatList: FileInfo[], node) => {\n    if (!isFileNodeDirectory(node)) {\n      flatList.push({\n        name: node.name,\n        path: node.path,\n        relativePath: node.relativePath,\n        dateModified: node.dateModified,\n        dateCreated: node.dateCreated,\n      })\n    }\n    if (isFileNodeDirectory(node) && node.children) {\n      flatList.push(...flattenFileInfoTree(node.children))\n    }\n    return flatList\n  }, [])\n}\n\nexport function GetFilesInfoList(directory: string): FileInfo[] {\n  const fileInfoTree = GetFilesInfoTree(directory)\n  const fileInfoList = flattenFileInfoTree(fileInfoTree)\n  return fileInfoList\n}\n\nexport function GetFilesInfoListForListOfPaths(paths: string[]): FileInfo[] {\n  const fileInfoTree = paths.map((_path) => GetFilesInfoTree(_path)).flat()\n  const fileInfoList = flattenFileInfoTree(fileInfoTree)\n\n  const uniquePaths = new Set()\n  const fileInfoListWithoutDuplicates = fileInfoList.filter((fileInfo) => {\n    if (uniquePaths.has(fileInfo.path)) {\n      return false\n    }\n    uniquePaths.add(fileInfo.path)\n    return true\n  })\n  return fileInfoListWithoutDuplicates\n}\n\nexport function createFileRecursive(filePath: string, content: string, charset?: BufferEncoding): void {\n  const dirname = path.dirname(filePath)\n\n  if (!fs.existsSync(dirname)) {\n    fs.mkdirSync(dirname, { recursive: true })\n  }\n\n  if (fs.existsSync(filePath)) {\n    return\n  }\n  const filePathWithExtension = addExtensionToFilenameIfNoExtensionPresent(filePath, markdownExtensions, '.md')\n\n  fs.writeFileSync(filePathWithExtension, content, charset)\n}\n\nexport function updateFileListForRenderer(win: BrowserWindow, directory: string): void {\n  const files = GetFilesInfoTree(directory)\n  if (win) {\n    win.webContents.send('files-list', files)\n  }\n}\n\nexport function startWatchingDirectory(win: BrowserWindow, directoryToWatch: string): chokidar.FSWatcher | undefined {\n  try {\n    const watcher = chokidar.watch(directoryToWatch, {\n      ignoreInitial: true,\n    })\n\n    const handleFileEvent = (eventType: string, filePath: string) => {\n      if (fileHasExtensionInList(filePath, markdownExtensions) || eventType.includes('directory')) {\n        // TODO: add logic to update vector db\n        updateFileListForRenderer(win, directoryToWatch)\n      }\n    }\n\n    watcher\n      .on('add', (_path) => handleFileEvent('added', _path))\n      .on('change', (_path) => handleFileEvent('changed', _path))\n      .on('unlink', (_path) => handleFileEvent('removed', _path))\n      .on('addDir', (_path) => handleFileEvent('directory added', _path))\n      .on('unlinkDir', (_path) => handleFileEvent('directory removed', _path))\n\n    // No 'ready' event handler is needed here, as we're ignoring initial scan\n    return watcher\n  } catch (error) {\n    // no error\n    return undefined\n  }\n}\n\nexport function appendExtensionIfMissing(filename: string, extensions: string[]): string {\n  const hasExtension = extensions.some((ext) => filename.endsWith(ext))\n\n  if (hasExtension) {\n    return filename\n  }\n\n  return filename + extensions[0]\n}\n\nexport function readFile(filePath: string): string {\n  const data = fs.readFileSync(filePath, 'utf8')\n  return data\n}\n\nexport function splitDirectoryPathIntoBaseAndRepo(fullPath: string) {\n  const normalizedPath = path.normalize(fullPath)\n\n  const pathWithSeparator = normalizedPath.endsWith(path.sep) ? normalizedPath : `${normalizedPath}${path.sep}`\n\n  if (path.dirname(pathWithSeparator.slice(0, -1)) === pathWithSeparator.slice(0, -1)) {\n    return {\n      localModelPath: '', // No directory path before the root\n      repoName: path.basename(pathWithSeparator.slice(0, -1)), // Root directory name\n    }\n  }\n\n  const localModelPath = path.dirname(pathWithSeparator.slice(0, -1))\n  const repoName = path.basename(pathWithSeparator.slice(0, -1))\n\n  return { localModelPath, repoName }\n}\n"
  },
  {
    "path": "electron/main/filesystem/ipcHandlers.ts",
    "content": "import * as fs from 'fs'\nimport * as path from 'path'\n\nimport { ipcMain, dialog, app } from 'electron'\nimport Store from 'electron-store'\n\nimport WindowsManager from '../common/windowManager'\nimport { StoreSchema } from '../electron-store/storeConfig'\nimport { handleFileRename, updateFileInTable } from '../vector-database/tableHelperFunctions'\n\nimport { GetFilesInfoTree, createFileRecursive, isHidden, GetFilesInfoListForListOfPaths } from './filesystem'\nimport { FileInfoTree, WriteFileProps, RenameFileProps, FileInfoWithContent } from './types'\nimport ImageStorage from './storage/ImageStore'\nimport VideoStorage from './storage/VideoStore'\n\nconst imageStorage = new ImageStorage(app.getPath('userData'))\nconst videoStorage = new VideoStorage(app.getPath('userData'))\n\nconst registerFileHandlers = (store: Store<StoreSchema>, _windowsManager: WindowsManager) => {\n  const windowsManager = _windowsManager\n  ipcMain.handle('get-files-tree-for-window', async (event): Promise<FileInfoTree> => {\n    const directoryPath = windowsManager.getVaultDirectoryForWinContents(event.sender)\n    if (!directoryPath) return []\n\n    const files: FileInfoTree = GetFilesInfoTree(directoryPath)\n    return files\n  })\n\n  ipcMain.handle('read-file', async (event, filePath, encoding = 'utf-8') => {\n    const data = await fs.promises.readFile(filePath, encoding)\n    return data\n  })\n\n  ipcMain.handle('check-file-exists', async (event, filePath) => {\n    try {\n      await fs.promises.access(filePath, fs.constants.F_OK)\n      return true\n    } catch (error) {\n      return false\n    }\n  })\n\n  ipcMain.handle('delete-file', async (event, filePath: string): Promise<void> => {\n    fs.stat(filePath, async (err, stats) => {\n      if (err) {\n        return\n      }\n\n      if (stats.isDirectory()) {\n        // For directories (Node.js v14.14.0 and later)\n        fs.rm(filePath, { recursive: true }, () => {\n          // hi\n        })\n\n        const windowInfo = windowsManager.getWindowInfoForContents(event.sender)\n        if (!windowInfo) {\n          throw new Error('Window info not found.')\n        }\n        await windowInfo.dbTableClient.deleteDBItemsByFilePaths([filePath])\n      } else {\n        fs.unlink(filePath, () => {\n          // hi\n        })\n\n        const windowInfo = windowsManager.getWindowInfoForContents(event.sender)\n        if (!windowInfo) {\n          throw new Error('Window info not found.')\n        }\n        await windowInfo.dbTableClient.deleteDBItemsByFilePaths([filePath])\n      }\n    })\n  })\n\n  ipcMain.handle('write-file', async (event, writeFileProps: WriteFileProps) => {\n    if (!fs.existsSync(path.dirname(writeFileProps.filePath))) {\n      fs.mkdirSync(path.dirname(writeFileProps.filePath), {\n        recursive: true,\n      })\n    }\n    fs.writeFileSync(writeFileProps.filePath, writeFileProps.content, 'utf-8')\n  })\n\n  ipcMain.handle('store-image', async (event, imageData: string, originalName: string, blockID: string) => {\n    try {\n      const localURL = await imageStorage.storeMedia(imageData, originalName, blockID)\n      return localURL\n    } catch (error) {\n      throw new Error(`Failed to store image: ${error}`)\n    }\n  })\n\n  ipcMain.handle('delete-image', async (event, fileName: string) => {\n    try {\n      await imageStorage.deleteMedia(fileName)\n      return true\n    } catch (error) {\n      throw new Error(`Failed to delete image: ${error}`)\n    }\n  })\n\n  ipcMain.handle('get-image', async (event, fileName) => {\n    try {\n      const imageData = await imageStorage.getMedia(fileName)\n      return imageData\n    } catch (error) {\n      throw new Error(`Failed to get image: ${error}`)\n    }\n  })\n\n  ipcMain.handle('store-video', async (event, videoData, originalName, blockId) => {\n    try {\n      const localURL = await videoStorage.storeMedia(videoData, originalName, blockId)\n      return localURL\n    } catch (error) {\n      throw new Error(`Failed to store video: ${error}`)\n    }\n  })\n\n  ipcMain.handle('get-video', async (event, fileName) => {\n    try {\n      const videoData = await videoStorage.getMedia(fileName)\n      return videoData\n    } catch (error) {\n      throw new Error(`Failed to get video: ${error}`)\n    }\n  })\n\n  ipcMain.handle('is-directory', (event, filepath: string) => fs.statSync(filepath).isDirectory())\n\n  ipcMain.handle('rename-file', async (event, renameFileProps: RenameFileProps) => {\n    const windowInfo = windowsManager.getWindowInfoForContents(event.sender)\n\n    if (!windowInfo) {\n      throw new Error('Window info not found.')\n    }\n\n    await handleFileRename(windowsManager, windowInfo, renameFileProps, event.sender)\n  })\n\n  ipcMain.handle('index-file-in-database', async (event, filePath: string) => {\n    const windowInfo = windowsManager.getWindowInfoForContents(event.sender)\n    if (!windowInfo) {\n      throw new Error('Window info not found.')\n    }\n    await updateFileInTable(windowInfo.dbTableClient, filePath)\n  })\n\n  ipcMain.handle('create-file', async (event, filePath: string, content: string): Promise<void> => {\n    createFileRecursive(filePath, content, 'utf-8')\n  })\n\n  ipcMain.handle('create-directory', async (event, dirPath: string): Promise<void> => {\n    const mkdirRecursiveSync = (_dirPath: string) => {\n      const parentDir = path.dirname(_dirPath)\n      if (!fs.existsSync(parentDir)) {\n        mkdirRecursiveSync(parentDir)\n      }\n      if (!fs.existsSync(_dirPath)) {\n        fs.mkdirSync(_dirPath)\n      }\n    }\n\n    if (!fs.existsSync(dirPath)) {\n      mkdirRecursiveSync(dirPath)\n    }\n  })\n\n  ipcMain.handle('get-files', async (_event, filePaths: string[]): Promise<FileInfoWithContent[]> => {\n    const fileItems = GetFilesInfoListForListOfPaths(filePaths)\n    const fileContents = fileItems.map((fileItem) => fs.readFileSync(fileItem.path, 'utf-8'))\n    return fileItems.map((fileItem, index) => ({ ...fileItem, content: fileContents[index] }))\n  })\n\n  ipcMain.handle('get-files-in-directory', (event, dirName: string) => {\n    const itemsInDir = fs.readdirSync(dirName).filter((item) => !isHidden(item))\n    return itemsInDir\n  })\n\n  ipcMain.handle('open-directory-dialog', async () => {\n    const result = await dialog.showOpenDialog({\n      properties: ['openDirectory', 'createDirectory'],\n    })\n    if (!result.canceled) {\n      return result.filePaths\n    }\n    return null\n  })\n\n  ipcMain.handle('open-file-dialog', async (event, extensions) => {\n    const filters = extensions && extensions.length > 0 ? [{ name: 'Files', extensions }] : []\n\n    const result = await dialog.showOpenDialog({\n      properties: ['openFile', 'multiSelections', 'showHiddenFiles'], // Add 'showHiddenFiles' here\n      filters,\n    })\n\n    if (!result.canceled) {\n      return result.filePaths\n    }\n    return []\n  })\n\n  // Similar to open-file-dialog except it filters out non-images\n  ipcMain.handle('open-img-file-dialog', async () => {\n    const result = await dialog.showOpenDialog({\n      properties: ['openFile'],\n      filters: [{ name: 'Images', extensions: ['jpg', 'png', 'gif'] }],\n    })\n    return result.filePaths\n  })\n\n  // Similar to open-file-dialog except it filters out non-videos\n  ipcMain.handle('open-video-file-dialog', async () => {\n    const result = await dialog.showOpenDialog({\n      properties: ['openFile'],\n      filters: [{ name: 'Videos', extensions: ['mp4', 'mkv'] }],\n    })\n    return result.filePaths\n  })\n}\n\nexport default registerFileHandlers\n"
  },
  {
    "path": "electron/main/filesystem/storage/ImageStore.ts",
    "content": "/**\n * ImageStore.ts\n * ---------------\n *\n * We want to store images in the appData directory in electron. We also want to ensure\n * that each image is only stored once, and that we can reference the same image in multiple\n * places without duplicating the image.\n *\n * We maintain metadata about each image including the original filename and creation date. Since this app is locally\n *  ran, each image path will exist on the user's disk (upload) or on the cloud (embed).\n */\nimport MediaStore from './MediaStore'\n\nclass ImageStore extends MediaStore {\n  constructor(appDataPath: string) {\n    super(appDataPath, 'images')\n  }\n}\n\nexport default ImageStore\n"
  },
  {
    "path": "electron/main/filesystem/storage/MediaStore.ts",
    "content": "/**\n * MediaStore.ts\n * ---------------\n *\n * Generic class to store media in the appData directory in electron.\n * This application requires an ImageStore and a VideoStore which calls\n * the appropriate methods.\n */\nimport * as path from 'path'\nimport * as fs from 'fs'\nimport * as crypto from 'crypto'\n\ninterface FileType {\n  ext: string\n  mime: string\n}\n\ninterface MediaMetadata {\n  id: string\n  fileName: string\n  originalName: string\n  mimeType: string\n  createdAt: string\n  fileSize: number\n}\n\nclass MediaStore {\n  protected storageDir: string\n\n  protected metadataFile: string\n\n  protected mediaType: string\n\n  constructor(appDataPath: string, mediaType: string) {\n    this.storageDir = path.join(appDataPath, mediaType)\n    this.metadataFile = path.join(appDataPath, `${mediaType}Metadata.json`)\n    this.mediaType = mediaType\n    this.initStorage()\n  }\n\n  protected initStorage(): void {\n    if (!fs.existsSync(this.storageDir)) {\n      fs.mkdirSync(this.storageDir, { recursive: true })\n    }\n    if (!fs.existsSync(this.metadataFile)) {\n      fs.writeFileSync(this.metadataFile, JSON.stringify({}))\n    }\n  }\n\n  protected getMetadata(): Record<string, MediaMetadata> {\n    const data = fs.readFileSync(this.metadataFile, 'utf8')\n    return JSON.parse(data)\n  }\n\n  protected saveMetadata(metadata: Record<string, MediaMetadata>): void {\n    fs.writeFileSync(this.metadataFile, JSON.stringify(metadata))\n  }\n\n  static generateFileName(originalName: string): string {\n    const timestamp = Date.now()\n    const hash = crypto.createHash('md5').update(`${originalName}${timestamp}`).digest('hex')\n    return hash\n  }\n\n  static async checkFileType(buffer: Buffer): Promise<FileType | undefined> {\n    const { fileTypeFromBuffer } = await import('file-type')\n    const type = await fileTypeFromBuffer(buffer)\n    return type\n  }\n\n  protected validateFileType(mimeType: string): boolean {\n    return this.mediaType === 'images'\n      ? ['image/png', 'image/jpeg', 'image/gif', 'image/svg+xml'].includes(mimeType)\n      : ['video/mp4', 'video/webm', 'video/quicktime'].includes(mimeType)\n  }\n\n  public async storeMedia(mediaData: string, originalName: string, blockId: string): Promise<string> {\n    const base64Data = mediaData.replace(/^data:[^;]+;base64,/, '')\n    const buffer: Buffer = Buffer.from(base64Data, 'base64')\n\n    const type = await MediaStore.checkFileType(buffer)\n    if (!type || !this.validateFileType(type.mime)) {\n      throw new Error(`Invalid ${this.mediaType.slice(0, -1)} file type`)\n    }\n\n    const fileName = `${MediaStore.generateFileName(originalName)}.${type.ext}`\n    const filePath = path.join(this.storageDir, fileName)\n\n    await fs.promises.writeFile(filePath, buffer)\n\n    const metadata = this.getMetadata()\n    metadata[blockId] = {\n      id: blockId,\n      fileName,\n      originalName,\n      mimeType: type.mime,\n      createdAt: new Date().toISOString(),\n      fileSize: buffer.length,\n    }\n    this.saveMetadata(metadata)\n    return `local://${fileName}`\n  }\n\n  // Removes the media file from the storage and updates the metadata\n  public async deleteMedia(fileName: string): Promise<void> {\n    const url = fileName.replace('local://', '')\n    const filePath = path.join(this.storageDir, url)\n    if (fs.existsSync(filePath)) {\n      await fs.promises.unlink(filePath)\n    } else {\n      throw new Error(`File not found: ${filePath}`)\n    }\n  }\n\n  public async getMedia(fileName: string): Promise<string | null> {\n    try {\n      const updatedFileName = fileName.replace('local://', '')\n      const filePath = path.join(this.storageDir, updatedFileName)\n      if (!fs.existsSync(filePath)) return null\n\n      const buffer = await fs.promises.readFile(filePath)\n      const type = await MediaStore.checkFileType(buffer)\n\n      if (!type || !this.validateFileType(type.mime))\n        throw new Error(`Invalid ${this.mediaType.slice(0, -1)} file type`)\n\n      return `data:${type.mime};base64,${buffer.toString('base64')}`\n    } catch (error) {\n      return null\n    }\n  }\n}\n\nexport default MediaStore\n"
  },
  {
    "path": "electron/main/filesystem/storage/VideoStore.ts",
    "content": "/**\n * VideoStore.ts\n * ---------------\n *\n * We want to store videos in the appData directory in electron. We also want to ensure\n * that each video is only stored once, and that we can reference the same video in multiple\n * places without duplicating it.\n *\n * We maintain metadata about each video including the original filename and creation date. Since this app is locally\n *  ran, each video path will exist on the user's disk (upload).\n */\nimport MediaStore from './MediaStore'\n\nclass VideoStore extends MediaStore {\n  constructor(appDataPath: string) {\n    super(appDataPath, 'videos')\n  }\n}\n\nexport default VideoStore\n"
  },
  {
    "path": "electron/main/filesystem/types.ts",
    "content": "export type FileInfo = {\n  name: string\n  path: string\n  relativePath: string\n  dateModified: Date\n  dateCreated: Date\n}\n\nexport type FileInfoWithContent = FileInfo & {\n  content: string\n}\n\nexport type FileInfoNode = FileInfo & {\n  children?: FileInfoNode[]\n}\n\nexport type FileInfoTree = FileInfoNode[]\n\nexport interface AugmentPromptWithFileProps {\n  prompt: string\n  llmName: string\n  filePath: string\n}\n\nexport type WriteFileProps = {\n  filePath: string\n  content: string\n}\n\nexport type RenameFileProps = {\n  oldFilePath: string\n  newFilePath: string\n}\n"
  },
  {
    "path": "electron/main/index.ts",
    "content": "import { release } from 'node:os'\nimport { join } from 'node:path'\n\nimport { app, BrowserWindow } from 'electron'\nimport Store from 'electron-store'\n\nimport * as Sentry from '@sentry/electron/main'\nimport errorToStringMainProcess from './common/error'\nimport WindowsManager from './common/windowManager'\nimport { registerStoreHandlers } from './electron-store/ipcHandlers'\nimport { StoreSchema } from './electron-store/storeConfig'\nimport registerElectronUtilsHandlers from './electron-utils/ipcHandlers'\nimport registerFileHandlers from './filesystem/ipcHandlers'\nimport { ollamaService, registerLLMSessionHandlers } from './llm/ipcHandlers'\nimport registerPathHandlers from './path/ipcHandlers'\nimport { registerDBSessionHandlers } from './vector-database/ipcHandlers'\n\nif (process.env.NODE_ENV === 'production') {\n  Sentry.init({\n    dsn: 'https://a764a6135d25ba91f0b25c0252be52f3@o4507840138903552.ingest.us.sentry.io/4507840140410880',\n  })\n}\n\nconst store = new Store<StoreSchema>()\n// store.clear() // clear store for testing CAUTION: THIS WILL DELETE YOUR CHAT HISTORY\nconst windowsManager = new WindowsManager()\n\nprocess.env.DIST_ELECTRON = join(__dirname, '../')\nprocess.env.DIST = join(process.env.DIST_ELECTRON, '../dist')\nprocess.env.VITE_PUBLIC = process.env.VITE_DEV_SERVER_URL\n  ? join(process.env.DIST_ELECTRON, '../public')\n  : process.env.DIST\n\n// Disable GPU Acceleration for Windows 7\nif (release().startsWith('6.1')) app.disableHardwareAcceleration()\n\n// Disable GPU acceleration for macOS 21.6\nif (process.platform === 'darwin' && release().startsWith('21.6')) app.disableHardwareAcceleration()\n\n// Set application name for Windows 10+ notifications\nif (process.platform === 'win32') app.setAppUserModelId(app.getName())\n\nif (!app.requestSingleInstanceLock()) {\n  app.quit()\n  process.exit(0)\n}\n\nconst preload = join(__dirname, '../preload/index.js')\nconst url = process.env.VITE_DEV_SERVER_URL\nconst indexHtml = join(process.env.DIST, 'index.html')\napp.whenReady().then(async () => {\n  await ollamaService.init()\n  windowsManager.createWindow(store, preload, url, indexHtml)\n})\n\napp.on('window-all-closed', () => {\n  if (process.platform !== 'darwin') app.quit()\n})\n\napp.on('before-quit', async () => {\n  ollamaService.stop()\n})\n\napp.on('activate', () => {\n  const allWindows = BrowserWindow.getAllWindows()\n  if (allWindows.length) {\n    allWindows[0].focus()\n  } else {\n    windowsManager.createWindow(store, preload, url, indexHtml)\n  }\n})\n\nprocess.on('uncaughtException', (error: Error) => {\n  windowsManager.appendNewErrorToDisplayInWindow(errorToStringMainProcess(error))\n  if (process.env.NODE_ENV === 'production') {\n    Sentry.captureException(error)\n  }\n})\n\nprocess.on('unhandledRejection', (reason: unknown) => {\n  windowsManager.appendNewErrorToDisplayInWindow(errorToStringMainProcess(reason))\n  if (process.env.NODE_ENV === 'production') {\n    Sentry.captureException(reason as Error)\n  }\n})\n\nregisterLLMSessionHandlers(store)\nregisterDBSessionHandlers(store, windowsManager)\nregisterStoreHandlers(store, windowsManager)\nregisterFileHandlers(store, windowsManager)\nregisterElectronUtilsHandlers(store, windowsManager, preload, url, indexHtml)\nregisterPathHandlers()\n"
  },
  {
    "path": "electron/main/llm/contextLimit.ts",
    "content": "import { DBEntry } from '../vector-database/schema'\n\nexport interface PromptWithContextLimit {\n  prompt: string\n  contextCutoffAt?: string\n}\n\nexport const createPromptWithContextLimitFromContent = (\n  content: string | DBEntry[],\n  basePrompt: string,\n  query: string,\n  tokenize: (text: string) => number[],\n  contextLimit: number,\n): PromptWithContextLimit => {\n  const initialTokenCount = tokenize(query + basePrompt).length\n  const contents = Array.isArray(content) ? content.map((entry) => entry.content) : content.split('\\n')\n\n  const { contentArray, cutOffLine } = contents.reduce<{\n    contentArray: string[]\n    tokenCount: number\n    cutOffLine: string\n  }>(\n    ({ contentArray: _contentArray, tokenCount, cutOffLine: _cutOffLine }, line) => {\n      const lineWithNewLine = `${line}\\n`\n      const lineTokens = tokenize(lineWithNewLine).length\n\n      if (lineTokens + tokenCount < contextLimit * 0.9) {\n        return {\n          contentArray: [..._contentArray, lineWithNewLine],\n          tokenCount: tokenCount + lineTokens,\n          cutOffLine: _cutOffLine,\n        }\n      }\n      if (_cutOffLine.length === 0) {\n        return { contentArray: _contentArray, tokenCount, cutOffLine: lineWithNewLine }\n      }\n      return { contentArray: _contentArray, tokenCount, cutOffLine: _cutOffLine }\n    },\n    { contentArray: [], tokenCount: initialTokenCount, cutOffLine: '' },\n  )\n\n  const outputPrompt = basePrompt + contentArray.join('') + query\n  return {\n    prompt: outputPrompt,\n    contextCutoffAt: cutOffLine || undefined,\n  }\n}\n"
  },
  {
    "path": "electron/main/llm/ipcHandlers.ts",
    "content": "import { ipcMain } from 'electron'\nimport Store from 'electron-store'\nimport { ProgressResponse } from 'ollama'\n\nimport { LLMConfig, LLMAPIConfig, StoreKeys, StoreSchema } from '../electron-store/storeConfig'\n\nimport { addOrUpdateLLMAPIInStore, removeLLM, getLLMConfigs, addOrUpdateLLMInStore } from './llmConfig'\nimport OllamaService from './models/ollama'\n\nexport const ollamaService = new OllamaService()\n\nexport const registerLLMSessionHandlers = (store: Store<StoreSchema>) => {\n  ipcMain.handle('set-default-llm', (event, modelName: string) => {\n    store.set(StoreKeys.DefaultLLM, modelName)\n    event.sender.send('llm-configs-changed')\n  })\n\n  ipcMain.handle('get-default-llm-name', () => store.get(StoreKeys.DefaultLLM))\n\n  ipcMain.handle('get-llm-configs', async () => getLLMConfigs(store, ollamaService))\n\n  ipcMain.handle('get-llm-api-configs', async () => store.get(StoreKeys.LLMAPIs))\n\n  ipcMain.handle('add-or-update-llm-config', async (event, llmConfig: LLMConfig) => {\n    await addOrUpdateLLMInStore(store, llmConfig)\n    event.sender.send('llm-configs-changed')\n  })\n\n  ipcMain.handle('add-or-update-llm-api-config', async (event, llmAPIConfig: LLMAPIConfig) => {\n    await addOrUpdateLLMAPIInStore(store, llmAPIConfig)\n    event.sender.send('llm-configs-changed')\n  })\n\n  ipcMain.handle('remove-llm', async (event, modelNameToDelete: string) => {\n    await removeLLM(store, ollamaService, modelNameToDelete)\n    event.sender.send('llm-configs-changed')\n  })\n\n  ipcMain.handle('pull-ollama-model', async (event, modelName: string) => {\n    const handleProgress = (progress: ProgressResponse) => {\n      event.sender.send('ollamaDownloadProgress', modelName, progress)\n    }\n    await ollamaService.pullModel(modelName, handleProgress)\n    event.sender.send('llm-configs-changed')\n  })\n\n  ipcMain.handle('delete-llm', async (event, modelName: string) => {\n    await ollamaService.deleteModel(modelName)\n    event.sender.send('llm-configs-changed')\n  })\n}\n"
  },
  {
    "path": "electron/main/llm/llmConfig.ts",
    "content": "import Store from 'electron-store'\n\nimport { LLMConfig, LLMAPIConfig, StoreKeys, StoreSchema } from '../electron-store/storeConfig'\n\nimport OllamaService from './models/ollama'\n\nexport async function addOrUpdateLLMAPIInStore(store: Store<StoreSchema>, newAPI: LLMAPIConfig): Promise<void> {\n  const existingAPIsInStore = await store.get(StoreKeys.LLMAPIs)\n\n  const foundAPI = existingAPIsInStore.find((api) => api.name === newAPI.name)\n\n  if (foundAPI) {\n    const updatedModels = existingAPIsInStore.map((api) => (api.name === newAPI.name ? newAPI : api))\n    store.set(StoreKeys.LLMAPIs, updatedModels)\n  } else {\n    const updatedModels = [...existingAPIsInStore, newAPI]\n    store.set(StoreKeys.LLMAPIs, updatedModels)\n  }\n}\n\nexport async function addOrUpdateLLMInStore(store: Store<StoreSchema>, newLLM: LLMConfig): Promise<void> {\n  const existingLLMs = store.get(StoreKeys.LLMs) || []\n\n  const foundLLM = existingLLMs.find((llm) => llm.modelName === newLLM.modelName)\n\n  if (foundLLM) {\n    const updatedLLMs = existingLLMs.map((llm) => (llm.modelName === newLLM.modelName ? newLLM : llm))\n    store.set(StoreKeys.LLMs, updatedLLMs)\n  } else {\n    const updatedLLMs = [...existingLLMs, newLLM]\n    store.set(StoreKeys.LLMs, updatedLLMs)\n  }\n}\n\nexport async function getLLMConfigs(store: Store<StoreSchema>, ollamaSession: OllamaService): Promise<LLMConfig[]> {\n  const llmConfigsFromStore = store.get(StoreKeys.LLMs) || []\n  const ollamaLLMConfigs = await ollamaSession.getAvailableModels()\n\n  return [...llmConfigsFromStore, ...ollamaLLMConfigs]\n}\n\nexport async function getLLMConfig(\n  store: Store<StoreSchema>,\n  ollamaSession: OllamaService,\n  modelName: string,\n): Promise<LLMConfig | undefined> {\n  const llmConfigs = await getLLMConfigs(store, ollamaSession)\n\n  if (llmConfigs) {\n    return llmConfigs.find((model: LLMConfig) => model.modelName === modelName)\n  }\n  return undefined\n}\n\nexport async function removeLLM(\n  store: Store<StoreSchema>,\n  ollamaService: OllamaService,\n  modelName: string,\n): Promise<void> {\n  const existingLLMs = store.get(StoreKeys.LLMs) || []\n\n  const foundLLM = await getLLMConfig(store, ollamaService, modelName)\n\n  if (!foundLLM) {\n    return\n  }\n\n  const updatedLLMs = existingLLMs.filter((llm) => llm.modelName !== modelName)\n  store.set(StoreKeys.LLMAPIs, updatedLLMs)\n\n  ollamaService.deleteModel(modelName)\n}\n"
  },
  {
    "path": "electron/main/llm/models/ollama.ts",
    "content": "/* eslint-disable class-methods-use-this */\n/* eslint-disable prefer-promise-reject-errors */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { exec } from 'child_process'\nimport * as os from 'os'\nimport * as path from 'path'\n\nimport { app } from 'electron'\nimport { LLMConfig, LLMAPIConfig } from 'electron/main/electron-store/storeConfig'\nimport { Tiktoken, TiktokenModel, encodingForModel } from 'js-tiktoken'\nimport { ModelResponse, ProgressResponse, Ollama } from 'ollama'\n\nconst OllamaServeType = {\n  SYSTEM: 'system', // ollama is installed on the system\n  PACKAGED: 'packaged', // ollama is packaged with the app\n}\n\nexport const defaultOllamaAPI: LLMAPIConfig = {\n  name: 'Ollama',\n  apiInterface: 'ollama',\n  apiURL: 'http://localhost:11434/v1/',\n}\n\nclass OllamaService {\n  private client!: Ollama\n\n  private host = 'http://127.0.0.1:11434'\n\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  private childProcess: any\n\n  public init = async () => {\n    // add ollama to store if it doesn't alreay exist: store.set(StoreKeys.LLMAPIs, [defaultOllamaAPI])\n    const currentAPIs = await this.serve()\n\n    const ollamaLib = await import('ollama')\n    this.client = new ollamaLib.Ollama()\n\n    // const models = await this.client.default.list();\n    // ;\n    // const lists = await this.client.\n    // ;\n  }\n\n  async ping() {\n    const response = await fetch(this.host, {\n      method: 'GET',\n      cache: 'no-store',\n    })\n\n    if (response.status !== 200) {\n      throw new Error(`failed to ping ollama server: ${response.status}`)\n    }\n\n    return true\n  }\n\n  async serve() {\n    try {\n      // see if ollama is already running\n      await this.ping()\n      return OllamaServeType.SYSTEM\n    } catch (err) {\n      // this is fine, we just need to start ollama\n    }\n\n    try {\n      // See if 'ollama serve' command is available on the system\n      await this.execServe('ollama')\n\n      return OllamaServeType.SYSTEM\n    } catch (err) {\n      // ollama is not installed, run the binary directly\n      // logInfo(`/ is not installed on the system: ${err}`);\n    }\n\n    let exeName = ''\n    let exeDir = ''\n    switch (process.platform) {\n      case 'win32':\n        exeName = 'ollama.exe'\n        exeDir = app.isPackaged\n          ? path.join(process.resourcesPath, 'binaries')\n          : path.join(app.getAppPath(), 'binaries', 'win32')\n\n        break\n      case 'darwin':\n        exeName = 'ollama-darwin'\n        exeDir = app.isPackaged\n          ? path.join(process.resourcesPath, 'binaries')\n          : path.join(app.getAppPath(), 'binaries', 'darwin')\n        break\n      case 'linux':\n        exeName = 'ollama'\n        exeDir = app.isPackaged\n          ? path.join(process.resourcesPath, 'binaries')\n          : path.join(app.getAppPath(), 'binaries', 'linux')\n\n        break\n      default:\n        throw new Error('Unsupported platform')\n    }\n    const exePath = path.join(exeDir, exeName)\n    await this.execServe(exePath)\n    return OllamaServeType.PACKAGED\n  }\n\n  async execServe(_path: string) {\n    return new Promise((resolve, reject) => {\n      const env = { ...process.env }\n      const command = `\"${_path}\" serve`\n\n      this.childProcess = exec(command, { env }, (err, stdout, stderr) => {\n        if (err) {\n          reject(`exec error: ${err}`)\n          return\n        }\n\n        if (stderr) {\n          reject(`ollama stderr: ${stderr}`)\n          return\n        }\n\n        reject(`ollama stdout: ${stdout}`)\n      })\n\n      // Once the process is started, try to ping Ollama server.\n      this.waitForPing()\n        .then(() => {\n          resolve(undefined)\n        })\n        .catch((pingError) => {\n          if (this.childProcess && !this.childProcess.killed) {\n            this.childProcess.kill()\n          }\n          reject(pingError)\n        })\n    })\n  }\n\n  async waitForPing(delay = 1000, retries = 20) {\n    for (let i = 0; i < retries; i += 1) {\n      try {\n        // eslint-disable-next-line no-await-in-loop\n        await this.ping()\n        return\n      } catch (err) {\n        // eslint-disable-next-line no-await-in-loop\n        await new Promise((resolve) => {\n          setTimeout(resolve, delay)\n        })\n      }\n    }\n    throw new Error(\"Max retries reached. Ollama server didn't respond.\")\n  }\n\n  stop() {\n    if (!this.childProcess) {\n      return\n    }\n\n    if (os.platform() === 'win32') {\n      exec(`taskkill /pid ${this.childProcess.pid} /f /t`)\n    } else {\n      this.childProcess.kill()\n    }\n\n    this.childProcess = null\n  }\n\n  public getAvailableModels = async (): Promise<LLMConfig[]> => {\n    const ollamaModelsResponse = await this.client.list()\n\n    const output = ollamaModelsResponse.models.map(\n      (model: ModelResponse): LLMConfig => ({\n        modelName: model.name,\n        contextLength: 4096,\n        apiName: defaultOllamaAPI.name,\n      }),\n    )\n    return output\n  }\n\n  public pullModel = async (modelName: string, handleProgress: (chunk: ProgressResponse) => void): Promise<void> => {\n    const stream = await this.client.pull({\n      model: modelName,\n      stream: true,\n    })\n    for await (const progress of stream) {\n      handleProgress(progress)\n    }\n  }\n\n  public deleteModel = async (modelName: string): Promise<void> => {\n    await this.client.delete({ model: modelName })\n  }\n\n  public getTokenizer = (llmName: string): ((text: string) => number[]) => {\n    let tokenEncoding: Tiktoken\n    try {\n      tokenEncoding = encodingForModel(llmName as TiktokenModel)\n    } catch (e) {\n      tokenEncoding = encodingForModel('gpt-3.5-turbo-1106') // hack while we think about what to do with custom remote models' tokenizers\n    }\n    const tokenize = (text: string): number[] => tokenEncoding.encode(text)\n    return tokenize\n  }\n\n  public abort(): void {\n    throw new Error('Abort not yet implemented.')\n  }\n}\n\nexport default OllamaService\n"
  },
  {
    "path": "electron/main/llm/types.ts",
    "content": "import { MessageStreamEvent } from '@anthropic-ai/sdk/resources'\nimport { ChatCompletionChunk, ChatCompletionMessageParam } from 'openai/resources/chat/completions'\n\nimport { LLMGenerationParameters, LLMAPIConfig } from '../electron-store/storeConfig'\n\n// Any LLM engine should implement this interface:\nexport interface LLMSessionService {\n  /**\n   * Initializes the session.\n   * @returns A promise that resolves when the initialization is complete.\n   */\n  // init(\n  //   modelName: string,\n  //   modelConfig: BaseLLMConfig,\n  //   hardwareConfig: HardwareConfig\n  // ): Promise<void>;\n  /**\n   * Handles the streaming of prompts.\n   * @param prompt The prompt to be streamed.\n   * @param sendFunctionImplementer The implementer of the send function.\n   * @returns A promise that resolves to a string response.\n   */\n  streamingResponse(\n    modelName: string,\n    modelConfig: LLMAPIConfig,\n    isJSONMode: boolean,\n    messageHistory: Array<ChatCompletionMessageParam>,\n    chunkResponse: (chunk: ChatCompletionChunk | MessageStreamEvent) => void,\n    generationParams?: LLMGenerationParameters,\n  ): Promise<void>\n\n  getTokenizer: (llmName: string) => (text: string) => number[]\n  abort(): void\n}\n\nexport interface ISendFunctionImplementer {\n  /**\n   * Sends a message to the specified channel with optional arguments.\n   * @param channel The channel to send the message to.\n   * @param args Additional arguments for the message.\n   */\n  send(channel: string, ...args: unknown[]): void\n}\n"
  },
  {
    "path": "electron/main/llm/utils.ts",
    "content": "import { MessageParam } from '@anthropic-ai/sdk/resources'\nimport { ChatCompletionMessageParam } from 'openai/resources'\n\nfunction cleanMessageForAnthropic(message: ChatCompletionMessageParam): MessageParam {\n  if (typeof message.content !== 'string') {\n    throw new Error('Message content is not a string')\n  }\n  if (message.role === 'system') {\n    return { role: 'user', content: message.content }\n  }\n  if (message.role === 'user' || message.role === 'assistant') {\n    return { role: message.role, content: message.content }\n  }\n  throw new Error('Message role is not valid')\n}\n\nexport default cleanMessageForAnthropic\n"
  },
  {
    "path": "electron/main/path/ipcHandlers.ts",
    "content": "import path from 'path'\n\nimport { ipcMain } from 'electron'\n\nimport { markdownExtensions } from '../filesystem/filesystem'\n\nimport addExtensionToFilenameIfNoExtensionPresent from './path'\n\nconst registerPathHandlers = () => {\n  ipcMain.handle('path-basename', (event, pathString: string) => path.basename(pathString))\n\n  ipcMain.handle('path-sep', () => path.sep)\n\n  ipcMain.handle('join-path', (event, ...args) => path.join(...args))\n\n  ipcMain.handle('path-dirname', (event, pathString: string) => path.dirname(pathString))\n\n  ipcMain.handle('path-relative', (event, from: string, to: string) => path.relative(from, to))\n\n  ipcMain.handle('path-absolute', (event, filePath: string) => path.isAbsolute(filePath))\n\n  ipcMain.handle('add-extension-if-no-extension-present', (event, pathString: string) =>\n    addExtensionToFilenameIfNoExtensionPresent(pathString, markdownExtensions, '.md'),\n  )\n\n  ipcMain.handle('path-ext-name', (event, pathString: string) => path.extname(pathString))\n}\n\nexport default registerPathHandlers\n"
  },
  {
    "path": "electron/main/path/path.ts",
    "content": "import path from 'path'\n\nfunction addExtensionToFilenameIfNoExtensionPresent(\n  filename: string,\n  acceptableExtensions: string[],\n  defaultExtension: string,\n): string {\n  const extension = path.extname(filename).toLowerCase()\n  if (acceptableExtensions.includes(extension)) {\n    return filename\n  }\n\n  return `${filename}${defaultExtension}`\n}\n\nexport default addExtensionToFilenameIfNoExtensionPresent\n"
  },
  {
    "path": "electron/main/vector-database/database.test.ts",
    "content": "import { sanitizePathForDatabase, unsanitizePathForFileSystem } from './lanceTableWrapper'\n\ndescribe('Path Sanitization Tests', () => {\n  it('should sanitize file path correctly', () => {\n    const unixPath = \"/home/user/test'file.txt\"\n    const sanitized = sanitizePathForDatabase(unixPath)\n    expect(sanitized).toBe(\"/home/user/test''file.txt\")\n  })\n})\n\ndescribe('Path Unsanitization Tests', () => {\n  it('should unsanitize  path correctly', () => {\n    const sanitizedPath = \"/home/user/test''file.txt\"\n    const original = unsanitizePathForFileSystem(sanitizedPath)\n    expect(original).toBe(\"/home/user/test'file.txt\")\n  })\n})\n"
  },
  {
    "path": "electron/main/vector-database/downloadModelsFromHF.ts",
    "content": "import fs from 'fs'\nimport * as path from 'path'\n\nimport { listFiles, downloadFile } from '@huggingface/hub'\n\nimport customFetchUsingElectronNet from '../common/network'\n\nasync function downloadAndSaveFile(repo: string, HFFilePath: string, systemFilePath: string): Promise<void> {\n  // Call the downloadFile function and await its result\n  const res = await downloadFile({\n    repo,\n    path: HFFilePath,\n    fetch: customFetchUsingElectronNet,\n  })\n\n  if (!res) {\n    throw new Error(`Failed to download file from ${repo}/${HFFilePath}`)\n  }\n\n  // Convert the Response object to an ArrayBuffer\n  const arrayBuffer = await res.arrayBuffer()\n\n  // Convert the ArrayBuffer to a Buffer\n  const buffer = Buffer.from(arrayBuffer)\n\n  // Join the systemFilePath and filePath to create the full path\n  const fullPath = path.join(systemFilePath, HFFilePath)\n  const directory = path.dirname(fullPath)\n  if (!fs.existsSync(directory)) {\n    fs.mkdirSync(directory, { recursive: true })\n  }\n  // Save the Buffer to the full path\n  fs.writeFileSync(fullPath, buffer)\n}\n\nconst DownloadModelFilesFromHFRepo = async (repo: string, saveDirectory: string, quantized = true) => {\n  // List the files:\n  const fileList = await listFiles({\n    repo,\n    recursive: true,\n    fetch: customFetchUsingElectronNet,\n  })\n\n  const files = []\n  for await (const file of fileList) {\n    if (file.type === 'file') {\n      if (file.path.endsWith('onnx')) {\n        const isQuantizedFile = file.path.includes('quantized')\n        if (quantized === isQuantizedFile) {\n          files.push(file)\n        }\n      } else {\n        files.push(file)\n      }\n    }\n  }\n\n  // Create an array of promises for each file download:\n  const downloadPromises = files.map((file) => downloadAndSaveFile(repo, file.path, path.join(saveDirectory, repo)))\n\n  // Execute all download promises in parallel:\n  await Promise.all(downloadPromises)\n}\n\nexport default DownloadModelFilesFromHFRepo\n"
  },
  {
    "path": "electron/main/vector-database/embeddings.ts",
    "content": "import path from 'path'\n\nimport { Pipeline, PreTrainedTokenizer } from '@xenova/transformers'\nimport { app } from 'electron'\nimport removeMd from 'remove-markdown'\nimport * as lancedb from 'vectordb'\n\nimport {\n  EmbeddingModelConfig,\n  EmbeddingModelWithLocalPath,\n  EmbeddingModelWithRepo,\n} from '../electron-store/storeConfig'\nimport { splitDirectoryPathIntoBaseAndRepo } from '../filesystem/filesystem'\n\nimport DownloadModelFilesFromHFRepo from './downloadModelsFromHF'\nimport { DBEntry } from './schema'\n\nexport const defaultEmbeddingModelRepos: Record<string, EmbeddingModelConfig> = {\n  'Xenova/UAE-Large-V1': {\n    type: 'repo',\n    repoName: 'Xenova/UAE-Large-V1',\n    readableName: 'UAE-Large-V1',\n    description: 'Recommended for English content',\n  },\n  'Xenova/bge-small-en-v1.5': {\n    type: 'repo',\n    repoName: 'Xenova/bge-small-en-v1.5',\n    readableName: 'bge-small-en-v1.5',\n    description: 'Recommended for low-power devices',\n  },\n  'Xenova/multilingual-e5-large': {\n    type: 'repo',\n    repoName: 'Xenova/multilingual-e5-large',\n    readableName: 'multilingual-e5-large',\n    description: 'Recommended for non-English content',\n  },\n  'Xenova/jina-embeddings-v2-base-zh': {\n    type: 'repo',\n    repoName: 'Xenova/jina-embeddings-v2-base-zh',\n    readableName: 'jina-embeddings-v2-base-zh',\n    description: 'Recommended for Chinese content',\n  },\n  'Xenova/jina-embeddings-v2-base-de': {\n    type: 'repo',\n    repoName: 'Xenova/jina-embeddings-v2-base-de',\n    readableName: 'jina-embeddings-v2-base-de',\n    description: 'Recommended for German content',\n  },\n}\n\nfunction setupTokenizeFunction(tokenizer: PreTrainedTokenizer): (data: (string | number[])[]) => string[] {\n  return (data: (string | number[])[]): string[] => {\n    if (!tokenizer) {\n      throw new Error('Tokenizer not initialized')\n    }\n\n    return data.map((text) => {\n      const res = tokenizer(text)\n      return res\n    })\n  }\n}\n\nasync function setupEmbedFunction(pipe: Pipeline): Promise<(batch: (string | number[])[]) => Promise<number[][]>> {\n  return async (batch: (string | number[])[]): Promise<number[][]> => {\n    if (batch.length === 0 || batch[0].length === 0) {\n      return []\n    }\n\n    if (typeof batch[0][0] === 'number') {\n      return batch as number[][]\n    }\n\n    if (!pipe) {\n      throw new Error('Pipeline not initialized')\n    }\n\n    const result: number[][] = await Promise.all(\n      batch.map(async (text) => {\n        const res = await pipe(removeMd(text as string), {\n          pooling: 'mean',\n          normalize: true,\n        })\n        return Array.from(res.data)\n      }),\n    )\n\n    return result\n  }\n}\n\nexport async function createEmbeddingFunctionForLocalModel(\n  embeddingModelConfig: EmbeddingModelWithLocalPath,\n  sourceColumn: string,\n): Promise<EnhancedEmbeddingFunction<string | number[]>> {\n  // let pipe: Pipeline\n  let repoName = ''\n  let functionName = ''\n  const { pipeline, env } = await import('@xenova/transformers')\n  env.cacheDir = path.join(app.getPath('userData'), 'models', 'embeddings') // set for all. Just to deal with library and remote inconsistencies\n\n  const pathParts = splitDirectoryPathIntoBaseAndRepo(embeddingModelConfig.localPath)\n\n  env.localModelPath = pathParts.localModelPath\n  repoName = pathParts.repoName\n  env.allowRemoteModels = false\n  functionName = embeddingModelConfig.localPath\n\n  const pipe: Pipeline = (await pipeline(\n    'feature-extraction',\n    repoName,\n    // {cache_dir: cacheDir,\n  )) as Pipeline\n\n  const tokenize = setupTokenizeFunction(pipe.tokenizer)\n  const embed = await setupEmbedFunction(pipe)\n\n  return {\n    name: functionName,\n    contextLength: pipe.model.config.hidden_size,\n    sourceColumn,\n    embed,\n    tokenize,\n  }\n}\n\nexport async function createEmbeddingFunctionForRepo(\n  embeddingModelConfig: EmbeddingModelWithRepo,\n  sourceColumn: string,\n): Promise<EnhancedEmbeddingFunction<string | number[]>> {\n  let pipe: Pipeline\n  let repoName = ''\n  let functionName = ''\n  const { pipeline, env } = await import('@xenova/transformers')\n  env.cacheDir = path.join(app.getPath('userData'), 'models', 'embeddings') // set for all. Just to deal with library and remote inconsistencies\n\n  repoName = embeddingModelConfig.repoName\n  env.allowRemoteModels = true\n  functionName = embeddingModelConfig.repoName\n\n  try {\n    pipe = (await pipeline('feature-extraction', repoName)) as Pipeline\n  } catch (error) {\n    await DownloadModelFilesFromHFRepo(repoName, env.cacheDir) // try to manual download to use system proxy\n    pipe = (await pipeline('feature-extraction', repoName)) as Pipeline\n  }\n\n  const tokenize = setupTokenizeFunction(pipe.tokenizer)\n  const embed = await setupEmbedFunction(pipe)\n\n  // sanitize the embedding text to remove markdown content\n\n  return {\n    name: functionName,\n    contextLength: pipe.model.config.hidden_size,\n    sourceColumn,\n    embed,\n    tokenize,\n  }\n}\n\nexport interface EnhancedEmbeddingFunction<T> extends lancedb.EmbeddingFunction<T> {\n  name: string\n  contextLength: number\n  tokenize: (data: T[]) => string[]\n}\nexport async function createEmbeddingFunction(\n  embeddingModelConfig: EmbeddingModelConfig,\n  sourceColumn: string,\n): Promise<EnhancedEmbeddingFunction<string | number[]>> {\n  if (embeddingModelConfig.type === 'local') {\n    return createEmbeddingFunctionForLocalModel(embeddingModelConfig, sourceColumn)\n  }\n  return createEmbeddingFunctionForRepo(embeddingModelConfig, sourceColumn)\n}\n\nexport const rerankSearchedEmbeddings = async (query: string, searchResults: DBEntry[]) => {\n  const { env, AutoModelForSequenceClassification, AutoTokenizer } = await import('@xenova/transformers')\n  env.cacheDir = path.join(app.getPath('userData'), 'models', 'reranker') // set for all. Just to deal with library and remote inconsistencies\n\n  const tokenizer = await AutoTokenizer.from_pretrained('Xenova/bge-reranker-base')\n  const model = await AutoModelForSequenceClassification.from_pretrained('Xenova/bge-reranker-base')\n\n  const queries = Array(searchResults.length).fill(query)\n\n  const inputs = tokenizer(queries, {\n    text_pair: searchResults.map((item) => item.content),\n    padding: true,\n    truncation: true,\n  })\n\n  const scores = await model(inputs)\n  // map logits to searchResults by index\n  const resultsWithIndex = searchResults.map((item, index) => ({\n    ...item,\n    score: scores.logits.data[index],\n  }))\n\n  // TODO: we should allow users to set threshold for sensitivity too.\n  return resultsWithIndex.sort((a, b) => b.score - a.score).filter((item) => item.score > 0)\n}\n"
  },
  {
    "path": "electron/main/vector-database/ipcHandlers.ts",
    "content": "import * as path from 'path'\n\nimport { app, BrowserWindow, ipcMain } from 'electron'\nimport Store from 'electron-store'\nimport * as lancedb from 'vectordb'\n\nimport WindowsManager from '../common/windowManager'\nimport { getDefaultEmbeddingModelConfig } from '../electron-store/ipcHandlers'\nimport { StoreSchema } from '../electron-store/storeConfig'\nimport { startWatchingDirectory, updateFileListForRenderer } from '../filesystem/filesystem'\n\nimport { rerankSearchedEmbeddings } from './embeddings'\nimport { DBEntry, DatabaseFields } from './schema'\nimport { RepopulateTableWithMissingItems } from './tableHelperFunctions'\n\nexport interface PromptWithRagResults {\n  ragPrompt: string\n  uniqueFilesReferenced: string[]\n}\n\nexport interface BasePromptRequirements {\n  query: string\n  llmName: string\n  filePathToBeUsedAsContext?: string\n}\n\nexport const registerDBSessionHandlers = (store: Store<StoreSchema>, _windowManager: WindowsManager) => {\n  let dbConnection: lancedb.Connection\n  const windowManager = _windowManager\n\n  ipcMain.handle('search', async (event, query: string, limit: number, filter?: string): Promise<DBEntry[]> => {\n    const windowInfo = windowManager.getWindowInfoForContents(event.sender)\n    if (!windowInfo) {\n      throw new Error('Window info not found.')\n    }\n    const searchResults = await windowInfo.dbTableClient.search(query, limit, filter)\n    return searchResults\n  })\n\n  ipcMain.handle('index-files-in-directory', async (event) => {\n    const windowInfo = windowManager.getWindowInfoForContents(event.sender)\n    if (!windowInfo) {\n      throw new Error('No window info found')\n    }\n    const defaultEmbeddingModelConfig = getDefaultEmbeddingModelConfig(store)\n    const dbPath = path.join(app.getPath('userData'), 'vectordb')\n    dbConnection = await lancedb.connect(dbPath)\n\n    await windowInfo.dbTableClient.initialize(\n      dbConnection,\n      windowInfo.vaultDirectoryForWindow,\n      defaultEmbeddingModelConfig,\n    )\n    await RepopulateTableWithMissingItems(windowInfo.dbTableClient, windowInfo.vaultDirectoryForWindow, (progress) => {\n      event.sender.send('indexing-progress', progress)\n    })\n    const win = BrowserWindow.fromWebContents(event.sender)\n\n    if (win) {\n      windowManager.watcher = startWatchingDirectory(win, windowInfo.vaultDirectoryForWindow)\n      updateFileListForRenderer(win, windowInfo.vaultDirectoryForWindow)\n    }\n    event.sender.send('indexing-progress', 1)\n  })\n\n  ipcMain.handle(\n    'search-with-reranking',\n    async (event, query: string, limit: number, filter?: string): Promise<DBEntry[]> => {\n      const windowInfo = windowManager.getWindowInfoForContents(event.sender)\n      if (!windowInfo) {\n        throw new Error('Window info not found.')\n      }\n      const searchResults = await windowInfo.dbTableClient.search(query, limit, filter)\n\n      const rankedResults = await rerankSearchedEmbeddings(query, searchResults)\n      return rankedResults\n    },\n  )\n\n  ipcMain.handle('get-database-fields', () => DatabaseFields)\n}\n"
  },
  {
    "path": "electron/main/vector-database/lance.ts",
    "content": "import * as lancedb from 'vectordb'\n\nimport { EnhancedEmbeddingFunction } from './embeddings'\nimport CreateDatabaseSchema, { isStringifiedSchemaEqual } from './schema'\n\nexport const generateTableName = (embeddingFuncName: string, userDirectory: string): string => {\n  const sanitizeForFileSystem = (str: string) => str.replace(/[<>:\"/\\\\|?*]/g, '_')\n\n  const directoryPathAlias = sanitizeForFileSystem(userDirectory)\n  const sanitizedEmbeddingFuncName = sanitizeForFileSystem(embeddingFuncName)\n\n  return `ragnote_table_${sanitizedEmbeddingFuncName}_${directoryPathAlias}`\n}\n\nconst GetOrCreateLanceTable = async (\n  db: lancedb.Connection,\n  embedFunc: EnhancedEmbeddingFunction<string>,\n  userDirectory: string,\n): Promise<lancedb.Table<string>> => {\n  const allTableNames = await db.tableNames()\n  const intendedSchema = CreateDatabaseSchema(embedFunc.contextLength)\n  const tableName = generateTableName(embedFunc.name, userDirectory)\n\n  if (allTableNames.includes(tableName)) {\n    const table = await db.openTable(tableName, embedFunc)\n    const schema = await table.schema\n    if (!isStringifiedSchemaEqual(schema, intendedSchema)) {\n      await db.dropTable(tableName)\n\n      const recreatedTable = await db.createTable({\n        name: tableName,\n        schema: intendedSchema,\n        embeddingFunction: embedFunc,\n      })\n      return recreatedTable\n    }\n\n    return table\n  }\n\n  const newTable = await db.createTable({\n    name: tableName,\n    schema: intendedSchema,\n    embeddingFunction: embedFunc,\n  })\n  return newTable\n}\n\nexport default GetOrCreateLanceTable\n"
  },
  {
    "path": "electron/main/vector-database/lanceTableWrapper.ts",
    "content": "import { Connection, Table as LanceDBTable, MetricType, makeArrowTable } from 'vectordb'\n\nimport { EmbeddingModelConfig } from '../electron-store/storeConfig'\n\nimport { EnhancedEmbeddingFunction, createEmbeddingFunction } from './embeddings'\nimport GetOrCreateLanceTable from './lance'\nimport { DBEntry, DBQueryResult, DatabaseFields } from './schema'\n\nexport function unsanitizePathForFileSystem(dbPath: string): string {\n  return dbPath.replace(/''/g, \"'\")\n}\n\nexport function convertRecordToDBType<T extends DBEntry | DBQueryResult>(record: Record<string, unknown>): T | null {\n  const { vector, ...recordWithoutVector } = record\n  const recordWithType = recordWithoutVector as unknown as T\n  recordWithType.notepath = unsanitizePathForFileSystem(recordWithType.notepath)\n  return recordWithType\n}\n\nexport function sanitizePathForDatabase(filePath: string): string {\n  return filePath.replace(/'/g, \"''\")\n}\n\nclass LanceDBTableWrapper {\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  public lanceTable!: LanceDBTable<any>\n\n  private embedFun!: EnhancedEmbeddingFunction<string | number[]>\n\n  async initialize(dbConnection: Connection, userDirectory: string, embeddingModelConfig: EmbeddingModelConfig) {\n    this.embedFun = await createEmbeddingFunction(embeddingModelConfig, 'content')\n\n    this.lanceTable = await GetOrCreateLanceTable(dbConnection, this.embedFun, userDirectory)\n  }\n\n  async add(_data: DBEntry[], onProgress?: (progress: number) => void): Promise<void> {\n    const data = _data\n      .filter((x) => x.content !== '')\n      .map((_x) => {\n        const x = _x\n        x.notepath = sanitizePathForDatabase(x.notepath)\n        return x\n      })\n\n    // clean up previously indexed entries and reindex the whole file\n    await this.deleteDBItemsByFilePaths(data.map((x) => x.notepath))\n\n    const recordEntry: Record<string, unknown>[] = data as unknown as Record<string, unknown>[]\n    const numberOfChunksToIndexAtOnce = process.platform === 'darwin' ? 50 : 40\n    const chunks = []\n    for (let i = 0; i < recordEntry.length; i += numberOfChunksToIndexAtOnce) {\n      chunks.push(recordEntry.slice(i, i + numberOfChunksToIndexAtOnce))\n    }\n\n    if (chunks.length === 0) return\n\n    const totalChunks = chunks.length\n\n    await chunks.reduce(async (previousPromise, chunk, index) => {\n      await previousPromise\n      const arrowTableOfChunk = makeArrowTable(chunk)\n      await this.lanceTable.add(arrowTableOfChunk)\n      const progress = (index + 1) / totalChunks\n      if (onProgress) {\n        onProgress(progress)\n      }\n    }, Promise.resolve())\n  }\n\n  async deleteDBItemsByFilePaths(filePaths: string[]): Promise<void> {\n    const quotedFilePaths = filePaths\n      .map((filePath) => sanitizePathForDatabase(filePath))\n      .map((filePath) => `'${filePath}'`)\n      .join(', ')\n    if (quotedFilePaths === '') {\n      return\n    }\n    const filterString = `${DatabaseFields.NOTE_PATH} IN (${quotedFilePaths})`\n    try {\n      await this.lanceTable.delete(filterString)\n    } catch (error) {\n      //  no need to throw error\n    }\n  }\n\n  async updateDBItemsWithNewFilePath(oldFilePath: string, newFilePath: string): Promise<void> {\n    const sanitizedFilePath = sanitizePathForDatabase(oldFilePath)\n    if (sanitizedFilePath === '') {\n      return\n    }\n    const filterString = `${DatabaseFields.NOTE_PATH} = '${sanitizedFilePath}'`\n    try {\n      await this.lanceTable.update({\n        where: filterString,\n        values: {\n          [DatabaseFields.NOTE_PATH]: sanitizePathForDatabase(newFilePath),\n        },\n      })\n    } catch (error) {\n      // no need to throw error\n    }\n  }\n\n  async search(query: string, limit: number, filter?: string): Promise<DBQueryResult[]> {\n    const lanceQuery = await this.lanceTable.search(query).metricType(MetricType.Cosine).limit(limit)\n\n    if (filter) {\n      lanceQuery.prefilter(true)\n      lanceQuery.filter(filter)\n    }\n    const rawResults = await lanceQuery.execute()\n    const mapped = rawResults.map(convertRecordToDBType<DBQueryResult>)\n    return mapped as DBQueryResult[]\n  }\n\n  async filter(filterString: string, limit: number = 10): Promise<DBEntry[]> {\n    const rawResults = await this.lanceTable.filter(filterString).limit(limit).execute()\n    const mapped = rawResults.map(convertRecordToDBType<DBEntry>)\n    return mapped as DBEntry[]\n  }\n}\n\nexport default LanceDBTableWrapper\n"
  },
  {
    "path": "electron/main/vector-database/schema.ts",
    "content": "import { Schema, Field, Utf8, FixedSizeList, Float32, Float64, DateUnit, Date_ as ArrowDate } from 'apache-arrow'\n\nexport interface DBEntry {\n  notepath: string\n  content: string\n  subnoteindex: number\n  timeadded: Date\n  filemodified: Date\n  filecreated: Date\n}\nexport interface DBQueryResult extends DBEntry {\n  _distance: number\n}\n\nexport const chunksize = 500\n\nexport enum DatabaseFields {\n  NOTE_PATH = 'notepath',\n  VECTOR = 'vector',\n  CONTENT = 'content',\n  SUB_NOTE_INDEX = 'subnoteindex',\n  TIME_ADDED = 'timeadded',\n  FILE_MODIFIED = 'filemodified',\n  FILE_CREATED = 'filecreated',\n  DISTANCE = '_distance',\n}\n\nconst CreateDatabaseSchema = (vectorDim: number): Schema => {\n  const schemaFields = [\n    new Field(DatabaseFields.NOTE_PATH, new Utf8(), false),\n    new Field(DatabaseFields.VECTOR, new FixedSizeList(vectorDim, new Field('item', new Float32())), false),\n    new Field(DatabaseFields.CONTENT, new Utf8(), false),\n    new Field(DatabaseFields.SUB_NOTE_INDEX, new Float64(), false),\n    new Field(DatabaseFields.TIME_ADDED, new ArrowDate(DateUnit.MILLISECOND), false),\n    new Field(DatabaseFields.FILE_MODIFIED, new ArrowDate(DateUnit.MILLISECOND), false),\n    new Field(DatabaseFields.FILE_CREATED, new ArrowDate(DateUnit.MILLISECOND), false),\n  ]\n  const schema = new Schema(schemaFields)\n  return schema\n}\n\nconst serializeSchema = (schema: Schema): string =>\n  JSON.stringify(\n    schema.fields.map((field) => ({\n      name: field.name,\n      type: field.type.toString(),\n      nullable: field.nullable,\n    })),\n  )\n\nexport const isStringifiedSchemaEqual = (schema1: Schema, schema2: Schema): boolean => {\n  const serializedSchema1 = serializeSchema(schema1)\n  const serializedSchema2 = serializeSchema(schema2)\n\n  const areEqual = serializedSchema1 === serializedSchema2\n  return areEqual\n}\n\nexport default CreateDatabaseSchema\n"
  },
  {
    "path": "electron/main/vector-database/tableHelperFunctions.ts",
    "content": "import * as fs from 'fs'\nimport * as fsPromises from 'fs/promises'\n\nimport { BrowserWindow } from 'electron'\nimport { chunkMarkdownByHeadingsAndByCharsIfBig } from '../common/chunking'\nimport {\n  GetFilesInfoList,\n  flattenFileInfoTree,\n  readFile,\n  updateFileListForRenderer,\n  startWatchingDirectory,\n} from '../filesystem/filesystem'\nimport { FileInfo, FileInfoTree, RenameFileProps } from '../filesystem/types'\n\nimport LanceDBTableWrapper, { convertRecordToDBType } from './lanceTableWrapper'\nimport { DBEntry, DatabaseFields } from './schema'\nimport WindowsManager from '../common/windowManager'\n\nconst convertFileTypeToDBType = async (file: FileInfo): Promise<DBEntry[]> => {\n  const fileContent = readFile(file.path)\n  const chunks = await chunkMarkdownByHeadingsAndByCharsIfBig(fileContent)\n  const entries = chunks.map((content, index) => ({\n    notepath: file.path,\n    content,\n    subnoteindex: index,\n    timeadded: new Date(),\n    filemodified: file.dateModified,\n    filecreated: file.dateCreated,\n  }))\n  return entries\n}\n\nexport const handleFileRename = async (\n  windowsManager: WindowsManager,\n  windowInfo: { vaultDirectoryForWindow: string; dbTableClient: any },\n  renameFileProps: RenameFileProps,\n  sender: Electron.WebContents,\n): Promise<void> => {\n  windowsManager.watcher?.unwatch(windowInfo.vaultDirectoryForWindow)\n\n  try {\n    await fsPromises.access(renameFileProps.newFilePath)\n    throw new Error(`A file already exists at destination: ${renameFileProps.newFilePath}`)\n  } catch (error) {\n    // If error is ENOENT (file doesn't exist), proceed with rename\n    if ((error as NodeJS.ErrnoException).code !== 'ENOENT') {\n      throw error\n    }\n  }\n\n  if (process.platform === 'win32') {\n    await windowsManager.watcher?.close()\n    await new Promise<void>((resolve, reject) => {\n      fs.rename(renameFileProps.oldFilePath, renameFileProps.newFilePath, (err) => {\n        if (err) {\n          reject(err)\n          return\n        }\n\n        const win = BrowserWindow.fromWebContents(sender)\n        if (win) {\n          // eslint-disable-next-line no-param-reassign\n          windowsManager.watcher = startWatchingDirectory(win, windowInfo.vaultDirectoryForWindow)\n          updateFileListForRenderer(win, windowInfo.vaultDirectoryForWindow)\n        }\n        resolve()\n      })\n    })\n  } else {\n    await new Promise<void>((resolve, reject) => {\n      fs.rename(renameFileProps.oldFilePath, renameFileProps.newFilePath, (err) => {\n        if (err) {\n          reject(err)\n          return\n        }\n        windowsManager.watcher?.add(windowInfo.vaultDirectoryForWindow)\n        resolve()\n      })\n    })\n  }\n\n  await windowInfo.dbTableClient.updateDBItemsWithNewFilePath(renameFileProps.oldFilePath, renameFileProps.newFilePath)\n}\n\nexport const convertFileInfoListToDBItems = async (filesInfoList: FileInfo[]): Promise<DBEntry[][]> => {\n  const promises = filesInfoList.map(convertFileTypeToDBType)\n  const filesAsChunksToAddToDB = await Promise.all(promises)\n  return filesAsChunksToAddToDB\n}\n\nconst getTableAsArray = async (table: LanceDBTableWrapper): Promise<{ notepath: string; filemodified: Date }[]> => {\n  const nonEmptyResults = await table.lanceTable\n    .filter(`${DatabaseFields.NOTE_PATH} != ''`)\n    .select([DatabaseFields.NOTE_PATH, DatabaseFields.FILE_MODIFIED])\n    .execute()\n\n  const mapped = nonEmptyResults.map(convertRecordToDBType<DBEntry>)\n\n  return mapped as { notepath: string; filemodified: Date }[]\n}\n\nconst areChunksMissingFromTable = (\n  chunksToCheck: DBEntry[],\n  tableArray: { notepath: string; filemodified: Date }[],\n): boolean => {\n  // checking whether th\n  if (chunksToCheck.length === 0) {\n    // if there are no chunks and we are checking whether the table\n    return false\n  }\n\n  if (chunksToCheck[0].content === '') {\n    return false\n  }\n  // then we'd check if the filepaths are not present in the table at all:\n  const { notepath } = chunksToCheck[0]\n  const itemsAlreadyInTable = tableArray.filter((item) => item.notepath === notepath)\n  if (itemsAlreadyInTable.length === 0) {\n    // if we find no items in the table with the same notepath, then we should add the chunks to the table\n    return true\n  }\n\n  return chunksToCheck[0].filemodified > itemsAlreadyInTable[0].filemodified\n}\n\nconst computeDbItemsToAddOrUpdate = async (\n  filesInfoList: FileInfo[],\n  tableArray: { notepath: string; filemodified: Date }[],\n): Promise<DBEntry[][]> => {\n  const filesAsChunks = await convertFileInfoListToDBItems(filesInfoList)\n\n  const fileChunksMissingFromTable = filesAsChunks.filter((chunksBelongingToFile) =>\n    areChunksMissingFromTable(chunksBelongingToFile, tableArray),\n  )\n\n  return fileChunksMissingFromTable\n}\n\nconst computeDBItemsToRemoveFromTable = async (\n  filesInfoList: FileInfo[],\n  tableArray: { notepath: string; filemodified: Date }[],\n): Promise<{ notepath: string; filemodified: Date }[]> => {\n  const itemsInTableAndNotInFilesInfoList = tableArray.filter(\n    (item) => !filesInfoList.some((file) => file.path === item.notepath),\n  )\n  return itemsInTableAndNotInFilesInfoList\n}\n\nconst convertFileTreeToDBEntries = async (tree: FileInfoTree): Promise<DBEntry[]> => {\n  const flattened = flattenFileInfoTree(tree)\n\n  const promises = flattened.map(convertFileTypeToDBType)\n\n  const entries = await Promise.all(promises)\n\n  return entries.flat()\n}\n\nexport const removeFileTreeFromDBTable = async (\n  dbTable: LanceDBTableWrapper,\n  fileTree: FileInfoTree,\n): Promise<void> => {\n  const flattened = flattenFileInfoTree(fileTree)\n  const filePaths = flattened.map((x) => x.path)\n  await dbTable.deleteDBItemsByFilePaths(filePaths)\n}\n\nexport const updateFileInTable = async (dbTable: LanceDBTableWrapper, filePath: string): Promise<void> => {\n  await dbTable.deleteDBItemsByFilePaths([filePath])\n  const content = readFile(filePath)\n  const chunkedContentList = await chunkMarkdownByHeadingsAndByCharsIfBig(content)\n  const stats = fs.statSync(filePath)\n  const dbEntries = chunkedContentList.map((_content, index) => ({\n    notepath: filePath,\n    content: _content,\n    subnoteindex: index,\n    timeadded: new Date(), // time now\n    filemodified: stats.mtime,\n    filecreated: stats.birthtime,\n  }))\n  await dbTable.add(dbEntries)\n}\n\nexport const RepopulateTableWithMissingItems = async (\n  table: LanceDBTableWrapper,\n  directoryPath: string,\n  onProgress?: (progress: number) => void,\n) => {\n  const filesInfoTree = GetFilesInfoList(directoryPath)\n\n  const tableArray = await getTableAsArray(table)\n  const itemsToRemove = await computeDBItemsToRemoveFromTable(filesInfoTree, tableArray)\n\n  const filePathsToRemove = itemsToRemove.map((x) => x.notepath)\n  await table.deleteDBItemsByFilePaths(filePathsToRemove)\n\n  const dbItemsToAdd = await computeDbItemsToAddOrUpdate(filesInfoTree, tableArray)\n\n  if (dbItemsToAdd.length === 0) {\n    if (onProgress) onProgress(1)\n    return\n  }\n\n  const flattenedItemsToAdd = dbItemsToAdd.flat()\n  await table.add(flattenedItemsToAdd, onProgress)\n\n  if (onProgress) onProgress(1)\n}\n\nexport const addFileTreeToDBTable = async (dbTable: LanceDBTableWrapper, fileTree: FileInfoTree): Promise<void> => {\n  const dbEntries = await convertFileTreeToDBEntries(fileTree)\n  await dbTable.add(dbEntries)\n}\n\nexport function formatTimestampForLanceDB(date: Date): string {\n  const year = date.getFullYear()\n  const month = date.getMonth() + 1 // getMonth() is zero-based\n  const day = date.getDate()\n  const hours = date.getHours()\n  const minutes = date.getMinutes()\n  const seconds = date.getSeconds()\n\n  // Pad single digits with leading zeros\n  const monthPadded = month.toString().padStart(2, '0')\n  const dayPadded = day.toString().padStart(2, '0')\n  const hoursPadded = hours.toString().padStart(2, '0')\n  const minutesPadded = minutes.toString().padStart(2, '0')\n  const secondsPadded = seconds.toString().padStart(2, '0')\n\n  return `timestamp '${year}-${monthPadded}-${dayPadded} ${hoursPadded}:${minutesPadded}:${secondsPadded}'`\n}\n"
  },
  {
    "path": "electron/preload/index.ts",
    "content": "import { contextBridge, ipcRenderer } from 'electron'\nimport {\n  EmbeddingModelConfig,\n  EmbeddingModelWithLocalPath,\n  EmbeddingModelWithRepo,\n  LLMConfig,\n  LLMAPIConfig,\n  LLMGenerationParameters,\n  TamaguiThemeTypes,\n} from 'electron/main/electron-store/storeConfig'\nimport { SearchProps } from 'electron/main/electron-store/types'\nimport { FileInfoTree, FileInfoWithContent, RenameFileProps, WriteFileProps } from 'electron/main/filesystem/types'\nimport { DBQueryResult } from 'electron/main/vector-database/schema'\n\nimport { AgentConfig, ChatMetadata, Chat } from '@/lib/llm/types'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype IPCHandler<T extends (...args: any[]) => any> = (...args: Parameters<T>) => Promise<ReturnType<T>>\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction createIPCHandler<T extends (...args: any[]) => any>(channel: string): IPCHandler<T> {\n  return (...args: Parameters<T>) => ipcRenderer.invoke(channel, ...args) as Promise<ReturnType<T>>\n}\n\nconst database = {\n  search: createIPCHandler<(query: string, limit: number, filter?: string) => Promise<DBQueryResult[]>>('search'),\n  deleteLanceDBEntriesByFilePath: createIPCHandler<(filePath: string) => Promise<void>>(\n    'delete-lance-db-entries-by-filepath',\n  ),\n  indexFilesInDirectory: createIPCHandler<() => Promise<void>>('index-files-in-directory'),\n  indexFileInDatabase: createIPCHandler<(filePath: string) => Promise<void>>('index-file-in-database'),\n  getDatabaseFields: createIPCHandler<() => Promise<Record<string, string>>>('get-database-fields'),\n}\n\nconst electronUtils = {\n  openExternal: createIPCHandler<(url: string) => Promise<void>>('open-external'),\n  getPlatform: createIPCHandler<() => Promise<string>>('get-platform'),\n  openNewWindow: createIPCHandler<() => Promise<void>>('open-new-window'),\n  getReorAppVersion: createIPCHandler<() => Promise<string>>('get-reor-app-version'),\n  getUserAppPath: createIPCHandler<() => Promise<string>>('get-user-data-path'),\n}\n\nconst electronStore = {\n  setVaultDirectoryForWindow: createIPCHandler<(path: string) => Promise<void>>('set-vault-directory-for-window'),\n  getVaultDirectoryForWindow: createIPCHandler<() => Promise<string>>('get-vault-directory-for-window'),\n  getDefaultEmbeddingModel: createIPCHandler<() => Promise<string>>('get-default-embedding-model'),\n  setDefaultEmbeddingModel: createIPCHandler<(repoName: string) => Promise<void>>('set-default-embedding-model'),\n  addNewLocalEmbeddingModel: createIPCHandler<(model: EmbeddingModelWithLocalPath) => Promise<void>>(\n    'add-new-local-embedding-model',\n  ),\n  getEmbeddingModels: createIPCHandler<() => Promise<Record<string, EmbeddingModelConfig>>>('get-embedding-models'),\n  addNewRepoEmbeddingModel:\n    createIPCHandler<(model: EmbeddingModelWithRepo) => Promise<void>>('add-new-repo-embedding-model'),\n  updateEmbeddingModel:\n    createIPCHandler<\n      (modelName: string, updatedModel: EmbeddingModelWithLocalPath | EmbeddingModelWithRepo) => Promise<void>\n    >('update-embedding-model'),\n  removeEmbeddingModel: createIPCHandler<(modelName: string) => Promise<void>>('remove-embedding-model'),\n  getChunkSize: createIPCHandler<() => Promise<number>>('get-chunk-size'),\n  setChunkSize: createIPCHandler<(chunkSize: number) => Promise<void>>('set-chunk-size'),\n  getLLMGenerationParams: createIPCHandler<() => Promise<LLMGenerationParameters>>('get-llm-generation-params'),\n  setLLMGenerationParams:\n    createIPCHandler<(params: LLMGenerationParameters) => Promise<void>>('set-llm-generation-params'),\n  getAnalyticsMode: createIPCHandler<() => Promise<boolean>>('get-analytics-mode'),\n  setAnalyticsMode: createIPCHandler<(isAnalytics: boolean) => Promise<void>>('set-analytics-mode'),\n  getSpellCheckMode: createIPCHandler<() => Promise<boolean>>('get-spellcheck-mode'),\n  setSpellCheckMode: createIPCHandler<(isSpellCheck: boolean) => Promise<void>>('set-spellcheck-mode'),\n  getDocumentStats: createIPCHandler<() => Promise<boolean>>('get-document-stats'),\n  setDocumentStats: createIPCHandler<(showWordCount: boolean) => Promise<void>>('set-document-stats'),\n  getHasUserOpenedAppBefore: createIPCHandler<() => Promise<boolean>>('has-user-opened-app-before'),\n  setHasUserOpenedAppBefore: createIPCHandler<() => Promise<void>>('set-user-has-opened-app-before'),\n  getAllChatsMetadata: createIPCHandler<() => Promise<ChatMetadata[]>>('get-all-chats-metadata'),\n  saveChat: createIPCHandler<(chat: Chat) => Promise<void>>('save-chat'),\n  deleteChat: createIPCHandler<(chatID: string) => Promise<void>>('delete-chat'),\n  getChat: createIPCHandler<(chatID: string | undefined) => Promise<Chat | undefined>>('get-chat'),\n  getEditorFlexCenter: createIPCHandler<() => Promise<boolean>>('get-editor-flex-center'),\n  setEditorFlexCenter: createIPCHandler<(editorFlexCenter: boolean) => Promise<void>>('set-editor-flex-center'),\n  getAgentConfigs: createIPCHandler<() => Promise<AgentConfig[]>>('get-agent-configs'),\n  setAgentConfig: createIPCHandler<(agentConfig: AgentConfig) => Promise<void>>('set-agent-config'),\n  setAutoContext: createIPCHandler<(value: boolean) => Promise<void>>('set-auto-context'),\n  getAutoContext: createIPCHandler<() => Promise<boolean>>('get-auto-context'),\n  setTamaguiTheme: createIPCHandler<(theme: TamaguiThemeTypes) => Promise<void>>('set-tamagui-theme'),\n  getTamaguiTheme: createIPCHandler<() => Promise<TamaguiThemeTypes>>('get-tamagui-theme'),\n  getSearchParams: createIPCHandler<() => Promise<SearchProps>>('get-search-params'),\n  setSearchParams: createIPCHandler<(searchParams: SearchProps) => Promise<void>>('set-search-params'),\n}\n\nconst fileSystem = {\n  openDirectoryDialog: createIPCHandler<() => Promise<string[]>>('open-directory-dialog'),\n  openFileDialog: createIPCHandler<(fileExtensions?: string[]) => Promise<string[]>>('open-file-dialog'),\n  openImageFileDialog: createIPCHandler<() => Promise<string[]>>('open-img-file-dialog'),\n  openVideoFileDialog: createIPCHandler<() => Promise<string[]>>('open-video-file-dialog'),\n  getFilesTreeForWindow: createIPCHandler<() => Promise<FileInfoTree>>('get-files-tree-for-window'),\n  readFile: createIPCHandler<(filePath: string, encoding: 'utf-8' | string) => Promise<string>>('read-file'),\n  writeFile: createIPCHandler<(writeFileProps: WriteFileProps) => Promise<void>>('write-file'),\n  storeImage:\n    createIPCHandler<(imageData: string, filePath: string, blockID: string) => Promise<string>>('store-image'),\n  deleteImage: createIPCHandler<(filePath: string) => Promise<void>>('delete-image'),\n  getImage: createIPCHandler<(fileName: string) => Promise<string | null>>('get-image'),\n  storeVideo:\n    createIPCHandler<(videoData: string, filePath: string, blockID: string) => Promise<string>>('store-video'),\n  getVideo: createIPCHandler<(fileName: string) => Promise<string | null>>('get-video'),\n  isDirectory: createIPCHandler<(filePath: string) => Promise<boolean>>('is-directory'),\n  renameFile: createIPCHandler<(renameFileProps: RenameFileProps) => Promise<void>>('rename-file'),\n  createFile: createIPCHandler<(filePath: string, content: string) => Promise<void>>('create-file'),\n  createDirectory: createIPCHandler<(dirPath: string) => Promise<void>>('create-directory'),\n  checkFileExists: createIPCHandler<(filePath: string) => Promise<boolean>>('check-file-exists'),\n  deleteFile: createIPCHandler<(filePath: string) => Promise<void>>('delete-file'),\n  getAllFilenamesInDirectory: createIPCHandler<(dirName: string) => Promise<string[]>>('get-files-in-directory'),\n  getFiles: createIPCHandler<(filePaths: string[]) => Promise<FileInfoWithContent[]>>('get-files'),\n}\n\nconst path = {\n  basename: createIPCHandler<(pathString: string) => Promise<string>>('path-basename'),\n  join: createIPCHandler<(...pathSegments: string[]) => Promise<string>>('join-path'),\n  dirname: createIPCHandler<(pathString: string) => Promise<string>>('path-dirname'),\n  relative: createIPCHandler<(from: string, to: string) => Promise<string>>('path-relative'),\n  isAbsolute: createIPCHandler<(filePath: string) => Promise<string>>('path-absolute'),\n  addExtensionIfNoExtensionPresent: createIPCHandler<(pathString: string) => Promise<string>>(\n    'add-extension-if-no-extension-present',\n  ),\n  pathSep: createIPCHandler<() => Promise<string>>('path-sep'),\n  extName: createIPCHandler<(pathString: string) => Promise<string>>('path-ext-name'),\n}\n\nconst llm = {\n  getLLMConfigs: createIPCHandler<() => Promise<LLMConfig[]>>('get-llm-configs'),\n  getLLMAPIConfigs: createIPCHandler<() => Promise<LLMAPIConfig[]>>('get-llm-api-configs'),\n  addOrUpdateLLMConfig: createIPCHandler<(model: LLMConfig) => Promise<void>>('add-or-update-llm-config'),\n  addOrUpdateLLMAPIConfig:\n    createIPCHandler<(modelConfig: LLMAPIConfig) => Promise<void>>('add-or-update-llm-api-config'),\n  removeLLM: createIPCHandler<(modelNameToDelete: string) => Promise<void>>('remove-llm'),\n  setDefaultLLM: createIPCHandler<(modelName: string) => Promise<void>>('set-default-llm'),\n  getDefaultLLMName: createIPCHandler<() => Promise<string>>('get-default-llm-name'),\n  pullOllamaModel: createIPCHandler<(modelName: string) => Promise<void>>('pull-ollama-model'),\n  deleteLLM: createIPCHandler<(modelNameToDelete: string) => Promise<void>>('delete-llm'),\n}\n\n// Expose to renderer process\ncontextBridge.exposeInMainWorld('database', database)\ncontextBridge.exposeInMainWorld('electronUtils', electronUtils)\ncontextBridge.exposeInMainWorld('electronStore', electronStore)\ncontextBridge.exposeInMainWorld('fileSystem', fileSystem)\ncontextBridge.exposeInMainWorld('path', path)\ncontextBridge.exposeInMainWorld('llm', llm)\n\n// Additional exposures that don't fit the pattern above\ncontextBridge.exposeInMainWorld('ipcRenderer', {\n  on: ipcRenderer.on.bind(ipcRenderer),\n  receive: (channel: string, func: (...args: unknown[]) => void) => {\n    const subscription = (_event: Electron.IpcRendererEvent, ...args: unknown[]) => func(...args)\n    ipcRenderer.on(channel, subscription)\n    return () => {\n      ipcRenderer.removeListener(channel, subscription)\n    }\n  },\n})\n\n// Type declarations\ndeclare global {\n  interface Window {\n    database: typeof database\n    electronUtils: typeof electronUtils\n    electronStore: typeof electronStore\n    fileSystem: typeof fileSystem\n    path: typeof path\n    llm: typeof llm\n    ipcRenderer: {\n      on: typeof ipcRenderer.on\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any\n      receive: (channel: string, func: (...args: any[]) => void) => () => void\n    }\n  }\n}\n"
  },
  {
    "path": "electron-builder.json5",
    "content": "{\n  appId: 'org.reorproject.reor',\n  asar: true,\n  directories: {\n    output: 'release/${version}',\n  },\n  files: ['dist-electron/**/*', 'dist/**/*'],\n  extraMetadata: {\n    \"main\": \"dist-electron/main/index.js\",\n  },\n  mac: {\n    asarUnpack: ['**/*.{node,dll,metal,exp,lib}'],\n    artifactName: '${productName}_${version}.${ext}',\n    target: ['dmg', 'zip'],\n    extraResources: [\n      {\n        from: './binaries/darwin/',\n        to: 'binaries',\n        filter: ['**/*'],\n      },\n    ],\n  },\n  win: {\n    artifactName: '${productName}_${version}.${ext}',\n    asarUnpack: ['**/*.{node,dll,metal,exp,lib}'],\n    target: [\n      {\n        target: 'nsis',\n        arch: ['x64'],\n      },\n    ],\n    extraResources: [\n      {\n        from: './binaries/win32/',\n        to: 'binaries',\n        filter: ['**/*'],\n      },\n    ],\n  },\n  nsis: {\n    oneClick: false,\n    perMachine: false,\n    allowToChangeInstallationDirectory: true,\n    deleteAppDataOnUninstall: false,\n  },\n  linux: {\n    artifactName: '${productName}_${version}.${ext}',\n    asarUnpack: ['**/node_modules/sharp/**'],\n    target: [\n      {\n        target: 'AppImage',\n      },\n    ],\n    category: 'Utility',\n    synopsis: 'Short description of your app',\n    description: 'Full description of your app',\n    extraResources: [\n      {\n        from: './binaries/linux/',\n        to: 'binaries',\n        filter: ['**/*'],\n      },\n    ],\n  },\n  publish: {\n    provider: 'generic',\n    channel: 'latest',\n    url: 'https://github.com/electron-vite/electron-vite-react/releases/download/v0.9.9/',\n  },\n}\n"
  },
  {
    "path": "index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"UTF-8\" />\n    <link rel=\"icon\" type=\"image/x-icon\" href=\"/favicon.ico\" />\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n    <!-- Updated Content-Security-Policy -->\n    <meta\n      http-equiv=\"Content-Security-Policy\"\n      content=\"default-src 'self'; \n        script-src 'self' 'unsafe-eval' https://us-assets.i.posthog.com; \n        style-src 'self' 'unsafe-inline' https:; \n        font-src 'self' https:;\n        connect-src 'self' https: http:;\n        img-src 'self' https: data:;\n        media-src 'self' https: data:;\n        frame-src 'self' https://www.youtube.com https://www.youtube-nocookie.com;\"\n    />\n    <link href=\"https://fonts.googleapis.com/icon?family=Material+Icons\" rel=\"stylesheet\" />\n\n    <title>Reor Project</title>\n  </head>\n  <body>\n    <div id=\"root\"></div>\n    <script type=\"module\" src=\"/src/main.tsx\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "node",
    "content": ""
  },
  {
    "path": "npx",
    "content": ""
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"reor-project\",\n  \"version\": \"0.2.31\",\n  \"productName\": \"Reor\",\n  \"main\": \"dist-electron/main/index.js\",\n  \"description\": \"An AI note-taking app that runs models locally.\",\n  \"author\": \"Sam L'Huillier\",\n  \"license\": \"AGPL-3.0\",\n  \"private\": false,\n  \"debug\": {\n    \"env\": {\n      \"VITE_DEV_SERVER_URL\": \"http://127.0.0.1:7777/\"\n    }\n  },\n  \"scripts\": {\n    \"predev\": \"node scripts/downloadOllama.js\",\n    \"dev\": \"vite\",\n    \"prebuild\": \"node scripts/downloadOllama.js\",\n    \"build\": \"tsc && vite build && electron-builder\",\n    \"notarize\": \"node scripts/notarize.js\",\n    \"preview\": \"vite preview\",\n    \"pree2e\": \"vite build --mode=test\",\n    \"e2e\": \"playwright test\",\n    \"test\": \"jest\",\n    \"lint\": \"eslint . --ext .ts,.tsx\",\n    \"lint:fix\": \"eslint . --ext .ts,.tsx --fix\",\n    \"prepare\": \"husky\",\n    \"type-check\": \"tsc && vite build\",\n    \"themes-build\": \"npx tamagui generate-themes ./src/components/Editor/ui/src/tamagui/themes/theme.ts ./src/components/Editor/ui/src/tamagui/themes/themes-generated.ts\"\n  },\n  \"dependencies\": {\n    \"@ai-sdk/anthropic\": \"^0.0.47\",\n    \"@ai-sdk/openai\": \"^0.0.53\",\n    \"@anthropic-ai/sdk\": \"0.27.0\",\n    \"@emotion/react\": \"^11.14.0\",\n    \"@emotion/styled\": \"^11.11.0\",\n    \"@floating-ui/react\": \"^0.27.4\",\n    \"@headlessui/react\": \"^1.7.19\",\n    \"@heroicons/react\": \"^2.1.4\",\n    \"@huggingface/hub\": \"^0.12.0\",\n    \"@mantine/core\": \"^6.0.22\",\n    \"@mantine/hooks\": \"^6.0.13\",\n    \"@mantine/styles\": \"^6.0.22\",\n    \"@mantine/utils\": \"^6.0.13\",\n    \"@material-tailwind/react\": \"^2.1.5\",\n    \"@mui/material\": \"^5.15.11\",\n    \"@radix-ui/react-checkbox\": \"^1.1.1\",\n    \"@radix-ui/react-collapsible\": \"^1.1.0\",\n    \"@radix-ui/react-context-menu\": \"^2.2.2\",\n    \"@radix-ui/react-dialog\": \"^1.1.1\",\n    \"@radix-ui/react-dropdown-menu\": \"^2.1.2\",\n    \"@radix-ui/react-hover-card\": \"^1.1.1\",\n    \"@radix-ui/react-icons\": \"^1.3.0\",\n    \"@radix-ui/react-label\": \"^2.1.0\",\n    \"@radix-ui/react-popover\": \"^1.1.1\",\n    \"@radix-ui/react-progress\": \"^1.1.0\",\n    \"@radix-ui/react-scroll-area\": \"^1.2.0\",\n    \"@radix-ui/react-select\": \"^2.1.1\",\n    \"@radix-ui/react-slider\": \"^1.2.0\",\n    \"@radix-ui/react-slot\": \"^1.1.0\",\n    \"@radix-ui/react-switch\": \"^1.1.0\",\n    \"@radix-ui/react-tooltip\": \"^1.1.3\",\n    \"@sentry/electron\": \"^5.11.0\",\n    \"@sentry/react\": \"^9.1.0\",\n    \"@sentry/vite-plugin\": \"^2.22.6\",\n    \"@tamagui/animate\": \"^1.122.6\",\n    \"@tamagui/animate-presence\": \"^1.122.6\",\n    \"@tamagui/animations-css\": \"^1.122.6\",\n    \"@tamagui/aria-hidden\": \"^1.122.6\",\n    \"@tamagui/button\": \"^1.122.6\",\n    \"@tamagui/cli\": \"^1.122.6\",\n    \"@tamagui/compose-refs\": \"^1.122.6\",\n    \"@tamagui/constants\": \"^1.122.6\",\n    \"@tamagui/core\": \"^1.122.6\",\n    \"@tamagui/create-theme\": \"^1.122.6\",\n    \"@tamagui/floating\": \"^1.122.6\",\n    \"@tamagui/focus-scope\": \"^1.122.6\",\n    \"@tamagui/font-inter\": \"^1.122.6\",\n    \"@tamagui/get-token\": \"^1.122.6\",\n    \"@tamagui/helpers\": \"^1.122.6\",\n    \"@tamagui/list-item\": \"^1.122.6\",\n    \"@tamagui/lucide-icons\": \"^1.122.6\",\n    \"@tamagui/polyfill-dev\": \"^1.122.6\",\n    \"@tamagui/portal\": \"^1.122.6\",\n    \"@tamagui/react-native-media-driver\": \"^1.122.6\",\n    \"@tamagui/remove-scroll\": \"^1.122.6\",\n    \"@tamagui/shorthands\": \"^1.122.6\",\n    \"@tamagui/stacks\": \"^1.122.6\",\n    \"@tamagui/text\": \"^1.122.6\",\n    \"@tamagui/theme-builder\": \"^1.122.6\",\n    \"@tamagui/themes\": \"^1.122.6\",\n    \"@tamagui/use-controllable-state\": \"^1.122.6\",\n    \"@tamagui/vite-plugin\": \"^1.122.6\",\n    \"@tamagui/web\": \"^1.122.6\",\n    \"@tippyjs/react\": \"^4.2.6\",\n    \"@tiptap/core\": \"^2.0.3\",\n    \"@tiptap/extension-bold\": \"^2.0.3\",\n    \"@tiptap/extension-code\": \"^2.0.3\",\n    \"@tiptap/extension-dropcursor\": \"^2.0.3\",\n    \"@tiptap/extension-gapcursor\": \"^2.0.3\",\n    \"@tiptap/extension-hard-break\": \"^2.0.3\",\n    \"@tiptap/extension-history\": \"^2.0.3\",\n    \"@tiptap/extension-italic\": \"^2.0.3\",\n    \"@tiptap/extension-link\": \"^2.2.4\",\n    \"@tiptap/extension-strike\": \"^2.0.3\",\n    \"@tiptap/extension-text\": \"^2.0.3\",\n    \"@tiptap/extension-underline\": \"^2.0.3\",\n    \"@tiptap/pm\": \"^2.11.0\",\n    \"@tiptap/react\": \"^2.0.3\",\n    \"@xenova/transformers\": \"^2.8.0\",\n    \"adm-zip\": \"^0.5.15\",\n    \"ai\": \"^3.3.17\",\n    \"apache-arrow\": \"^14.0.2\",\n    \"chokidar\": \"^3.5.3\",\n    \"class-variance-authority\": \"^0.7.0\",\n    \"clsx\": \"^2.1.1\",\n    \"cmdk\": \"^1.0.0\",\n    \"date-fns\": \"^2.30.0\",\n    \"dotenv\": \"^16.4.5\",\n    \"electron-store\": \"^8.1.0\",\n    \"file-type\": \"^19.6.0\",\n    \"hast-util-from-dom\": \"^4.2.0\",\n    \"highlight.js\": \"^11.11.1\",\n    \"js-tiktoken\": \"^1.0.10\",\n    \"langchain\": \"^0.1.5\",\n    \"linkifyjs\": \"^4.2.0\",\n    \"lodash\": \"^4.17.21\",\n    \"lowlight\": \"^3.3.0\",\n    \"lucide-react\": \"^0.435.0\",\n    \"nanoid\": \"^5.1.2\",\n    \"npm\": \"^10.3.0\",\n    \"ollama\": \"^0.4.9\",\n    \"ollama-ai-provider\": \"^0.15.1\",\n    \"openai\": \"^4.20.0\",\n    \"posthog-js\": \"^1.130.2\",\n    \"prosemirror-model\": \"^1.24.1\",\n    \"prosemirror-state\": \"^1.4.3\",\n    \"prosemirror-transform\": \"^1.10.2\",\n    \"prosemirror-view\": \"^1.37.1\",\n    \"react\": \"^18.3.1\",\n    \"react-day-picker\": \"^8.7.1\",\n    \"react-dom\": \"^18.3.1\",\n    \"react-icons\": \"^4.12.0\",\n    \"react-markdown\": \"^9.0.1\",\n    \"react-native\": \"^0.78.0\",\n    \"react-native-svg\": \"^15.11.1\",\n    \"react-resizable-panels\": \"^2.1.6\",\n    \"react-toastify\": \"^10.0.4\",\n    \"react-window\": \"^1.8.10\",\n    \"rehype-parse\": \"^8.0.5\",\n    \"rehype-raw\": \"^7.0.0\",\n    \"rehype-remark\": \"^9.1.2\",\n    \"rehype-stringify\": \"^9.0.4\",\n    \"remark-gfm\": \"^3.0.1\",\n    \"remark-parse\": \"^10.0.2\",\n    \"remark-rehype\": \"^10.1.0\",\n    \"remark-stringify\": \"^10.0.3\",\n    \"remove-markdown\": \"^0.5.0\",\n    \"tailwind-merge\": \"^2.5.2\",\n    \"tailwind-scrollbar\": \"^3.1.0\",\n    \"tailwindcss-animate\": \"^1.0.7\",\n    \"tamagui\": \"^1.122.6\",\n    \"tippy.js\": \"^6.3.7\",\n    \"unified\": \"^11.0.5\",\n    \"unist-util-visit\": \"^5.0.0\",\n    \"use-debounce\": \"^10.0.1\",\n    \"use-prefers-color-scheme\": \"^1.1.3\",\n    \"vaul\": \"^1.0.0\",\n    \"vectordb\": \"0.4.10\",\n    \"yjs\": \"^13.6.23\",\n    \"zod\": \"^3.23.8\"\n  },\n  \"devDependencies\": {\n    \"@electron/notarize\": \"2.3.2\",\n    \"@playwright/test\": \"^1.37.1\",\n    \"@types/jest\": \"^29.5.14\",\n    \"@types/lodash\": \"^4.17.9\",\n    \"@types/react\": \"18.2.19\",\n    \"@types/react-dom\": \"^18.2.7\",\n    \"@types/react-window\": \"^1.8.8\",\n    \"@types/remove-markdown\": \"^0.3.4\",\n    \"@types/tmp\": \"^0.2.6\",\n    \"@typescript-eslint/eslint-plugin\": \"^7.16.0\",\n    \"@typescript-eslint/parser\": \"^7.16.0\",\n    \"@vitejs/plugin-react\": \"^4.0.4\",\n    \"autoprefixer\": \"^10.4.16\",\n    \"electron\": \"^35.1.2\",\n    \"electron-builder\": \"^24.6.3\",\n    \"eslint\": \"^8.56.0\",\n    \"eslint-config-airbnb\": \"^19.0.4\",\n    \"eslint-config-airbnb-typescript\": \"^18.0.0\",\n    \"eslint-config-prettier\": \"^9.1.0\",\n    \"eslint-plugin-import\": \"^2.29.1\",\n    \"eslint-plugin-jsx-a11y\": \"^6.9.0\",\n    \"eslint-plugin-prettier\": \"^5.1.3\",\n    \"eslint-plugin-react\": \"^7.34.4\",\n    \"eslint-plugin-react-hooks\": \"^4.6.2\",\n    \"eslint-plugin-tailwindcss\": \"^3.17.4\",\n    \"eslint-plugin-unused-imports\": \"^4.0.0\",\n    \"husky\": \"^9.0.11\",\n    \"jest\": \"^29.7.0\",\n    \"postcss\": \"^8.4.31\",\n    \"prettier\": \"^3.3.3\",\n    \"sass\": \"^1.71.1\",\n    \"tailwindcss\": \"^3.3.5\",\n    \"tmp\": \"^0.2.1\",\n    \"ts-jest\": \"^29.1.2\",\n    \"typescript\": \"^5.1.6\",\n    \"vite\": \"^4.4.9\",\n    \"vite-plugin-electron\": \"^0.13.0-beta.3\",\n    \"vite-plugin-electron-renderer\": \"^0.14.5\"\n  },\n  \"optionalDependencies\": {\n    \"@lancedb/vectordb-darwin-x64\": \"^0.5.0\",\n    \"@lancedb/vectordb-linux-x64-msvc\": \"0.5.0\",\n    \"@lancedb/vectordb-win32-x64-msvc\": \"^0.5.0\",\n    \"dmg-license\": \"^1.0.11\"\n  },\n  \"engines\": {\n    \"node\": \"^14.18.0 || >=16.0.0\"\n  },\n  \"jest\": {\n    \"preset\": \"ts-jest\",\n    \"testEnvironment\": \"node\",\n    \"transform\": {\n      \"^.+\\\\.tsx?$\": \"ts-jest\"\n    },\n    \"globals\": {\n      \"ts-jest\": {\n        \"tsconfig\": \"tsconfig.json\"\n      }\n    },\n    \"moduleFileExtensions\": [\n      \"ts\",\n      \"tsx\",\n      \"js\",\n      \"jsx\",\n      \"json\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "postcss.config.cjs",
    "content": "module.exports = {\n  plugins: {\n    'postcss-import': {},\n    'tailwindcss/nesting': {},\n    tailwindcss: {},\n    autoprefixer: {},\n  },\n}\n"
  },
  {
    "path": "postcss.config.js",
    "content": "module.exports = {\n  plugins: [\n    require('tailwindcss'),\n    require('autoprefixer'),\n    // Other PostCSS plugins you want to use, if any\n  ],\n}\n"
  },
  {
    "path": "reor-project@0.2.31",
    "content": ""
  },
  {
    "path": "scripts/downloadOllama.js",
    "content": "const fs = require('fs')\nconst https = require('https')\nconst os = require('os')\nconst path = require('path')\nconst AdmZip = require('adm-zip')\nconst tar = require('tar')\n\n// Mapping of OS to binary info\nconst binariesInfo = {\n  darwin: {\n    url: 'https://github.com/ollama/ollama/releases/download/v0.3.12/ollama-darwin',\n    path: '../binaries/darwin/',\n    binaryName: 'ollama-darwin',\n  },\n  linux: {\n    url: 'https://github.com/ollama/ollama/releases/download/v0.3.12/ollama-linux-amd64.tgz',\n    path: '../binaries/linux/',\n    binaryName: 'ollama',\n  },\n  win32: {\n    url: 'https://github.com/ollama/ollama/releases/download/v0.3.12/ollama-windows-amd64.zip',\n    path: '../binaries/win32/',\n    binaryName: 'ollama.exe',\n  },\n}\n\nfunction ensureDirectoryExistence(dirPath) {\n  if (fs.existsSync(dirPath)) {\n    return true\n  }\n  fs.mkdirSync(dirPath, { recursive: true })\n}\n\nfunction setExecutable(filePath) {\n  return new Promise((resolve, reject) => {\n    fs.chmod(filePath, 0o755, (err) => {\n      if (err) reject(err)\n      else {\n        console.log(`Set ${filePath} as executable`)\n        resolve()\n      }\n    })\n  })\n}\n\nfunction removeDirectory(dirPath) {\n  if (fs.existsSync(dirPath)) {\n    fs.readdirSync(dirPath).forEach((file) => {\n      const curPath = path.join(dirPath, file)\n      if (fs.lstatSync(curPath).isDirectory()) {\n        removeDirectory(curPath)\n      } else {\n        fs.unlinkSync(curPath)\n      }\n    })\n    fs.rmdirSync(dirPath)\n  }\n}\n\nfunction downloadAndExtractArchive(\n  fileUrl,\n  extractPath,\n  archiveType,\n  binaryName,\n  redirectCount = 0,\n  timeout = 1000000,\n) {\n  return new Promise((resolve, reject) => {\n    if (redirectCount > 5) {\n      reject(new Error('Too many redirects'))\n      return\n    }\n\n    const tempPath = path.join(os.tmpdir(), `ollama-temp.${archiveType}`)\n    const file = fs.createWriteStream(tempPath)\n    let fileStream = null\n\n    const cleanupAndReject = (error) => {\n      if (fileStream) fileStream.close()\n      fs.unlink(tempPath, (unlinkError) => {\n        if (unlinkError) {\n          console.error(`Failed to delete temporary file ${tempPath}: ${unlinkError.message}`)\n        }\n        reject(error)\n      })\n    }\n\n    const request = https.get(fileUrl, (response) => {\n      if (response.statusCode === 200) {\n        fileStream = response.pipe(file)\n        fileStream.on('finish', () => {\n          fileStream.close(() => {\n            console.log('Download completed, extracting...')\n            try {\n              if (archiveType === 'zip') {\n                const zip = new AdmZip(tempPath)\n                zip.extractAllTo(extractPath, true)\n              } else if (archiveType === 'tgz') {\n                fs.createReadStream(tempPath)\n                  .pipe(tar.x({ C: extractPath }))\n                  .on('finish', () => {\n                    console.log('Extraction completed')\n                    fs.unlink(tempPath, (unlinkError) => {\n                      if (unlinkError) {\n                        console.error(`Failed to delete temporary file ${tempPath}: ${unlinkError.message}`)\n                      }\n                      resolve()\n                    })\n                  })\n                return\n              } else if (archiveType === 'binary') {\n                const destinationPath = path.join(extractPath, binaryName)\n                fs.renameSync(tempPath, destinationPath)\n                console.log(`Binary file moved to ${destinationPath}`)\n                resolve()\n                return\n              }\n              fs.unlink(tempPath, (unlinkError) => {\n                if (unlinkError) {\n                  console.error(`Failed to delete temporary file ${tempPath}: ${unlinkError.message}`)\n                }\n                console.log('Extraction completed')\n\n                // Windows-specific cleanup\n                if (process.platform === 'win32') {\n                  console.log('Performing Windows-specific cleanup...')\n                  const cudaPath = path.join(extractPath, 'cuda')\n                  const rocmPath = path.join(extractPath, 'rocm')\n\n                  removeDirectory(cudaPath)\n                  removeDirectory(rocmPath)\n\n                  console.log('Cleanup completed')\n                }\n\n                resolve()\n              })\n            } catch (error) {\n              cleanupAndReject(new Error(`Failed to extract archive: ${error.message}`))\n            }\n          })\n        })\n      } else if (response.statusCode === 302 || response.statusCode === 301) {\n        file.close(() => {\n          fs.unlink(tempPath, (unlinkError) => {\n            if (unlinkError) {\n              console.error(`Failed to delete temporary file ${tempPath}: ${unlinkError.message}`)\n            }\n            console.log(`Following redirect to: ${response.headers.location}`)\n            downloadAndExtractArchive(\n              response.headers.location,\n              extractPath,\n              archiveType,\n              binaryName,\n              redirectCount + 1,\n              timeout,\n            )\n              .then(resolve)\n              .catch(reject)\n          })\n        })\n      } else {\n        cleanupAndReject(new Error(`Failed to download: ${response.statusCode} ${response.statusMessage}`))\n      }\n    })\n\n    request.on('error', (error) => {\n      cleanupAndReject(new Error(`Network error during download: ${error.message}`))\n    })\n\n    request.on('timeout', () => {\n      request.destroy()\n      cleanupAndReject(new Error(`Download timed out after ${timeout}ms`))\n    })\n\n    request.setTimeout(timeout)\n\n    file.on('error', (error) => {\n      cleanupAndReject(new Error(`File system error: ${error.message}`))\n    })\n  })\n}\n\nasync function downloadIfMissing(platformKey) {\n  const info = binariesInfo[platformKey]\n  const directoryPath = path.join(__dirname, info.path)\n  ensureDirectoryExistence(directoryPath)\n  console.log('Checking', platformKey, 'binary in', directoryPath)\n  const filePath = path.join(directoryPath, info.binaryName)\n\n  try {\n    await fs.promises.access(filePath, fs.constants.F_OK)\n    console.log(`${platformKey} binary already exists`)\n    if (platformKey !== 'win32') {\n      await setExecutable(filePath)\n    }\n  } catch (err) {\n    console.log(`${platformKey} binary not found, downloading...`)\n    try {\n      if (platformKey === 'win32') {\n        await downloadAndExtractArchive(info.url, directoryPath, 'zip', info.binaryName)\n        console.log('Windows binary downloaded and extracted')\n      } else if (platformKey === 'linux') {\n        await downloadAndExtractArchive(info.url, directoryPath, 'tgz', info.binaryName)\n        console.log('Linux binary downloaded and extracted')\n        const extractedBinaryPath = path.join(directoryPath, 'bin', 'ollama')\n        await fs.promises.rename(extractedBinaryPath, filePath)\n        await setExecutable(filePath)\n      } else if (platformKey === 'darwin') {\n        await downloadAndExtractArchive(info.url, directoryPath, 'binary', info.binaryName)\n        console.log('macOS binary downloaded')\n        await setExecutable(filePath)\n      }\n    } catch (error) {\n      console.error(`Error processing ${platformKey} binary:`, error.message)\n      throw error // Re-throw the error to be caught by the caller\n    }\n  }\n}\n\nasync function main() {\n  const platform = os.platform()\n  try {\n    if (process.argv[2] === 'all') {\n      await Promise.all(Object.keys(binariesInfo).map(downloadIfMissing))\n    } else {\n      await downloadIfMissing(platform)\n    }\n    console.log('All operations completed successfully')\n  } catch (error) {\n    console.error('An error occurred during the process:', error.message)\n    process.exit(1) // Exit with an error code\n  }\n}\n\nmain()\n"
  },
  {
    "path": "scripts/notarize.js",
    "content": "/* eslint-disable @typescript-eslint/no-var-requires */\nconst fs = require('fs') // Import the filesystem module\nconst os = require('os')\nconst path = require('path')\nrequire('dotenv').config()\n\nconst { notarize } = require('@electron/notarize')\n\nconst { version } = require('../package.json')\n\n// Recursive function to print directory tree\nfunction printDirectoryTree(startPath, indent = '') {\n  try {\n    const filesAndDirs = fs.readdirSync(startPath)\n\n    filesAndDirs.forEach((file, index) => {\n      const filePath = path.join(startPath, file)\n      const stats = fs.statSync(filePath)\n      const isLast = index === filesAndDirs.length - 1\n  \n      console.log(`${indent}${isLast ? '└──' : '├──'} ${file}`)\n      if (stats.isDirectory()) {\n        printDirectoryTree(filePath, indent + (isLast ? '    ' : '│   '))\n      }\n    })\n  } catch (error) {\n    console.error(`Error reading directory ${startPath}: ${error.message}`)\n  }\n}\n\nasync function notarizeApp() {\n  console.log('Notarizing the app...')\n  const productName = 'Reor'\n\n  // Get the current platform\n  const platform = os.platform()\n  const arch = os.arch()\n\n  // Check if the current platform is macOS and the architecture is Intel or ARM\n  if (platform === 'darwin' && (arch === 'x64' || arch === 'arm64')) {\n    const platformDir = arch === 'x64' ? 'mac-x64' : 'mac-arm64'\n\n    const appPath = path.join(__dirname, '..', 'release', version, platformDir, `${productName}.app`)\n\n    // Check if the app file exists\n    if (fs.existsSync(appPath)) {\n      console.log(`Found ${productName}.app at ${appPath}`)\n      console.log(`Notarizing ${productName}.app`)\n      await notarize({\n        appPath: appPath,\n        teamId: 'ZHJMNQM65Q',\n        appleId: process.env.APPLE_ID,\n        appleIdPassword: process.env.APPLE_APP_SPECIFIC_PASSWORD,\n      })\n      console.log(`Notarization complete for ${productName}.app`)\n    } else {\n      console.error(`Error: ${productName}.app does not exist at ${appPath}`)\n      // Print the tree of files starting from the release directory\n      const releasePath = path.join(__dirname, '..', 'release')\n      console.log(`Directory tree of ${releasePath}:`)\n      printDirectoryTree(releasePath)\n    }\n  } else {\n    console.log('Notarization is only supported on macOS (Intel or ARM).')\n  }\n}\n\nnotarizeApp().catch((error) => {\n  console.error(error)\n  process.exit(1)\n})\n"
  },
  {
    "path": "shared/defaultLLMs.ts",
    "content": "import { LLMConfig } from 'electron/main/electron-store/storeConfig'\n\nexport const openAIDefaultAPIName = 'OpenAI'\nexport const anthropicDefaultAPIName = 'Anthropic'\n\nexport const openAIDefaultLLMs: LLMConfig[] = [\n  {\n    contextLength: 128000,\n    modelName: 'gpt-4o',\n    apiName: openAIDefaultAPIName,\n  },\n  {\n    contextLength: 128000,\n    modelName: 'gpt-4o-mini',\n    apiName: openAIDefaultAPIName,\n  },\n  {\n    contextLength: 16385,\n    modelName: 'gpt-3.5-turbo',\n    apiName: openAIDefaultAPIName,\n  },\n  {\n    contextLength: 128000,\n    modelName: 'gpt-4-turbo',\n    apiName: openAIDefaultAPIName,\n  },\n]\n\nexport const anthropicDefaultLLMs: LLMConfig[] = [\n  {\n    contextLength: 180000,\n    modelName: 'claude-3-5-sonnet-latest',\n    apiName: anthropicDefaultAPIName,\n  },\n  {\n    contextLength: 180000,\n    modelName: 'claude-3-opus-latest',\n    apiName: anthropicDefaultAPIName,\n  },\n  {\n    contextLength: 180000,\n    modelName: 'claude-3-haiku-20240307',\n    apiName: anthropicDefaultAPIName,\n  },\n]\n"
  },
  {
    "path": "shared/utils.ts",
    "content": "import { FileInfoNode } from 'electron/main/filesystem/types'\nimport { ReorChatMessage } from '@/lib/llm/types'\n\nexport const generateChatName = (messages: ReorChatMessage[], userInput?: string): string => {\n  if (userInput) {\n    return userInput.slice(0, 50)\n  }\n  if (!messages || messages.length === 0 || !messages[0].content) {\n    return 'Empty Chat'\n  }\n\n  const firstMsg = messages[0]\n\n  if (firstMsg.visibleContent) {\n    return firstMsg.visibleContent.slice(0, 30)\n  }\n\n  const firstMessage = firstMsg.content\n  if (!firstMessage || firstMessage === '' || typeof firstMessage !== 'string') {\n    return 'Empty Chat'\n  }\n  return firstMessage.slice(0, 30)\n}\n\nexport const isFileNodeDirectory = (fileInfo: FileInfoNode): boolean => fileInfo.children !== undefined\n"
  },
  {
    "path": "src/App.tsx",
    "content": "import React, { useEffect, useState } from 'react'\n\nimport { Portal } from '@headlessui/react'\nimport posthog from 'posthog-js'\nimport { ToastContainer, toast } from 'react-toastify'\n\nimport 'react-toastify/dist/ReactToastify.css'\nimport IndexingProgress from './components/Common/IndexingProgress'\nimport MainPageComponent from './components/MainPage'\nimport InitialSetupSinglePage from './components/Settings/InitialSettingsSinglePage'\nimport { ThemeProvider } from './contexts/ThemeContext'\n\ninterface AppProps {}\n\nconst App: React.FC<AppProps> = () => {\n  const [userHasConfiguredSettingsForIndexing, setUserHasConfiguredSettingsForIndexing] = useState<boolean | undefined>(\n    undefined,\n  )\n\n  const [indexingProgress, setIndexingProgress] = useState<number>(0)\n\n  useEffect(() => {\n    const handleProgressUpdate = (newProgress: number) => {\n      setIndexingProgress(newProgress)\n    }\n    window.ipcRenderer.receive('indexing-progress', handleProgressUpdate)\n  }, [])\n\n  useEffect(() => {\n    const root = window.document.documentElement\n    root.classList.add('dark')\n  }, [])\n\n  useEffect(() => {\n    const initialisePosthog = async () => {\n      if (await window.electronStore.getAnalyticsMode()) {\n        posthog.init('phc_xi4hFToX1cZU657yzge1VW0XImaaRzuvnFUdbAKI8fu', {\n          api_host: 'https://us.i.posthog.com',\n          autocapture: false,\n        })\n        posthog.register({\n          reorAppVersion: await window.electronUtils.getReorAppVersion(),\n        })\n      }\n    }\n    initialisePosthog()\n  }, [])\n\n  useEffect(() => {\n    const handleIndexingError = (error: string) => {\n      toast.error(error, {\n        className: 'mt-5',\n        autoClose: false,\n        closeOnClick: false,\n        draggable: false,\n      })\n      setIndexingProgress(1)\n    }\n    window.ipcRenderer.receive('error-to-display-in-window', handleIndexingError)\n  }, [])\n\n  useEffect(() => {\n    const fetchSettings = async () => {\n      const [initialDirectory, defaultEmbedFunc] = await Promise.all([\n        window.electronStore.getVaultDirectoryForWindow(),\n        window.electronStore.getDefaultEmbeddingModel(),\n      ])\n      const configuedInitialSettings = !!(initialDirectory && defaultEmbedFunc)\n      setUserHasConfiguredSettingsForIndexing(configuedInitialSettings)\n      if (initialDirectory && defaultEmbedFunc) {\n        window.database.indexFilesInDirectory()\n      }\n    }\n\n    fetchSettings()\n  }, [])\n\n  const handleAllInitialSettingsAreReady = () => {\n    // setUserHasConfiguredSettingsForIndexing(true)\n    window.database.indexFilesInDirectory()\n  }\n\n  return (\n    <ThemeProvider>\n      <div className=\"max-h-screen font-sans\">\n        <Portal>\n          <ToastContainer\n            theme=\"dark\"\n            position=\"bottom-right\"\n            autoClose={3000}\n            hideProgressBar={false}\n            closeOnClick\n            pauseOnHover\n            toastClassName=\"text-xs\" // Added max height and overflow\n          />{' '}\n        </Portal>\n        {!userHasConfiguredSettingsForIndexing && userHasConfiguredSettingsForIndexing !== undefined && (\n          <InitialSetupSinglePage readyForIndexing={handleAllInitialSettingsAreReady} />\n        )}\n        {userHasConfiguredSettingsForIndexing && indexingProgress < 1 && (\n          <IndexingProgress indexingProgress={indexingProgress} />\n        )}\n        {userHasConfiguredSettingsForIndexing && indexingProgress >= 1 && <MainPageComponent />}\n      </div>\n    </ThemeProvider>\n  )\n}\n\nexport default App\n"
  },
  {
    "path": "src/components/Chat/ChatConfigComponents/DBSearchFilters.tsx",
    "content": "import React, { useCallback } from 'react'\nimport { Slider } from '@/components/ui/slider'\nimport DateRangePicker from '../../ui/date-picker'\nimport { DatabaseSearchFilters } from '../../../lib/llm/types'\n\ninterface DbSearchFiltersProps {\n  dbSearchFilters: DatabaseSearchFilters\n  onFiltersChange: (newFilters: DatabaseSearchFilters) => void\n}\n\nconst DbSearchFilters: React.FC<DbSearchFiltersProps> = ({ dbSearchFilters, onFiltersChange }) => {\n  const inverseLogScale = (value: number) => Math.round(Math.log(value + 1) * 25)\n  const logScale = (value: number) => Math.round(Math.exp(value / 25) - 1)\n\n  const handleSliderChange = useCallback(\n    (value: number[]) => {\n      const scaledValue = logScale(value[0])\n      onFiltersChange({\n        ...dbSearchFilters,\n        limit: scaledValue,\n      })\n    },\n    [dbSearchFilters, onFiltersChange],\n  )\n\n  const handleDateChange = useCallback(\n    (from: Date | undefined, to: Date | undefined) => {\n      onFiltersChange({\n        ...dbSearchFilters,\n        minDate: from,\n        maxDate: to,\n      })\n    },\n    [dbSearchFilters, onFiltersChange],\n  )\n\n  return (\n    <div className=\"space-y-2 rounded-md border border-foreground p-3\">\n      <div className=\"flex items-center space-x-2\">\n        <Slider\n          defaultValue={[inverseLogScale(dbSearchFilters.limit)]}\n          min={0}\n          max={100}\n          step={1}\n          onValueChange={handleSliderChange}\n        />\n        <div className=\"flex flex-col\">\n          <span className=\"\">{dbSearchFilters.limit} </span>\n          <span className=\"text-xs\">notes will be added to the context window from the initial search</span>\n        </div>\n      </div>\n      <div className=\"flex flex-col items-start\">\n        <span className=\"mb-1 text-sm text-muted-foreground\">Filter search by date (last modified):</span>\n        <DateRangePicker from={dbSearchFilters.minDate} to={dbSearchFilters.maxDate} onDateChange={handleDateChange} />\n      </div>\n    </div>\n  )\n}\n\nexport default DbSearchFilters\n"
  },
  {
    "path": "src/components/Chat/ChatConfigComponents/PromptEditor.tsx",
    "content": "import React, { useState, useEffect, useCallback } from 'react'\nimport { debounce } from 'lodash'\nimport { PromptTemplate } from '../../../lib/llm/types'\nimport { Textarea } from '@/components/ui/textarea'\n\nconst PromptEditor: React.FC<{\n  promptTemplate: PromptTemplate\n  onSave: (newPromptTemplate: PromptTemplate) => void\n}> = ({ promptTemplate, onSave }) => {\n  const [editedSystemPrompt, setEditedSystemPrompt] = useState<string>(\n    promptTemplate.find((prompt) => prompt.role === 'system')?.content || '',\n  )\n\n  // eslint-disable-next-line react-hooks/exhaustive-deps\n  const debouncedSave = useCallback(\n    debounce((newSystemPrompt: string) => {\n      const updatedPromptTemplate = promptTemplate.map((prompt) =>\n        prompt.role === 'system' ? { ...prompt, content: newSystemPrompt } : prompt,\n      )\n      onSave(updatedPromptTemplate)\n    }, 500),\n    [onSave, promptTemplate],\n  )\n\n  useEffect(() => {\n    debouncedSave(editedSystemPrompt)\n  }, [editedSystemPrompt, debouncedSave])\n\n  const updateSystemPrompt = (newContent: string) => {\n    setEditedSystemPrompt(newContent)\n  }\n\n  return (\n    <div className=\"w-[32rem] text-foreground\">\n      <h3 className=\"text-foreground\">Edit System Prompt</h3>\n      <p className=\"text-muted-foreground\">\n        Customize the system prompt for your AI assistant. Use <code>{'{TODAY}'}</code> to feed the model today&apos;s\n        date.\n      </p>\n      <div className=\"grid gap-6 py-4\">\n        <div className=\"flex items-start gap-4\">\n          <Textarea\n            id=\"system-prompt\"\n            value={editedSystemPrompt}\n            onChange={(e) => updateSystemPrompt(e.target.value)}\n            className=\"h-64 w-[32rem] flex-1 border border-solid border-input bg-background text-sm text-muted-foreground\"\n          />\n        </div>\n      </div>\n    </div>\n  )\n}\n\nexport default PromptEditor\n"
  },
  {
    "path": "src/components/Chat/ChatConfigComponents/ToolSelector.tsx",
    "content": "import React, { useState } from 'react'\nimport { ChevronDown, Info, Check } from 'lucide-react'\nimport { ToolDefinition } from '../../../lib/llm/types'\nimport { Button } from '@/components/ui/button'\nimport { cn } from '@/lib/ui'\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip'\nimport { Badge } from '@/components/ui/badge'\n\ninterface ToolSelectorProps {\n  allTools: ToolDefinition[]\n  selectedTools: ToolDefinition[]\n  onToolsChange: (tools: ToolDefinition[]) => void\n}\n\nconst ToolSelector: React.FC<ToolSelectorProps> = ({ allTools, selectedTools, onToolsChange }) => {\n  const [isOpen, setIsOpen] = useState(true)\n\n  const toggleTool = (tool: ToolDefinition) => {\n    const isSelected = selectedTools.some((t) => t.name === tool.name)\n    const newSelectedTools = isSelected ? selectedTools.filter((t) => t.name !== tool.name) : [...selectedTools, tool]\n    onToolsChange(newSelectedTools)\n  }\n\n  return (\n    <div className=\"relative w-32\">\n      <Button\n        variant=\"outline\"\n        role=\"combobox\"\n        aria-expanded={isOpen}\n        className=\"w-full justify-between bg-background text-foreground\"\n        onClick={() => setIsOpen(!isOpen)}\n      >\n        <span className=\"flex items-center gap-1.5\">\n          Tools\n          <Badge variant=\"secondary\" className=\"h-4 px-1 text-[10px] font-normal\">\n            BETA\n          </Badge>\n          <TooltipProvider>\n            <Tooltip delayDuration={0}>\n              <TooltipTrigger asChild>\n                <Info className=\"ml-1 size-3 text-muted-foreground\" />\n              </TooltipTrigger>\n              <TooltipContent\n                side=\"top\"\n                className=\"max-w-[200px] whitespace-normal break-words bg-popover p-2 text-xs text-popover-foreground\"\n              >\n                These are tools that will be available to the LLM to call. The search tool is particularly powerful for\n                allowing the LLM to investigate things agentically in your knowledge base.\n              </TooltipContent>\n            </Tooltip>\n          </TooltipProvider>\n        </span>\n        <ChevronDown\n          className={cn('ml-2 h-4 w-4 shrink-0 transition-transform duration-200', {\n            'transform rotate-180': isOpen,\n          })}\n        />\n      </Button>\n      {isOpen && (\n        <div className=\"absolute mt-1 w-full rounded-md border bg-popover shadow-lg\">\n          <div className=\"py-1\">\n            {allTools.map((tool) => {\n              const isSelected = selectedTools.some((t) => t.name === tool.name)\n              return (\n                <TooltipProvider key={tool.name}>\n                  <Tooltip delayDuration={0}>\n                    <TooltipTrigger asChild>\n                      <div\n                        className={cn(\n                          'flex items-center justify-between px-4 py-2 text-xs cursor-pointer',\n                          'hover:bg-accent hover:text-accent-foreground',\n                          {\n                            'bg-accent/20': isSelected,\n                          },\n                        )}\n                        onClick={() => toggleTool(tool)}\n                      >\n                        <span className={cn('transition-all duration-200', isSelected ? 'font-semibold' : '')}>\n                          {tool.displayName || tool.name}\n                        </span>\n                        {isSelected && <Check className=\"size-4 text-accent-foreground\" />}\n                      </div>\n                    </TooltipTrigger>\n                    <TooltipContent\n                      side=\"left\"\n                      className=\"max-w-[200px] whitespace-normal break-words bg-popover p-2 text-xs text-popover-foreground\"\n                    >\n                      {tool.description || 'No description available'}\n                    </TooltipContent>\n                  </Tooltip>\n                </TooltipProvider>\n              )\n            })}\n          </div>\n          <div className=\"flex items-center justify-between px-4 py-2\">\n            <span className=\"text-xs text-muted-foreground\">\n              {selectedTools.length} {selectedTools.length === 1 ? 'tool' : 'tools'} will be provided to the LLM.\n            </span>\n          </div>\n        </div>\n      )}\n    </div>\n  )\n}\n\nexport default ToolSelector\n"
  },
  {
    "path": "src/components/Chat/ChatConfigComponents/exampleAgents.ts",
    "content": "import { AgentConfig, PromptTemplate } from '../../../lib/llm/types'\n\nconst defaultAgentPromptTemplate: PromptTemplate = [\n  {\n    role: 'system',\n    content: `You are a helpful assistant responding to the user's query. You are operating within the context of the user's personal knowledge base.\n\nHere are some guidelines you must follow:\n- Always respond in the same language as the user's query and context.\n- You may be given context from the user's knowledge base that is relevant to the user's query. If so, please use it.\n- The date and time of the query is {TODAY}.`,\n  },\n  {\n    role: 'user',\n    content: `{QUERY}`,\n  },\n]\n\n// const researchAgentPromptTemplate: PromptTemplate = [\n//   {\n//     role: 'system',\n//     content: `You are a helpful assistant helping a user organize and manage their personal knowledge and notes.\n//   You will answer the user's question and help them with their request.\n//   You can search the knowledge base by using the search tool and create new notes by using the create note tool.`,\n//   },\n//   {\n//     role: 'user',\n//     content: `{QUERY}`,\n//   },\n// ]\n\n// const dailyNoteAgentPromptTemplate: PromptTemplate = [\n//   {\n//     role: 'system',\n//     content: `You are a helpful assistant helping a user organize and manage their personal knowledge and notes.\n// The user will write quick notes about their day to which you will respond with relevant information from things they have written before in that day and (if relevant) information from their knowledge base.\n\n// - Try not to provide advice, nor be verbose.\n// - The focus is entirely on the user and their thoughts, not you or your opinions.\n// - You can use the search tool to find information from the user's knowledge base.\n// - You can use the create note tool to create a new note for the user.\n// - If you deem it necessary, you should motivate the user to be determined and keep working hard.\n// When the user asks, you will create a note for them with all the relevant things they have noted in the day.`,\n//   },\n//   {\n//     role: 'user',\n//     content: `{QUERY}`,\n//   },\n// ]\n\n// const reasoningAgentPromptTemplate: PromptTemplate = [\n//   {\n//     role: 'system',\n//     content: `You an advanced reasoning agent. You think logically and critically and help the user think through their thoughts.`,\n//   },\n//   {\n//     role: 'user',\n//     content: `{QUERY}`,\n//   },\n// ]\nconst exampleAgents: AgentConfig[] = [\n  {\n    files: [],\n    name: 'Default',\n    dbSearchFilters: {\n      limit: 20,\n      minDate: undefined,\n      maxDate: undefined,\n      passFullNoteIntoContext: true,\n    },\n    toolDefinitions: [],\n    promptTemplate: defaultAgentPromptTemplate,\n  },\n  // {\n  //   files: [],\n  //   name: 'Research Agent',\n  //   toolDefinitions: [searchToolDefinition, createNoteToolDefinition],\n  //   promptTemplate: researchAgentPromptTemplate,\n  // },\n  // {\n  //   files: [],\n  //   dbSearchFilters: {\n  //     limit: 15,\n  //     minDate: undefined,\n  //     maxDate: undefined,\n  //   },\n  //   name: 'Daily Note Agent',\n  //   toolDefinitions: [searchToolDefinition, createNoteToolDefinition],\n  //   promptTemplate: dailyNoteAgentPromptTemplate,\n  // },\n  // {\n  //   files: [],\n  //   name: 'Reasoning Agent',\n  //   toolDefinitions: [searchToolDefinition, createNoteToolDefinition],\n  //   promptTemplate: reasoningAgentPromptTemplate,\n  // },\n]\n\nexport default exampleAgents\n"
  },
  {
    "path": "src/components/Chat/ChatInput.tsx",
    "content": "import React from 'react'\n\nimport { PiPaperPlaneRight } from 'react-icons/pi'\nimport { TextArea } from 'tamagui'\nimport { ToggleButton, ToggleThumb } from '@/components/Editor/ui/src/toggle'\nimport { AgentConfig, LoadingState } from '../../lib/llm/types'\nimport { Button } from '../ui/button'\nimport LLMSelectOrButton from '../Settings/LLMSettings/LLMSelectOrButton'\nimport { Label } from '@/components/ui/label'\nimport { useThemeManager } from '@/contexts/ThemeContext'\n\ninterface ChatInputProps {\n  userTextFieldInput: string\n  setUserTextFieldInput: (value: string) => void\n  handleSubmitNewMessage: () => void\n  loadingState: LoadingState\n  selectedLLM: string | undefined\n  setSelectedLLM: (value: string | undefined) => void\n  agentConfig: AgentConfig | undefined\n  setAgentConfig: React.Dispatch<React.SetStateAction<AgentConfig | undefined>>\n}\n\nconst ChatInput: React.FC<ChatInputProps> = ({\n  userTextFieldInput,\n  setUserTextFieldInput,\n  handleSubmitNewMessage,\n  loadingState,\n  selectedLLM,\n  setSelectedLLM,\n  agentConfig,\n  setAgentConfig,\n}) => {\n  const { state } = useThemeManager()\n\n  const handleDbSearchToggle = (checked: boolean) => {\n    setAgentConfig((prevConfig) => {\n      if (!prevConfig) throw new Error('Agent config must be initialized before setting db search filters')\n      return {\n        ...prevConfig,\n        dbSearchFilters: checked\n          ? {\n              limit: 22,\n              minDate: undefined,\n              maxDate: undefined,\n              passFullNoteIntoContext: true,\n            }\n          : undefined,\n      }\n    })\n  }\n\n  return (\n    <div className=\"flex w-full\">\n      <div className=\"z-50 flex w-full flex-col overflow-hidden rounded border-2\">\n        <TextArea\n          value={userTextFieldInput}\n          // @ts-expect-error\n          onKeyPress={(e: KeyboardEvent) => {\n            if (!e.shiftKey && e.key === 'Enter') {\n              e.preventDefault()\n              handleSubmitNewMessage()\n            }\n          }}\n          placeholder=\"What can Reor help you with today?\"\n          onChangeText={(text: string) => setUserTextFieldInput(text)}\n          autoFocus\n          h={100}\n          w=\"100%\"\n          resize=\"none\"\n          bg=\"transparent\"\n          p=\"$4\"\n          color=\"$foreground\"\n          borderWidth={2}\n          borderColor=\"$border\"\n          focusStyle={{\n            borderColor: '$ring',\n            borderWidth: 2,\n          }}\n          fontSize={12}\n        />\n        <div className=\"mx-auto h-px w-[96%] bg-background/20\" />\n        <div className=\"flex h-10 flex-col items-center justify-between gap-2  py-2 md:flex-row md:gap-4\">\n          <div className=\"flex flex-col items-center justify-between rounded-md border-0 py-2 md:flex-row\">\n            <LLMSelectOrButton selectedLLM={selectedLLM} setSelectedLLM={setSelectedLLM} />\n          </div>\n\n          <div className=\"flex\">\n            <div className=\"mr-[-8px] mt-[8px] flex flex-col items-center\">\n              <ToggleButton\n                hybrid={!!agentConfig?.dbSearchFilters}\n                onPress={() => handleDbSearchToggle(!agentConfig?.dbSearchFilters)}\n                aria-checked={!!agentConfig?.dbSearchFilters}\n                role=\"switch\"\n                aria-label=\"Search notes\"\n              >\n                <ToggleThumb hybrid={!!agentConfig?.dbSearchFilters} />\n              </ToggleButton>\n              <Label className=\"mt-0 text-[8px] text-muted-foreground\">Search notes</Label>\n            </div>\n\n            <Button\n              className=\"flex items-center justify-between bg-transparent text-[10px] text-primary hover:bg-transparent hover:text-accent-foreground\"\n              onClick={handleSubmitNewMessage}\n              disabled={loadingState !== 'idle'}\n            >\n              <PiPaperPlaneRight className=\"size-4\" color={state === 'light' ? 'black' : 'white'} />\n            </Button>\n          </div>\n        </div>\n      </div>\n    </div>\n  )\n}\n\nexport default ChatInput\n"
  },
  {
    "path": "src/components/Chat/ChatMessages.tsx",
    "content": "import React, { useState, useRef, useEffect, useCallback } from 'react'\nimport '../../styles/chat.css'\nimport { Spinner, YStack } from 'tamagui'\nimport { Chat, AgentConfig, LoadingState, ReorChatMessage } from '../../lib/llm/types'\nimport ChatInput from './ChatInput'\nimport UserMessage from './MessageComponents/UserMessage'\nimport AssistantMessage from './MessageComponents/AssistantMessage'\nimport SystemMessage from './MessageComponents/SystemMessage'\nimport ChatSources from './MessageComponents/ChatSources'\nimport useLLMConfigs from '@/lib/hooks/use-llm-configs'\nimport useAgentConfig from '@/lib/hooks/use-agent-configs'\nimport { useChatContext } from '@/contexts/ChatContext'\nimport { useContentContext } from '@/contexts/ContentContext'\n\ninterface MessageProps {\n  message: ReorChatMessage\n  index: number\n  currentChat: Chat\n  setCurrentChat: React.Dispatch<React.SetStateAction<Chat | undefined>>\n}\n\nconst Message: React.FC<MessageProps> = ({ message, index, currentChat, setCurrentChat }) => {\n  return (\n    <>\n      {!message.hideMessage && (\n        <>\n          {message.role === 'user' && <UserMessage key={`user-${index}`} message={message} />}\n          {message.role === 'assistant' && (\n            <AssistantMessage\n              key={`assistant-${index}`}\n              message={message}\n              setCurrentChat={setCurrentChat}\n              currentChat={currentChat}\n            />\n          )}\n          {message.role === 'system' && <SystemMessage key={`system-${index}`} message={message} />}\n        </>\n      )}\n      {message.context && <ChatSources key={`context-${index}`} contextItems={message.context} />}\n    </>\n  )\n}\n\ninterface ChatMessagesProps {\n  currentChat: Chat | undefined\n  setCurrentChat: React.Dispatch<React.SetStateAction<Chat | undefined>>\n  loadingState: LoadingState\n  handleNewChatMessage: (llmName: string, userTextFieldInput?: string, agentConfig?: AgentConfig) => void\n}\n\nconst ChatMessages: React.FC<ChatMessagesProps> = ({\n  currentChat,\n  setCurrentChat,\n  handleNewChatMessage,\n  loadingState,\n}) => {\n  const { agentConfig, setAgentConfig } = useAgentConfig()\n  const [userTextFieldInput, setUserTextFieldInput] = useState<string | undefined>()\n  const { defaultLLM, setDefaultLLM } = useLLMConfigs()\n  const [selectedLLM, setSelectedLLM] = useState<string>()\n  const [shouldAutoScroll, setShouldAutoScroll] = useState(true)\n  const chatContainerRef = useRef<HTMLDivElement>(null)\n  const lastMessageRef = useRef<HTMLDivElement>(null)\n  const { showEditor } = useContentContext()\n  const { activePanel } = useChatContext()\n\n  useEffect(() => {\n    setSelectedLLM(defaultLLM)\n  }, [defaultLLM])\n\n  const scrollToBottom = useCallback(() => {\n    if (chatContainerRef.current) {\n      const { scrollHeight, clientHeight } = chatContainerRef.current\n      chatContainerRef.current.scrollTop = scrollHeight - clientHeight\n    }\n  }, [])\n\n  useEffect(() => {\n    if (shouldAutoScroll) {\n      scrollToBottom()\n    }\n  }, [currentChat?.messages, loadingState, shouldAutoScroll, scrollToBottom])\n\n  const handleScroll = () => {\n    if (chatContainerRef.current) {\n      const { scrollTop, scrollHeight, clientHeight } = chatContainerRef.current\n      const isScrolledToBottom = Math.abs(scrollHeight - scrollTop - clientHeight) < 1\n      setShouldAutoScroll(isScrolledToBottom)\n    }\n  }\n\n  const handleSubmitNewMessage = async () => {\n    if (userTextFieldInput) {\n      if (!selectedLLM) {\n        throw new Error('Select an LLM.')\n      }\n      setDefaultLLM(selectedLLM)\n      handleNewChatMessage(selectedLLM, userTextFieldInput, agentConfig)\n      setUserTextFieldInput('')\n      setShouldAutoScroll(true)\n    }\n  }\n\n  useEffect(() => {\n    const observer = new MutationObserver(() => {\n      if (shouldAutoScroll) {\n        scrollToBottom()\n      }\n    })\n\n    if (lastMessageRef.current) {\n      observer.observe(lastMessageRef.current, { childList: true, subtree: true, characterData: true })\n    }\n\n    return () => observer.disconnect()\n  }, [shouldAutoScroll, scrollToBottom])\n\n  return (\n    <YStack flex={1} backgroundColor={activePanel && showEditor ? '$gray3' : '$background'}>\n      <div className=\"grow overflow-auto\" ref={chatContainerRef} onScroll={handleScroll}>\n        <div className=\"flex flex-col items-center gap-3 p-4\">\n          <div className=\"w-full max-w-3xl\">\n            {currentChat &&\n              currentChat.messages &&\n              currentChat.messages.length > 0 &&\n              currentChat.messages.map((message, index) => (\n                // eslint-disable-next-line react/no-array-index-key\n                <div key={index} ref={index === currentChat.messages.length - 1 ? lastMessageRef : null}>\n                  <Message message={message} index={index} currentChat={currentChat} setCurrentChat={setCurrentChat} />\n                </div>\n              ))}\n          </div>\n\n          {loadingState === 'waiting-for-first-token' && (\n            <div className=\"mt-4 flex w-full max-w-3xl items-start gap-6 p-2\">\n              <YStack padding=\"$3\" space=\"$4\" alignItems=\"center\">\n                <Spinner size=\"small\" color=\"$blue9\" />\n              </YStack>\n            </div>\n          )}\n        </div>\n      </div>\n\n      <YStack width=\"100%\" padding=\"$4\">\n        <ChatInput\n          userTextFieldInput={userTextFieldInput ?? ''}\n          setUserTextFieldInput={setUserTextFieldInput}\n          handleSubmitNewMessage={handleSubmitNewMessage}\n          loadingState={loadingState}\n          selectedLLM={selectedLLM}\n          setSelectedLLM={setSelectedLLM}\n          agentConfig={agentConfig}\n          setAgentConfig={setAgentConfig}\n        />\n      </YStack>\n    </YStack>\n  )\n}\n\nexport default ChatMessages\n"
  },
  {
    "path": "src/components/Chat/ChatPrompts.tsx",
    "content": "import React from 'react'\nimport type { FC } from 'react'\n\ninterface Props {\n  promptText: string\n  onClick?: () => void\n}\n\nconst PromptSuggestion: FC<Props> = ({ promptText, onClick }: Props) => (\n  <button\n    className={`mx-1 mt-2\n            h-[100px] max-w-[200px] cursor-pointer rounded-lg border\n             border-solid border-white/50 bg-transparent p-5 text-xs\n            text-white\n            opacity-40 shadow hover:opacity-70`}\n    onClick={onClick}\n    type=\"button\"\n  >\n    {promptText}\n  </button>\n)\n\nexport default PromptSuggestion\n"
  },
  {
    "path": "src/components/Chat/ChatSidebar.tsx",
    "content": "import React, { useState } from 'react'\nimport { IoChatbubbles } from 'react-icons/io5'\nimport { RiChatNewFill, RiArrowDownSLine } from 'react-icons/ri'\nimport { YStack, XStack, SizableText } from 'tamagui'\nimport { useChatContext } from '@/contexts/ChatContext'\nimport { useContentContext } from '@/contexts/ContentContext'\nimport { ChatMetadata } from '../../lib/llm/types'\nimport { ContextMenu, ContextMenuContent, ContextMenuItem, ContextMenuTrigger } from '@/components/ui/context-menu'\n\nexport interface ChatItemProps {\n  chatMetadata: ChatMetadata\n}\n\nexport const ChatItem: React.FC<ChatItemProps> = ({ chatMetadata }) => {\n  const { currentChat, deleteChat } = useChatContext()\n  const { openContent } = useContentContext()\n\n  const isSelected = chatMetadata.id === currentChat?.id\n  const itemClasses = `\n    flex items-center cursor-pointer py-2 px-3 rounded-md font-sans text-xs leading-relaxed\n    transition-colors duration-150 ease-in-out\n    ${chatMetadata.id === currentChat?.id ? 'text-white' : 'text-gray-300'}\n  `\n\n  const handleDeleteChat = () => {\n    // eslint-disable-next-line no-alert\n    const isConfirmed = window.confirm(`Are you sure you want to delete the chat \"${chatMetadata.displayName}\"?`)\n    if (isConfirmed) {\n      deleteChat(chatMetadata.id)\n    }\n  }\n\n  return (\n    <ContextMenu>\n      <ContextMenuTrigger>\n        <XStack\n          backgroundColor={isSelected ? '$gray7' : undefined}\n          gap=\"$2\"\n          alignItems=\"center\"\n          hoverStyle={{\n            backgroundColor: '$gray7',\n          }}\n          onPress={() => openContent(chatMetadata.id)}\n          className={itemClasses}\n        >\n          <IoChatbubbles />\n          <SizableText fontSize={11} fontWeight={500} ellipse className=\"flex-1\">\n            {chatMetadata.displayName}\n          </SizableText>\n        </XStack>\n      </ContextMenuTrigger>\n      <ContextMenuContent>\n        <ContextMenuItem onClick={handleDeleteChat}>Delete Chat</ContextMenuItem>\n      </ContextMenuContent>\n    </ContextMenu>\n  )\n}\n\nexport const ChatSidebar: React.FC = () => {\n  const [isRecentsOpen, setIsRecentsOpen] = useState(true)\n  const dropdownAnimationDelay = 0.02\n\n  const { allChatsMetadata, openNewChat } = useChatContext()\n\n  const toggleRecents = () => setIsRecentsOpen((prev) => !prev)\n\n  return (\n    <YStack backgroundColor=\"$gray3\" className=\"flex h-full flex-col overflow-y-auto px-2 pb-4 pt-2.5\">\n      <div className=\"flex h-full flex-col gap-2\">\n        <div className=\"flex min-h-0 flex-1 flex-col gap-4\">\n          <div className=\"mb-4 flex flex-col gap-6\">\n            <button\n              className=\"flex cursor-pointer items-center justify-center gap-2 rounded-md \n                      border-0 bg-blue-500 py-3 text-white\n                      shadow-md transition-colors duration-200 hover:bg-blue-400 hover:text-gray-200\n                      hover:shadow-lg\"\n              type=\"button\"\n              onClick={() => openNewChat(undefined)}\n            >\n              <RiChatNewFill className=\"text-xl\" />\n              <span className=\"text-xs font-bold\">Start New Chat</span>\n            </button>\n          </div>\n\n          <div className=\"flex-1\">\n            <XStack className=\"flex cursor-pointer items-center justify-between\" onPress={toggleRecents}>\n              <h4 className=\"mb-0 mt-1 text-xs font-medium tracking-wider\">Recents</h4>\n              <RiArrowDownSLine\n                className={`mt-1 transition-transform duration-200 ${!isRecentsOpen ? 'rotate-0' : 'rotate-180'}`}\n              />\n            </XStack>\n            {isRecentsOpen && (\n              <ul className=\"m-0 flex list-none flex-col gap-0.5 p-0\">\n                {allChatsMetadata\n                  .slice()\n                  .sort((a, b) => b.timeOfLastMessage - a.timeOfLastMessage)\n                  .map((chatMetadata, index) => (\n                    <li\n                      key={chatMetadata.id}\n                      style={{ animationDelay: `${index * dropdownAnimationDelay}s` }}\n                      className=\"animate-dropdown-fadeIn\"\n                    >\n                      <ChatItem chatMetadata={chatMetadata} />\n                    </li>\n                  ))}\n              </ul>\n            )}\n          </div>\n        </div>\n      </div>\n    </YStack>\n  )\n}\n"
  },
  {
    "path": "src/components/Chat/MessageComponents/AssistantMessage.tsx",
    "content": "import React, { useCallback, useMemo } from 'react'\nimport { HiOutlinePencilAlt } from 'react-icons/hi'\nimport { toast } from 'react-toastify'\nimport { ToolCallPart } from 'ai'\nimport { FaRegCopy } from 'react-icons/fa'\nimport { YStack, Stack, Text } from 'tamagui'\nimport { Chat, ReorChatMessage } from '../../../lib/llm/types'\nimport { extractMessagePartsFromAssistantMessage, findToolResultMatchingToolCall } from '../../../lib/llm/chat'\nimport { ToolCallComponent } from './ToolCalls'\nimport { useContentContext } from '@/contexts/ContentContext'\nimport { useChatContext } from '@/contexts/ChatContext'\nimport MarkdownRenderer from '@/components/Common/MarkdownRenderer'\nimport { makeAndAddToolResultToMessages } from '../../../lib/llm/tools/utils'\n\ninterface AssistantMessageProps {\n  message: ReorChatMessage\n  setCurrentChat: React.Dispatch<React.SetStateAction<Chat | undefined>>\n  currentChat: Chat\n}\n\nconst AssistantMessage: React.FC<AssistantMessageProps> = ({ message, setCurrentChat, currentChat }) => {\n  if (message.role !== 'assistant') {\n    throw new Error('Message is not an assistant message')\n  }\n  const { openContent } = useContentContext()\n  const { saveChat } = useChatContext()\n\n  const { textParts, toolCalls } = useMemo(() => {\n    return extractMessagePartsFromAssistantMessage(message)\n  }, [message])\n\n  const copyToClipboard = () => {\n    const content = typeof message.content === 'string' ? message.content : JSON.stringify(message.content, null, 2)\n    navigator.clipboard.writeText(content)\n    toast.success('Copied to clipboard!')\n  }\n\n  const createNewNoteFromMessage = async () => {\n    const content = typeof message.content === 'string' ? message.content : JSON.stringify(message.content, null, 2)\n    const title = `${content.substring(0, 20)}...`\n    openContent(title, content)\n  }\n\n  const executeToolCall = useCallback(\n    async (toolCallPart: ToolCallPart) => {\n      const existingToolResult = findToolResultMatchingToolCall(toolCallPart.toolCallId, currentChat.messages)\n      if (existingToolResult) {\n        toast.error('Tool call id already exists')\n        return\n      }\n\n      const updatedMessages = await makeAndAddToolResultToMessages(currentChat.messages, toolCallPart, message)\n\n      setCurrentChat((prevChat) => {\n        if (!prevChat) return prevChat\n        const updatedChat = {\n          ...prevChat,\n          messages: updatedMessages,\n        }\n        saveChat(updatedChat)\n        return updatedChat\n      })\n    },\n    [currentChat, setCurrentChat, saveChat, message],\n  )\n\n  const renderContent = () => {\n    return (\n      <>\n        {textParts.map((text, index) => (\n          <Stack>\n            <Stack>\n              <Text color=\"$color11\">\n                {/* eslint-disable-next-line react/no-array-index-key */}\n                <MarkdownRenderer key={index} content={text} />\n              </Text>\n            </Stack>\n            <div className=\"mt-0 flex\">\n              <YStack\n                hoverStyle={{\n                  backgroundColor: '$gray7',\n                }}\n                cursor=\"pointer\"\n                alignItems=\"center\"\n                justifyContent=\"center\"\n                px={4}\n                borderRadius=\"$1\"\n                onPress={copyToClipboard}\n              >\n                <FaRegCopy color=\"gray\" size={16} className=\"text-gray-200\" title=\"Copy\" />\n              </YStack>\n              <YStack\n                hoverStyle={{\n                  backgroundColor: '$gray7',\n                }}\n                cursor=\"pointer\"\n                alignContent=\"center\"\n                justifyContent=\"center\"\n                px={4}\n                borderRadius=\"$1\"\n                onPress={createNewNoteFromMessage}\n              >\n                <HiOutlinePencilAlt color=\"gray\" size={18} className=\"text-gray-200\" title=\"New Note\" />\n              </YStack>\n            </div>\n          </Stack>\n        ))}\n        {toolCalls.map((toolCall) => (\n          <ToolCallComponent\n            key={toolCall.toolCallId}\n            toolCallPart={toolCall}\n            currentChat={currentChat}\n            executeToolCall={executeToolCall}\n          />\n        ))}\n      </>\n    )\n  }\n\n  return (\n    <Stack marginBottom={7} width=\"100%\">\n      <YStack flex={1}>{renderContent()}</YStack>\n    </Stack>\n  )\n}\n\nexport default AssistantMessage\n"
  },
  {
    "path": "src/components/Chat/MessageComponents/ChatSources.tsx",
    "content": "import React from 'react'\nimport { FileInfoWithContent } from 'electron/main/filesystem/types'\nimport { DBEntry } from 'electron/main/vector-database/schema'\nimport posthog from 'posthog-js'\nimport { Card, XStack, ScrollView } from 'tamagui'\nimport { useContentContext } from '@/contexts/ContentContext'\nimport Tooltip from '@/components/Editor/ui/src/tooltip'\nimport MarkdownRenderer from '@/components/Common/MarkdownRenderer'\nimport { useThemeManager } from '@/contexts/ThemeContext'\n\ninterface ChatSourcesProps {\n  contextItems: FileInfoWithContent[] | DBEntry[]\n}\n\nexport const truncateName = (name: string, maxLength: number) => {\n  if (name.length <= maxLength) return name\n  return `${name.slice(0, maxLength - 3)}...`\n}\n\nconst ChatSources: React.FC<ChatSourcesProps> = ({ contextItems }) => {\n  const { state } = useThemeManager()\n  const { openContent } = useContentContext()\n\n  const isDBEntry = (item: FileInfoWithContent | DBEntry): item is DBEntry => {\n    return 'notepath' in item\n  }\n\n  const getItemName = (item: FileInfoWithContent | DBEntry) => {\n    if (isDBEntry(item)) {\n      return item.notepath.split('/').pop() || ''\n    }\n    return item.name\n  }\n\n  const getItemPath = (item: FileInfoWithContent | DBEntry) => {\n    return isDBEntry(item) ? item.notepath : item.path\n  }\n\n  const getItemContent = (item: FileInfoWithContent | DBEntry) => {\n    return item.content\n  }\n\n  const handleOpenContent = (path: string) => {\n    openContent(path)\n    posthog.capture('open_content_from_chat_sources')\n  }\n\n  if (contextItems.length === 0) {\n    return null\n  }\n\n  return (\n    <div>\n      <div className=\"mb-1 text-sm text-muted-foreground\">Sources:</div>\n\n      <div\n        className={`flex space-x-2 overflow-x-auto p-0 pb-1 scrollbar-thin scrollbar-track-transparent \n          ${state === 'light' ? 'scrollbar-thumb-gray-200' : 'scrollbar-thumb-gray-700'}`}\n      >\n        {contextItems.map((contextItem) => (\n          <XStack key={getItemPath(contextItem)}>\n            <Tooltip content={getItemContent(contextItem)} renderMarkdown placement=\"top\">\n              <Card\n                cursor=\"pointer\"\n                overflow=\"hidden\"\n                borderRadius=\"$4\"\n                borderWidth={1}\n                borderColor=\"$borderColor\"\n                shadowColor=\"$gray7\"\n                shadowRadius=\"$2\"\n                px=\"$3\"\n                hoverStyle={{\n                  shadowRadius: '$4',\n                }}\n                width=\"100%\"\n                onPress={() => handleOpenContent(getItemPath(contextItem))}\n              >\n                <ScrollView maxHeight=\"100px\">\n                  <MarkdownRenderer content={truncateName(getItemName(contextItem), 20)} />\n                </ScrollView>\n              </Card>\n            </Tooltip>\n          </XStack>\n        ))}\n      </div>\n    </div>\n  )\n}\n\nexport default ChatSources\n"
  },
  {
    "path": "src/components/Chat/MessageComponents/SystemMessage.tsx",
    "content": "import React from 'react'\nimport ReactMarkdown from 'react-markdown'\nimport rehypeRaw from 'rehype-raw'\nimport { ReorChatMessage } from '../../../lib/llm/types'\nimport { getDisplayMessage } from '../../../lib/llm/chat'\n\ninterface SystemMessageProps {\n  message: ReorChatMessage\n}\n\nconst SystemMessage: React.FC<SystemMessageProps> = ({ message }) => (\n  <div className=\"mb-4  flex w-full\">\n    <div className=\"w-full flex-col gap-1\">\n      <div className=\"flex grow flex-col px-5 py-2.5\">\n        <ReactMarkdown rehypePlugins={[rehypeRaw]} className=\"max-w-[95%] break-words\">\n          {getDisplayMessage(message)}\n        </ReactMarkdown>\n      </div>\n    </div>\n  </div>\n)\n\nexport default SystemMessage\n"
  },
  {
    "path": "src/components/Chat/MessageComponents/ToolCalls.tsx",
    "content": "import { CoreToolMessage, ToolCallPart } from 'ai'\nimport React, { useState } from 'react'\nimport { FileInfoWithContent } from 'electron/main/filesystem/types'\nimport { ChevronDown, ChevronUp } from 'lucide-react'\nimport { Stack, Text } from 'tamagui'\nimport { Chat } from '../../../lib/llm/types'\nimport ChatSources from './ChatSources'\nimport { findToolResultMatchingToolCall } from '../../../lib/llm/chat'\nimport { Button } from '@/components/ui/button'\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible'\nimport MarkdownRenderer from '@/components/Common/MarkdownRenderer'\n\ninterface ToolCallComponentProps {\n  toolCallPart: ToolCallPart\n  currentChat: Chat\n  executeToolCall: (toolCall: ToolCallPart) => Promise<void>\n}\n\ninterface ToolRendererProps {\n  // eslint-disable-next-line react/no-unused-prop-types\n  toolCallPart: ToolCallPart\n  existingToolResult: CoreToolMessage | undefined\n  // eslint-disable-next-line react/no-unused-prop-types\n  executeToolCall: (toolCall: ToolCallPart) => Promise<void>\n}\n\nconst SearchToolRenderer: React.FC<ToolRendererProps> = ({ existingToolResult }) => {\n  const parseResult = (): FileInfoWithContent[] | null => {\n    if (!existingToolResult || !existingToolResult.content[0].result) return null\n\n    try {\n      const result = existingToolResult.content[0].result as FileInfoWithContent[]\n      // Optional: Add a simple check to ensure it's an array\n      if (!Array.isArray(result)) throw new Error('Result is not an array')\n      return result\n    } catch (error) {\n      return null\n    }\n  }\n\n  const parsedResult = parseResult()\n\n  return (\n    <div className=\"mt-0 rounded border p-0\">\n      {/* <pre className=\"mt-2 overflow-x-auto bg-gray-700 p-2\">\n        <code>{JSON.stringify(toolCallPart.args, null, 2)}</code>\n      </pre> */}\n      {existingToolResult && (\n        <div className=\"\">\n          {parsedResult ? (\n            <ChatSources contextItems={parsedResult} />\n          ) : (\n            <pre className=\"mt-1 overflow-x-auto bg-gray-600 p-2\">\n              <code>{JSON.stringify(existingToolResult.content[0].result, null, 2)}</code>\n            </pre>\n          )}\n        </div>\n      )}\n    </div>\n  )\n}\n\nconst DefaultToolRenderer: React.FC<ToolRendererProps> = ({ toolCallPart, existingToolResult, executeToolCall }) => {\n  const [isOpen, setIsOpen] = useState(true)\n\n  const renderValue = (value: unknown): string => {\n    if (typeof value === 'string') {\n      return value\n    }\n    return JSON.stringify(value, null, 2)\n  }\n\n  return (\n    <Collapsible open={isOpen} onOpenChange={setIsOpen} className=\"mt-2 rounded-md border border-border bg-secondary\">\n      <div className=\"flex items-center justify-between px-3 py-2\">\n        <h4 className=\"text-sm font-medium text-secondary-foreground\">Tool Call: {toolCallPart.toolName}</h4>\n        <CollapsibleTrigger asChild>\n          <Button variant=\"ghost\" size=\"sm\" className=\"size-6 p-0\">\n            {isOpen ? <ChevronUp className=\"size-4\" /> : <ChevronDown className=\"size-4\" />}\n          </Button>\n        </CollapsibleTrigger>\n      </div>\n      <CollapsibleContent>\n        <div className=\"border-t border-border px-3 py-2\">\n          <h5 className=\"mb-1 text-xs font-medium text-muted-foreground\">Arguments:</h5>\n          {Object.entries(toolCallPart.args as Record<string, unknown>).map(([key, value]) => (\n            <Stack key={key} className=\"text-xs\">\n              <Text color=\"$gray11\">\n                <span className=\"font-medium text-secondary-foreground\">{key}:</span>{' '}\n                <MarkdownRenderer content={renderValue(value)} />\n              </Text>\n            </Stack>\n          ))}\n        </div>\n        {existingToolResult && (\n          <Stack className=\"border-t border-border px-3 py-2\">\n            <Text color=\"$gray11\">\n              <h5 className=\"mb-1 text-xs font-medium text-muted-foreground\">Result:</h5>\n              <MarkdownRenderer content={renderValue(existingToolResult.content[0].result)} />\n            </Text>\n          </Stack>\n        )}\n        {!existingToolResult && (\n          <div className=\"border-t border-border px-3 py-2\">\n            <Button onClick={() => executeToolCall(toolCallPart)} size=\"sm\" className=\"w-full text-xs\">\n              Execute Tool Call\n            </Button>\n          </div>\n        )}\n      </CollapsibleContent>\n    </Collapsible>\n  )\n}\n\nexport const ToolCallComponent: React.FC<ToolCallComponentProps> = ({ toolCallPart, currentChat, executeToolCall }) => {\n  const existingToolResult = findToolResultMatchingToolCall(toolCallPart.toolCallId, currentChat.messages)\n\n  return (\n    <>\n      {toolCallPart.toolName === 'search' && (\n        <SearchToolRenderer\n          toolCallPart={toolCallPart}\n          existingToolResult={existingToolResult}\n          executeToolCall={executeToolCall}\n        />\n      )}\n      {toolCallPart.toolName !== 'search' && (\n        <DefaultToolRenderer\n          toolCallPart={toolCallPart}\n          existingToolResult={existingToolResult}\n          executeToolCall={executeToolCall}\n        />\n      )}\n    </>\n  )\n}\n\nexport default ToolCallComponent\n"
  },
  {
    "path": "src/components/Chat/MessageComponents/UserMessage.tsx",
    "content": "import React from 'react'\nimport ReactMarkdown from 'react-markdown'\nimport rehypeRaw from 'rehype-raw'\nimport { SizableText } from 'tamagui'\nimport { ReorChatMessage } from '../../../lib/llm/types'\nimport { getDisplayMessage } from '../../../lib/llm/chat'\n\ninterface UserMessageProps {\n  message: ReorChatMessage\n}\n\nconst UserMessage: React.FC<UserMessageProps> = ({ message }) => {\n  const displayMessage: string | undefined = getDisplayMessage(message)\n  const messageLength = displayMessage?.length || 0\n\n  // Determine font size class based on message length\n  const getFontSizeClass = () => {\n    if (messageLength > 100) return 'text-lg'\n    if (messageLength > 50) return 'text-xl'\n    return 'text-2xl'\n  }\n\n  return (\n    <div className=\"mb-0 flex w-full flex-col gap-1 text-center\">\n      <SizableText fontWeight=\"bold\" color=\"$gray13\">\n        <ReactMarkdown rehypePlugins={[rehypeRaw]} className={`max-w-[95%] break-words ${getFontSizeClass()}`}>\n          {displayMessage}\n        </ReactMarkdown>\n      </SizableText>\n    </div>\n  )\n}\n\nexport default UserMessage\n"
  },
  {
    "path": "src/components/Chat/StartChat.tsx",
    "content": "// import React, { useCallback, useState } from 'react'\n// import { PiPaperPlaneRight } from 'react-icons/pi'\n// import { FiSettings } from 'react-icons/fi'\n// import { AgentConfig, ToolDefinition, DatabaseSearchFilters } from '../../lib/llm/types'\n// import { Button } from '@/components/ui/button'\n// import DbSearchFilters from './ChatConfigComponents/DBSearchFilters'\n// import PromptEditor from './ChatConfigComponents/PromptEditor'\n// import {\n//   Drawer,\n//   DrawerClose,\n//   DrawerContent,\n//   DrawerDescription,\n//   DrawerFooter,\n//   DrawerHeader,\n//   DrawerTitle,\n//   DrawerTrigger,\n// } from '@/components/ui/drawer'\n// import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover'\n// import { Label } from '../ui/label'\n// import { Switch } from '../ui/switch'\n// import { allAvailableToolDefinitions } from '@/lib/llm/tools/tool-definitions'\n// import ToolSelector from './ChatConfigComponents/ToolSelector'\n// import SuggestionCard from '../ui/suggestion-card'\n// import LLMSelectOrButton from '../Settings/LLMSettings/LLMSelectOrButton'\n// import useLLMConfigs from '@/lib/hooks/use-llm-configs'\n// import useAgentConfig from '@/lib/hooks/use-agent-configs'\n\n// interface StartChatProps {\n//   handleNewChatMessage: (llmName: string, userTextFieldInput?: string, chatFilters?: AgentConfig) => void\n// }\n\n// const StartChat: React.FC<StartChatProps> = ({ handleNewChatMessage }) => {\n//   const { defaultLLM, setDefaultLLM } = useLLMConfigs()\n//   const [selectedLLM, setSelectedLLM] = useState<string>(defaultLLM)\n//   const [userTextFieldInput, setUserTextFieldInput] = useState<string>('')\n//   const { agentConfig, setAgentConfig } = useAgentConfig()\n//   const [promptSuggestions] = useState([\n//     'Generate a list of all the thoughts I have written on the topic of AGI',\n//     'Summarize my recent notes on machine learning',\n//     'Based on what I wrote last week, which tasks should I focus on this week?',\n//   ])\n\n//   const sendMessageHandler = async () => {\n//     await setDefaultLLM(selectedLLM)\n//     if (!agentConfig) {\n//       throw new Error('No agent config found')\n//     }\n//     handleNewChatMessage(selectedLLM, userTextFieldInput, { ...agentConfig })\n//   }\n\n//   const handleToolsChange = (tools: ToolDefinition[]) => {\n//     setAgentConfig((prevConfig) => {\n//       if (!prevConfig) throw new Error('Agent config must be initialized before setting tools')\n//       return { ...prevConfig, toolDefinitions: tools }\n//     })\n//   }\n\n//   const handleDbSearchFiltersChange = useCallback(\n//     (newFilters: DatabaseSearchFilters) => {\n//       setAgentConfig((prevConfig) => {\n//         if (!prevConfig) throw new Error('Agent config must be initialized before setting db search filters')\n//         return { ...prevConfig, dbSearchFilters: newFilters }\n//       })\n//     },\n//     [setAgentConfig],\n//   )\n\n//   const handleDbSearchToggle = (checked: boolean) => {\n//     setAgentConfig((prevConfig) => {\n//       if (!prevConfig) throw new Error('Agent config must be initialized before setting db search filters')\n//       return {\n//         ...prevConfig,\n//         dbSearchFilters: checked\n//           ? {\n//               limit: 33,\n//               minDate: undefined,\n//               maxDate: undefined,\n//               passFullNoteIntoContext: true,\n//             }\n//           : undefined,\n//       }\n//     })\n//   }\n\n//   if (!agentConfig) return <div>Loading...</div>\n\n//   return (\n//     <div className=\"relative flex size-full flex-col items-center overflow-y-auto\">\n//       <div className=\"relative flex flex-col text-center lg:top-10 lg:max-w-4xl\">\n//         <div className=\"flex w-full justify-center\">\n//           <img src=\"icon.png\" className=\"size-16\" alt=\"ReorImage\" />\n//         </div>\n//         <h1 className=\"mb-0 text-[28px] text-foreground\">Welcome to your AI second brain.</h1>\n//         <p className=\"mb-10 mt-1 text-muted-foreground\">\n//           Start a chat below. You can provide tools for the LLM to use and customize the system prompt below.{' '}\n//         </p>\n//         <div className=\"flex w-full\">\n//           <div className=\"mr-4\">\n//             <ToolSelector\n//               allTools={allAvailableToolDefinitions}\n//               selectedTools={agentConfig.toolDefinitions}\n//               onToolsChange={handleToolsChange}\n//             />\n//           </div>\n//           <div className=\"flex flex-col\">\n//             <div className=\"z-50 flex flex-col overflow-hidden rounded border-2 border-solid border-border bg-background focus-within:ring-1 focus-within:ring-ring\">\n//               <textarea\n//                 value={userTextFieldInput}\n//                 onKeyDown={(e) => {\n//                   if (!e.shiftKey && e.key === 'Enter') {\n//                     e.preventDefault()\n//                     sendMessageHandler()\n//                   }\n//                 }}\n//                 className=\"h-[100px] w-[600px] resize-none border-0 bg-transparent p-4 text-foreground caret-current focus:outline-none\"\n//                 placeholder=\"What can Reor help you with today?\"\n//                 onChange={(e) => setUserTextFieldInput(e.target.value)}\n//                 // eslint-disable-next-line jsx-a11y/no-autofocus\n//                 autoFocus\n//               />\n//               <div className=\"mx-auto h-px w-[96%] bg-background/20\" />\n//               <div className=\"flex h-10 flex-col items-center justify-between gap-2  py-2 md:flex-row md:gap-4\">\n//                 <div className=\"flex flex-col items-center justify-between rounded-md border-0 py-2 md:flex-row\">\n//                   <LLMSelectOrButton selectedLLM={selectedLLM} setSelectedLLM={setSelectedLLM} />\n//                 </div>\n//                 <div className=\"flex items-center\">\n//                   <Button\n//                     className=\"m-2 flex items-center justify-between gap-2 bg-transparent text-primary hover:bg-transparent hover:text-accent-foreground\"\n//                     onClick={sendMessageHandler}\n//                   >\n//                     <PiPaperPlaneRight className=\"size-4\" />\n//                   </Button>\n//                 </div>\n//               </div>\n//             </div>\n\n//             <div\n//               className=\"mx-auto w-full overflow-hidden rounded-b  border-0 border-solid border-border bg-background transition-all duration-300 ease-in-out\"\n//               style={{ maxHeight: '500px' }}\n//             >\n//               <div className=\"px-4\">\n//                 <div className=\"flex items-center justify-between px-2 py-1\">\n//                   <div className=\"flex items-center space-x-2\">\n//                     <span className=\"text-xs text-muted-foreground\">Edit prompt:</span>\n//                     <Popover>\n//                       <PopoverTrigger asChild>\n//                         <Button size=\"sm\" variant=\"outline\" className=\"bg-border text-primary\">\n//                           Prompt\n//                         </Button>\n//                       </PopoverTrigger>\n//                       <PopoverContent className=\"w-full border border-solid border-muted-foreground bg-background\">\n//                         <PromptEditor\n//                           promptTemplate={agentConfig.promptTemplate}\n//                           onSave={(newPromptTemplate) => {\n//                             setAgentConfig((prevConfig) => {\n//                               if (!prevConfig)\n//                                 throw new Error('Agent config must be initialized before setting prompt template')\n//                               return { ...prevConfig, promptTemplate: newPromptTemplate }\n//                             })\n//                           }}\n//                         />\n//                       </PopoverContent>\n//                     </Popover>\n//                   </div>\n\n//                   <div className=\"flex items-center\">\n//                     <div className=\"flex items-center\">\n//                       <Switch\n//                         id=\"db-search-toggle\"\n//                         checked={!!agentConfig.dbSearchFilters}\n//                         onCheckedChange={handleDbSearchToggle}\n//                         className=\"scale-75\"\n//                       />\n//                       <Label htmlFor=\"db-search-toggle\" className=\"ml-1 text-xs text-muted-foreground\">\n//                         Make knowledge base search\n//                       </Label>\n//                     </div>\n//                     <Drawer>\n//                       <DrawerTrigger asChild>\n//                         <Button\n//                           variant=\"secondary\"\n//                           size=\"icon\"\n//                           className=\"ml-1 size-8 rounded-full\"\n//                           disabled={!agentConfig.dbSearchFilters}\n//                         >\n//                           {' '}\n//                           <FiSettings className=\"size-3\" />\n//                           <span className=\"sr-only\">Open DB search settings</span>\n//                         </Button>\n//                       </DrawerTrigger>\n//                       <DrawerContent>\n//                         <DrawerHeader>\n//                           <DrawerTitle>Database Search Filters</DrawerTitle>\n//                           <DrawerDescription>Configure your database search filters</DrawerDescription>\n//                         </DrawerHeader>\n//                         {agentConfig.dbSearchFilters && (\n//                           <DbSearchFilters\n//                             dbSearchFilters={agentConfig.dbSearchFilters}\n//                             onFiltersChange={handleDbSearchFiltersChange}\n//                           />\n//                         )}\n//                         <DrawerFooter>\n//                           <Button\n//                             onClick={() =>\n//                               setAgentConfig((prev) => {\n//                                 if (!prev) throw new Error('Agent config must be initialized')\n//                                 return { ...prev, dbSearchFilters: prev.dbSearchFilters }\n//                               })\n//                             }\n//                           >\n//                             Save Changes\n//                           </Button>\n//                           <DrawerClose asChild>\n//                             <Button variant=\"outline\">Cancel</Button>\n//                           </DrawerClose>\n//                         </DrawerFooter>\n//                       </DrawerContent>\n//                     </Drawer>\n//                   </div>\n//                 </div>\n//               </div>\n//             </div>\n\n//             {/* New suggestion cards */}\n//             <div className=\"mt-10 grid grid-cols-3 gap-4\">\n//               {promptSuggestions.map((suggestion, index) => (\n//                 <SuggestionCard\n//                   // eslint-disable-next-line react/no-array-index-key\n//                   key={index}\n//                   suggestion={suggestion}\n//                   onClick={() => {\n//                     setUserTextFieldInput(suggestion)\n//                     sendMessageHandler()\n//                   }}\n//                 />\n//               ))}\n//             </div>\n//           </div>\n//         </div>\n//       </div>\n//     </div>\n//   )\n// }\n\n// export default StartChat\n"
  },
  {
    "path": "src/components/Chat/index.tsx",
    "content": "import React, { useCallback, useEffect, useState, useRef } from 'react'\n\nimport { streamText } from 'ai'\nimport { toast } from 'react-toastify'\nimport {\n  appendStringContentToMessages,\n  appendToOrCreateChat,\n  removeUncalledToolsFromMessages,\n} from '../../lib/llm/chat'\n\nimport '../../styles/chat.css'\nimport ChatMessages from './ChatMessages'\nimport { Chat, AgentConfig, LoadingState } from '../../lib/llm/types'\nimport { useChatContext } from '@/contexts/ChatContext'\nimport resolveLLMClient from '@/lib/llm/client'\nimport { appendToolCallsAndAutoExecuteTools, convertToolConfigToZodSchema } from '../../lib/llm/tools/utils'\n\nconst ChatComponent: React.FC = () => {\n  const [loadingState, setLoadingState] = useState<LoadingState>('idle')\n  const containerRef = useRef<HTMLDivElement>(null)\n  const { currentChat, setCurrentChat, saveChat } = useChatContext()\n  const abortControllerRef = useRef<AbortController | null>(null)\n\n  useEffect(() => {\n    const fetchChat = async () => {\n      if (abortControllerRef.current) {\n        abortControllerRef.current.abort()\n      }\n      setLoadingState('idle')\n    }\n    fetchChat()\n  }, [currentChat?.id, saveChat])\n\n  const handleNewChatMessage = useCallback(\n    async (chat: Chat | undefined, llmName: string, userTextFieldInput?: string, agentConfig?: AgentConfig) => {\n      let outputChat: Chat | undefined\n      try {\n        if (!userTextFieldInput?.trim() && (!chat || chat.messages.length === 0)) {\n          return\n        }\n\n        outputChat = userTextFieldInput?.trim()\n          ? await appendToOrCreateChat(chat, userTextFieldInput, agentConfig)\n          : chat\n\n        if (!outputChat) {\n          return\n        }\n\n        setCurrentChat(outputChat)\n        await saveChat(outputChat)\n\n        const llmClient = await resolveLLMClient(llmName)\n        abortControllerRef.current = new AbortController()\n        const toolsZodSchema = Object.assign({}, ...outputChat.toolDefinitions.map(convertToolConfigToZodSchema))\n        setLoadingState('waiting-for-first-token')\n        const { textStream, toolCalls } = await streamText({\n          model: llmClient,\n          messages: removeUncalledToolsFromMessages(outputChat.messages),\n          tools: toolsZodSchema,\n          abortSignal: abortControllerRef.current.signal,\n        })\n\n        for await (const text of textStream) {\n          if (abortControllerRef.current.signal.aborted) {\n            return\n          }\n\n          outputChat = {\n            ...outputChat,\n            messages: appendStringContentToMessages(outputChat.messages || [], text),\n          }\n          setCurrentChat(outputChat)\n          setLoadingState('generating')\n        }\n\n        if (!abortControllerRef.current.signal.aborted) {\n          if (agentConfig) {\n            window.electronStore.setAgentConfig(agentConfig)\n          }\n          const { messages: outputMessages, allToolCallsHaveBeenExecuted } = await appendToolCallsAndAutoExecuteTools(\n            outputChat.messages,\n            outputChat.toolDefinitions,\n            await toolCalls,\n          )\n          outputChat.messages = outputMessages\n          setCurrentChat(outputChat)\n          await saveChat(outputChat)\n          if (allToolCallsHaveBeenExecuted) {\n            handleNewChatMessage(outputChat, llmName, undefined, agentConfig)\n          }\n        }\n\n        setLoadingState('idle')\n      } catch (error) {\n        if (error instanceof Error && error.name === 'AI_APICallError' && error.message.includes('Bad Request')) {\n          if (agentConfig && agentConfig?.toolDefinitions.length > 0 && outputChat) {\n            toast.info(\n              <div>\n                This model does not support tool calling. To use tool calling, please download a model from this page:{' '}\n                <a href=\"https://ollama.com/search?c=tools\" target=\"_blank\" rel=\"noopener noreferrer\">\n                  https://ollama.com/search?c=tools\n                </a>{' '}\n                or use a cloud LLM like GPT-4o or Claude.\n              </div>,\n              {\n                autoClose: false,\n                closeOnClick: false,\n              },\n            )\n            const agentWithoutTools = { ...agentConfig, toolDefinitions: [] }\n            outputChat.toolDefinitions = []\n            handleNewChatMessage(outputChat, llmName, undefined, agentWithoutTools)\n            return\n          }\n        }\n        // so here we could check the error message\n        setLoadingState('idle')\n        throw error\n      } finally {\n        abortControllerRef.current = null\n      }\n    },\n    [saveChat, setCurrentChat],\n  )\n\n  return (\n    <div ref={containerRef} className=\"flex size-full items-center justify-center\">\n      <div className=\"mx-auto flex size-full flex-col overflow-hidden\">\n        <ChatMessages\n          currentChat={currentChat}\n          setCurrentChat={setCurrentChat}\n          loadingState={loadingState}\n          handleNewChatMessage={(llmName: string, userTextFieldInput?: string, agentConfig?: AgentConfig) =>\n            handleNewChatMessage(currentChat, llmName, userTextFieldInput, agentConfig)\n          }\n        />\n      </div>\n    </div>\n  )\n}\n\nexport default ChatComponent\n"
  },
  {
    "path": "src/components/Common/CommonModals.tsx",
    "content": "import React from 'react'\n\nimport { useModalOpeners } from '@/contexts/ModalContext'\nimport SettingsModal from '../Settings/Settings'\nimport { useFileContext } from '@/contexts/FileContext'\nimport RenameNoteModal from '../File/RenameNote'\nimport RenameDirModal from '../File/RenameDirectory'\nimport NewDirectoryComponent from '../File/NewDirectory'\n\nconst CommonModals: React.FC = () => {\n  const { isNewDirectoryModalOpen, setIsNewDirectoryModalOpen, isSettingsModalOpen, setIsSettingsModalOpen } =\n    useModalOpeners()\n\n  const { noteToBeRenamed, fileDirToBeRenamed } = useFileContext()\n\n  return (\n    <div>\n      <NewDirectoryComponent isOpen={isNewDirectoryModalOpen} onClose={() => setIsNewDirectoryModalOpen(false)} />\n      {noteToBeRenamed && <RenameNoteModal />}\n      {fileDirToBeRenamed && <RenameDirModal />}\n      <SettingsModal isOpen={isSettingsModalOpen} onClose={() => setIsSettingsModalOpen(false)} />\n    </div>\n  )\n}\n\nexport default CommonModals\n"
  },
  {
    "path": "src/components/Common/EmptyPage.tsx",
    "content": "import React from 'react'\nimport { SizableText, YStack } from 'tamagui'\nimport { File } from '@tamagui/lucide-icons'\nimport { useContentContext } from '@/contexts/ContentContext'\nimport { useModalOpeners } from '@/contexts/ModalContext'\n\nconst EmptyPage: React.FC = () => {\n  const { setIsNewDirectoryModalOpen } = useModalOpeners()\n  const { createUntitledNote } = useContentContext()\n\n  return (\n    <div className=\"flex size-full flex-col items-center justify-center\">\n      <div className=\"flex flex-col items-center\">\n        <div className=\"mb-2 opacity-10\">\n          <File size={168} color=\"$brand3\" />\n        </div>\n        <SizableText color=\"$gray11\" size=\"$6\" fontWeight={400} className=\"mb-0\">\n          No File Selected!\n        </SizableText>\n        <SizableText color=\"$gray11\" paddingTop={6}>\n          Open a file and get back to work!\n        </SizableText>\n        <YStack paddingTop={20}>\n          <button\n            className=\"cursor-pointer border-0 bg-transparent pb-1 pr-0 text-left text-2lg text-blue-500\"\n            onClick={() => createUntitledNote()}\n            type=\"button\"\n          >\n            Create a File\n          </button>\n          <button\n            className=\"cursor-pointer border-0 bg-transparent pb-1 pr-0 text-left text-2lg text-blue-500\"\n            onClick={() => setIsNewDirectoryModalOpen(true)}\n            type=\"button\"\n          >\n            Create a Folder\n          </button>\n        </YStack>\n      </div>\n    </div>\n  )\n}\n\nexport default EmptyPage\n"
  },
  {
    "path": "src/components/Common/ExternalLink.tsx",
    "content": "import React from 'react'\n\ninterface ExternalLinkProps {\n  href: string\n  children: React.ReactNode\n  className?: string // Add optional className prop\n}\n\nconst ExternalLink: React.FC<ExternalLinkProps> = ({ href: url, children, className = '' }) => {\n  const handleLinkClick = (e: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => {\n    e.preventDefault()\n    window.electronUtils.openExternal(url)\n  }\n\n  return (\n    <a href={url} onClick={handleLinkClick} className={className}>\n      {children}\n    </a>\n  )\n}\n\nexport default ExternalLink\n"
  },
  {
    "path": "src/components/Common/IndexingProgress.tsx",
    "content": "import React, { useEffect, useState } from 'react'\nimport { YStack, H2, SizableText } from 'tamagui'\n\nimport CircularProgress from '@mui/material/CircularProgress'\n\nimport ReorModal from './Modal'\n\ninterface IndexingProgressProps {\n  indexingProgress: number\n}\n\nconst IndexingProgress: React.FC<IndexingProgressProps> = ({ indexingProgress }) => {\n  const [startTime, setStartTime] = useState<number>(Date.now())\n  const [eta, setEta] = useState<string>('Initializing...')\n\n  useEffect(() => {\n    setStartTime(Date.now())\n  }, [])\n\n  useEffect(() => {\n    if (indexingProgress > 0) {\n      const elapsedTime = Date.now() - startTime\n      const estimatedTotalTime = elapsedTime / indexingProgress\n      const remainingTime = estimatedTotalTime - elapsedTime\n\n      const etaMinutes = Math.floor(remainingTime / 60000)\n      const etaSeconds = Math.floor((remainingTime % 60000) / 1000)\n      setEta(`${etaMinutes}m ${etaSeconds}s remaining`)\n    }\n  }, [indexingProgress, startTime])\n\n  return (\n    <ReorModal isOpen onClose={() => {}} hideCloseButton>\n      <YStack className=\"mx-3 mb-3 mt-2 h-[100px] w-[500px]\">\n        <H2 fontWeight=\"semi-bold\" fontSize=\"xl\" color=\"$gray13\">\n          {indexingProgress === 0 ? 'Initializing vector database...' : 'Indexing files...'}\n        </H2>\n        <div\n          className={`mb-2 h-4 w-full overflow-hidden rounded-full border-2 border-gray-400 ${\n            indexingProgress !== 0 ? 'bg-neutral-800' : ''\n          }`}\n        >\n          <div\n            className=\"h-full bg-blue-600 transition-all duration-300 ease-out\"\n            style={{ width: `${indexingProgress * 100}%` }}\n          />\n        </div>\n        <div className=\"flex\">\n          {indexingProgress === 0 && <CircularProgress size={20} thickness={7} className=\"mr-2\" />}\n\n          <SizableText fontSize={14} color=\"$gray13\">\n            {indexingProgress > 0 && <>{Math.round(indexingProgress * 100)}% -</>} {eta}\n          </SizableText>\n        </div>\n      </YStack>\n    </ReorModal>\n  )\n}\n\nexport default IndexingProgress\n"
  },
  {
    "path": "src/components/Common/MarkdownRenderer.tsx",
    "content": "import React from 'react'\nimport ReactMarkdown from 'react-markdown'\nimport rehypeRaw from 'rehype-raw'\n\ninterface MarkdownRendererProps {\n  content: string\n}\n\n// Wrapper to ReactMarkdown with useTheme for dynamic themeing\nconst MarkdownRenderer: React.FC<MarkdownRendererProps> = ({ content }) => {\n  return (\n    <ReactMarkdown\n      className=\"overflow-hidden whitespace-normal break-words text-sm leading-relaxed\"\n      rehypePlugins={[rehypeRaw]}\n    >\n      {content}\n    </ReactMarkdown>\n  )\n}\n\nexport default MarkdownRenderer\n"
  },
  {
    "path": "src/components/Common/Modal.tsx",
    "content": "import React, { useRef } from 'react'\nimport ReactDOM from 'react-dom'\nimport { YStack, XStack } from '@tamagui/stacks'\nimport { X } from '@tamagui/lucide-icons'\n\ninterface ModalProps {\n  isOpen: boolean\n  onClose: () => void\n  children: React.ReactNode\n  hideCloseButton?: boolean\n}\n\nconst ReorModal: React.FC<ModalProps> = ({ isOpen, onClose, children, hideCloseButton }) => {\n  const modalRef = useRef<HTMLDivElement>(null)\n\n  if (!isOpen) {\n    return null\n  }\n\n  const handleBackdropClick = (event: React.MouseEvent) => {\n    if (modalRef.current && !modalRef.current.contains(event.target as Node)) {\n      onClose()\n    }\n  }\n\n  const modalContent = (\n    <YStack\n      position=\"absolute\"\n      top={0}\n      left={0}\n      right={0}\n      bottom={0}\n      alignItems=\"center\"\n      justifyContent=\"center\"\n      backgroundColor=\"rgba(0, 0, 0, 0.4)\"\n      height=\"100vh\"\n      // @ts-ignore\n      onPress={handleBackdropClick}\n      zIndex={9999}\n    >\n      <YStack\n        ref={modalRef}\n        borderRadius=\"$4\"\n        borderWidth={1}\n        borderColor=\"$gray7\"\n        backgroundColor=\"$background\"\n        shadowColor=\"$shadowColor\"\n        shadowOpacity={0.5}\n        shadowRadius={10}\n        padding=\"$4\"\n        onPress={(e: any) => e.stopPropagation()}\n      >\n        {!hideCloseButton && (\n          <XStack position=\"absolute\" top={10} right={15}>\n            <button type=\"button\" onClick={onClose} style={{ background: 'transparent', border: 'none' }}>\n              <span style={{ fontSize: 24, cursor: 'pointer' }}>\n                <X size={18} />\n              </span>\n            </button>\n          </XStack>\n        )}\n        {children}\n      </YStack>\n    </YStack>\n  )\n\n  return ReactDOM.createPortal(modalContent, document.body)\n}\n\nexport default ReorModal\n"
  },
  {
    "path": "src/components/Common/ResizableComponent.tsx",
    "content": "import React, { useState, useCallback, useEffect, CSSProperties } from 'react'\n\ninterface ResizableComponentProps {\n  children: React.ReactNode\n  initialWidth?: number\n  resizeSide: 'left' | 'right' | 'both'\n}\n\nconst ResizableComponent: React.FC<ResizableComponentProps> = ({\n  children,\n  initialWidth = 200, // Default value if not provided\n  resizeSide,\n}) => {\n  const [width, setWidth] = useState<number>(initialWidth)\n  const [isDragging, setIsDragging] = useState<boolean>(false)\n\n  const startDragging = useCallback((e: React.MouseEvent<HTMLDivElement>) => {\n    e.preventDefault()\n    setIsDragging(true)\n  }, [])\n\n  const onDrag = useCallback(\n    (e: MouseEvent) => {\n      if (isDragging) {\n        const deltaWidth = resizeSide === 'left' ? -e.movementX : e.movementX\n        setWidth((prevWidth) => prevWidth + deltaWidth)\n      }\n    },\n    [isDragging, resizeSide],\n  )\n\n  const stopDragging = useCallback(() => {\n    setIsDragging(false)\n  }, [])\n\n  useEffect(() => {\n    if (isDragging) {\n      window.addEventListener('mousemove', onDrag)\n      window.addEventListener('mouseup', stopDragging)\n      return () => {\n        window.removeEventListener('mousemove', onDrag)\n        window.removeEventListener('mouseup', stopDragging)\n      }\n    }\n    return undefined\n  }, [isDragging, onDrag, stopDragging])\n\n  const getResizeHandleStyle = (): CSSProperties => ({\n    width: '2.5px', // this needs to be smaller than the width of the scrollbar in css.\n    cursor: 'ew-resize',\n    position: 'absolute',\n    top: 0,\n    bottom: 0,\n    ...(resizeSide === 'left' && { left: 0 }),\n    ...(resizeSide === 'right' && { right: 0 }),\n    ...(resizeSide === 'both' && { left: 0, right: 0 }),\n  })\n\n  const resizeHandleStyle = getResizeHandleStyle()\n\n  return (\n    <div\n      style={{\n        width: `${width}px`,\n        resize: 'none',\n        overflow: 'auto',\n        position: 'relative',\n        height: '100%',\n      }}\n      onMouseDown={resizeSide === 'both' ? startDragging : undefined}\n    >\n      <div style={{ width: '100%', height: '100%' }}>{children}</div>\n      {resizeSide !== 'both' && <div style={resizeHandleStyle} onMouseDown={startDragging} />}\n    </div>\n  )\n}\n\nexport default ResizableComponent\n"
  },
  {
    "path": "src/components/Editor/BacklinkExtension.tsx",
    "content": "import { Extension } from '@tiptap/core'\nimport { Plugin, PluginKey, TextSelection } from '@tiptap/pm/state'\nimport { Decoration, DecorationSet } from '@tiptap/pm/view'\n\nimport { SuggestionsState } from './BacklinkSuggestionsDisplay'\n\nconst backlinkPlugin = (updateSuggestionsState: (state: SuggestionsState | null) => void) => {\n  let hideTimeout: NodeJS.Timeout | null = null\n\n  return new Plugin({\n    key: new PluginKey('backlinks'),\n    state: {\n      init(_, { doc }) {\n        return DecorationSet.create(doc, [])\n      },\n      apply(tr, set) {\n        return set.map(tr.mapping, tr.doc)\n      },\n    },\n    view() {\n      return {\n        update: (view) => {\n          const { state } = view\n          const { doc, selection } = state\n          const { from } = selection\n\n          if (hideTimeout) {\n            clearTimeout(hideTimeout)\n          }\n\n          if (!view.hasFocus()) {\n            hideTimeout = setTimeout(() => {\n              updateSuggestionsState(null)\n            }, 1000)\n            return\n          }\n\n          const textBeforeCursor = doc.textBetween(0, from, '\\n')\n          const lastOpeningBracketIndex = textBeforeCursor.lastIndexOf('[[')\n\n          if (lastOpeningBracketIndex === -1 || textBeforeCursor.lastIndexOf(']]') > lastOpeningBracketIndex) {\n            updateSuggestionsState(null)\n            return\n          }\n\n          const textToLeft = textBeforeCursor.slice(lastOpeningBracketIndex + 2, from)\n\n          const coords = view.coordsAtPos(from)\n          coords.left += 5\n          updateSuggestionsState({\n            textWithinBrackets: textToLeft,\n            position: coords,\n            onSelect: (selectedSuggestion) => {\n              const { tr } = view.state\n              const textAfterCursor = doc.textBetween(from, doc.content.size, '\\n')\n              const closingBracketIndex = textAfterCursor.indexOf(']]')\n\n              if (closingBracketIndex !== -1) {\n                tr.replaceWith(\n                  from - textToLeft.length,\n                  from + closingBracketIndex + 2,\n                  view.state.schema.text(`${selectedSuggestion}]]`),\n                )\n                view.dispatch(tr)\n                updateSuggestionsState(null)\n              }\n            },\n          })\n        },\n        destroy: () => {\n          if (hideTimeout) {\n            clearTimeout(hideTimeout)\n          }\n        },\n      }\n    },\n\n    props: {\n      decorations(state) {\n        const decorations: Decoration[] = []\n        const regex = /(\\[\\[)(.*?)(\\]\\])/g\n        const { doc, selection } = state\n        const selectionStart = selection.from\n        const selectionEnd = selection.to\n\n        doc.descendants((node, pos) => {\n          if (node.isText) {\n            while (node.text) {\n              const match = regex.exec(node.text)\n              if (match === null) break\n              const start = pos + match.index\n              const end = start + match[0].length\n              const backlinkStart = start + match[1].length\n              const backlinkEnd = end - match[3].length\n              const withinSelectedRange = start <= selectionEnd && end >= selectionStart\n\n              const bracketsStyle = withinSelectedRange ? 'color: inherit;' : 'display: none;'\n              decorations.push(\n                Decoration.inline(start, backlinkStart, {\n                  style: bracketsStyle,\n                }),\n              )\n              decorations.push(Decoration.inline(backlinkEnd, end, { style: bracketsStyle }))\n\n              decorations.push(\n                Decoration.inline(backlinkStart, backlinkEnd, {\n                  style: 'color: #92c8fc; text-decoration: underline; cursor: pointer;',\n                  'data-backlink': 'true',\n                }),\n              )\n            }\n          }\n        })\n\n        return DecorationSet.create(doc, decorations)\n      },\n      handleDOMEvents: {\n        keydown: (view, event) => {\n          if (event.key === '[') {\n            const { state, dispatch } = view\n            const { selection } = state\n            const { from } = selection\n\n            const transaction = state.tr.insertText(']', from)\n            const newSelection = TextSelection.create(transaction.doc, from, from)\n\n            transaction.setSelection(newSelection)\n\n            dispatch(transaction)\n\n            return true\n          }\n\n          return false\n        },\n        blur: () => {\n          hideTimeout = setTimeout(() => {\n            updateSuggestionsState(null)\n          }, 500)\n          return true\n        },\n      },\n    },\n  })\n}\n\nexport const BacklinkExtension = (updateSuggestionsState: (state: SuggestionsState | null) => void) =>\n  Extension.create({\n    name: 'backlink',\n\n    addProseMirrorPlugins() {\n      return [backlinkPlugin(updateSuggestionsState)]\n    },\n  })\n\nexport default BacklinkExtension\n"
  },
  {
    "path": "src/components/Editor/BacklinkSuggestionsDisplay.tsx",
    "content": "/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */\nimport React, { useRef, useEffect, useState, useMemo } from 'react'\n\nimport posthog from 'posthog-js'\n\nimport { removeFileExtension } from '@/lib/file'\n\nexport interface SuggestionsState {\n  textWithinBrackets: string\n  position: { top: number; left: number }\n  onSelect: (suggestion: string) => void\n}\n\nexport interface SuggestionsDisplayProps {\n  suggestionsState: SuggestionsState\n  suggestions: string[]\n  maxWidth?: string\n}\n\nconst InEditorBacklinkSuggestionsDisplay: React.FC<SuggestionsDisplayProps> = ({\n  suggestionsState,\n  suggestions,\n  maxWidth = 'max-w-sm',\n}) => {\n  const suggestionsRef = useRef<HTMLDivElement | null>(null)\n  const [layout, setLayout] = useState({\n    top: -9999,\n    left: -9999,\n    display: 'none',\n  })\n\n  const filteredSuggestions = useMemo(() => {\n    if (!suggestionsState.textWithinBrackets) return []\n    const lowerCaseText = suggestionsState.textWithinBrackets.toLowerCase()\n    return suggestions\n      .filter((suggestion) => suggestion.toLowerCase().includes(lowerCaseText))\n      .map(removeFileExtension)\n      .slice(0, 5)\n  }, [suggestions, suggestionsState.textWithinBrackets])\n\n  useEffect(() => {\n    if (!suggestionsState.position || filteredSuggestions.length === 0 || !suggestionsRef.current) {\n      return\n    }\n    const { top, left } = suggestionsState.position\n    const { height } = suggestionsRef.current.getBoundingClientRect()\n    const viewportHeight = window.innerHeight\n    const shouldDisplayAbove = top + height > viewportHeight && top > height\n\n    setLayout({\n      top: shouldDisplayAbove ? top - height : top,\n      left,\n      display: 'block',\n    })\n  }, [suggestionsState.position, filteredSuggestions])\n\n  if (filteredSuggestions.length === 0) return null\n\n  return (\n    <div\n      ref={suggestionsRef}\n      className={`absolute rounded bg-white text-black ${maxWidth} z-50 whitespace-normal  break-words border border-black`}\n      style={{\n        left: `${layout.left}px`,\n        top: `${layout.top}px`,\n        display: layout.display,\n      }}\n    >\n      <ul className=\"m-0 list-none p-0\">\n        {filteredSuggestions.map((suggestion, index) => (\n          <li\n            key={suggestion} // Use a unique id property from the suggestion\n            className=\"cursor-pointer rounded p-1 text-sm hover:bg-gray-100\"\n            onClick={() => {\n              posthog.capture('select_backlink_suggestion', {\n                rank: index + 1,\n              })\n              suggestionsState.onSelect?.(suggestion)\n            }}\n          >\n            {suggestion}\n          </li>\n        ))}\n      </ul>\n    </div>\n  )\n}\n\nexport default InEditorBacklinkSuggestionsDisplay\n"
  },
  {
    "path": "src/components/Editor/EditorManager.tsx",
    "content": "import React, { useEffect, useState } from 'react'\nimport { YStack } from 'tamagui'\nimport InEditorBacklinkSuggestionsDisplay from './BacklinkSuggestionsDisplay'\nimport { useFileContext } from '@/contexts/FileContext'\nimport { BlockNoteView, FormattingToolbarPositioner, SlashMenuPositioner, SideMenuPositioner } from '@/lib/blocknote'\nimport SearchBar from './Search/SearchBar'\n\nconst EditorManager: React.FC = () => {\n  const [editorFlex, setEditorFlex] = useState(true)\n\n  const { editor, suggestionsState, vaultFilesFlattened } = useFileContext()\n  const [showDocumentStats, setShowDocumentStats] = useState(false)\n\n  useEffect(() => {\n    const initEditorContentCenter = async () => {\n      const isCenter = await window.electronStore.getEditorFlexCenter()\n      setEditorFlex(isCenter)\n    }\n\n    const handleEditorChange = (event: any, editorFlexCenter: boolean) => {\n      setEditorFlex(editorFlexCenter)\n    }\n\n    initEditorContentCenter()\n    window.ipcRenderer.on('editor-flex-center-changed', handleEditorChange)\n  }, [])\n\n  useEffect(() => {\n    const initDocumentStats = async () => {\n      const showStats = await window.electronStore.getDocumentStats()\n      setShowDocumentStats(showStats)\n    }\n\n    initDocumentStats()\n\n    const handleDocStatsChange = (event: Electron.IpcRendererEvent, value: boolean) => {\n      setShowDocumentStats(value)\n    }\n\n    window.ipcRenderer.on('show-doc-stats-changed', handleDocStatsChange)\n  }, [])\n\n  return (\n    <YStack className=\"relative size-full cursor-text overflow-y-auto\">\n      {editor && <SearchBar editor={editor._tiptapEditor} />}\n\n      <YStack\n        className={`relative h-full py-4 ${editorFlex ? 'flex justify-center px-24' : 'px-12'} ${showDocumentStats ? 'pb-3' : ''}`}\n      >\n        <YStack className=\"relative size-full\">\n          {editor && (\n            <BlockNoteView editor={editor}>\n              <FormattingToolbarPositioner editor={editor} />\n              <SlashMenuPositioner editor={editor} />\n              <SideMenuPositioner editor={editor} placement=\"left\" />\n            </BlockNoteView>\n          )}\n        </YStack>\n      </YStack>\n      {suggestionsState && (\n        <InEditorBacklinkSuggestionsDisplay\n          suggestionsState={suggestionsState}\n          suggestions={vaultFilesFlattened.map((file) => file.relativePath)}\n        />\n      )}\n      {/* {editor && showDocumentStats && (\n        <div className=\"absolute bottom-2 right-2 flex gap-4 text-sm text-gray-500\">\n          <div>Characters: {editor.storage.characterCount.characters()}</div>\n          <div>Words: {editor.storage.characterCount.words()}</div>\n        </div>\n      )} */}\n    </YStack>\n  )\n}\n\nexport default EditorManager\n"
  },
  {
    "path": "src/components/Editor/HighlightExtension.tsx",
    "content": "import { Plugin } from '@tiptap/pm/state'\nimport { Extension } from '@tiptap/react'\n\nexport interface HighlightData {\n  text: string\n  position: { top: number; left: number } | null\n}\n\nconst HighlightExtension = (setHighlightData: (data: HighlightData) => void) =>\n  Extension.create({\n    name: 'highlight',\n    addProseMirrorPlugins() {\n      return [\n        new Plugin({\n          view(editorView) {\n            return {\n              update: (view) => {\n                const { state } = view\n                const { selection } = state\n                const { from, to } = selection\n\n                if (from !== to) {\n                  const highlightedText = state.doc.textBetween(from, to)\n                  const { top, left, right } = editorView.coordsAtPos(to)\n\n                  // Calculate the button position below the last word\n                  const buttonTop = top >= window.innerHeight ? 50 : top - 125 // Adjust the vertical offset as needed\n                  const buttonLeft = (left + right) / 2 - 190 // Position the button horizontally centered\n                  setHighlightData({\n                    text: highlightedText,\n                    position: { top: buttonTop, left: buttonLeft },\n                  })\n                } else {\n                  setHighlightData({ text: '', position: null }) // memoize this\n                }\n              },\n            }\n          },\n        }),\n      ]\n    },\n  })\n\nexport default HighlightExtension\n"
  },
  {
    "path": "src/components/Editor/RichTextLink.tsx",
    "content": "import { InputRule, markInputRule, markPasteRule, PasteRule } from '@tiptap/core'\nimport { Link } from '@tiptap/extension-link'\nimport type { LinkOptions } from '@tiptap/extension-link'\n\n/**\n * The input regex for Markdown links with title support, and multiple quotation marks (required\n * in case the `Typography` extension is being included).\n */\nconst inputRegex = /(?:^|\\s)\\[([^\\]]*)?\\]\\((\\S+)(?: [\"“](.+)[\"”])?\\)$/i\n\n/**\n * The paste regex for Markdown links with title support, and multiple quotation marks (required\n * in case the `Typography` extension is being included).\n */\nconst pasteRegex = /(?:^|\\s)\\[([^\\]]*)?\\]\\((\\S+)(?: [\"“](.+)[\"”])?\\)/gi\n\n/**\n * Input rule built specifically for the `Link` extension, which ignores the auto-linked URL in\n * parentheses (e.g., `(https://doist.dev)`).\n *\n * @see https://github.com/ueberdosis/tiptap/discussions/1865\n */\nfunction linkInputRule(config: Parameters<typeof markInputRule>[0]) {\n  const defaultMarkInputRule = markInputRule(config)\n\n  return new InputRule({\n    find: config.find,\n    handler(props) {\n      const { tr } = props.state\n\n      defaultMarkInputRule.handler(props)\n      tr.setMeta('preventAutolink', true)\n    },\n  })\n}\n\n/**\n * Paste rule built specifically for the `Link` extension, which ignores the auto-linked URL in\n * parentheses (e.g., `(https://doist.dev)`). This extension was inspired from the multiple\n * implementations found in a Tiptap discussion at GitHub.\n *\n * @see https://github.com/ueberdosis/tiptap/discussions/1865\n */\nfunction linkPasteRule(config: Parameters<typeof markPasteRule>[0]) {\n  const defaultMarkPasteRule = markPasteRule(config)\n\n  return new PasteRule({\n    find: config.find,\n    handler(props) {\n      const { tr } = props.state\n\n      defaultMarkPasteRule.handler(props)\n      tr.setMeta('preventAutolink', true)\n    },\n  })\n}\n\n/**\n * Custom extension that extends the built-in `Link` extension to add additional input/paste rules\n * for converting the Markdown link syntax (i.e. `[Doist](https://doist.com)`) into links, and also\n * adds support for the `title` attribute.\n */\nconst RichTextLink = Link.extend({\n  inclusive: false,\n  addAttributes() {\n    return {\n      ...this.parent?.(),\n      title: {\n        default: null,\n      },\n    }\n  },\n  addInputRules() {\n    return [\n      linkInputRule({\n        find: inputRegex,\n        type: this.type,\n\n        // We need to use `pop()` to remove the last capture groups from the match to\n        // satisfy Tiptap's `markPasteRule` expectation of having the content as the last\n        // capture group in the match (this makes the attribute order important)\n        getAttributes(match) {\n          return {\n            title: match.pop()?.trim(),\n            href: match.pop()?.trim(),\n          }\n        },\n      }),\n    ]\n  },\n  addPasteRules() {\n    return [\n      linkPasteRule({\n        find: pasteRegex,\n        type: this.type,\n\n        // We need to use `pop()` to remove the last capture groups from the match to\n        // satisfy Tiptap's `markInputRule` expectation of having the content as the last\n        // capture group in the match (this makes the attribute order important)\n        getAttributes(match) {\n          return {\n            title: match.pop()?.trim(),\n            href: match.pop()?.trim(),\n          }\n        },\n      }),\n    ]\n  },\n})\n\nexport { RichTextLink }\n\nexport type { LinkOptions as RichTextLinkOptions }\n"
  },
  {
    "path": "src/components/Editor/Search/SearchAndReplaceExtension.tsx",
    "content": "/* eslint-disable no-param-reassign */\n// MIT License\n\n// Copyright (c) 2023 - 2024 Jeet Mandaliya (Github Username: sereneinserenade)\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\nimport { Extension, Range, type Dispatch } from '@tiptap/core'\nimport { Node as PMNode } from '@tiptap/pm/model'\nimport { Plugin, PluginKey, type EditorState, type Transaction } from '@tiptap/pm/state'\nimport { Decoration, DecorationSet } from '@tiptap/pm/view'\n\ndeclare module '@tiptap/core' {\n  interface Commands<ReturnType> {\n    search: {\n      /**\n       * @description Set search term in extension.\n       */\n      setSearchTerm: (searchTerm: string) => ReturnType\n      /**\n       * @description Set replace term in extension.\n       */\n      setReplaceTerm: (replaceTerm: string) => ReturnType\n      /**\n       * @description Set case sensitivity in extension.\n       */\n      setCaseSensitive: (caseSensitive: boolean) => ReturnType\n      /**\n       * @description Reset current search result to first instance.\n       */\n      resetIndex: () => ReturnType\n      /**\n       * @description Find next instance of search result.\n       */\n      nextSearchResult: () => ReturnType\n      /**\n       * @description Find previous instance of search result.\n       */\n      previousSearchResult: () => ReturnType\n      /**\n       * @description Replace first instance of search result with given replace term.\n       */\n      replace: () => ReturnType\n      /**\n       * @description Replace all instances of search result with given replace term.\n       */\n      replaceAll: () => ReturnType\n    }\n  }\n}\n\ninterface TextNodesWithPosition {\n  text: string\n  pos: number\n}\n\nconst getRegex = (s: string, disableRegex: boolean, caseSensitive: boolean): RegExp =>\n  RegExp(disableRegex ? s.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&') : s, caseSensitive ? 'gu' : 'gui')\n\ninterface ProcessedSearches {\n  decorationsToReturn: DecorationSet\n  results: Range[]\n}\n\nfunction processSearches(\n  doc: PMNode,\n  searchTerm: RegExp,\n  searchResultClass: string,\n  resultIndex: number,\n): ProcessedSearches {\n  const decorations: Decoration[] = []\n  let results: Range[] = []\n\n  let textNodesWithPosition: TextNodesWithPosition[] = []\n  let index = 0\n\n  if (!searchTerm) {\n    return {\n      decorationsToReturn: DecorationSet.empty,\n      results: [],\n    }\n  }\n\n  doc?.descendants((node, pos) => {\n    if (node.isText) {\n      if (textNodesWithPosition[index]) {\n        textNodesWithPosition[index] = {\n          text: textNodesWithPosition[index].text + node.text,\n          pos: textNodesWithPosition[index].pos,\n        }\n      } else {\n        textNodesWithPosition[index] = {\n          text: `${node.text}`,\n          pos,\n        }\n      }\n    } else {\n      index += 1\n    }\n  })\n\n  textNodesWithPosition = textNodesWithPosition.filter(Boolean)\n\n  results = textNodesWithPosition.flatMap(({ text, pos }) => {\n    const matches = Array.from(text.matchAll(searchTerm))\n      .filter(([matchText]) => matchText.trim())\n      .filter((m) => m[0] !== '' && m.index !== undefined)\n\n    return matches.map((m) => ({\n      from: pos + m.index!,\n      to: pos + m.index! + m[0].length,\n    }))\n  })\n\n  for (let i = 0; i < results.length; i += 1) {\n    const r = results[i]\n    const className = i === resultIndex ? `${searchResultClass} ${searchResultClass}-current` : searchResultClass\n    const decoration: Decoration = Decoration.inline(r.from, r.to, {\n      class: className,\n    })\n\n    decorations.push(decoration)\n  }\n\n  return {\n    decorationsToReturn: DecorationSet.create(doc, decorations),\n    results,\n  }\n}\n\nconst replace = (\n  replaceTerm: string,\n  results: Range[],\n  { state, dispatch }: { state: EditorState; dispatch: Dispatch },\n) => {\n  const firstResult = results[0]\n\n  if (!firstResult) return\n\n  const { from, to } = results[0]\n\n  if (dispatch) dispatch(state.tr.insertText(replaceTerm, from, to))\n}\n\nconst rebaseNextResult = (\n  replaceTerm: string,\n  index: number,\n  lastOffset: number,\n  results: Range[],\n): [number, Range[]] | null => {\n  const nextIndex = index + 1\n\n  if (!results[nextIndex]) return null\n\n  const { from: currentFrom, to: currentTo } = results[index]\n\n  const offset = currentTo - currentFrom - replaceTerm.length + lastOffset\n\n  const { from, to } = results[nextIndex]\n\n  results[nextIndex] = {\n    to: to - offset,\n    from: from - offset,\n  }\n\n  return [offset, results]\n}\n\nconst replaceAll = (\n  replaceTerm: string,\n  results: Range[],\n  { tr, dispatch }: { tr: Transaction; dispatch: Dispatch },\n) => {\n  let offset = 0\n\n  let resultsCopy = results.slice()\n\n  if (!resultsCopy.length) return\n\n  for (let i = 0; i < resultsCopy.length; i += 1) {\n    const { from, to } = resultsCopy[i]\n\n    tr.insertText(replaceTerm, from, to)\n\n    const rebaseNextResultResponse = rebaseNextResult(replaceTerm, i, offset, resultsCopy)\n    if (rebaseNextResultResponse) {\n      ;[offset, resultsCopy] = rebaseNextResultResponse\n    }\n  }\n\n  if (dispatch) dispatch(tr)\n}\n\nexport const searchAndReplacePluginKey = new PluginKey('searchAndReplacePlugin')\n\nexport interface SearchAndReplaceOptions {\n  searchResultClass: string\n  disableRegex: boolean\n}\n\nexport interface SearchAndReplaceStorage {\n  searchTerm: string\n  replaceTerm: string\n  results: Range[]\n  lastSearchTerm: string\n  caseSensitive: boolean\n  lastCaseSensitive: boolean\n  resultIndex: number\n  lastResultIndex: number\n}\n\nexport const SearchAndReplace = Extension.create<SearchAndReplaceOptions, SearchAndReplaceStorage>({\n  name: 'searchAndReplace',\n\n  addOptions() {\n    return {\n      searchResultClass: 'search-result',\n      disableRegex: true,\n    }\n  },\n\n  addStorage() {\n    return {\n      searchTerm: '',\n      replaceTerm: '',\n      results: [],\n      lastSearchTerm: '',\n      caseSensitive: false,\n      lastCaseSensitive: false,\n      resultIndex: 0,\n      lastResultIndex: 0,\n    }\n  },\n\n  addCommands() {\n    return {\n      setSearchTerm: (searchTerm: string) => () => {\n        // editor.storage.searchAndReplace.searchTerm = searchTerm\n        this.editor.storage.searchAndReplace.searchTerm = searchTerm\n\n        return false\n      },\n      setReplaceTerm: (replaceTerm: string) => () => {\n        this.editor.storage.searchAndReplace.replaceTerm = replaceTerm\n\n        return false\n      },\n      setCaseSensitive: (caseSensitive: boolean) => () => {\n        this.editor.storage.searchAndReplace.caseSensitive = caseSensitive\n\n        return false\n      },\n      resetIndex: () => () => {\n        this.editor.storage.searchAndReplace.resultIndex = 0\n\n        return false\n      },\n      nextSearchResult: () => () => {\n        const { results, resultIndex } = this.editor.storage.searchAndReplace\n\n        const nextIndex = resultIndex + 1\n\n        if (results[nextIndex]) {\n          this.editor.storage.searchAndReplace.resultIndex = nextIndex\n        } else {\n          this.editor.storage.searchAndReplace.resultIndex = 0\n        }\n\n        return false\n      },\n      previousSearchResult: () => () => {\n        const { results, resultIndex } = this.editor.storage.searchAndReplace\n\n        const prevIndex = resultIndex - 1\n\n        if (results[prevIndex]) {\n          this.editor.storage.searchAndReplace.resultIndex = prevIndex\n        } else {\n          this.editor.storage.searchAndReplace.resultIndex = results.length - 1\n        }\n\n        return false\n      },\n      replace:\n        () =>\n        ({ state, dispatch }) => {\n          const { replaceTerm, results } = this.editor.storage.searchAndReplace\n\n          replace(replaceTerm, results, { state, dispatch })\n\n          return false\n        },\n      replaceAll:\n        () =>\n        ({ tr, dispatch }) => {\n          const { replaceTerm, results } = this.editor.storage.searchAndReplace\n\n          replaceAll(replaceTerm, results, { tr, dispatch })\n\n          return false\n        },\n    }\n  },\n\n  addProseMirrorPlugins() {\n    const { editor } = this\n    const { searchResultClass, disableRegex } = this.options\n\n    const setLastSearchTerm = (t: string) => {\n      editor.storage.searchAndReplace.lastSearchTerm = t\n    }\n\n    const setLastCaseSensitive = (t: boolean) => {\n      editor.storage.searchAndReplace.lastCaseSensitive = t\n    }\n\n    const setLastResultIndex = (t: number) => {\n      editor.storage.searchAndReplace.lastResultIndex = t\n    }\n\n    return [\n      new Plugin({\n        key: searchAndReplacePluginKey,\n        state: {\n          init: () => DecorationSet.empty,\n          apply({ doc, docChanged }, oldState) {\n            const { searchTerm, lastSearchTerm, caseSensitive, lastCaseSensitive, resultIndex, lastResultIndex } =\n              editor.storage.searchAndReplace\n\n            if (\n              !docChanged &&\n              lastSearchTerm === searchTerm &&\n              lastCaseSensitive === caseSensitive &&\n              lastResultIndex === resultIndex\n            )\n              return oldState\n\n            setLastSearchTerm(searchTerm)\n            setLastCaseSensitive(caseSensitive)\n            setLastResultIndex(resultIndex)\n\n            if (!searchTerm) {\n              editor.storage.searchAndReplace.results = []\n              return DecorationSet.empty\n            }\n\n            const { decorationsToReturn, results } = processSearches(\n              doc,\n              getRegex(searchTerm, disableRegex, caseSensitive),\n              searchResultClass,\n              resultIndex,\n            )\n\n            editor.storage.searchAndReplace.results = results\n\n            return decorationsToReturn\n          },\n        },\n        props: {\n          decorations(state) {\n            return this.getState(state)\n          },\n        },\n      }),\n    ]\n  },\n})\n\nexport default SearchAndReplace\n"
  },
  {
    "path": "src/components/Editor/Search/SearchBar.tsx",
    "content": "import React, { useState, useEffect, useCallback, useRef } from 'react'\nimport { Editor } from '@tiptap/core' // Adjust import based on your setup}\nimport { Button } from '@material-tailwind/react'\nimport { XStack, YStack, Separator } from 'tamagui'\nimport { ChevronDown, ChevronUp, X, Replace } from '@tamagui/lucide-icons'\nimport { StyledIconButton } from '@/components/Editor/ui/src/button'\n\ninterface SearchBarProps {\n  editor: Editor | null\n}\n\ninterface SearchLocationProps {\n  currentIndex: number\n  totalResults: number\n  resultsExist: boolean\n}\n\nconst SearchBar: React.FC<SearchBarProps> = ({ editor }) => {\n  const [showSearch, setShowSearch] = useState(false)\n  const [searchTerm, setSearchTerm] = useState('')\n\n  const searchBarRef = useRef<HTMLDivElement>(null)\n\n  const [replaceTerm, setReplaceTerm] = useState('')\n\n  const [searchLocation, setSearchLocation] = useState<SearchLocationProps>({\n    currentIndex: 0,\n    totalResults: 0,\n    resultsExist: false,\n  })\n  const [showReplace, setShowReplace] = useState(false)\n\n  const updateSearchResults = useCallback(() => {\n    if (!editor) return\n    const { results, resultIndex } = editor.storage.searchAndReplace\n\n    const hasResults = results.length > 0\n    setSearchLocation({\n      currentIndex: Math.min(resultIndex + 1, results.length),\n      totalResults: results.length,\n      resultsExist: hasResults,\n    })\n  }, [editor])\n\n  const toggleReplace = () => {\n    setShowReplace(!showReplace)\n  }\n\n  const toggleSearch = useCallback(() => {\n    if (!showSearch) {\n      // Toggling from off to on, so restate the original value\n      editor?.commands.setSearchTerm(searchTerm)\n      updateSearchResults()\n    } else {\n      // Toggling on to off, so clear the search term (if we do not then the highlights remain)\n      editor?.commands.setSearchTerm('')\n    }\n    setShowSearch(!showSearch)\n  }, [showSearch, setShowSearch, editor?.commands, searchTerm, updateSearchResults])\n\n  const handleSearchChange = (value: string) => {\n    setSearchTerm(value)\n    editor?.commands.setSearchTerm(value)\n    updateSearchResults()\n  }\n\n  const handleReplaceChange = (value: string) => {\n    setReplaceTerm(value)\n    editor?.commands.setReplaceTerm(value)\n  }\n\n  const goToSelection = useCallback(() => {\n    if (!editor) return\n    const { results, resultIndex } = editor.storage.searchAndReplace\n\n    const position = results[resultIndex]\n    if (!position) return\n    editor.commands.setTextSelection(position)\n    const { node } = editor.view.domAtPos(editor.state.selection.anchor)\n\n    if (node instanceof Element) {\n      node.scrollIntoView?.(false)\n    }\n\n    updateSearchResults()\n  }, [editor, updateSearchResults])\n\n  const handleSearch = useCallback(\n    (event: any, genericSearchResult: (() => boolean) | undefined) => {\n      event.preventDefault()\n      if (genericSearchResult) genericSearchResult()\n      goToSelection()\n    },\n    [goToSelection],\n  )\n\n  const handleMeta = useCallback(\n    (event: any) => {\n      if (event.key === 'Enter') {\n        handleSearch(event, editor?.commands.nextSearchResult)\n      } else if ((event.metaKey || event.ctrlKey) && event.key === 'f' && !showSearch) {\n        toggleSearch()\n      } else if (event.key === 'Escape' && showSearch) {\n        toggleSearch()\n      }\n    },\n    [handleSearch, toggleSearch, showSearch, editor?.commands.nextSearchResult],\n  )\n\n  const handleClickOutside = useCallback(\n    (event: MouseEvent) => {\n      if (searchBarRef.current && !searchBarRef.current.contains(event.target as Node)) {\n        toggleSearch()\n      }\n    },\n    [toggleSearch],\n  )\n\n  useEffect(() => {\n    window.addEventListener('keydown', handleMeta)\n    window.addEventListener('mousedown', handleClickOutside)\n    return () => {\n      window.removeEventListener('keydown', handleMeta)\n      window.removeEventListener('mousedown', handleClickOutside)\n    }\n  }, [handleClickOutside, handleMeta])\n\n  const iconProps = {\n    size: 18,\n    color: searchLocation.resultsExist ? 'white' : 'gray',\n    cursor: 'pointer',\n  }\n\n  if (!showSearch) return null\n  return (\n    <div\n      ref={searchBarRef}\n      className=\"fixed right-4 top-10 w-[280px] animate-shift-in-down rounded-[12px]\"\n      style={{\n        zIndex: 1000,\n        outline: 'rgba(35, 131, 226, 0.14) solid 3px',\n      }}\n    >\n      <XStack\n        alignItems=\"center\"\n        width=\"100%\"\n        className={`rounded-t-md ${!showReplace ? 'rounded-b-md' : ''} bg-gray-800 p-2 shadow-lg`}\n      >\n        <div className=\"relative flex-1\">\n          <input\n            value={searchTerm}\n            onChange={(event) => handleSearchChange(event.target.value)}\n            placeholder=\"Search...\"\n            // eslint-disable-next-line jsx-a11y/no-autofocus\n            autoFocus\n            className=\"w-full bg-transparent p-1 pr-16 text-white focus:outline-none\"\n          />\n          <div className=\"absolute right-4 top-1/2 -translate-y-1/2 text-sm text-white\">\n            {searchLocation.resultsExist ? `${searchLocation.currentIndex} / ${searchLocation.totalResults}` : '0 / 0'}\n          </div>\n        </div>\n\n        <div className=\"mx-2 h-6 w-px bg-gray-500\" />\n\n        <XStack alignItems=\"center\" gap={10}>\n          <StyledIconButton onPress={(event: any) => handleSearch(event, editor?.commands.previousSearchResult)}>\n            <ChevronUp {...iconProps} />\n          </StyledIconButton>\n          <StyledIconButton onPress={(event: any) => handleSearch(event, editor?.commands.nextSearchResult)}>\n            <ChevronDown {...iconProps} />\n          </StyledIconButton>\n          {(showReplace || searchLocation.resultsExist) && (\n            <StyledIconButton onPress={toggleReplace}>\n              <Replace size={16} color=\"white\" cursor=\"pointer\" />\n            </StyledIconButton>\n          )}\n          <StyledIconButton onPress={toggleSearch}>\n            <X {...iconProps} />\n          </StyledIconButton>\n        </XStack>\n      </XStack>\n      {showReplace && (\n        <YStack className=\"animate-shift-in-down\">\n          <Separator />\n          <YStack alignItems=\"center\" gap={3} className=\"rounded-b-md bg-gray-800 p-2 shadow-lg\">\n            <input\n              value={replaceTerm}\n              onChange={(event) => handleReplaceChange(event.target.value)}\n              placeholder=\"Replace...\"\n              className=\"w-full bg-transparent p-1 pr-16 text-white focus:outline-none\"\n              // eslint-disable-next-line jsx-a11y/no-autofocus\n              autoFocus\n            />\n            <div className=\"flex w-full justify-end gap-1\">\n              <Button\n                className=\"h-10 w-[90px] cursor-pointer border-none bg-transparent px-2 py-0 text-center hover:bg-gray-700\"\n                onClick={() => {\n                  if (!editor) return\n                  editor.commands.replaceAll()\n                  updateSearchResults()\n                }}\n              >\n                Replace All\n              </Button>\n\n              <Button\n                className=\"h-10 w-[100px] cursor-pointer border-none bg-blue-600 px-2 py-0 text-center hover:bg-blue-700\"\n                onClick={() => {\n                  if (!editor) return\n                  editor.commands.replace()\n                  updateSearchResults()\n                }}\n              >\n                Replace Next\n              </Button>\n            </div>\n          </YStack>\n        </YStack>\n      )}\n    </div>\n  )\n}\n\nexport default SearchBar\n"
  },
  {
    "path": "src/components/Editor/editor.css",
    "content": "#editor-header-content,\n\n\n/* #editor-header-content {\n  padding: 0 34px;\n} */\n\n/* @media (min-width: 1021px) {\n  #editor-header-content {\n    padding: 0 54px;\n  }\n} */\n\n/* .editor {\n  margin-bottom: 60px;\n} */\n\n.block-heading + [data-node-type='blockGroup'][data-list-type='Group'] {\n  margin-left: 0;\n}\n\n#editor-header-content textarea {\n  border-color: transparent !important;\n  outline: none !important;\n}\n\n.ProseMirror {\n  background-color: transparent;\n}\n\n/* recommendation from Haz: https://twitter.com/diegohaz/status/1591829631811846147 */\n.link,\n.hm-link {\n  text-decoration-line: underline;\n  text-underline-offset: 0.2em;\n  text-decoration-skip-ink: none;\n}\n\n.link:hover,\n.hm-link:hover {\n  text-decoration-thickness: 3px;\n}\n\n/* manually synced with tamagui colors: blue11 and blueDark11 */\n/* .ProseMirror .link { */\n/* color: var(--blue11); */\n/* } */\n/* .seed-app-dark .ProseMirror .link {\n  color: hsl(210, 100%, 66.1%);\n} */\n\n/* manually sync these values with colors.ts brand5 and brandDark5 */\n.ProseMirror .hm-link {\n  color: var(--brand5);\n}\n/* .seed-app-dark .ProseMirror .hm-link {\n  color: hsl(184, 80%, 71%);\n} */\n\n.ProseMirror .link-placeholder {\n  width: 16px;\n  height: 16px;\n  opacity: 0.5;\n  border: 3px solid currentColor;\n  border-bottom-color: transparent;\n  border-radius: 50%;\n  display: inline-block;\n  box-sizing: border-box;\n  animation: rotation 1s linear infinite;\n}\n\n.video-iframe {\n  width: 100%;\n  height: 100%;\n}\n.image-caption {\n  font-size: 0.75em;\n  opacity: 0.6;\n}\n\n@keyframes rotation {\n  0% {\n    transform: rotate(0deg);\n  }\n  100% {\n    transform: rotate(360deg);\n  }\n}\n\n.block-container {\n  position: relative;\n}\n\n.block-container-hovered {\n  background-color: var(--backgroundPress);\n}\n\n[data-list-type='ul'] .node-blockContainer,\n[data-list-type='ol'] .node-blockContainer {\n  display: list-item;\n}\n\n[data-list-type='ul'],\n[data-list-type='ol'] {\n  display: list-item;\n}\n\n.editor code {\n  background-color: var(--color5);\n  font-family: 'ui-monospace', 'SFMono-Regular', 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace;\n  overflow: hidden;\n  font-size: 0.8em;\n  line-height: 1.5;\n  padding: var(--space-5);\n  border-radius: 4px;\n}\n\n[data-node-type='block-outer']::marker {\n  color: hsl(0, 0%, 42.5%);\n}\n\nol > [data-node-type='block-outer']::marker {\n  font-size: 0.8em;\n}\n\n.x-post-container {\n  width: 100%;\n  overflow: hidden;\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto;\n  font-weight: 400;\n  box-sizing: border-box;\n  border-radius: 12px;\n  transition-property: background-color, box-shadow;\n  transition-duration: 0.2s;\n  --tweet-container-margin: 1.5rem 0;\n\n  /* Header */\n  --tweet-header-font-size: 0.9375rem;\n  --tweet-header-line-height: 1.25rem;\n\n  /* Text */\n  --tweet-body-font-size: 1.25rem;\n  --tweet-body-font-weight: 400;\n  --tweet-body-line-height: 1.5rem;\n  --tweet-body-margin: 0;\n\n  /* Quoted Tweet */\n  --tweet-quoted-container-margin: 0.75rem 0;\n  --tweet-quoted-body-font-size: 0.938rem;\n  --tweet-quoted-body-font-weight: 400;\n  --tweet-quoted-body-line-height: 1.25rem;\n  --tweet-quoted-body-margin: 0.25rem 0 0.75rem 0;\n\n  /* Info */\n  --tweet-info-font-size: 0.9375rem;\n  --tweet-info-line-height: 1.25rem;\n\n  /* Actions like the like, reply and copy buttons */\n  --tweet-actions-font-size: 0.875rem;\n  --tweet-actions-line-height: 1rem;\n  --tweet-actions-font-weight: 700;\n  --tweet-actions-icon-size: 1.25em;\n  --tweet-actions-icon-wrapper-size: calc(var(--tweet-actions-icon-size) + 0.75em);\n}\n\n:where(.x-post-container) * {\n  margin: 0;\n  padding: 0;\n  box-sizing: border-box;\n}\n\n:is([data-theme='light'], .light) :where(.x-post-container),\n:where(.x-post-container) {\n  --tweet-skeleton-gradient: linear-gradient(270deg, #fafafa, #eaeaea, #eaeaea, #fafafa);\n  --tweet-border: 1px solid rgb(207, 217, 222);\n  --tweet-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;\n  --tweet-font-color: rgb(15, 20, 25);\n  --tweet-font-color-secondary: rgb(83, 100, 113);\n  --tweet-bg-color: #fff;\n  --tweet-bg-color-hover: rgb(247, 249, 249);\n  --tweet-quoted-bg-color-hover: rgba(0, 0, 0, 0.03);\n  --tweet-color-blue-primary: rgb(29, 155, 240);\n  --tweet-color-blue-primary-hover: rgb(26, 140, 216);\n  --tweet-color-blue-secondary: rgb(0, 111, 214);\n  --tweet-color-blue-secondary-hover: rgba(0, 111, 214, 0.1);\n  --tweet-color-red-primary: rgb(249, 24, 128);\n  --tweet-color-red-primary-hover: rgba(249, 24, 128, 0.1);\n  --tweet-color-green-primary: rgb(0, 186, 124);\n  --tweet-color-green-primary-hover: rgba(0, 186, 124, 0.1);\n  --tweet-twitter-icon-color: var(--tweet-font-color);\n  --tweet-verified-old-color: rgb(130, 154, 171);\n  --tweet-verified-blue-color: var(--tweet-color-blue-primary);\n}\n\n:is([data-theme='dark'], .dark) :where(.x-post-container) {\n  --tweet-skeleton-gradient: linear-gradient(270deg, #15202b, rgb(30, 39, 50), rgb(30, 39, 50), rgb(21, 32, 43));\n  --tweet-border: 1px solid rgb(66, 83, 100);\n  --tweet-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;\n  --tweet-font-color: rgb(247, 249, 249);\n  --tweet-font-color-secondary: rgb(139, 152, 165);\n  --tweet-bg-color: rgb(21, 32, 43);\n  --tweet-bg-color-hover: rgb(30, 39, 50);\n  --tweet-quoted-bg-color-hover: rgba(255, 255, 255, 0.03);\n  --tweet-color-blue-primary: rgb(29, 155, 240);\n  --tweet-color-blue-primary-hover: rgb(26, 140, 216);\n  --tweet-color-blue-secondary: rgb(107, 201, 251);\n  --tweet-color-blue-secondary-hover: rgba(107, 201, 251, 0.1);\n  --tweet-color-red-primary: rgb(249, 24, 128);\n  --tweet-color-red-primary-hover: rgba(249, 24, 128, 0.1);\n  --tweet-color-green-primary: rgb(0, 186, 124);\n  --tweet-color-green-primary-hover: rgba(0, 186, 124, 0.1);\n  --tweet-twitter-icon-color: var(--tweet-font-color);\n  --tweet-verified-old-color: rgb(130, 154, 171);\n  --tweet-verified-blue-color: #fff;\n}\n\n@media (prefers-color-scheme: dark) {\n  :where(.x-post-container) {\n    --tweet-skeleton-gradient: linear-gradient(270deg, #15202b, rgb(30, 39, 50), rgb(30, 39, 50), rgb(21, 32, 43));\n    --tweet-border: 1px solid rgb(66, 83, 100);\n    --tweet-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;\n    --tweet-font-color: rgb(247, 249, 249);\n    --tweet-font-color-secondary: rgb(139, 152, 165);\n    --tweet-bg-color: rgb(21, 32, 43);\n    --tweet-bg-color-hover: rgb(30, 39, 50);\n    --tweet-color-blue-primary: rgb(29, 155, 240);\n    --tweet-color-blue-primary-hover: rgb(26, 140, 216);\n    --tweet-color-blue-secondary: rgb(107, 201, 251);\n    --tweet-color-blue-secondary-hover: rgba(107, 201, 251, 0.1);\n    --tweet-color-red-primary: rgb(249, 24, 128);\n    --tweet-color-red-primary-hover: rgba(249, 24, 128, 0.1);\n    --tweet-color-green-primary: rgb(0, 186, 124);\n    --tweet-color-green-primary-hover: rgba(0, 186, 124, 0.1);\n    --tweet-twitter-icon-color: var(--tweet-font-color);\n    --tweet-verified-old-color: rgb(130, 154, 171);\n    --tweet-verified-blue-color: #fff;\n  }\n}\n\n.header {\n  display: flex;\n  padding-bottom: 0.75rem;\n  line-height: var(--tweet-header-line-height);\n  font-size: var(--tweet-header-font-size);\n  white-space: nowrap;\n  overflow-wrap: break-word;\n  overflow: hidden;\n}\n\n.avatar {\n  position: relative;\n  height: 48px;\n  width: 48px;\n}\n.avatarOverflow {\n  height: 100%;\n  width: 100%;\n  position: absolute;\n  overflow: hidden;\n  border-radius: 9999px;\n}\n.avatarSquare {\n  border-radius: 4px;\n}\n.avatarShadow {\n  height: 100%;\n  width: 100%;\n  transition-property: background-color;\n  transition-duration: 0.2s;\n  box-shadow: rgb(0 0 0 / 3%) 0px 0px 2px inset;\n}\n.avatarShadow:hover {\n  background-color: rgba(26, 26, 26, 0.15);\n}\n\n.author {\n  max-width: calc(100% - 84px);\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  margin: 0 0.5rem;\n}\n.authorLink {\n  text-decoration: none;\n  color: inherit;\n  display: flex;\n  align-items: center;\n}\n.authorLink:hover {\n  text-decoration-line: underline;\n}\n.authorVerified {\n  display: inline-flex;\n}\n.authorLinkText {\n  font-weight: 700;\n  text-overflow: ellipsis;\n  overflow: hidden;\n  white-space: nowrap;\n}\n\n.authorMeta {\n  display: flex;\n}\n.authorFollow {\n  display: flex;\n}\n.username {\n  color: var(--tweet-font-color-secondary);\n  text-decoration: none;\n  text-overflow: ellipsis;\n}\n.follow {\n  color: var(--tweet-color-blue-secondary);\n  text-decoration: none;\n  font-weight: 700;\n}\n.follow:hover {\n  text-decoration-line: underline;\n}\n.separator {\n  padding: 0 0.25rem;\n}\n\n.brand {\n  margin-inline-start: auto;\n}\n\n.twitterIcon {\n  width: 23.75px;\n  height: 23.75px;\n  color: var(--tweet-twitter-icon-color);\n  fill: currentColor;\n  user-select: none;\n}\n\n.info {\n  display: flex;\n  align-items: center;\n  color: var(--tweet-font-color-secondary);\n  margin-top: 0.125rem;\n  overflow-wrap: break-word;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n}\n\n.hljs-comment,\n.hljs-quote {\n  color: var(--gray10);\n}\n\n.hljs-variable,\n.hljs-template-variable,\n.hljs-attribute,\n.hljs-tag,\n.hljs-name,\n.hljs-regexp,\n.hljs-link,\n.hljs-name,\n.hljs-selector-id,\n.hljs-selector-class {\n  color: var(--red10);\n}\n\n.hljs-number,\n.hljs-meta,\n.hljs-built_in,\n.hljs-builtin-name,\n.hljs-literal,\n.hljs-type,\n.hljs-params {\n  color: var(--orange10);\n}\n\n.hljs-string,\n.hljs-symbol,\n.hljs-bullet {\n  color: var(--green10);\n}\n\n.hljs-title,\n.hljs-section {\n  color: var(--yellow11);\n}\n\n.hljs-keyword,\n.hljs-selector-tag {\n  color: var(--blue10);\n}\n\n.hljs-emphasis {\n  font-style: italic;\n}\n\n.hljs-strong {\n  font-weight: 700;\n}\n\n[data-diff='deleted'] {\n  background-color: rgba(255, 0, 0, 0.2);\n}\n\n[data-diff='added'],\n[data-diff='updated'] {\n  background-color: rgba(0, 255, 0, 0.2);\n}\n\n.side-menu {\n  display: none !important;\n}\n\n@media (min-width: 768px) {\n  .side-menu {\n    display: flex !important;\n  }\n}\n\n.search-result {\n  background-color: rgba(255, 255, 0, 0.3);\n}\n\n.search-result-current {\n  background-color: rgb(255,165,0, 0.3);\n}"
  },
  {
    "path": "src/components/Editor/schema.ts",
    "content": "import { common, createLowlight } from 'lowlight'\nimport { BlockSchema, TypesMatch, defaultProps, defaultBlockSchema } from '@/lib/blocknote'\nimport CodeBlockLowlight from '@/lib/tiptap-extension-code-block'\nimport ImageBlock from './types/Image/image'\nimport { VideoBlock } from './types/Video/video'\n\nexport const hmBlockSchema: BlockSchema = {\n  paragraph: defaultBlockSchema.paragraph,\n  heading: defaultBlockSchema.heading,\n  // bulletListItem: defaultBlockSchema.bulletListItem,\n  // numberedListItem: defaultBlockSchema.numberedListItem,\n  image: ImageBlock,\n  // @ts-ignore\n  'code-block': {\n    propSchema: {\n      ...defaultProps,\n      language: { default: '' },\n    },\n    // @ts-ignore\n    node: CodeBlockLowlight.configure({\n      defaultLanguage: 'Plaintext',\n      lowlight: createLowlight(common),\n      languageClassPrefix: 'language-',\n    }),\n  },\n  video: VideoBlock,\n}\n\nexport type HMBlockSchema = TypesMatch<typeof hmBlockSchema>\n"
  },
  {
    "path": "src/components/Editor/slash-menu-items.tsx",
    "content": "import React from 'react'\n\nimport { RiCodeBoxFill, RiHeading, RiImage2Fill, RiText, RiVideoAddFill } from 'react-icons/ri'\nimport { BlockNoteEditor, BlockSpec, PartialBlock, PropSchema, insertOrUpdateBlock } from '@/lib/blocknote'\nimport { HMBlockSchema } from './schema'\n\nconst slashMenuItems = [\n  {\n    name: 'Heading',\n    aliases: ['h', 'heading1', 'subheading'],\n    group: 'Text blocks',\n    icon: <RiHeading size={18} />,\n    hint: 'Group content with a title',\n    execute: (editor: BlockNoteEditor<Record<string, BlockSpec<string, PropSchema>>>) => {\n      insertOrUpdateBlock(editor, {\n        type: 'heading',\n        props: { level: '2' },\n      } as PartialBlock<HMBlockSchema>)\n      const { state, view } = editor._tiptapEditor\n      view.dispatch(state.tr.scrollIntoView())\n    },\n  },\n  {\n    name: 'Paragraph',\n    aliases: ['p'],\n    group: 'Text blocks',\n    icon: <RiText size={18} />,\n    hint: 'Used for the body of your document',\n    execute: (editor: BlockNoteEditor<Record<string, BlockSpec<string, PropSchema>>>) => {\n      insertOrUpdateBlock(editor, {\n        type: 'paragraph',\n      } as PartialBlock<HMBlockSchema>)\n      const { state, view } = editor._tiptapEditor\n      view.dispatch(state.tr.scrollIntoView())\n    },\n  },\n  {\n    name: 'Code Block',\n    aliases: ['code', 'pre', 'code-block'],\n    group: 'Text blocks',\n    icon: <RiCodeBoxFill size={18} />,\n    hint: 'Insert a Code Block',\n    execute: (editor: BlockNoteEditor<Record<string, BlockSpec<string, PropSchema>>>) => {\n      insertOrUpdateBlock(editor, {\n        type: 'code-block',\n        props: {\n          language: '',\n        },\n      } as PartialBlock<HMBlockSchema>)\n      const { state, view } = editor._tiptapEditor\n      view.dispatch(state.tr.scrollIntoView())\n    },\n  },\n  {\n    name: 'Image',\n    aliases: ['image', 'img', 'picture'],\n    group: 'Media blocks',\n    icon: <RiImage2Fill size={18} />,\n    hint: 'Insert an Image',\n    execute: (editor: BlockNoteEditor<Record<string, BlockSpec<string, PropSchema>>>) => {\n      insertOrUpdateBlock(\n        editor,\n        {\n          type: 'image',\n          props: {\n            url: '',\n            defaultOpen: 'true',\n          },\n        } as PartialBlock<HMBlockSchema>,\n        true,\n      )\n      const { state, view } = editor._tiptapEditor\n      view.dispatch(state.tr.scrollIntoView())\n    },\n  },\n  {\n    name: 'Video',\n    aliases: ['video', 'vid', 'media'],\n    group: 'Media blocks',\n    icon: <RiVideoAddFill size={18} />,\n    hint: 'Insert a Video',\n    execute: (editor: BlockNoteEditor<Record<string, BlockSpec<string, PropSchema>>>) => {\n      insertOrUpdateBlock(\n        editor,\n        {\n          type: 'video',\n          props: {\n            url: '',\n            defaultOpen: 'true',\n          },\n        } as PartialBlock<HMBlockSchema>,\n        true,\n      )\n      const { state, view } = editor._tiptapEditor\n      view.dispatch(state.tr.scrollIntoView())\n    },\n  },\n]\n\nexport default slashMenuItems\n"
  },
  {
    "path": "src/components/Editor/types/Image/image.tsx",
    "content": "/* eslint react/destructuring-assignment: \"off\" */\nimport React, { useEffect, useState } from 'react'\nimport ResizeHandle from '@/components/Editor/ui/src/resize-handle'\nimport { Block, BlockNoteEditor, defaultProps, createReactBlockSpec } from '@/lib/blocknote'\nimport MediaContainer from '../media-container'\nimport { DisplayComponentProps, MediaRender, MediaType } from '../media-render'\nimport type { HMBlockSchema } from '../../schema'\nimport { isValidUrl } from '../utils'\n\nconst Display = ({ editor, block, selected, assign }: DisplayComponentProps) => {\n  const [imageUrl, setImageUrl] = useState(block.props.url)\n  const [isLoading, setIsLoading] = useState(true)\n\n  useEffect(() => {\n    const loadImage = async () => {\n      setIsLoading(true)\n      try {\n        if (block.props.url?.startsWith('local://')) {\n          const localImage = await window.fileSystem.getImage(block.props.url)\n          if (localImage) {\n            setImageUrl(localImage)\n          }\n        } else {\n          setImageUrl(block.props.url)\n        }\n      } finally {\n        setIsLoading(false)\n      }\n    }\n\n    loadImage()\n  }, [block.props.url])\n\n  // Min image width in px.\n  const minWidth = 64\n  let width: number = parseFloat(block.props.width) || editor.domElement.firstElementChild!.clientWidth\n  const [currentWidth, setCurrentWidth] = useState(width)\n  const [showHandle, setShowHandle] = useState(false)\n  let resizeParams:\n    | {\n        handleUsed: 'left' | 'right'\n        initialWidth: number\n        initialClientX: number\n      }\n    | undefined\n\n  useEffect(() => {\n    if (block.props.width) {\n      // eslint-disable-next-line react-hooks/exhaustive-deps\n      width = parseFloat(block.props.width)\n      setCurrentWidth(parseFloat(block.props.width))\n    }\n  }, [block.props.width])\n\n  const windowMouseMoveHandler = (event: MouseEvent) => {\n    if (!resizeParams) {\n      return\n    }\n\n    let newWidth: number\n    if (resizeParams.handleUsed === 'left') {\n      newWidth = resizeParams.initialWidth + (resizeParams.initialClientX - event.clientX) * 2\n    } else {\n      newWidth = resizeParams.initialWidth + (event.clientX - resizeParams.initialClientX) * 2\n    }\n\n    // Ensures the image is not wider than the editor and not smaller than a\n    // predetermined minimum width.\n    if (newWidth < minWidth) {\n      width = minWidth\n      setCurrentWidth(minWidth)\n    } else if (newWidth > editor.domElement.firstElementChild!.clientWidth) {\n      width = editor.domElement.firstElementChild!.clientWidth\n      setCurrentWidth(editor.domElement.firstElementChild!.clientWidth)\n    } else {\n      width = newWidth\n      setCurrentWidth(newWidth)\n    }\n  }\n\n  // Stops mouse movements from resizing the image and updates the block's\n  // `width` prop to the new value.\n  const windowMouseUpHandler = () => {\n    setShowHandle(false)\n\n    if (!resizeParams) {\n      return\n    }\n    resizeParams = undefined\n\n    assign({\n      props: {\n        width: width.toString(),\n      },\n    })\n\n    // @ts-expect-error\n    editor.updateBlock(block.id, {\n      ...block,\n      props: {\n        width: width.toString(),\n      },\n    })\n  }\n  window.addEventListener('mousemove', windowMouseMoveHandler)\n  window.addEventListener('mouseup', windowMouseUpHandler)\n\n  // Hides the resize handles when the cursor leaves the image\n  const imageMouseLeaveHandler = () => {\n    if (resizeParams) {\n      return\n    }\n\n    setShowHandle(false)\n  }\n\n  // Sets the resize params, allowing the user to begin resizing the image by\n  // moving the cursor left or right.\n  const leftResizeHandleMouseDownHandler = (event: React.MouseEvent<HTMLDivElement>) => {\n    event.preventDefault()\n\n    setShowHandle(true)\n\n    resizeParams = {\n      handleUsed: 'left',\n      initialWidth: width || parseFloat(block.props.width),\n      initialClientX: event.clientX,\n    }\n    editor.setTextCursorPosition(block.id, 'start')\n  }\n\n  const rightResizeHandleMouseDownHandler = (event: React.MouseEvent<HTMLDivElement>) => {\n    event.preventDefault()\n\n    setShowHandle(true)\n\n    resizeParams = {\n      handleUsed: 'right',\n      initialWidth: width || parseFloat(block.props.width),\n      initialClientX: event.clientX,\n    }\n    editor.setTextCursorPosition(block.id, 'start')\n  }\n\n  return (\n    <MediaContainer\n      editor={editor}\n      block={block}\n      mediaType=\"image\"\n      selected={selected}\n      assign={assign}\n      onHoverIn={() => {\n        if (editor.isEditable) {\n          setShowHandle(true)\n        }\n      }}\n      onHoverOut={imageMouseLeaveHandler}\n      width={currentWidth}\n    >\n      {showHandle && (\n        <>\n          <ResizeHandle left={4} onMouseDown={leftResizeHandleMouseDownHandler} />\n          <ResizeHandle right={4} onMouseDown={rightResizeHandleMouseDownHandler} />\n        </>\n      )}\n      {!isLoading && imageUrl && (\n        <img\n          style={{ width: `100%` }}\n          src={imageUrl}\n          alt={block.props.name || block.props.alt}\n          contentEditable={false}\n        />\n      )}\n    </MediaContainer>\n  )\n}\n\nconst Render = (block: Block<HMBlockSchema>, editor: BlockNoteEditor<HMBlockSchema>) => {\n  const submitImage = async (\n    assignMedia: (props: MediaType) => void,\n    queryType: string,\n    url?: string,\n    setErrorRaised?: any,\n  ) => {\n    if (queryType === 'upload') {\n      const filePaths = await window.fileSystem.openImageFileDialog()\n\n      if (filePaths && filePaths.length > 0) {\n        const filePath: string = filePaths[0]\n        const fileData = await window.fileSystem.readFile(filePath, 'base64')\n        const imageData = `data:image/png;base64,${fileData}`\n\n        const storedImageUrl = await window.fileSystem.storeImage(imageData, filePath, block.id)\n        assignMedia({\n          id: block.id,\n          props: {\n            url: storedImageUrl,\n            name: filePath,\n          },\n          children: [],\n          content: [],\n          type: 'image',\n        })\n      }\n    }\n\n    if (url && isValidUrl(url)) {\n      try {\n        const response = await fetch(url)\n        if (!response.ok) {\n          setErrorRaised('Failed to fetch image')\n        }\n        const blob = await response.blob()\n        const reader = new FileReader()\n        reader.onloadend = async () => {\n          const imageData = reader.result as string\n          const sanitizedURL = url.split('?')[0]\n          const storedImageUrl = await window.fileSystem.storeImage(imageData, sanitizedURL, block.id)\n\n          assignMedia({\n            id: block.id,\n            props: {\n              url: storedImageUrl,\n              name: url,\n            },\n            children: [],\n            content: [],\n            type: 'image',\n          })\n        }\n        reader.readAsDataURL(blob)\n      } catch (error) {\n        setErrorRaised('Failed to fetch image')\n      }\n    } else {\n      setErrorRaised('Invalid URL')\n    }\n  }\n\n  return (\n    <MediaRender\n      block={block}\n      hideForm={!!block.props.url}\n      editor={editor}\n      mediaType=\"image\"\n      submit={submitImage}\n      DisplayComponent={Display}\n    />\n  )\n}\n\nconst ImageBlock = createReactBlockSpec({\n  type: 'image',\n  propSchema: {\n    ...defaultProps,\n    url: {\n      default: '',\n    },\n    alt: {\n      default: '',\n    },\n    name: {\n      default: '',\n    },\n    width: {\n      default: '',\n    },\n    defaultOpen: {\n      values: ['false', 'true'],\n      default: 'false',\n    },\n  },\n  containsInlineContent: true,\n\n  render: ({ block, editor }: { block: Block<HMBlockSchema>; editor: BlockNoteEditor<HMBlockSchema> }) =>\n    Render(block, editor),\n\n  parseHTML: [\n    {\n      tag: 'img[src]',\n      getAttrs: (element: HTMLElement) => {\n        return {\n          url: element.getAttribute('src'),\n          width: element.getAttribute('width') || element.style.width,\n          alt: element.getAttribute('alt') || '',\n          name: element.getAttribute('title') || '',\n        }\n      },\n      node: 'image',\n    },\n  ],\n})\n\nexport default ImageBlock\n"
  },
  {
    "path": "src/components/Editor/types/Video/video.tsx",
    "content": "/* eslint react/destructuring-assignment: \"off\" */\nimport React, { useEffect, useState } from 'react'\nimport { isValidUrl, youtubeParser } from '../utils'\nimport { XStack } from '@/components/Editor/ui/src'\nimport ResizeHandle from '@/components/Editor/ui/src/resize-handle'\nimport { Block, BlockNoteEditor, defaultProps, createReactBlockSpec } from '@/lib/blocknote'\nimport MediaContainer from '../media-container'\nimport { DisplayComponentProps, MediaRender, MediaType } from '../media-render'\nimport type { HMBlockSchema } from '../../schema'\n\nexport const getSourceType = (name: string) => {\n  const nameArray = name.split('.')\n  return nameArray[nameArray.length - 1] ? `video/${nameArray[nameArray.length - 1]}` : undefined\n}\n\n/**\n *  Depending on start of video data type, uses\n *  <video /> html element or <XStack />\n */\nexport function displayVideoType(videoURL: string) {\n  if (videoURL.startsWith('data:video/')) {\n    return (\n      // eslint-disable-next-line jsx-a11y/media-has-caption\n      <video controls width=\"100%\" preload=\"metadata\">\n        <source src={videoURL} type=\"video/mp4\" />\n        Your browser does not support the video tag.\n      </video>\n    )\n  }\n  return (\n    <XStack\n      width=\"100%\"\n      pointerEvents=\"auto\"\n      tag=\"iframe\"\n      className=\"video-iframe\"\n      // @ts-expect-error\n      src={videoURL}\n      frameBorder=\"0\"\n      allowFullScreen\n    />\n  )\n}\n\nconst Display = ({ editor, block, selected, assign }: DisplayComponentProps) => {\n  const [videoURL, setVideoURL] = useState(block.props.url)\n  const [isLoading, setIsLoading] = useState(true)\n\n  // Min video width in px.\n  const minWidth = 256\n  let width: number = parseFloat(block.props.width) || editor.domElement.firstElementChild!.clientWidth\n\n  const [currentWidth, setCurrentWidth] = useState(width)\n  const [showHandle, setShowHandle] = useState(false)\n  let resizeParams:\n    | {\n        handleUsed: 'left' | 'right'\n        initialWidth: number\n        initialClientX: number\n      }\n    | undefined\n\n  useEffect(() => {\n    if (block.props.width) {\n      // eslint-disable-next-line react-hooks/exhaustive-deps\n      width = parseFloat(block.props.width)\n      setCurrentWidth(parseFloat(block.props.width))\n    }\n  }, [block.props.width])\n\n  useEffect(() => {\n    const loadVideo = async () => {\n      setIsLoading(true)\n      try {\n        if (block.props.url?.startsWith('local://')) {\n          const localVideo = await window.fileSystem.getVideo(block.props.url)\n          if (localVideo) {\n            setVideoURL(localVideo)\n          }\n        } else {\n          setVideoURL(block.props.url)\n        }\n      } finally {\n        setIsLoading(false)\n      }\n    }\n\n    loadVideo()\n  }, [block.props.url])\n\n  const windowMouseMoveHandler = (event: MouseEvent) => {\n    if (!resizeParams) {\n      return\n    }\n\n    let newWidth: number\n    if (resizeParams.handleUsed === 'left') {\n      newWidth = resizeParams.initialWidth + (resizeParams.initialClientX - event.clientX) * 2\n    } else {\n      newWidth = resizeParams.initialWidth + (event.clientX - resizeParams.initialClientX) * 2\n    }\n\n    // Ensures the video is not wider than the editor and not smaller than a\n    // predetermined minimum width.\n    if (newWidth < minWidth) {\n      width = minWidth\n      setCurrentWidth(minWidth)\n    } else if (newWidth > editor.domElement.firstElementChild!.clientWidth) {\n      width = editor.domElement.firstElementChild!.clientWidth\n      setCurrentWidth(editor.domElement.firstElementChild!.clientWidth)\n    } else {\n      width = newWidth\n      setCurrentWidth(newWidth)\n    }\n  }\n\n  // Stops mouse movements from resizing the video and updates the block's\n  // `width` prop to the new value.\n  const windowMouseUpHandler = () => {\n    setShowHandle(false)\n\n    if (!resizeParams) {\n      return\n    }\n    resizeParams = undefined\n\n    assign({\n      props: {\n        width: width.toString(),\n      },\n    })\n\n    // @ts-expect-error\n    editor.updateBlock(block.id, {\n      ...block,\n      props: {\n        width: width.toString(),\n      },\n    })\n  }\n  window.addEventListener('mousemove', windowMouseMoveHandler)\n  window.addEventListener('mouseup', windowMouseUpHandler)\n\n  // Hides the resize handles when the cursor leaves the video\n  const videoMouseLeaveHandler = () => {\n    if (resizeParams) {\n      return\n    }\n\n    setShowHandle(false)\n  }\n\n  // Sets the resize params, allowing the user to begin resizing the video by\n  // moving the cursor left or right.\n  const leftResizeHandleMouseDownHandler = (event: React.MouseEvent<HTMLDivElement>) => {\n    event.preventDefault()\n\n    setShowHandle(true)\n\n    resizeParams = {\n      handleUsed: 'left',\n      initialWidth: width || parseFloat(block.props.width),\n      initialClientX: event.clientX,\n    }\n    editor.setTextCursorPosition(block.id, 'start')\n  }\n\n  const rightResizeHandleMouseDownHandler = (event: React.MouseEvent<HTMLDivElement>) => {\n    event.preventDefault()\n\n    setShowHandle(true)\n\n    resizeParams = {\n      handleUsed: 'right',\n      initialWidth: width || parseFloat(block.props.width),\n      initialClientX: event.clientX,\n    }\n    editor.setTextCursorPosition(block.id, 'start')\n  }\n\n  return (\n    <MediaContainer\n      editor={editor}\n      block={block}\n      mediaType=\"video\"\n      selected={selected}\n      assign={assign}\n      onHoverIn={() => {\n        if (editor.isEditable) {\n          setShowHandle(true)\n        }\n      }}\n      onHoverOut={videoMouseLeaveHandler}\n      width={currentWidth}\n    >\n      {showHandle && (\n        <>\n          <ResizeHandle left={4} onMouseDown={leftResizeHandleMouseDownHandler} />\n          <ResizeHandle right={4} onMouseDown={rightResizeHandleMouseDownHandler} />\n        </>\n      )}\n      {isLoading ? (\n        <div className=\"flex h-32 w-full items-center justify-center bg-gray-100\">Loading video...</div>\n      ) : (\n        displayVideoType(videoURL)\n      )}\n    </MediaContainer>\n  )\n}\n\nconst Render = (block: Block<HMBlockSchema>, editor: BlockNoteEditor<HMBlockSchema>) => {\n  const submitVideo = async (\n    assignMedia: (props: MediaType) => void,\n    queryType: string,\n    url?: string,\n    setErrorRaised?: any,\n  ) => {\n    if (queryType === 'upload') {\n      const filePaths = await window.fileSystem.openVideoFileDialog()\n\n      if (filePaths && filePaths.length > 0) {\n        const filePath: string = filePaths[0]\n        const fileData = await window.fileSystem.readFile(filePath, 'base64')\n        const videoData = `data:video/mp4;base64,${fileData}`\n        const { id } = block\n\n        const storedVideoUrl = await window.fileSystem.storeVideo(videoData, filePath, id)\n        assignMedia({\n          id,\n          props: {\n            url: storedVideoUrl,\n            name: filePath,\n          },\n          children: [],\n          content: [],\n          type: 'video',\n        })\n      }\n    } else if (url && isValidUrl(url)) {\n      let embedUrl = 'https://www.youtube.com/embed/'\n      if (url.includes('youtu.be') || url.includes('youtube')) {\n        const ytId = youtubeParser(url)\n        if (ytId) {\n          embedUrl += ytId\n        } else {\n          setErrorRaised(`Unsupported Youtube URL`)\n          return\n        }\n      } else if (url.includes('vimeo')) {\n        const urlArray = url.split('/')\n        embedUrl = `https://player.vimeo.com/video/${urlArray[urlArray.length - 1]}`\n      } else {\n        setErrorRaised(`Unsupported video source.`)\n        return\n      }\n      assignMedia({ props: { url: embedUrl } } as MediaType)\n    } else {\n      setErrorRaised(`The provided URL is invalid`)\n      return\n    }\n    const cursorPosition = editor.getTextCursorPosition()\n    editor.focus()\n    if (cursorPosition.block.id === block.id) {\n      if (cursorPosition.nextBlock) editor.setTextCursorPosition(cursorPosition.nextBlock, 'start')\n      else {\n        editor.insertBlocks([{ type: 'paragraph', content: '' }], block.id, 'after')\n        editor.setTextCursorPosition(editor.getTextCursorPosition().nextBlock!, 'start')\n      }\n    }\n  }\n\n  return (\n    <MediaRender\n      block={block}\n      hideForm={!!block.props.url}\n      editor={editor}\n      mediaType=\"video\"\n      submit={submitVideo}\n      DisplayComponent={Display}\n    />\n  )\n}\n\nexport const VideoBlock = createReactBlockSpec({\n  type: 'video',\n  propSchema: {\n    ...defaultProps,\n    url: {\n      default: '',\n    },\n    src: {\n      default: '',\n    },\n    name: {\n      default: '',\n    },\n    width: {\n      default: '',\n    },\n    defaultOpen: {\n      values: ['false', 'true'],\n      default: 'false',\n    },\n  },\n  containsInlineContent: true,\n  render: ({ block, editor }: { block: Block<HMBlockSchema>; editor: BlockNoteEditor<HMBlockSchema> }) =>\n    Render(block, editor),\n\n  parseHTML: [\n    {\n      tag: 'video[src]',\n      getAttrs: (element: any) => {\n        return { url: element.getAttribute('src') }\n      },\n    },\n    {\n      tag: 'iframe',\n      getAttrs: (element: any) => {\n        return { url: element.getAttribute('src'), width: element.getAttribute('width') }\n      },\n    },\n  ],\n})\n"
  },
  {
    "path": "src/components/Editor/types/index.ts",
    "content": "export * from './media-render'\n"
  },
  {
    "path": "src/components/Editor/types/media-container.tsx",
    "content": "import React, { useState } from 'react'\nimport { Button, YStack } from 'tamagui'\nimport { Block, BlockNoteEditor, InlineContent } from '@/lib/blocknote'\nimport type { HMBlockSchema } from '../schema'\nimport { MediaType } from './media-render'\n\ninterface ContainerProps {\n  editor: BlockNoteEditor<HMBlockSchema>\n  block: Block<HMBlockSchema>\n  mediaType: string\n  styleProps?: Object\n  selected: boolean\n  assign: any\n  children: any\n  onHoverIn?: () => void\n  onHoverOut?: (e: any) => void\n  width?: number | string\n  className?: string\n  // onPress?: (e: Event) => void\n}\n\nconst MediaContainer = ({\n  editor,\n  block,\n  mediaType,\n  styleProps,\n  selected,\n  assign,\n  children,\n  onHoverIn,\n  onHoverOut,\n  width = '100%',\n  className,\n  // onPress,\n}: ContainerProps) => {\n  const [hover, setHover] = useState(false)\n\n  const mediaProps = {\n    ...styleProps,\n    onHoverIn: () => {\n      if (onHoverIn) onHoverIn()\n      setHover(true)\n    },\n    onHoverOut: (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n      if (onHoverOut) onHoverOut(e)\n      setHover(false)\n    },\n    outlineWidth: 0,\n  }\n\n  return (\n    <YStack\n      gap=\"$2\"\n      group=\"item\"\n      maxWidth=\"100%\"\n      width={width}\n      alignSelf=\"center\"\n      borderWidth={0}\n      // @ts-expect-error\n      draggable=\"true\"\n      onDragStart={(e: any) => {\n        e.stopPropagation()\n        editor.sideMenu.blockDragStart(e)\n      }}\n      onDragEnd={(e: any) => {\n        e.stopPropagation()\n        editor.sideMenu.blockDragEnd()\n      }}\n    >\n      <YStack\n        borderColor={selected ? '$color8' : '$colorTransparent'}\n        borderWidth={3}\n        borderRadius=\"$2\"\n        {...mediaProps}\n        // @ts-ignore\n        contentEditable={false}\n        className={className ?? block.type}\n        group=\"item\"\n        maxWidth=\"100%\"\n      >\n        {(hover || selected) && mediaType !== 'embed'\n          ? editor.isEditable && (\n              <Button\n                position=\"absolute\"\n                top=\"$1.5\"\n                right=\"$1.5\"\n                zIndex=\"$4\"\n                size=\"$1\"\n                width={60}\n                onPress={() =>\n                  assign({\n                    props: {\n                      url: '',\n                      name: '',\n                      size: '0',\n                      width: mediaType === 'image' ? editor.domElement.firstElementChild!.clientWidth : undefined,\n                    },\n                    children: [],\n                    content: [],\n                    type: mediaType,\n                  } as MediaType)\n                }\n                hoverStyle={{\n                  backgroundColor: '$backgroundHover',\n                }}\n              >\n                replace\n              </Button>\n            )\n          : null}\n        {children}\n      </YStack>\n      {mediaType === 'image' && <InlineContent className=\"image-caption\" />}\n    </YStack>\n  )\n}\n\nexport default MediaContainer\n"
  },
  {
    "path": "src/components/Editor/types/media-render.tsx",
    "content": "import React, { useState } from 'react'\nimport { YStack } from 'tamagui'\nimport { NodeSelection, TextSelection } from 'prosemirror-state'\nimport { EmbedComponent } from '../ui/src'\nimport { Block, BlockNoteEditor, useEditorSelectionChange } from '@/lib/blocknote'\nimport MultipleNodeSelection from '@/lib/blocknote/core/extensions/DraggableBlocks/MultipleNodeSelection'\nimport type { HMBlockSchema } from '../schema'\nimport { getNodesInSelection } from './utils'\nimport mediaConfig from '@/components/Editor/ui/src/tamagui/config/mediaEmbed'\n\nexport type MediaType = {\n  id: string\n  props: {\n    url: string\n    name: string\n    size?: string\n    view?: 'Content' | 'Card'\n    width?: string\n  }\n  children: []\n  content: []\n  type: string\n}\n\nexport interface DisplayComponentProps {\n  editor: BlockNoteEditor<HMBlockSchema>\n  block: Block<HMBlockSchema>\n  selected: boolean\n  setSelected: any\n  assign?: any\n}\n\ninterface RenderProps {\n  block: Block<HMBlockSchema>\n  editor: BlockNoteEditor<HMBlockSchema>\n  mediaType: keyof typeof mediaConfig\n  submit?: (\n    assignMedia: (props: MediaType) => void,\n    queryType: string,\n    url?: string,\n    setFileName?: any,\n  ) => Promise<void>\n  DisplayComponent: React.ComponentType<DisplayComponentProps>\n  hideForm?: boolean\n}\n\ninterface MediaComponentProps {\n  block: Block<HMBlockSchema>\n  editor: BlockNoteEditor<HMBlockSchema>\n  assign: any\n  selected: boolean\n  setSelected: any\n  DisplayComponent: React.ComponentType<DisplayComponentProps>\n}\n\nconst MediaComponent: React.FC<MediaComponentProps> = ({\n  block,\n  editor,\n  assign,\n  selected,\n  setSelected,\n  DisplayComponent,\n}) => {\n  return (\n    <DisplayComponent editor={editor} block={block} selected={selected} setSelected={setSelected} assign={assign} />\n  )\n}\n\nexport function updateSelection(\n  editor: BlockNoteEditor<HMBlockSchema>,\n  block: Block<HMBlockSchema>,\n  setSelected: (selected: boolean) => void,\n) {\n  const { view } = editor._tiptapEditor\n  const { selection } = view.state\n  let isSelected = false\n\n  if (selection instanceof NodeSelection) {\n    // If the selection is a NodeSelection, check if this block is the selected node\n    const selectedNode = view.state.doc.resolve(selection.from).parent\n    if (selectedNode && selectedNode.attrs && selectedNode.attrs.id === block.id) {\n      isSelected = true\n    }\n  } else if (selection instanceof TextSelection || selection instanceof MultipleNodeSelection) {\n    // If it's a TextSelection or MultipleNodeSelection (TODO Fix for drag), check if this block's node is within the selection range\n    const selectedNodes = getNodesInSelection(view)\n    isSelected = selectedNodes.some((node) => node.attrs && node.attrs.id === block.id)\n  }\n\n  setSelected(isSelected)\n}\n\nexport const MediaRender: React.FC<RenderProps> = ({\n  block,\n  editor,\n  mediaType,\n  submit,\n  DisplayComponent,\n  hideForm,\n}) => {\n  const [selected, setSelected] = useState(false)\n  useEditorSelectionChange(editor, () => updateSelection(editor, block, setSelected))\n\n  const assignMedia = (props: MediaType) => {\n    editor.updateBlock(block.id, props)\n  }\n  return (\n    <YStack>\n      {hideForm ? (\n        <MediaComponent\n          block={block}\n          editor={editor}\n          assign={assignMedia}\n          selected={selected}\n          setSelected={setSelected}\n          DisplayComponent={DisplayComponent}\n        />\n      ) : (\n        <EmbedComponent props={mediaConfig[mediaType]} submit={submit} assign={assignMedia} />\n      )}\n    </YStack>\n  )\n}\n"
  },
  {
    "path": "src/components/Editor/types/utils.ts",
    "content": "import { Editor } from '@tiptap/core'\nimport { Node as TipTapNode } from '@tiptap/pm/model'\nimport { EditorView } from '@tiptap/pm/view'\nimport { Block, BlockSchema } from '@/lib/blocknote'\n\nexport function youtubeParser(url: string) {\n  const regExp = /^.*((youtu.be\\/)|(v\\/)|(\\/u\\/\\w\\/)|(embed\\/)|(watch\\?))\\??v?=?([^#&?]*).*/\n  const match = url.match(regExp)\n  return match && match[7].length === 11 ? match[7] : false\n}\n\nexport function isValidUrl(urlString: string) {\n  try {\n    return Boolean(new URL(urlString))\n  } catch (e) {\n    return false\n  }\n}\n\nexport function camelToFlat(camel: string) {\n  const camelCase = camel.replace(/([a-z])([A-Z])/g, '$1 $2')\n\n  return camelCase\n}\n\nexport const timeoutPromise = (promise: Promise<any>, delay: number, reason?: any): Promise<any> =>\n  Promise.race([\n    promise,\n    // eslint-disable-next-line no-promise-executor-return\n    new Promise((resolve, reject) => setTimeout(() => (reason === undefined ? resolve(null) : reject(reason)), delay)),\n  ])\n\nexport function setGroupTypes(tiptap: Editor, blocks: Array<Partial<Block<BlockSchema>>>) {\n  blocks.forEach((block: Partial<Block<BlockSchema>>) => {\n    tiptap.state.doc.descendants((node: TipTapNode, pos: number) => {\n      if (node.attrs.id === block.id && block.props && block.props.childrenType) {\n        node.descendants((child: TipTapNode, childPos: number) => {\n          if (child.type.name === 'blockGroup') {\n            setTimeout(() => {\n              let { tr } = tiptap.state\n              tr = block.props?.start\n                ? tr.setNodeMarkup(pos + childPos + 1, null, {\n                    listType: block.props?.childrenType,\n                    listLevel: block.props?.listLevel,\n                    start: parseInt(block.props?.start, 10),\n                  })\n                : tr.setNodeMarkup(pos + childPos + 1, null, {\n                    listType: block.props?.childrenType,\n                    listLevel: block.props?.listLevel,\n                  })\n              tiptap.view.dispatch(tr)\n            })\n            return false\n          }\n          return true\n        })\n      }\n    })\n    if (block.children) {\n      setGroupTypes(tiptap, block.children)\n    }\n  })\n}\n\nexport function getNodesInSelection(view: EditorView) {\n  const { state } = view\n  const { from, to } = state.selection\n  const nodes: TipTapNode[] = []\n\n  state.doc.nodesBetween(from, to, (node) => {\n    if (node.type.name === 'blockContainer') {\n      nodes.push(node)\n    }\n  })\n\n  return nodes\n}\n"
  },
  {
    "path": "src/components/Editor/ui/src/TamaguiPopover.tsx",
    "content": "/* eslint @typescript-eslint/naming-convention: \"off\" */\n/* eslint react/destructuring-assignment: \"off\" */\n\n// THIS FILE IS FORKED FROM TAMAGUI\n// https://github.com/tamagui/tamagui/blob/96536c32f09193934725acd39f3046ed527fcd15/code/ui/popover/src/Popover.tsx\n// Because if we use @tamagui/popper, it fails because Popper.tsx imports from RN (not RNW), and the rewrite is failing. So here we change the imports to RNW.\n\nimport '@tamagui/polyfill-dev'\n\nimport type { UseHoverProps } from '@floating-ui/react'\nimport { Animate } from '@tamagui/animate'\nimport { ResetPresence } from '@tamagui/animate-presence'\nimport { hideOthers } from '@tamagui/aria-hidden'\nimport { useComposedRefs } from '@tamagui/compose-refs'\nimport { isWeb } from '@tamagui/constants'\nimport type { MediaQueryKey, ScopedProps, SizeTokens, StackProps, TamaguiElement } from '@tamagui/core'\nimport { Stack, Theme, View, createStyledContext, useMedia, useThemeName } from '@tamagui/core'\nimport type { DismissableProps, PointerDownOutsideEvent } from '@tamagui/dismissable'\nimport type { FocusScopeProps } from '@tamagui/focus-scope'\nimport { FocusScope } from '@tamagui/focus-scope'\nimport { composeEventHandlers } from '@tamagui/helpers'\nimport { Portal, PortalItem } from '@tamagui/portal'\nimport type { RemoveScrollProps } from '@tamagui/remove-scroll'\nimport { RemoveScroll } from '@tamagui/remove-scroll'\nimport type { YStackProps } from '@tamagui/stacks'\nimport { YStack } from '@tamagui/stacks'\nimport React, { FocusEvent } from 'react'\nimport { Platform, ScrollView } from 'react-native'\nimport type { PopperArrowExtraProps, PopperArrowProps, PopperContentProps, PopperProps } from './TamaguiPopper'\nimport {\n  PopperAnchor,\n  PopperArrow,\n  PopperContent,\n  PopperContentFrame,\n  PopperContext,\n  usePopperContext,\n} from './TamaguiPopper'\n\n// adapted from radix-ui popover\n\nexport type PopoverProps = PopperProps & {\n  open?: boolean\n  defaultOpen?: boolean\n  onOpenChange?: (open: boolean, via?: 'hover' | 'press') => void\n  keepChildrenMounted?: boolean\n\n  /**\n   * Enable staying open while mouseover\n   */\n  hoverable?: boolean | UseHoverProps\n\n  /**\n   * Disable focusing behavior on open\n   */\n  disableFocus?: boolean\n}\n\ntype ScopedPopoverProps<P> = ScopedProps<P, 'Popover'>\n\ntype PopoverContextValue = {\n  id: string\n  triggerRef: React.RefObject<any>\n  contentId?: string\n  open: boolean\n  onOpenChange(open: boolean, via: 'hover' | 'press'): void\n  onOpenToggle(): void\n  hasCustomAnchor: boolean\n  onCustomAnchorAdd(): void\n  onCustomAnchorRemove(): void\n  size?: SizeTokens\n  sheetBreakpoint: any\n  breakpointActive?: boolean\n  keepChildrenMounted?: boolean\n  anchorTo?: Rect\n}\n\nconst POPOVER_SCOPE = 'PopoverScope'\n\nexport const PopoverContext = createStyledContext<PopoverContextValue>({} as any)\n\nexport const usePopoverContext = PopoverContext.useStyledContext\n\nconst dspContentsStyle = {\n  display: 'contents',\n}\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getState(open: boolean) {\n  return open ? 'open' : 'closed'\n}\n\nconst PopoverRepropagateContext = (props: { children: any; context: any; popperContext: any; scope: string }) => {\n  return (\n    <PopperContext.Provider scope={props.scope} {...props.popperContext}>\n      <PopoverContext.Provider {...props.context}>{props.children}</PopoverContext.Provider>\n    </PopperContext.Provider>\n  )\n}\n\nconst PopoverContentPortal = (props: ScopedPopoverProps<PopoverContentTypeProps>) => {\n  const { __scopePopover } = props\n  const zIndex = props.zIndex ?? 150_000\n  const context = usePopoverContext(__scopePopover)\n  const popperContext = usePopperContext(__scopePopover || POPOVER_SCOPE)\n  const themeName = useThemeName()\n\n  let contents = props.children\n\n  // native doesnt support portals\n  if (Platform.OS === 'android' || Platform.OS === 'ios') {\n    contents = (\n      <PopoverRepropagateContext\n        scope={__scopePopover || POPOVER_SCOPE}\n        popperContext={popperContext}\n        context={context}\n      >\n        {props.children}\n      </PopoverRepropagateContext>\n    )\n  }\n\n  // Portal the contents and add a transparent bg overlay to handle dismiss on native\n  return (\n    <Portal zIndex={zIndex}>\n      {/* forceClassName avoids forced re-mount renders for some reason... see the HeadMenu as you change tints a few times */}\n      {/* without this you'll see the site menu re-rendering. It must be something in wrapping children in Theme */}\n      <Theme forceClassName name={themeName}>\n        {!!context.open && !context.breakpointActive && (\n          <YStack fullscreen onPress={composeEventHandlers(props.onPress as any, context.onOpenToggle)} />\n        )}\n        {contents}\n      </Theme>\n    </Portal>\n  )\n}\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverSheet\n * -----------------------------------------------------------------------------------------------*/\n\nconst useSheetBreakpointActive = (breakpoint?: MediaQueryKey | null | boolean) => {\n  const media = useMedia()\n  if (typeof breakpoint === 'boolean' || !breakpoint) {\n    return !!breakpoint\n  }\n  return media[breakpoint]\n}\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverAnchor\n * -----------------------------------------------------------------------------------------------*/\n\nexport type PopoverAnchorProps = YStackProps\n\nexport const PopoverAnchor = React.forwardRef<TamaguiElement, ScopedPopoverProps<PopoverAnchorProps>>(\n  function PopoverAnchor(props: ScopedPopoverProps<PopoverAnchorProps>, forwardedRef) {\n    const { __scopePopover, ...rest } = props\n    const context = usePopoverContext(__scopePopover)\n    const { onCustomAnchorAdd, onCustomAnchorRemove } = context || {}\n\n    React.useEffect(() => {\n      onCustomAnchorAdd()\n      return () => onCustomAnchorRemove()\n    }, [onCustomAnchorAdd, onCustomAnchorRemove])\n\n    return (\n      <PopperAnchor __scopePopper={__scopePopover || POPOVER_SCOPE} {...rest} ref={forwardedRef as React.Ref<any>} />\n    )\n  },\n)\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nexport type PopoverTriggerProps = StackProps\n\nexport const PopoverTrigger = React.forwardRef<TamaguiElement, ScopedPopoverProps<PopoverTriggerProps>>(\n  function PopoverTrigger(props: ScopedPopoverProps<PopoverTriggerProps>, forwardedRef) {\n    const { __scopePopover, ...rest } = props\n    const context = usePopoverContext(__scopePopover)\n    const { anchorTo } = context\n\n    const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef)\n\n    if (!props.children) return null\n\n    const trigger = (\n      <View\n        aria-haspopup=\"dialog\"\n        aria-expanded={context.open}\n        // TODO not matching\n        // aria-controls={context.contentId}\n        data-state={getState(context.open)}\n        {...rest}\n        // @ts-ignore\n        ref={composedTriggerRef}\n        onPress={composeEventHandlers(props.onPress as any, context.onOpenToggle)}\n      />\n    )\n\n    if (anchorTo) {\n      const virtualRef = {\n        current: {\n          getBoundingClientRect: () => (isWeb ? DOMRect.fromRect(anchorTo) : anchorTo),\n          ...(!isWeb && {\n            measure: (c: any) => c(anchorTo?.x, anchorTo?.y, anchorTo?.width, anchorTo?.height),\n            measureInWindow: (c: any) => c(anchorTo?.x, anchorTo?.y, anchorTo?.width, anchorTo?.height),\n          }),\n        },\n      }\n      return (\n        <PopperAnchor virtualRef={virtualRef} __scopePopper={__scopePopover || POPOVER_SCOPE}>\n          {trigger}\n        </PopperAnchor>\n      )\n    }\n\n    return context.hasCustomAnchor ? (\n      trigger\n    ) : (\n      <PopperAnchor __scopePopper={__scopePopover || POPOVER_SCOPE} asChild>\n        {trigger}\n      </PopperAnchor>\n    )\n  },\n)\n\nconst PopoverContentImpl = React.forwardRef<PopoverContentImplElement, ScopedPopoverProps<PopoverContentImplProps>>(\n  function PopoverContentImpl(props: ScopedPopoverProps<PopoverContentImplProps>, forwardedRef) {\n    const {\n      trapFocus,\n      __scopePopover,\n      onOpenAutoFocus,\n      onCloseAutoFocus,\n      disableOutsidePointerEvents,\n      disableFocusScope,\n      onEscapeKeyDown,\n      onPointerDownOutside,\n      onFocusOutside,\n      onInteractOutside,\n      children,\n      disableRemoveScroll,\n      freezeContentsWhenHidden,\n      setIsFullyHidden,\n      ...contentProps\n    } = props\n\n    const context = usePopoverContext(__scopePopover)\n    const { open, keepChildrenMounted } = context\n    const popperContext = usePopperContext(__scopePopover || POPOVER_SCOPE)\n\n    const handleExitComplete = React.useCallback(() => {\n      setIsFullyHidden?.(true)\n    }, [setIsFullyHidden])\n\n    if (context.breakpointActive) {\n      // unwrap the PopoverScrollView if used, as it will use the SheetScrollView if that exists\n      // TODO this should be disabled through context\n      const childrenWithoutScrollView = React.Children.toArray(children).map((child) => {\n        if (React.isValidElement(child)) {\n          if (child.type === ScrollView) {\n            return child.props.children\n          }\n        }\n        return child\n      })\n\n      let content = <ResetPresence>{childrenWithoutScrollView}</ResetPresence>\n\n      if (Platform.OS === 'android' || Platform.OS === 'ios') {\n        content = (\n          <PopperContext.Provider scope={__scopePopover || POPOVER_SCOPE} {...popperContext}>\n            {childrenWithoutScrollView}\n          </PopperContext.Provider>\n        )\n      }\n\n      // doesn't show as popover yet on native, must use as sheet\n      return <PortalItem hostName={`${context.id}PopoverContents`}>{content}</PortalItem>\n    }\n\n    // const handleDismiss = React.useCallback((event: GestureResponderEvent) =>{\n    //   context.onOpenChange(false);\n    // }, [])\n    // <Dismissable\n    //     disableOutsidePointerEvents={disableOutsidePointerEvents}\n    //     // onInteractOutside={onInteractOutside}\n    //     onEscapeKeyDown={onEscapeKeyDown}\n    //     // onPointerDownOutside={onPointerDownOutside}\n    //     // onFocusOutside={onFocusOutside}\n    //     onDismiss={handleDismiss}\n    //   >\n\n    // const freeze = Boolean(isFullyHidden && freezeContentsWhenHidden)\n\n    return (\n      <Animate\n        type=\"presence\"\n        present={Boolean(open)}\n        keepChildrenMounted={keepChildrenMounted}\n        onExitComplete={handleExitComplete}\n      >\n        <PopperContent\n          __scopePopper={__scopePopover || POPOVER_SCOPE}\n          key={context.contentId}\n          data-state={getState(open)}\n          id={context.contentId}\n          ref={forwardedRef}\n          {...contentProps}\n        >\n          <RemoveScroll\n            enabled={disableRemoveScroll ? false : open}\n            allowPinchZoom\n            // causes lots of bugs on touch web on site\n            removeScrollBar={false}\n            style={dspContentsStyle}\n          >\n            <ResetPresence>\n              <FocusScope\n                loop\n                enabled={disableFocusScope ? false : open}\n                trapped={trapFocus}\n                onMountAutoFocus={onOpenAutoFocus}\n                onUnmountAutoFocus={onCloseAutoFocus}\n              >\n                {isWeb ? <div style={dspContentsStyle}>{children}</div> : children}\n              </FocusScope>\n            </ResetPresence>\n          </RemoveScroll>\n        </PopperContent>\n      </Animate>\n    )\n  },\n)\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverContent\n * -----------------------------------------------------------------------------------------------*/\n\nexport type PopoverContentProps = PopoverContentTypeProps\n\ntype PopoverContentTypeElement = PopoverContentImplElement\n\nexport interface PopoverContentTypeProps extends Omit<PopoverContentImplProps, 'disableOutsidePointerEvents'> {\n  /**\n   * @see https://github.com/theKashey/react-remove-scroll#usage\n   */\n  allowPinchZoom?: RemoveScrollProps['allowPinchZoom']\n  /** enable animation for content position changing */\n  enableAnimationForPositionChange?: boolean\n}\n\nexport const PopoverContent = PopperContentFrame.extractable(\n  React.forwardRef<PopoverContentTypeElement, ScopedPopoverProps<PopoverContentTypeProps>>(function PopoverContent(\n    props: ScopedPopoverProps<PopoverContentTypeProps>,\n    forwardedRef,\n  ) {\n    const { allowPinchZoom, trapFocus, disableRemoveScroll = true, zIndex, __scopePopover, ...contentImplProps } = props\n    const context = usePopoverContext(__scopePopover)\n    const contentRef = React.useRef<any>(null)\n    const composedRefs = useComposedRefs(forwardedRef, contentRef)\n    const isRightClickOutsideRef = React.useRef(false)\n    const [isFullyHidden, setIsFullyHidden] = React.useState(!context.open)\n\n    if (context.open && isFullyHidden) {\n      setIsFullyHidden(false)\n    }\n\n    // aria-hide everything except the content (better supported equivalent to setting aria-modal)\n    React.useEffect(() => {\n      if (!context.open) return\n      const content = contentRef.current\n      // eslint-disable-next-line consistent-return\n      if (content) return hideOthers(content)\n    }, [context.open])\n\n    if (!context.keepChildrenMounted) {\n      if (isFullyHidden) {\n        return null\n      }\n    }\n\n    return (\n      <PopoverContentPortal __scopePopover={__scopePopover} zIndex={props.zIndex}>\n        <Stack pointerEvents={context.open ? 'auto' : 'none'}>\n          <PopoverContentImpl\n            {...contentImplProps}\n            disableRemoveScroll={disableRemoveScroll}\n            ref={composedRefs}\n            setIsFullyHidden={setIsFullyHidden}\n            __scopePopover={__scopePopover}\n            trapFocus={trapFocus ?? context.open}\n            disableOutsidePointerEvents\n            // @ts-expect-error\n            onCloseAutoFocus={composeEventHandlers(props.onCloseAutoFocus, (event: FocusEvent) => {\n              event.preventDefault()\n              if (!isRightClickOutsideRef.current) context.triggerRef.current?.focus()\n            })}\n            onPointerDownOutside={composeEventHandlers(\n              props.onPointerDownOutside,\n              (event: PointerDownOutsideEvent) => {\n                const { originalEvent } = event.detail\n                const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true\n                const isRightClick = originalEvent.button === 2 || ctrlLeftClick\n                isRightClickOutsideRef.current = isRightClick\n              },\n              { checkDefaultPrevented: false },\n            )}\n            // When focus is trapped, a `focusout` event may still happen.\n            // We make sure we don't trigger our `onDismiss` in such case.\n            // @ts-expect-error\n            onFocusOutside={composeEventHandlers(props.onFocusOutside, (event: FocusEvent) => event.preventDefault(), {\n              checkDefaultPrevented: false,\n            })}\n          />\n        </Stack>\n      </PopoverContentPortal>\n    )\n  }),\n)\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype PopoverContentImplElement = React.ElementRef<typeof PopperContent>\n\nexport interface PopoverContentImplProps\n  extends PopperContentProps,\n    Omit<DismissableProps, 'onDismiss' | 'children' | 'onPointerDownCapture'> {\n  /**\n   * Whether focus should be trapped within the `Popover`\n   * @default false\n   */\n  trapFocus?: FocusScopeProps['trapped']\n\n  /**\n   * Whether popover should not focus contents on open\n   * @default false\n   */\n  disableFocusScope?: boolean\n\n  /**\n   * Event handler called when auto-focusing on open.\n   * Can be prevented.\n   */\n  onOpenAutoFocus?: FocusScopeProps['onMountAutoFocus']\n\n  /**\n   * Event handler called when auto-focusing on close.\n   * Can be prevented.\n   */\n  onCloseAutoFocus?: FocusScopeProps['onUnmountAutoFocus']\n\n  disableRemoveScroll?: boolean\n\n  freezeContentsWhenHidden?: boolean\n\n  setIsFullyHidden?: React.Dispatch<React.SetStateAction<boolean>>\n}\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverClose\n * -----------------------------------------------------------------------------------------------*/\n\nexport type PopoverCloseProps = YStackProps\n\nexport const PopoverClose = React.forwardRef<TamaguiElement, ScopedPopoverProps<PopoverCloseProps>>(\n  function PopoverClose(props: ScopedPopoverProps<PopoverCloseProps>, forwardedRef) {\n    const { __scopePopover, ...rest } = props\n    const context = usePopoverContext(__scopePopover)\n    return (\n      <YStack\n        {...rest}\n        ref={forwardedRef}\n        componentName=\"PopoverClose\"\n        onPress={composeEventHandlers(props.onPress as any, () => context.onOpenChange(false, 'press'))}\n      />\n    )\n  },\n)\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverArrow\n * -----------------------------------------------------------------------------------------------*/\n\nexport type PopoverArrowProps = PopperArrowProps\n\nexport const PopoverArrow = PopperArrow.styleable<PopperArrowExtraProps>(function PopoverArrow(\n  props: ScopedPopoverProps<PopoverArrowProps>,\n  forwardedRef,\n) {\n  const { __scopePopover, ...rest } = props\n  const context = usePopoverContext(__scopePopover)\n  const sheetActive = useSheetBreakpointActive(context.sheetBreakpoint)\n  if (sheetActive) {\n    return null\n  }\n  return (\n    <PopperArrow\n      __scopePopper={__scopePopover || POPOVER_SCOPE}\n      componentName=\"PopoverArrow\"\n      {...rest}\n      ref={forwardedRef}\n    />\n  )\n})\n\n/* -------------------------------------------------------------------------------------------------\n * Popover\n * -----------------------------------------------------------------------------------------------*/\n\ntype Rect = {\n  x: number\n  y: number\n  width: number\n  height: number\n}\n\nexport type PopoverType = {\n  anchorTo: (rect: Rect) => void\n  toggle: () => void\n  open: () => void\n  close: () => void\n  setOpen: (open: boolean) => void\n}\n"
  },
  {
    "path": "src/components/Editor/ui/src/TamaguiPopoverUseFloatingContext.tsx",
    "content": "/* eslint-disable*/\n// THIS FILE IS FORKED FROM TAMAGUI\n// https://github.com/tamagui/tamagui/blob/96536c32f09193934725acd39f3046ed527fcd15/code/ui/popover/src/\n// Because if we use @tamagui/popper, it fails because Popper.tsx imports from RN (not RNW), and the rewrite is failing. So here we change the imports to RNW.\n///////////////////////\n\nimport type { UseFloatingOptions } from '@floating-ui/react'\nimport { safePolygon, useDismiss, useFloating, useFocus, useHover, useInteractions, useRole } from '@floating-ui/react'\nimport React from 'react'\n\ninterface FloatingContextProps {\n  open: boolean\n  setOpen: (val: boolean, type: 'hover' | 'press') => void\n  disable: boolean\n  disableFocus: boolean\n  hoverable: boolean | Record<string, any>  \n}\n\n// Custom floating context to override the Popper on web\nexport const useFloatingContext = ({ open, setOpen, disable, disableFocus, hoverable }: FloatingContextProps) => {\n  return React.useCallback(\n    (props: UseFloatingOptions) => {\n      const floating = useFloating({\n        ...props,\n        open,\n        onOpenChange: (val, event) => {\n          const type =\n            event?.type === 'mousemove' || event?.type === 'mouseenter' || event?.type === 'mouseleave'\n              ? 'hover'\n              : 'press'\n          setOpen(val, type)\n        },\n      }) as any\n      const { getReferenceProps, getFloatingProps } = useInteractions([\n        hoverable\n          ? useHover(floating.context, {\n              enabled: !disable && hoverable as boolean,\n              handleClose: safePolygon({\n                requireIntent: true,\n                blockPointerEvents: true,\n                buffer: 1,\n              }),\n              ...(hoverable && typeof hoverable === 'object' && hoverable),\n            })\n          : useHover(floating.context, {\n              enabled: false,\n            }),\n        useFocus(floating.context, {\n          enabled: !disable && !disableFocus,\n          visibleOnly: true,\n        }),\n        useRole(floating.context, { role: 'dialog' }),\n        useDismiss(floating.context, {\n          enabled: !disable,\n        }),\n      ])\n      return {\n        ...floating,\n        open,\n        getReferenceProps,\n        getFloatingProps,\n      }\n    },\n    [open, setOpen, disable, disableFocus, hoverable],\n  )\n}\n"
  },
  {
    "path": "src/components/Editor/ui/src/TamaguiPopper.tsx",
    "content": "// THIS FILE IS FORKED FROM TAMAGUI\n// https://github.com/tamagui/tamagui/blob/master/code/ui/popper/src/Popper.tsx\n// Because if we use @tamagui/popper, it fails because Popper.tsx imports from RN (not RNW), and the rewrite is failing. So here we change the imports to RNW.\n//\n\n// adapted from radix-ui popper\nimport { useComposedRefs } from '@tamagui/compose-refs'\nimport { useIsomorphicLayoutEffect } from '@tamagui/constants'\nimport type { ScopedProps, SizeTokens, StackProps } from '@tamagui/core'\nimport {\n  Stack,\n  View as TamaguiView,\n  createStyledContext,\n  getVariableValue,\n  styled,\n  useDidFinishSSR,\n  useProps,\n} from '@tamagui/core'\nimport type { Coords, OffsetOptions, Placement, Strategy, UseFloatingReturn } from '@tamagui/floating'\nimport { arrow, flip, offset as offsetFn, platform, shift, useFloating } from '@tamagui/floating'\nimport { getSpace } from '@tamagui/get-token'\nimport type { SizableStackProps, YStackProps } from '@tamagui/stacks'\nimport { ThemeableStack, YStack } from '@tamagui/stacks'\nimport React, { useState, useEffect, useRef, useMemo, ReactNode, forwardRef, RefObject } from 'react'\n\ntype ShiftProps = typeof shift extends (options: infer Opts) => void ? Opts : never\ntype FlipProps = typeof flip extends (options: infer Opts) => void ? Opts : never\n\n/* -------------------------------------------------------------------------------------------------\n * Popper\n * -----------------------------------------------------------------------------------------------*/\n\nexport type PopperContextValue = UseFloatingReturn & {\n  isMounted: boolean\n  size?: SizeTokens\n  placement?: Placement\n  arrowRef: any\n  onArrowSize?: (val: number) => void\n  hasFloating: boolean\n  arrowStyle?: Partial<Coords> & {\n    centerOffset: number\n  }\n}\n\nexport const PopperContext = createStyledContext<PopperContextValue>({} as any)\n\nexport const { useStyledContext: usePopperContext, Provider: PopperProvider } = PopperContext\n\nexport type PopperProps = {\n  size?: SizeTokens\n  children?: ReactNode\n  placement?: Placement\n  stayInFrame?: ShiftProps | boolean\n  allowFlip?: FlipProps | boolean\n  strategy?: Strategy\n  offset?: OffsetOptions\n  disableRTL?: boolean\n}\n\ntype ScopedPopperProps<P> = ScopedProps<P, 'Popper'>\n\nconst checkFloating =\n  process.env.TAMAGUI_TARGET === 'native'\n    ? {\n        name: 'checkFloating',\n        fn(data: any) {\n          return {\n            data: {\n              hasFloating: !!data.rects.floating.width,\n            },\n          }\n        },\n      }\n    : undefined\n\nexport type PopperSetupOptions = {\n  disableRTL?: boolean\n}\n\nconst setupOptions: PopperSetupOptions = {}\n\nexport function setupPopper(options?: PopperSetupOptions) {\n  Object.assign(setupOptions, options)\n}\n\nexport const Popper = (props: ScopedPopperProps<PopperProps>) => {\n  const {\n    children,\n    size,\n    strategy = 'absolute',\n    placement = 'bottom',\n    stayInFrame,\n    allowFlip,\n    offset,\n    disableRTL,\n    // eslint-disable-next-line @typescript-eslint/naming-convention\n    __scopePopper,\n  } = props\n\n  const isMounted = useDidFinishSSR()\n  const [arrowEl, setArrow] = useState<any>(null)\n  const [arrowSize, setArrowSize] = useState(0)\n  const offsetOptions = offset ?? arrowSize\n\n  const floating = useFloating({\n    strategy,\n    placement,\n    sameScrollView: false, // this only takes effect on native\n    platform:\n      (disableRTL ?? setupOptions.disableRTL)\n        ? {\n            ...platform,\n            isRTL() {\n              return false\n            },\n          }\n        : platform,\n    middleware: [\n      stayInFrame ? shift(typeof stayInFrame === 'boolean' ? {} : stayInFrame) : (null as any),\n      allowFlip ? flip(typeof allowFlip === 'boolean' ? {} : allowFlip) : (null as any),\n      arrowEl ? arrow({ element: arrowEl }) : (null as any),\n      typeof offsetOptions !== 'undefined' ? offsetFn(offsetOptions) : (null as any),\n      checkFloating,\n    ].filter(Boolean),\n  })\n\n  const { middlewareData } = floating\n\n  const popperContext = {\n    size,\n    arrowRef: setArrow,\n    arrowStyle: middlewareData.arrow,\n    onArrowSize: setArrowSize,\n    isMounted,\n    scope: __scopePopper,\n    hasFloating: middlewareData.checkFloating?.hasFloating,\n    ...floating,\n  }\n\n  return <PopperProvider {...popperContext}>{children}</PopperProvider>\n}\n\n/* -------------------------------------------------------------------------------------------------\n * PopperAnchor\n * -----------------------------------------------------------------------------------------------*/\n\ntype PopperAnchorRef = HTMLElement | typeof TamaguiView\n\nexport type PopperAnchorProps = YStackProps & {\n  virtualRef?: RefObject<any>\n}\n\nexport const PopperAnchor = YStack.extractable(\n  forwardRef<PopperAnchorRef, ScopedPopperProps<PopperAnchorProps>>(function PopperAnchor(\n    props: ScopedPopperProps<PopperAnchorProps>,\n    forwardedRef,\n  ) {\n    // eslint-disable-next-line @typescript-eslint/naming-convention\n    const { virtualRef, __scopePopper, ...anchorProps } = props\n    const { getReferenceProps, refs } = usePopperContext(__scopePopper)\n    const ref = useRef<PopperAnchorRef>(null)\n    const composedRefs = useComposedRefs(forwardedRef, ref, refs.setReference as any)\n\n    useEffect(() => {\n      if (virtualRef) {\n        refs.setReference(virtualRef.current)\n      }\n    }, [virtualRef, refs])\n\n    // if (virtualRef) {\n    //   return null\n    // }\n\n    const stackProps = {\n      ref: composedRefs,\n      ...anchorProps,\n    }\n    return <TamaguiView {...(getReferenceProps ? getReferenceProps(stackProps) : stackProps)} />\n  }),\n)\n\n/* -------------------------------------------------------------------------------------------------\n * PopperContent\n * -----------------------------------------------------------------------------------------------*/\n\ntype PopperContentElement = HTMLElement | typeof TamaguiView\n\nexport type PopperContentProps = SizableStackProps & {\n  enableAnimationForPositionChange?: boolean\n}\n\nexport const PopperContentFrame = styled(ThemeableStack, {\n  name: 'PopperContent',\n\n  variants: {\n    unstyled: {\n      false: {\n        size: '$true',\n        backgroundColor: '$background',\n        alignItems: 'center',\n        radiused: true,\n      },\n    },\n\n    size: {\n      '...size': (val, { tokens }) => {\n        return {\n          // little hack to prevent ts compile error\n          padding: tokens.space[val as keyof typeof tokens.space],\n          borderRadius: tokens.radius[val as keyof typeof tokens.radius],\n        }\n      },\n    },\n  } as const,\n\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === '1',\n  },\n})\n\nexport const PopperContent = forwardRef<PopperContentElement, ScopedPopperProps<PopperContentProps>>(\n  function PopperContent(props: ScopedPopperProps<PopperContentProps>, forwardedRef) {\n    // eslint-disable-next-line @typescript-eslint/naming-convention\n    const { __scopePopper, enableAnimationForPositionChange, ...rest } = props\n    const { strategy, placement, refs, x, y, getFloatingProps, size, isMounted, update } =\n      usePopperContext(__scopePopper)\n    const contentRefs = useComposedRefs<any>(refs.setFloating, forwardedRef)\n\n    const contents = useMemo(() => {\n      return (\n        <PopperContentFrame\n          key=\"popper-content-frame\"\n          data-placement={placement}\n          data-strategy={strategy}\n          contain=\"layout\"\n          size={size}\n          {...rest}\n        />\n      )\n    }, [placement, strategy, rest, size])\n\n    const [needsMeasure, setNeedsMeasure] = useState(true)\n    useEffect(() => {\n      if (x || y) {\n        setNeedsMeasure(false)\n      }\n    }, [x, y])\n\n    useIsomorphicLayoutEffect(() => {\n      if (isMounted) {\n        update()\n      }\n    }, [isMounted])\n\n    // default to not showing if positioned at 0, 0\n    const show = true\n\n    // all poppers hidden on ssr by default\n    if (!isMounted) {\n      return null\n    }\n\n    const frameProps = {\n      ref: contentRefs,\n      x: x || 0,\n      y: y || 0,\n      top: 0,\n      left: 0,\n      position: strategy,\n      opacity: show ? 1 : 0,\n      ...(enableAnimationForPositionChange && {\n        // apply animation but disable it on initial render to avoid animating from 0 to the first position\n        animation: rest.animation,\n        animateOnly: needsMeasure ? ['none'] : rest.animateOnly,\n        animatePresence: false,\n      }),\n    }\n\n    // outer frame because we explicitly don't want animation to apply to this\n    return <Stack {...(getFloatingProps ? getFloatingProps(frameProps) : frameProps)}>{contents}</Stack>\n  },\n)\n\n/* -------------------------------------------------------------------------------------------------\n * PopperArrow\n * -----------------------------------------------------------------------------------------------*/\n\nexport type PopperArrowExtraProps = {\n  offset?: number\n  size?: SizeTokens\n  __scopePopper?: string\n}\n\nexport type PopperArrowProps = YStackProps & PopperArrowExtraProps\n\nconst PopperArrowFrame = styled(YStack, {\n  name: 'PopperArrow',\n\n  variants: {\n    unstyled: {\n      false: {\n        borderColor: '$borderColor',\n        backgroundColor: '$background',\n        position: 'relative',\n      },\n    },\n  } as const,\n\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === '1',\n  },\n})\n\nconst PopperArrowOuterFrame = styled(YStack, {\n  name: 'PopperArrowOuter',\n\n  variants: {\n    unstyled: {\n      false: {\n        position: 'absolute',\n        zIndex: 1_000_000,\n        pointerEvents: 'none',\n        overflow: 'hidden',\n        alignItems: 'center',\n        justifyContent: 'center',\n      },\n    },\n  } as const,\n\n  defaultVariants: {\n    unstyled: process.env.TAMAGUI_HEADLESS === '1',\n  },\n})\n\nconst opposites = {\n  top: 'bottom',\n  right: 'left',\n  bottom: 'top',\n  left: 'right',\n} as const\n\ntype Sides = keyof typeof opposites\n\nexport const PopperArrow = PopperArrowFrame.styleable<PopperArrowExtraProps>(function PopperArrow(\n  propsIn: ScopedPopperProps<PopperArrowProps>,\n  forwardedRef,\n) {\n  // eslint-disable-next-line @typescript-eslint/naming-convention\n  const { __scopePopper, ...rest } = propsIn\n  const props = useProps(rest)\n  const { offset, size: sizeProp, borderWidth = 0, ...arrowProps } = props\n\n  const context = usePopperContext(__scopePopper)\n  const sizeVal =\n    typeof sizeProp === 'number'\n      ? sizeProp\n      : getVariableValue(\n          getSpace(sizeProp ?? context.size, {\n            shift: -2,\n            bounds: [2],\n          }),\n        )\n\n  const size = Math.max(0, +sizeVal)\n\n  const { placement } = context\n  const refs = useComposedRefs(context.arrowRef, forwardedRef)\n\n  // Sometimes floating-ui can return NaN during orientation or screen size changes on native\n  // so we explicitly force the x,y position types as a number\n  const x = (context.arrowStyle?.x as number) || 0\n  const y = (context.arrowStyle?.y as number) || 0\n\n  const primaryPlacement = (placement ? placement.split('-')[0] : 'top') as Sides\n\n  const arrowStyle: StackProps = { x, y, width: size, height: size }\n\n  const innerArrowStyle: StackProps = {}\n  const isVertical = primaryPlacement === 'bottom' || primaryPlacement === 'top'\n\n  if (primaryPlacement) {\n    // allows for extra diagonal size\n    if (isVertical) arrowStyle.width = size * 2\n    else arrowStyle.height = size * 2\n    const oppSide = opposites[primaryPlacement]\n    if (oppSide) {\n      // @ts-expect-error\n      arrowStyle[oppSide] = -size\n      innerArrowStyle[oppSide] = size / 2\n    }\n    if (oppSide === 'top' || oppSide === 'bottom') {\n      arrowStyle.left = 0\n    }\n    if (oppSide === 'left' || oppSide === 'right') {\n      arrowStyle.top = 0\n    }\n\n    // send the Arrow's offset up to Popper\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    useIsomorphicLayoutEffect(() => {\n      context.onArrowSize?.(size)\n    }, [size, context.onArrowSize])\n  }\n\n  // outer frame to cut off for ability to have nicer shadows/borders\n  return (\n    <PopperArrowOuterFrame ref={refs} {...arrowStyle}>\n      <PopperArrowFrame\n        width={size}\n        height={size}\n        {...arrowProps}\n        {...innerArrowStyle}\n        rotate=\"45deg\"\n        {...(primaryPlacement === 'bottom' && {\n          borderLeftWidth: borderWidth,\n          borderTopWidth: borderWidth,\n        })}\n        {...(primaryPlacement === 'top' && {\n          borderBottomWidth: borderWidth,\n          borderRightWidth: borderWidth,\n        })}\n        {...(primaryPlacement === 'right' && {\n          borderLeftWidth: borderWidth,\n          borderBottomWidth: borderWidth,\n        })}\n        {...(primaryPlacement === 'left' && {\n          borderTopWidth: borderWidth,\n          borderRightWidth: borderWidth,\n        })}\n      />\n    </PopperArrowOuterFrame>\n  )\n})\n\n/* -----------------------------------------------------------------------------------------------*/\n"
  },
  {
    "path": "src/components/Editor/ui/src/TamaguiTooltip.tsx",
    "content": "/* eslint @typescript-eslint/naming-convention: \"off\" */\n\n// THIS FILE IS FORKED FROM TAMAGUI\n// https://github.com/tamagui/tamagui/blob/master/code/ui/tooltip/src/Tooltip.tsx\n// Because if we use @tamagui/popper, it fails because Popper.tsx imports from RN (not RNW), and the rewrite is failing. So here we change the imports to RNW.\n//\n\nimport '@tamagui/polyfill-dev'\n\nimport {\n  FloatingDelayGroup,\n  useDelayGroup,\n  useDelayGroupContext,\n  useDismiss,\n  useFloating,\n  useFocus,\n  useHover,\n  useInteractions,\n  useRole,\n} from '@floating-ui/react'\nimport type { ScopedProps, SizeTokens } from '@tamagui/core'\nimport { useEvent } from '@tamagui/core'\nimport type { UseFloatingFn } from '@tamagui/floating'\nimport { FloatingOverrideContext } from '@tamagui/floating'\nimport { getSize } from '@tamagui/get-token'\nimport { withStaticProperties } from '@tamagui/helpers'\nimport { useControllableState } from '@tamagui/use-controllable-state'\n// import * as React from 'react'\nimport React, {\n  useContext,\n  useEffect,\n  useState,\n  forwardRef,\n  ReactNode,\n  createContext,\n  useCallback,\n  useMemo,\n  useRef,\n  useId,\n} from 'react'\nimport type { PopoverAnchorProps, PopoverArrowProps, PopoverContentProps, PopoverTriggerProps } from './TamaguiPopover'\nimport { PopoverAnchor, PopoverArrow, PopoverContent, PopoverContext, PopoverTrigger } from './TamaguiPopover'\nimport type { PopperProps } from './TamaguiPopper'\nimport { Popper, PopperContentFrame, usePopperContext } from './TamaguiPopper'\n\nconst TOOLTIP_SCOPE = 'tooltip'\ntype ScopedTooltipProps<P> = ScopedProps<P, 'Tooltip'>\n\nconst PreventTooltipAnimationContext = createContext(false)\nconst voidFn = () => {}\n\nconst TooltipContent = PopperContentFrame.extractable(\n  forwardRef(({ __scopeTooltip, ...props }: ScopedTooltipProps<PopoverContentProps>, ref: any) => {\n    const preventAnimation = useContext(PreventTooltipAnimationContext)\n    const popper = usePopperContext(__scopeTooltip || TOOLTIP_SCOPE)\n    const padding = !props.unstyled\n      ? (props.padding ??\n        props.size ??\n        popper.size ??\n        getSize('$true', {\n          shift: -2,\n        }))\n      : undefined\n\n    return (\n      <PopoverContent\n        __scopePopover={__scopeTooltip || TOOLTIP_SCOPE}\n        componentName=\"Tooltip\"\n        disableRemoveScroll\n        disableFocusScope\n        {...(!props.unstyled && {\n          padding,\n        })}\n        ref={ref}\n        {...props}\n        {...(preventAnimation && {\n          animation: null,\n        })}\n      />\n    )\n  }),\n)\n\nconst TooltipArrow = forwardRef((props: ScopedTooltipProps<PopoverArrowProps>, ref: any) => {\n  const { __scopeTooltip, ...rest } = props\n  return <PopoverArrow __scopePopper={__scopeTooltip || TOOLTIP_SCOPE} componentName=\"Tooltip\" ref={ref} {...rest} />\n})\n\nexport type TooltipProps = PopperProps & {\n  open?: boolean\n  unstyled?: boolean\n  children?: ReactNode\n  onOpenChange?: (open: boolean) => void\n  focus?: {\n    enabled?: boolean\n    visibleOnly?: boolean\n  }\n  groupId?: string\n  restMs?: number\n  delay?:\n    | number\n    | {\n        open?: number\n        close?: number\n      }\n  disableAutoCloseOnScroll?: boolean\n}\n\ntype Delay =\n  | number\n  | Partial<{\n      open: number\n      close: number\n    }>\n\nexport const TooltipGroup = ({\n  children,\n  delay,\n  preventAnimation = false,\n  timeoutMs,\n}: {\n  children?: any\n  delay: Delay\n  preventAnimation?: boolean\n  timeoutMs?: number\n}) => {\n  // eslint-disable-next-line react-hooks/exhaustive-deps\n  const stableDelay = useMemo(() => delay, [JSON.stringify(delay)])\n\n  return (\n    <PreventTooltipAnimationContext.Provider value={preventAnimation}>\n      <FloatingDelayGroup timeoutMs={timeoutMs} delay={stableDelay}>\n        {children}\n      </FloatingDelayGroup>\n    </PreventTooltipAnimationContext.Provider>\n  )\n}\n\nconst TooltipComponent = forwardRef(function Tooltip(props: ScopedTooltipProps<TooltipProps>) {\n  const {\n    children,\n    delay: delayProp,\n    restMs,\n    onOpenChange: onOpenChangeProp,\n    focus,\n    open: openProp,\n    disableAutoCloseOnScroll,\n    __scopeTooltip,\n    ...restProps\n  } = props\n  const triggerRef = useRef<HTMLButtonElement>(null)\n  const [hasCustomAnchor, setHasCustomAnchor] = useState(false)\n  const { delay: delayGroup, setCurrentId } = useDelayGroupContext()\n  const delay = delayProp ?? delayGroup\n  const [open, setOpen] = useControllableState({\n    prop: openProp,\n    defaultProp: false,\n    onChange: onOpenChangeProp,\n  })\n  const id = props.groupId\n\n  const onOpenChange = useEvent((openEvent) => {\n    if (openEvent) {\n      setCurrentId(id)\n    }\n    setOpen(openEvent)\n  })\n\n  // Auto close when document scroll\n  useEffect(() => {\n    if (open && disableAutoCloseOnScroll && typeof document !== 'undefined') {\n      const openIt = () => {\n        setOpen(false)\n      }\n      document.documentElement.addEventListener('scroll', openIt)\n      return () => {\n        document.documentElement.removeEventListener('scroll', openIt)\n      }\n    }\n    return undefined\n  }, [open, setOpen, disableAutoCloseOnScroll])\n\n  const useFloatingFn: UseFloatingFn = (floatingProps) => {\n    // @ts-ignore\n    const floating = useFloating({\n      ...floatingProps,\n      open,\n      onOpenChange,\n    })\n    const { delay: delayContext } = useDelayGroup(floating.context, { id })\n    const { getReferenceProps, getFloatingProps } = useInteractions([\n      useHover(floating.context, { delay: delay ?? delayContext, restMs }),\n      useFocus(floating.context, focus),\n      useRole(floating.context, { role: 'tooltip' }),\n      useDismiss(floating.context),\n    ])\n    return {\n      ...floating,\n      open,\n      getReferenceProps,\n      getFloatingProps,\n    } as any\n  }\n\n  const useFloatingContext = useCallback(useFloatingFn, [id, delay, open, restMs, focus, onOpenChange])\n  const onCustomAnchorAdd = useCallback(() => setHasCustomAnchor(true), [])\n  const onCustomAnchorRemove = useCallback(() => setHasCustomAnchor(false), [])\n  const contentId = useId()\n  const smallerSize = props.unstyled\n    ? null\n    : getSize('$true', {\n        shift: -2,\n        bounds: [0],\n      })\n\n  return (\n    // TODO: FloatingOverrideContext might also need to be scoped\n    <FloatingOverrideContext.Provider value={useFloatingContext}>\n      {/* default tooltip to a smaller size */}\n      <Popper\n        __scopePopper={__scopeTooltip || TOOLTIP_SCOPE}\n        size={smallerSize?.key as SizeTokens}\n        allowFlip\n        stayInFrame\n        {...restProps}\n      >\n        <PopoverContext.Provider\n          contentId={contentId}\n          triggerRef={triggerRef}\n          sheetBreakpoint={false}\n          open={open}\n          scope={__scopeTooltip || TOOLTIP_SCOPE}\n          onOpenChange={setOpen}\n          onOpenToggle={voidFn}\n          hasCustomAnchor={hasCustomAnchor}\n          onCustomAnchorAdd={onCustomAnchorAdd}\n          onCustomAnchorRemove={onCustomAnchorRemove}\n        >\n          {children}\n        </PopoverContext.Provider>\n      </Popper>\n    </FloatingOverrideContext.Provider>\n  )\n})\n\nconst TooltipTrigger = forwardRef(function TooltipTrigger(props: ScopedTooltipProps<PopoverTriggerProps>, ref: any) {\n  const { __scopeTooltip, ...rest } = props\n  return <PopoverTrigger {...rest} __scopePopover={__scopeTooltip || TOOLTIP_SCOPE} ref={ref} />\n})\n\nconst TooltipAnchor = forwardRef(function TooltipAnchor(props: ScopedTooltipProps<PopoverAnchorProps>, ref: any) {\n  const { __scopeTooltip, ...rest } = props\n  return <PopoverAnchor {...rest} __scopePopover={__scopeTooltip || TOOLTIP_SCOPE} ref={ref} />\n})\n\nexport const Tooltip = withStaticProperties(TooltipComponent, {\n  Anchor: TooltipAnchor,\n  Arrow: TooltipArrow,\n  Content: TooltipContent,\n  Trigger: TooltipTrigger,\n})\n"
  },
  {
    "path": "src/components/Editor/ui/src/button.ts",
    "content": "import { Button as TButton } from '@tamagui/button'\nimport { ThemeableStack } from '@tamagui/stacks'\nimport { styled } from '@tamagui/web'\n\nexport const Button = styled(TButton, {\n  className: 'btn',\n  // bg: \"$color4\",\n  borderWidth: 2,\n  // bg: \"$color4\",\n  // borderColor: \"$color5\",\n  // hoverStyle: {\n  //   bg: \"$color5\",\n  //   borderColor: \"$color6\",\n  //   elevation: 0,\n  // },\n  disabledStyle: {\n    opacity: 0.5,\n    borderWidth: 2,\n    borderColor: '$colorTransparent',\n    elevation: 0,\n  },\n\n  focusStyle: {\n    borderColor: '$color8',\n    borderWidth: 2,\n    elevation: 0,\n  },\n  hoverStyle: {\n    cursor: 'default',\n  },\n})\n\nexport const AccountTypeButton = styled(ThemeableStack, {\n  tag: 'button',\n  role: 'button',\n  focusable: true,\n  p: '$4',\n  paddingBottom: '$2',\n  w: 150,\n  h: 150,\n  borderRadius: '$2',\n  gap: '$2',\n  bg: '$color4',\n  hoverStyle: {\n    bg: '$color6',\n  },\n})\n\nexport const StyledIconButton = styled(Button, {\n  name: 'StyledIconButton',\n  backgroundColor: 'transparent',\n  padding: 0,\n  margin: 0,\n  size: 20,\n  minWidth: 0,\n  aspectRatio: 1,\n  alignItems: 'center',\n  justifyContent: 'center',\n})\n"
  },
  {
    "path": "src/components/Editor/ui/src/container.tsx",
    "content": "import React, { ComponentProps } from 'react'\nimport { styled } from '@tamagui/core'\nimport { XStack, YStack } from '@tamagui/stacks'\n\nconst variants = {\n  hide: {\n    true: {\n      pointerEvents: 'none',\n      opacity: 0,\n    },\n  },\n  clearVerticalSpace: {\n    true: {\n      paddingVertical: 0,\n    },\n  },\n  centered: {\n    true: {\n      maxWidth: 'calc(85ch + 1em)',\n    },\n  },\n} as const\n\nexport const PageContainer = ({ children, ...props }: ComponentProps<typeof YStack>) => {\n  return (\n    <XStack jc=\"center\" f={1}>\n      <YStack f={1} paddingHorizontal=\"$4\" alignSelf=\"center\" {...props}>\n        {children}\n      </YStack>\n    </XStack>\n  )\n}\n\nexport const ContainerDefault = styled(YStack, {\n  marginHorizontal: 'auto',\n  paddingHorizontal: '$4',\n  paddingVertical: '$6',\n  width: '100%',\n  $gtSm: {\n    maxWidth: 700,\n    paddingRight: '$2',\n  },\n\n  $gtMd: {\n    maxWidth: 740,\n    paddingRight: '$2',\n  },\n\n  $gtLg: {\n    maxWidth: 800,\n    paddingRight: '$10',\n  },\n\n  variants,\n})\n\nexport const ContainerLarge = styled(YStack, {\n  marginHorizontal: 'auto',\n  paddingHorizontal: '$4',\n  paddingTop: '$6',\n  width: '100%',\n  // maxWidth: \"calc(85ch + 1em)\",\n  flexShrink: 'unset',\n  variants,\n})\n\nexport const ContainerXL = styled(YStack, {\n  marginHorizontal: 'auto',\n  paddingHorizontal: '$4',\n  paddingVertical: '$6',\n  width: '100%',\n  $gtSm: {\n    maxWidth: 980,\n  },\n\n  $gtMd: {\n    maxWidth: 1240,\n  },\n\n  $gtLg: {\n    maxWidth: 1440,\n  },\n\n  variants,\n})\n\nexport const AppContainer = ContainerLarge\nexport const Container = ContainerLarge\n"
  },
  {
    "path": "src/components/Editor/ui/src/embed-links.tsx",
    "content": "import { YStack, XStack, Button, Popover, Separator, Input, Theme, SizableText } from 'tamagui'\nimport React, { useState } from 'react'\nimport { IconType } from 'react-icons'\nimport { MediaType } from '@/components/Editor/types/media-render'\n\ninterface EmbedRenderProps {\n  props: {\n    mediaType: string\n    icon?: IconType\n    hint?: string\n    uploadOptionHint?: string\n    embedPlaceholder?: string\n    embedOptionHint?: string\n  }\n  submit?: (\n    assignMedia: (props: MediaType) => void,\n    queryType: string,\n    url?: string,\n    setFileName?: any,\n  ) => Promise<void>\n  assign: (props: MediaType) => void\n}\n\nconst EmbedComponent: React.FC<EmbedRenderProps> = ({ props, submit, assign }) => {\n  // eslint-disable-next-line react/prop-types\n  const { mediaType, icon, hint, uploadOptionHint, embedPlaceholder, embedOptionHint } = props\n  const [url, setURL] = useState('')\n  const [isClicked, setIsClicked] = useState(false)\n  const [selectedOption, setSelectedOption] = useState('upload')\n  const [errorRaised, setErrorRaised] = useState('')\n\n  const handleClick = () => setIsClicked(!isClicked)\n\n  return (\n    <Popover allowFlip size=\"$5\" onOpenChange={() => setErrorRaised('')}>\n      <Popover.Trigger asChild>\n        <YStack\n          position=\"relative\"\n          borderColor=\"$color8\"\n          borderWidth={0}\n          backgroundColor=\"$purple4\"\n          borderRadius=\"$4\"\n          outlineWidth={0}\n          // @ts-expect-error\n          contentEditable={false}\n          onClick={handleClick}\n          height={50}\n          hoverStyle={{\n            backgroundColor: '$purple5',\n            cursor: 'pointer',\n          }}\n        >\n          <XStack\n            alignItems=\"center\"\n            justifyContent=\"flex-start\"\n            borderRadius=\"$2\"\n            height=\"100%\"\n            paddingLeft={10}\n            gap={8}\n            opacity={0.4}\n          >\n            {icon && React.createElement(icon)}\n            <SizableText size=\"$4\" fontFamily=\"$mono\">\n              {hint}\n            </SizableText>\n          </XStack>\n        </YStack>\n      </Popover.Trigger>\n\n      <Popover.Content\n        borderWidth={1}\n        borderColor=\"$color8\"\n        borderRadius={10}\n        enterStyle={{ y: -10, opacity: 0 }}\n        exitStyle={{ y: -10, opacity: 0 }}\n        elevate\n        animation={[\n          'medium',\n          {\n            opacity: {\n              overshootClamping: true,\n            },\n          },\n        ]}\n        paddingTop={3}\n        paddingHorizontal={12}\n      >\n        <Popover.Arrow borderWidth={1} borderColor=\"$color8\" />\n        <YStack gap=\"$2\" width={300}>\n          <XStack gap=\"$1\">\n            <Button\n              size=\"$2\"\n              onPress={() => {\n                setSelectedOption('upload')\n                setIsClicked(false)\n                setErrorRaised('')\n              }}\n              borderRadius={0}\n              hoverStyle={{\n                borderRadius: 8,\n              }}\n              fontWeight={selectedOption === 'upload' ? 'bold' : 'normal'}\n            >\n              Upload\n            </Button>\n            {mediaType === 'image' && (\n              <Button\n                size=\"$2\"\n                onPress={() => {\n                  setSelectedOption('embed')\n                  setIsClicked(false)\n                  setErrorRaised('')\n                }}\n                borderRadius={0}\n                hoverStyle={{\n                  borderRadius: 8,\n                }}\n                fontWeight={selectedOption === 'embed' ? 'bold' : 'normal'}\n              >\n                Embed\n              </Button>\n            )}\n          </XStack>\n\n          <Separator />\n\n          {selectedOption === 'upload' ? (\n            <YStack gap=\"$3\" paddingTop={3}>\n              <Button\n                size={14}\n                color=\"$color10\"\n                fontFamily=\"$mono\"\n                padding={16}\n                backgroundColor=\"hsl(0, 0%, 96.0%)\"\n                borderRadius=\"$4\"\n                hoverStyle={{\n                  backgroundColor: 'hsl(0, 0%, 92.0%)',\n                  cursor: 'pointer',\n                }}\n                onPress={() => {\n                  if (submit) {\n                    submit(assign, 'upload', undefined, setErrorRaised)\n                  }\n                  setErrorRaised('')\n                }}\n              >\n                {uploadOptionHint}\n              </Button>\n            </YStack>\n          ) : (\n            mediaType === 'image' && (\n              <YStack gap=\"$2\">\n                <Input\n                  autoFocus\n                  color=\"$white\"\n                  height={32}\n                  fontFamily=\"$mono\"\n                  backgroundColor={errorRaised ? '$color5' : 'color7'}\n                  borderRadius=\"$4\"\n                  hoverStyle={{\n                    backgroundColor: '$gray4',\n                  }}\n                  focusStyle={{\n                    outlineColor: '$blue7',\n                    outlineWidth: 2,\n                    outlineStyle: 'solid',\n                  }}\n                  placeholder={embedPlaceholder}\n                  value={url}\n                  onChangeText={setURL}\n                />\n                {errorRaised && (\n                  <SizableText size=\"$2\" color=\"red\" fontWeight=\"semiBold\">\n                    {errorRaised}\n                  </SizableText>\n                )}\n                <XStack justifyContent=\"center\">\n                  <Theme name=\"blue\">\n                    <Button\n                      width=\"50%\"\n                      size={14}\n                      color=\"white\"\n                      fontFamily=\"$mono\"\n                      padding={16}\n                      backgroundColor=\"$blue9\"\n                      borderRadius=\"$4\"\n                      hoverStyle={{\n                        backgroundColor: '$blue8',\n                        cursor: 'pointer',\n                      }}\n                      onPress={() => {\n                        if (submit) {\n                          submit(assign, 'embed', url, setErrorRaised)\n                        }\n                        setURL('')\n                      }}\n                    >\n                      {embedOptionHint}\n                    </Button>\n                  </Theme>\n                </XStack>\n              </YStack>\n            )\n          )}\n        </YStack>\n      </Popover.Content>\n    </Popover>\n  )\n}\n\nexport default EmbedComponent\n"
  },
  {
    "path": "src/components/Editor/ui/src/generated-themes.ts",
    "content": "type Theme = {\n  color1: string\n  color2: string\n  color3: string\n  color4: string\n  color5: string\n  color6: string\n  color7: string\n  color8: string\n  color9: string\n  color10: string\n  color11: string\n  color12: string\n  background: string\n  backgroundHover: string\n  backgroundPress: string\n  backgroundFocus: string\n  backgroundStrong: string\n  backgroundTransparent: string\n  color: string\n  colorHover: string\n  colorPress: string\n  colorFocus: string\n  colorTransparent: string\n  borderColor: string\n  borderColorHover: string\n  borderColorFocus: string\n  borderColorPress: string\n  placeholderColor: string\n  blue1: string\n  blue2: string\n  blue3: string\n  blue4: string\n  blue5: string\n  blue6: string\n  blue7: string\n  blue8: string\n  blue9: string\n  blue10: string\n  blue11: string\n  blue12: string\n  gray1: string\n  gray2: string\n  gray3: string\n  gray4: string\n  gray5: string\n  gray6: string\n  gray7: string\n  gray8: string\n  gray9: string\n  gray10: string\n  gray11: string\n  gray12: string\n  green1: string\n  green2: string\n  green3: string\n  green4: string\n  green5: string\n  green6: string\n  green7: string\n  green8: string\n  green9: string\n  green10: string\n  green11: string\n  green12: string\n  orange1: string\n  orange2: string\n  orange3: string\n  orange4: string\n  orange5: string\n  orange6: string\n  orange7: string\n  orange8: string\n  orange9: string\n  orange10: string\n  orange11: string\n  orange12: string\n  mint1: string\n  mint2: string\n  mint3: string\n  mint4: string\n  mint5: string\n  mint6: string\n  mint7: string\n  mint8: string\n  mint9: string\n  mint10: string\n  mint11: string\n  mint12: string\n  red1: string\n  red2: string\n  red3: string\n  red4: string\n  red5: string\n  red6: string\n  red7: string\n  red8: string\n  red9: string\n  red10: string\n  red11: string\n  red12: string\n  yellow1: string\n  yellow2: string\n  yellow3: string\n  yellow4: string\n  yellow5: string\n  yellow6: string\n  yellow7: string\n  yellow8: string\n  yellow9: string\n  yellow10: string\n  yellow11: string\n  yellow12: string\n  shadowColor: string\n  shadowColorHover: string\n  shadowColorPress: string\n  shadowColorFocus: string\n}\n\nfunction t(a) {\n  const res: Record<string, string> = {}\n  for (const [ki, vi] of a) {\n    // @ts-ignore\n    res[ks[ki]] = vs[vi]\n  }\n  return res\n}\nconst vs = [\n  '#fff',\n  '#f8f8f8',\n  'hsl(0, 0%, 96.3%)',\n  'hsl(0, 0%, 94.1%)',\n  'hsl(0, 0%, 92.0%)',\n  'hsl(0, 0%, 90.0%)',\n  'hsl(0, 0%, 88.5%)',\n  'hsl(0, 0%, 81.0%)',\n  'hsl(0, 0%, 56.1%)',\n  'hsl(0, 0%, 50.3%)',\n  'hsl(0, 0%, 42.5%)',\n  'hsl(0, 0%, 9.0%)',\n  'rgba(255,255,255,0)',\n  'rgba(10,10,10,0)',\n  'hsl(206, 100%, 99.2%)',\n  'hsl(210, 100%, 98.0%)',\n  'hsl(209, 100%, 96.5%)',\n  'hsl(210, 98.8%, 94.0%)',\n  'hsl(209, 95.0%, 90.1%)',\n  'hsl(209, 81.2%, 84.5%)',\n  'hsl(208, 77.5%, 76.9%)',\n  'hsl(206, 81.9%, 65.3%)',\n  'hsl(206, 100%, 50.0%)',\n  'hsl(208, 100%, 47.3%)',\n  'hsl(211, 100%, 43.2%)',\n  'hsl(211, 100%, 15.0%)',\n  'hsl(0, 0%, 99.0%)',\n  'hsl(0, 0%, 97.3%)',\n  'hsl(0, 0%, 95.1%)',\n  'hsl(0, 0%, 93.0%)',\n  'hsl(0, 0%, 90.9%)',\n  'hsl(0, 0%, 88.7%)',\n  'hsl(0, 0%, 85.8%)',\n  'hsl(0, 0%, 78.0%)',\n  'hsl(0, 0%, 52.3%)',\n  'hsl(0, 0%, 43.5%)',\n  'hsl(136, 50.0%, 98.9%)',\n  'hsl(138, 62.5%, 96.9%)',\n  'hsl(139, 55.2%, 94.5%)',\n  'hsl(140, 48.7%, 91.0%)',\n  'hsl(141, 43.7%, 86.0%)',\n  'hsl(143, 40.3%, 79.0%)',\n  'hsl(146, 38.5%, 69.0%)',\n  'hsl(151, 40.2%, 54.1%)',\n  'hsl(151, 55.0%, 41.5%)',\n  'hsl(152, 57.5%, 37.6%)',\n  'hsl(153, 67.0%, 28.5%)',\n  'hsl(155, 40.0%, 14.0%)',\n  'hsl(24, 70.0%, 99.0%)',\n  'hsl(24, 83.3%, 97.6%)',\n  'hsl(24, 100%, 95.3%)',\n  'hsl(25, 100%, 92.2%)',\n  'hsl(25, 100%, 88.2%)',\n  'hsl(25, 100%, 82.8%)',\n  'hsl(24, 100%, 75.3%)',\n  'hsl(24, 94.5%, 64.3%)',\n  'hsl(24, 94.0%, 50.0%)',\n  'hsl(24, 100%, 46.5%)',\n  'hsl(24, 100%, 37.0%)',\n  'hsl(15, 60.0%, 17.0%)',\n  'hsl(165, 80.0%, 98.8%)',\n  'hsl(164, 88.2%, 96.7%)',\n  'hsl(164, 76.6%, 93.3%)',\n  'hsl(165, 68.8%, 89.5%)',\n  'hsl(165, 60.6%, 84.5%)',\n  'hsl(165, 53.5%, 76.9%)',\n  'hsl(166, 50.7%, 66.1%)',\n  'hsl(168, 52.8%, 51.0%)',\n  'hsl(167, 65.0%, 66.0%)',\n  'hsl(167, 59.3%, 63.1%)',\n  'hsl(172, 72.0%, 28.5%)',\n  'hsl(172, 70.0%, 12.0%)',\n  'hsl(359, 100%, 99.4%)',\n  'hsl(359, 100%, 98.6%)',\n  'hsl(360, 100%, 96.8%)',\n  'hsl(360, 97.9%, 94.8%)',\n  'hsl(360, 90.2%, 91.9%)',\n  'hsl(360, 81.7%, 87.8%)',\n  'hsl(359, 74.2%, 81.7%)',\n  'hsl(359, 69.5%, 74.3%)',\n  'hsl(358, 75.0%, 59.0%)',\n  'hsl(358, 69.4%, 55.2%)',\n  'hsl(358, 65.0%, 48.7%)',\n  'hsl(354, 50.0%, 14.6%)',\n  'hsl(60, 54.0%, 98.5%)',\n  'hsl(52, 100%, 95.5%)',\n  'hsl(55, 100%, 90.9%)',\n  'hsl(54, 100%, 86.6%)',\n  'hsl(52, 97.9%, 82.0%)',\n  'hsl(50, 89.4%, 76.1%)',\n  'hsl(47, 80.4%, 68.0%)',\n  'hsl(48, 100%, 46.1%)',\n  'hsl(53, 92.0%, 50.0%)',\n  'hsl(50, 100%, 48.5%)',\n  'hsl(42, 100%, 29.0%)',\n  'hsl(40, 55.0%, 13.5%)',\n  'rgba(0,0,0,0.085)',\n  'rgba(0,0,0,0.04)',\n  '#050505',\n  '#151515',\n  '#191919',\n  '#232323',\n  '#282828',\n  '#323232',\n  '#424242',\n  '#494949',\n  '#545454',\n  '#626262',\n  '#a5a5a5',\n  'hsl(212, 35.0%, 9.2%)',\n  'hsl(216, 50.0%, 11.8%)',\n  'hsl(214, 59.4%, 15.3%)',\n  'hsl(214, 65.8%, 17.9%)',\n  'hsl(213, 71.2%, 20.2%)',\n  'hsl(212, 77.4%, 23.1%)',\n  'hsl(211, 85.1%, 27.4%)',\n  'hsl(211, 89.7%, 34.1%)',\n  'hsl(209, 100%, 60.6%)',\n  'hsl(210, 100%, 66.1%)',\n  'hsl(206, 98.0%, 95.8%)',\n  'hsl(0, 0%, 8.5%)',\n  'hsl(0, 0%, 11.0%)',\n  'hsl(0, 0%, 13.6%)',\n  'hsl(0, 0%, 15.8%)',\n  'hsl(0, 0%, 17.9%)',\n  'hsl(0, 0%, 20.5%)',\n  'hsl(0, 0%, 24.3%)',\n  'hsl(0, 0%, 31.2%)',\n  'hsl(0, 0%, 43.9%)',\n  'hsl(0, 0%, 49.4%)',\n  'hsl(0, 0%, 62.8%)',\n  'hsl(146, 30.0%, 7.4%)',\n  'hsl(155, 44.2%, 8.4%)',\n  'hsl(155, 46.7%, 10.9%)',\n  'hsl(154, 48.4%, 12.9%)',\n  'hsl(154, 49.7%, 14.9%)',\n  'hsl(154, 50.9%, 17.6%)',\n  'hsl(153, 51.8%, 21.8%)',\n  'hsl(151, 51.7%, 28.4%)',\n  'hsl(151, 49.3%, 46.5%)',\n  'hsl(151, 50.0%, 53.2%)',\n  'hsl(137, 72.0%, 94.0%)',\n  'hsl(30, 70.0%, 7.2%)',\n  'hsl(28, 100%, 8.4%)',\n  'hsl(26, 91.1%, 11.6%)',\n  'hsl(25, 88.3%, 14.1%)',\n  'hsl(24, 87.6%, 16.6%)',\n  'hsl(24, 88.6%, 19.8%)',\n  'hsl(24, 92.4%, 24.0%)',\n  'hsl(25, 100%, 29.0%)',\n  'hsl(24, 100%, 58.5%)',\n  'hsl(24, 100%, 62.2%)',\n  'hsl(24, 97.0%, 93.2%)',\n  'hsl(173, 50.0%, 6.6%)',\n  'hsl(176, 73.0%, 7.3%)',\n  'hsl(175, 79.3%, 8.9%)',\n  'hsl(174, 84.8%, 10.3%)',\n  'hsl(174, 90.2%, 11.9%)',\n  'hsl(173, 96.0%, 13.8%)',\n  'hsl(172, 100%, 16.8%)',\n  'hsl(170, 100%, 21.4%)',\n  'hsl(163, 80.0%, 77.0%)',\n  'hsl(167, 70.0%, 48.0%)',\n  'hsl(165, 80.0%, 94.8%)',\n  'hsl(353, 23.0%, 9.8%)',\n  'hsl(357, 34.4%, 12.0%)',\n  'hsl(356, 43.4%, 16.4%)',\n  'hsl(356, 47.6%, 19.2%)',\n  'hsl(356, 51.1%, 21.9%)',\n  'hsl(356, 55.2%, 25.9%)',\n  'hsl(357, 60.2%, 31.8%)',\n  'hsl(358, 65.0%, 40.4%)',\n  'hsl(358, 85.3%, 64.0%)',\n  'hsl(358, 100%, 69.5%)',\n  'hsl(351, 89.0%, 96.0%)',\n  'hsl(45, 100%, 5.5%)',\n  'hsl(46, 100%, 6.7%)',\n  'hsl(45, 100%, 8.7%)',\n  'hsl(45, 100%, 10.4%)',\n  'hsl(47, 100%, 12.1%)',\n  'hsl(49, 100%, 14.3%)',\n  'hsl(49, 90.3%, 18.4%)',\n  'hsl(50, 100%, 22.0%)',\n  'hsl(54, 100%, 68.0%)',\n  'hsl(48, 100%, 47.0%)',\n  'hsl(53, 100%, 91.0%)',\n  'rgba(0,0,0,0.3)',\n  'rgba(0,0,0,0.2)',\n  'hsla(24, 70.0%, 99.0%, 0)',\n  'hsla(15, 60.0%, 17.0%, 0)',\n  'hsla(60, 54.0%, 98.5%, 0)',\n  'hsla(40, 55.0%, 13.5%, 0)',\n  'hsla(136, 50.0%, 98.9%, 0)',\n  'hsla(155, 40.0%, 14.0%, 0)',\n  'hsla(206, 100%, 99.2%, 0)',\n  'hsla(211, 100%, 15.0%, 0)',\n  'hsla(165, 80.0%, 98.8%, 0)',\n  'hsla(172, 70.0%, 12.0%, 0)',\n  'hsla(359, 100%, 99.4%, 0)',\n  'hsla(354, 50.0%, 14.6%, 0)',\n  'hsla(30, 70.0%, 7.2%, 0)',\n  'hsla(24, 97.0%, 93.2%, 0)',\n  'hsla(45, 100%, 5.5%, 0)',\n  'hsla(53, 100%, 91.0%, 0)',\n  'hsla(146, 30.0%, 7.4%, 0)',\n  'hsla(137, 72.0%, 94.0%, 0)',\n  'hsla(212, 35.0%, 9.2%, 0)',\n  'hsla(206, 98.0%, 95.8%, 0)',\n  'hsla(173, 50.0%, 6.6%, 0)',\n  'hsla(165, 80.0%, 94.8%, 0)',\n  'hsla(353, 23.0%, 9.8%, 0)',\n  'hsla(351, 89.0%, 96.0%, 0)',\n  'rgba(0,0,0,0.5)',\n  'rgba(0,0,0,0.9)',\n]\n\nconst ks = [\n  'color1',\n  'color2',\n  'color3',\n  'color4',\n  'color5',\n  'color6',\n  'color7',\n  'color8',\n  'color9',\n  'color10',\n  'color11',\n  'color12',\n  'background',\n  'backgroundHover',\n  'backgroundPress',\n  'backgroundFocus',\n  'backgroundStrong',\n  'backgroundTransparent',\n  'color',\n  'colorHover',\n  'colorPress',\n  'colorFocus',\n  'colorTransparent',\n  'borderColor',\n  'borderColorHover',\n  'borderColorFocus',\n  'borderColorPress',\n  'placeholderColor',\n  'blue1',\n  'blue2',\n  'blue3',\n  'blue4',\n  'blue5',\n  'blue6',\n  'blue7',\n  'blue8',\n  'blue9',\n  'blue10',\n  'blue11',\n  'blue12',\n  'gray1',\n  'gray2',\n  'gray3',\n  'gray4',\n  'gray5',\n  'gray6',\n  'gray7',\n  'gray8',\n  'gray9',\n  'gray10',\n  'gray11',\n  'gray12',\n  'green1',\n  'green2',\n  'green3',\n  'green4',\n  'green5',\n  'green6',\n  'green7',\n  'green8',\n  'green9',\n  'green10',\n  'green11',\n  'green12',\n  'orange1',\n  'orange2',\n  'orange3',\n  'orange4',\n  'orange5',\n  'orange6',\n  'orange7',\n  'orange8',\n  'orange9',\n  'orange10',\n  'orange11',\n  'orange12',\n  'mint1',\n  'mint2',\n  'mint3',\n  'mint4',\n  'mint5',\n  'mint6',\n  'mint7',\n  'mint8',\n  'mint9',\n  'mint10',\n  'mint11',\n  'mint12',\n  'red1',\n  'red2',\n  'red3',\n  'red4',\n  'red5',\n  'red6',\n  'red7',\n  'red8',\n  'red9',\n  'red10',\n  'red11',\n  'red12',\n  'yellow1',\n  'yellow2',\n  'yellow3',\n  'yellow4',\n  'yellow5',\n  'yellow6',\n  'yellow7',\n  'yellow8',\n  'yellow9',\n  'yellow10',\n  'yellow11',\n  'yellow12',\n  'shadowColor',\n  'shadowColorHover',\n  'shadowColorPress',\n  'shadowColorFocus',\n]\n\nconst n1 = t([\n  [0, 0],\n  [1, 1],\n  [2, 2],\n  [3, 3],\n  [4, 4],\n  [5, 5],\n  [6, 6],\n  [7, 7],\n  [8, 8],\n  [9, 9],\n  [10, 10],\n  [11, 11],\n  [12, 1],\n  [13, 2],\n  [14, 3],\n  [15, 4],\n  [16, 0],\n  [17, 12],\n  [18, 11],\n  [19, 10],\n  [20, 11],\n  [21, 10],\n  [22, 13],\n  [23, 4],\n  [24, 5],\n  [25, 3],\n  [26, 4],\n  [27, 8],\n  [28, 14],\n  [29, 15],\n  [30, 16],\n  [31, 17],\n  [32, 18],\n  [33, 19],\n  [34, 20],\n  [35, 21],\n  [36, 22],\n  [37, 23],\n  [38, 24],\n  [39, 25],\n  [40, 26],\n  [41, 27],\n  [42, 28],\n  [43, 29],\n  [44, 30],\n  [45, 31],\n  [46, 32],\n  [47, 33],\n  [48, 8],\n  [49, 34],\n  [50, 35],\n  [51, 11],\n  [52, 36],\n  [53, 37],\n  [54, 38],\n  [55, 39],\n  [56, 40],\n  [57, 41],\n  [58, 42],\n  [59, 43],\n  [60, 44],\n  [61, 45],\n  [62, 46],\n  [63, 47],\n  [64, 48],\n  [65, 49],\n  [66, 50],\n  [67, 51],\n  [68, 52],\n  [69, 53],\n  [70, 54],\n  [71, 55],\n  [72, 56],\n  [73, 57],\n  [74, 58],\n  [75, 59],\n  [76, 60],\n  [77, 61],\n  [78, 62],\n  [79, 63],\n  [80, 64],\n  [81, 65],\n  [82, 66],\n  [83, 67],\n  [84, 68],\n  [85, 69],\n  [86, 70],\n  [87, 71],\n  [88, 72],\n  [89, 73],\n  [90, 74],\n  [91, 75],\n  [92, 76],\n  [93, 77],\n  [94, 78],\n  [95, 79],\n  [96, 80],\n  [97, 81],\n  [98, 82],\n  [99, 83],\n  [100, 84],\n  [101, 85],\n  [102, 86],\n  [103, 87],\n  [104, 88],\n  [105, 89],\n  [106, 90],\n  [107, 91],\n  [108, 92],\n  [109, 93],\n  [110, 94],\n  [111, 95],\n  [112, 96],\n  [113, 96],\n  [114, 97],\n  [115, 97],\n]) as Theme\n\nexport const light = n1 as Theme\nconst n2 = t([\n  [0, 98],\n  [1, 99],\n  [2, 100],\n  [3, 101],\n  [4, 102],\n  [5, 103],\n  [6, 104],\n  [7, 105],\n  [8, 106],\n  [9, 107],\n  [10, 108],\n  [11, 0],\n  [12, 99],\n  [13, 100],\n  [14, 101],\n  [15, 102],\n  [16, 98],\n  [17, 13],\n  [18, 0],\n  [19, 108],\n  [20, 0],\n  [21, 108],\n  [22, 12],\n  [23, 102],\n  [24, 103],\n  [25, 101],\n  [26, 102],\n  [27, 106],\n  [28, 109],\n  [29, 110],\n  [30, 111],\n  [31, 112],\n  [32, 113],\n  [33, 114],\n  [34, 115],\n  [35, 116],\n  [36, 22],\n  [37, 117],\n  [38, 118],\n  [39, 119],\n  [40, 120],\n  [41, 121],\n  [42, 122],\n  [43, 123],\n  [44, 124],\n  [45, 125],\n  [46, 126],\n  [47, 127],\n  [48, 128],\n  [49, 129],\n  [50, 130],\n  [51, 29],\n  [52, 131],\n  [53, 132],\n  [54, 133],\n  [55, 134],\n  [56, 135],\n  [57, 136],\n  [58, 137],\n  [59, 138],\n  [60, 44],\n  [61, 139],\n  [62, 140],\n  [63, 141],\n  [64, 142],\n  [65, 143],\n  [66, 144],\n  [67, 145],\n  [68, 146],\n  [69, 147],\n  [70, 148],\n  [71, 149],\n  [72, 56],\n  [73, 150],\n  [74, 151],\n  [75, 152],\n  [76, 153],\n  [77, 154],\n  [78, 155],\n  [79, 156],\n  [80, 157],\n  [81, 158],\n  [82, 159],\n  [83, 160],\n  [84, 68],\n  [85, 161],\n  [86, 162],\n  [87, 163],\n  [88, 164],\n  [89, 165],\n  [90, 166],\n  [91, 167],\n  [92, 168],\n  [93, 169],\n  [94, 170],\n  [95, 171],\n  [96, 80],\n  [97, 172],\n  [98, 173],\n  [99, 174],\n  [100, 175],\n  [101, 176],\n  [102, 177],\n  [103, 178],\n  [104, 179],\n  [105, 180],\n  [106, 181],\n  [107, 182],\n  [108, 92],\n  [109, 183],\n  [110, 184],\n  [111, 185],\n  [112, 186],\n  [113, 186],\n  [114, 187],\n  [115, 187],\n]) as Theme\n\nexport const dark = n2 as Theme\nconst n3 = t([\n  [0, 48],\n  [1, 49],\n  [2, 50],\n  [3, 51],\n  [4, 52],\n  [5, 53],\n  [6, 55],\n  [7, 56],\n  [8, 57],\n  [9, 58],\n  [10, 59],\n  [11, 11],\n  [12, 49],\n  [13, 50],\n  [14, 51],\n  [15, 52],\n  [16, 48],\n  [17, 188],\n  [18, 11],\n  [19, 59],\n  [20, 11],\n  [21, 59],\n  [22, 189],\n  [23, 51],\n  [24, 52],\n  [25, 51],\n  [26, 51],\n  [27, 57],\n]) as Theme\n\nexport const light_orange = n3 as Theme\nconst n4 = t([\n  [0, 84],\n  [1, 85],\n  [2, 86],\n  [3, 87],\n  [4, 88],\n  [5, 89],\n  [6, 91],\n  [7, 92],\n  [8, 93],\n  [9, 94],\n  [10, 95],\n  [11, 11],\n  [12, 85],\n  [13, 86],\n  [14, 87],\n  [15, 88],\n  [16, 84],\n  [17, 190],\n  [18, 11],\n  [19, 95],\n  [20, 11],\n  [21, 95],\n  [22, 191],\n  [23, 87],\n  [24, 88],\n  [25, 87],\n  [26, 87],\n  [27, 93],\n]) as Theme\n\nexport const light_yellow = n4 as Theme\nconst n5 = t([\n  [0, 36],\n  [1, 37],\n  [2, 38],\n  [3, 39],\n  [4, 40],\n  [5, 41],\n  [6, 43],\n  [7, 44],\n  [8, 45],\n  [9, 46],\n  [10, 47],\n  [11, 11],\n  [12, 37],\n  [13, 38],\n  [14, 39],\n  [15, 40],\n  [16, 36],\n  [17, 192],\n  [18, 11],\n  [19, 47],\n  [20, 11],\n  [21, 47],\n  [22, 193],\n  [23, 39],\n  [24, 40],\n  [25, 39],\n  [26, 39],\n  [27, 45],\n]) as Theme\n\nexport const light_green = n5 as Theme\nconst n6 = t([\n  [0, 14],\n  [1, 15],\n  [2, 16],\n  [3, 17],\n  [4, 18],\n  [5, 19],\n  [6, 21],\n  [7, 22],\n  [8, 23],\n  [9, 24],\n  [10, 25],\n  [11, 11],\n  [12, 15],\n  [13, 16],\n  [14, 17],\n  [15, 18],\n  [16, 14],\n  [17, 194],\n  [18, 11],\n  [19, 25],\n  [20, 11],\n  [21, 25],\n  [22, 195],\n  [23, 17],\n  [24, 18],\n  [25, 17],\n  [26, 17],\n  [27, 23],\n]) as Theme\n\nexport const light_blue = n6 as Theme\nconst n7 = t([\n  [0, 60],\n  [1, 61],\n  [2, 62],\n  [3, 63],\n  [4, 64],\n  [5, 65],\n  [6, 67],\n  [7, 68],\n  [8, 69],\n  [9, 70],\n  [10, 71],\n  [11, 11],\n  [12, 61],\n  [13, 62],\n  [14, 63],\n  [15, 64],\n  [16, 60],\n  [17, 196],\n  [18, 11],\n  [19, 71],\n  [20, 11],\n  [21, 71],\n  [22, 197],\n  [23, 63],\n  [24, 64],\n  [25, 63],\n  [26, 63],\n  [27, 69],\n]) as Theme\n\nexport const light_mint = n7 as Theme\nconst n8 = t([\n  [0, 72],\n  [1, 73],\n  [2, 74],\n  [3, 75],\n  [4, 76],\n  [5, 77],\n  [6, 79],\n  [7, 80],\n  [8, 81],\n  [9, 82],\n  [10, 83],\n  [11, 11],\n  [12, 73],\n  [13, 74],\n  [14, 75],\n  [15, 76],\n  [16, 72],\n  [17, 198],\n  [18, 11],\n  [19, 83],\n  [20, 11],\n  [21, 83],\n  [22, 199],\n  [23, 75],\n  [24, 76],\n  [25, 75],\n  [26, 75],\n  [27, 81],\n]) as Theme\n\nexport const light_red = n8 as Theme\nconst n9 = t([\n  [0, 142],\n  [1, 143],\n  [2, 144],\n  [3, 145],\n  [4, 146],\n  [5, 147],\n  [6, 149],\n  [7, 56],\n  [8, 150],\n  [9, 151],\n  [10, 152],\n  [11, 0],\n  [12, 143],\n  [13, 144],\n  [14, 145],\n  [15, 146],\n  [16, 142],\n  [17, 200],\n  [18, 0],\n  [19, 152],\n  [20, 0],\n  [21, 152],\n  [22, 201],\n  [23, 146],\n  [24, 147],\n  [25, 145],\n  [26, 146],\n  [27, 150],\n]) as Theme\n\nexport const dark_orange = n9 as Theme\nexport const dark_orange_ListItem = n9 as Theme\nconst n10 = t([\n  [0, 175],\n  [1, 176],\n  [2, 177],\n  [3, 178],\n  [4, 179],\n  [5, 180],\n  [6, 182],\n  [7, 92],\n  [8, 183],\n  [9, 184],\n  [10, 185],\n  [11, 0],\n  [12, 176],\n  [13, 177],\n  [14, 178],\n  [15, 179],\n  [16, 175],\n  [17, 202],\n  [18, 0],\n  [19, 185],\n  [20, 0],\n  [21, 185],\n  [22, 203],\n  [23, 179],\n  [24, 180],\n  [25, 178],\n  [26, 179],\n  [27, 183],\n]) as Theme\n\nexport const dark_yellow = n10 as Theme\nexport const dark_yellow_ListItem = n10 as Theme\nconst n11 = t([\n  [0, 131],\n  [1, 132],\n  [2, 133],\n  [3, 134],\n  [4, 135],\n  [5, 136],\n  [6, 138],\n  [7, 44],\n  [8, 139],\n  [9, 140],\n  [10, 141],\n  [11, 0],\n  [12, 132],\n  [13, 133],\n  [14, 134],\n  [15, 135],\n  [16, 131],\n  [17, 204],\n  [18, 0],\n  [19, 141],\n  [20, 0],\n  [21, 141],\n  [22, 205],\n  [23, 135],\n  [24, 136],\n  [25, 134],\n  [26, 135],\n  [27, 139],\n]) as Theme\n\nexport const dark_green = n11 as Theme\nexport const dark_green_ListItem = n11 as Theme\nconst n12 = t([\n  [0, 109],\n  [1, 110],\n  [2, 111],\n  [3, 112],\n  [4, 113],\n  [5, 114],\n  [6, 116],\n  [7, 22],\n  [8, 117],\n  [9, 118],\n  [10, 119],\n  [11, 0],\n  [12, 110],\n  [13, 111],\n  [14, 112],\n  [15, 113],\n  [16, 109],\n  [17, 206],\n  [18, 0],\n  [19, 119],\n  [20, 0],\n  [21, 119],\n  [22, 207],\n  [23, 113],\n  [24, 114],\n  [25, 112],\n  [26, 113],\n  [27, 117],\n]) as Theme\n\nexport const dark_blue = n12 as Theme\nexport const dark_blue_ListItem = n12 as Theme\nconst n13 = t([\n  [0, 153],\n  [1, 154],\n  [2, 155],\n  [3, 156],\n  [4, 157],\n  [5, 158],\n  [6, 160],\n  [7, 68],\n  [8, 161],\n  [9, 162],\n  [10, 163],\n  [11, 0],\n  [12, 154],\n  [13, 155],\n  [14, 156],\n  [15, 157],\n  [16, 153],\n  [17, 208],\n  [18, 0],\n  [19, 163],\n  [20, 0],\n  [21, 163],\n  [22, 209],\n  [23, 157],\n  [24, 158],\n  [25, 156],\n  [26, 157],\n  [27, 161],\n]) as Theme\n\nexport const dark_mint = n13 as Theme\nexport const dark_mint_ListItem = n13 as Theme\nconst n14 = t([\n  [0, 164],\n  [1, 165],\n  [2, 166],\n  [3, 167],\n  [4, 168],\n  [5, 169],\n  [6, 171],\n  [7, 80],\n  [8, 172],\n  [9, 173],\n  [10, 174],\n  [11, 0],\n  [12, 165],\n  [13, 166],\n  [14, 167],\n  [15, 168],\n  [16, 164],\n  [17, 210],\n  [18, 0],\n  [19, 174],\n  [20, 0],\n  [21, 174],\n  [22, 211],\n  [23, 168],\n  [24, 169],\n  [25, 167],\n  [26, 168],\n  [27, 172],\n]) as Theme\n\nexport const dark_red = n14 as Theme\nexport const dark_red_ListItem = n14 as Theme\nconst n15 = t([[12, 212]]) as Theme\n\nexport const light_SheetOverlay = n15 as Theme\nexport const light_DialogOverlay = n15 as Theme\nexport const light_ModalOverlay = n15 as Theme\nexport const light_orange_SheetOverlay = n15 as Theme\nexport const light_orange_DialogOverlay = n15 as Theme\nexport const light_orange_ModalOverlay = n15 as Theme\nexport const light_yellow_SheetOverlay = n15 as Theme\nexport const light_yellow_DialogOverlay = n15 as Theme\nexport const light_yellow_ModalOverlay = n15 as Theme\nexport const light_green_SheetOverlay = n15 as Theme\nexport const light_green_DialogOverlay = n15 as Theme\nexport const light_green_ModalOverlay = n15 as Theme\nexport const light_blue_SheetOverlay = n15 as Theme\nexport const light_blue_DialogOverlay = n15 as Theme\nexport const light_blue_ModalOverlay = n15 as Theme\nexport const light_mint_SheetOverlay = n15 as Theme\nexport const light_mint_DialogOverlay = n15 as Theme\nexport const light_mint_ModalOverlay = n15 as Theme\nexport const light_red_SheetOverlay = n15 as Theme\nexport const light_red_DialogOverlay = n15 as Theme\nexport const light_red_ModalOverlay = n15 as Theme\nexport const light_alt1_SheetOverlay = n15 as Theme\nexport const light_alt1_DialogOverlay = n15 as Theme\nexport const light_alt1_ModalOverlay = n15 as Theme\nexport const light_alt2_SheetOverlay = n15 as Theme\nexport const light_alt2_DialogOverlay = n15 as Theme\nexport const light_alt2_ModalOverlay = n15 as Theme\nexport const light_active_SheetOverlay = n15 as Theme\nexport const light_active_DialogOverlay = n15 as Theme\nexport const light_active_ModalOverlay = n15 as Theme\nexport const light_orange_alt1_SheetOverlay = n15 as Theme\nexport const light_orange_alt1_DialogOverlay = n15 as Theme\nexport const light_orange_alt1_ModalOverlay = n15 as Theme\nexport const light_orange_alt2_SheetOverlay = n15 as Theme\nexport const light_orange_alt2_DialogOverlay = n15 as Theme\nexport const light_orange_alt2_ModalOverlay = n15 as Theme\nexport const light_orange_active_SheetOverlay = n15 as Theme\nexport const light_orange_active_DialogOverlay = n15 as Theme\nexport const light_orange_active_ModalOverlay = n15 as Theme\nexport const light_yellow_alt1_SheetOverlay = n15 as Theme\nexport const light_yellow_alt1_DialogOverlay = n15 as Theme\nexport const light_yellow_alt1_ModalOverlay = n15 as Theme\nexport const light_yellow_alt2_SheetOverlay = n15 as Theme\nexport const light_yellow_alt2_DialogOverlay = n15 as Theme\nexport const light_yellow_alt2_ModalOverlay = n15 as Theme\nexport const light_yellow_active_SheetOverlay = n15 as Theme\nexport const light_yellow_active_DialogOverlay = n15 as Theme\nexport const light_yellow_active_ModalOverlay = n15 as Theme\nexport const light_green_alt1_SheetOverlay = n15 as Theme\nexport const light_green_alt1_DialogOverlay = n15 as Theme\nexport const light_green_alt1_ModalOverlay = n15 as Theme\nexport const light_green_alt2_SheetOverlay = n15 as Theme\nexport const light_green_alt2_DialogOverlay = n15 as Theme\nexport const light_green_alt2_ModalOverlay = n15 as Theme\nexport const light_green_active_SheetOverlay = n15 as Theme\nexport const light_green_active_DialogOverlay = n15 as Theme\nexport const light_green_active_ModalOverlay = n15 as Theme\nexport const light_blue_alt1_SheetOverlay = n15 as Theme\nexport const light_blue_alt1_DialogOverlay = n15 as Theme\nexport const light_blue_alt1_ModalOverlay = n15 as Theme\nexport const light_blue_alt2_SheetOverlay = n15 as Theme\nexport const light_blue_alt2_DialogOverlay = n15 as Theme\nexport const light_blue_alt2_ModalOverlay = n15 as Theme\nexport const light_blue_active_SheetOverlay = n15 as Theme\nexport const light_blue_active_DialogOverlay = n15 as Theme\nexport const light_blue_active_ModalOverlay = n15 as Theme\nexport const light_mint_alt1_SheetOverlay = n15 as Theme\nexport const light_mint_alt1_DialogOverlay = n15 as Theme\nexport const light_mint_alt1_ModalOverlay = n15 as Theme\nexport const light_mint_alt2_SheetOverlay = n15 as Theme\nexport const light_mint_alt2_DialogOverlay = n15 as Theme\nexport const light_mint_alt2_ModalOverlay = n15 as Theme\nexport const light_mint_active_SheetOverlay = n15 as Theme\nexport const light_mint_active_DialogOverlay = n15 as Theme\nexport const light_mint_active_ModalOverlay = n15 as Theme\nexport const light_red_alt1_SheetOverlay = n15 as Theme\nexport const light_red_alt1_DialogOverlay = n15 as Theme\nexport const light_red_alt1_ModalOverlay = n15 as Theme\nexport const light_red_alt2_SheetOverlay = n15 as Theme\nexport const light_red_alt2_DialogOverlay = n15 as Theme\nexport const light_red_alt2_ModalOverlay = n15 as Theme\nexport const light_red_active_SheetOverlay = n15 as Theme\nexport const light_red_active_DialogOverlay = n15 as Theme\nexport const light_red_active_ModalOverlay = n15 as Theme\nconst n16 = t([[12, 213]]) as Theme\n\nexport const dark_SheetOverlay = n16 as Theme\nexport const dark_DialogOverlay = n16 as Theme\nexport const dark_ModalOverlay = n16 as Theme\nexport const dark_orange_SheetOverlay = n16 as Theme\nexport const dark_orange_DialogOverlay = n16 as Theme\nexport const dark_orange_ModalOverlay = n16 as Theme\nexport const dark_yellow_SheetOverlay = n16 as Theme\nexport const dark_yellow_DialogOverlay = n16 as Theme\nexport const dark_yellow_ModalOverlay = n16 as Theme\nexport const dark_green_SheetOverlay = n16 as Theme\nexport const dark_green_DialogOverlay = n16 as Theme\nexport const dark_green_ModalOverlay = n16 as Theme\nexport const dark_blue_SheetOverlay = n16 as Theme\nexport const dark_blue_DialogOverlay = n16 as Theme\nexport const dark_blue_ModalOverlay = n16 as Theme\nexport const dark_mint_SheetOverlay = n16 as Theme\nexport const dark_mint_DialogOverlay = n16 as Theme\nexport const dark_mint_ModalOverlay = n16 as Theme\nexport const dark_red_SheetOverlay = n16 as Theme\nexport const dark_red_DialogOverlay = n16 as Theme\nexport const dark_red_ModalOverlay = n16 as Theme\nexport const dark_alt1_SheetOverlay = n16 as Theme\nexport const dark_alt1_DialogOverlay = n16 as Theme\nexport const dark_alt1_ModalOverlay = n16 as Theme\nexport const dark_alt2_SheetOverlay = n16 as Theme\nexport const dark_alt2_DialogOverlay = n16 as Theme\nexport const dark_alt2_ModalOverlay = n16 as Theme\nexport const dark_active_SheetOverlay = n16 as Theme\nexport const dark_active_DialogOverlay = n16 as Theme\nexport const dark_active_ModalOverlay = n16 as Theme\nexport const dark_orange_alt1_SheetOverlay = n16 as Theme\nexport const dark_orange_alt1_DialogOverlay = n16 as Theme\nexport const dark_orange_alt1_ModalOverlay = n16 as Theme\nexport const dark_orange_alt2_SheetOverlay = n16 as Theme\nexport const dark_orange_alt2_DialogOverlay = n16 as Theme\nexport const dark_orange_alt2_ModalOverlay = n16 as Theme\nexport const dark_orange_active_SheetOverlay = n16 as Theme\nexport const dark_orange_active_DialogOverlay = n16 as Theme\nexport const dark_orange_active_ModalOverlay = n16 as Theme\nexport const dark_yellow_alt1_SheetOverlay = n16 as Theme\nexport const dark_yellow_alt1_DialogOverlay = n16 as Theme\nexport const dark_yellow_alt1_ModalOverlay = n16 as Theme\nexport const dark_yellow_alt2_SheetOverlay = n16 as Theme\nexport const dark_yellow_alt2_DialogOverlay = n16 as Theme\nexport const dark_yellow_alt2_ModalOverlay = n16 as Theme\nexport const dark_yellow_active_SheetOverlay = n16 as Theme\nexport const dark_yellow_active_DialogOverlay = n16 as Theme\nexport const dark_yellow_active_ModalOverlay = n16 as Theme\nexport const dark_green_alt1_SheetOverlay = n16 as Theme\nexport const dark_green_alt1_DialogOverlay = n16 as Theme\nexport const dark_green_alt1_ModalOverlay = n16 as Theme\nexport const dark_green_alt2_SheetOverlay = n16 as Theme\nexport const dark_green_alt2_DialogOverlay = n16 as Theme\nexport const dark_green_alt2_ModalOverlay = n16 as Theme\nexport const dark_green_active_SheetOverlay = n16 as Theme\nexport const dark_green_active_DialogOverlay = n16 as Theme\nexport const dark_green_active_ModalOverlay = n16 as Theme\nexport const dark_blue_alt1_SheetOverlay = n16 as Theme\nexport const dark_blue_alt1_DialogOverlay = n16 as Theme\nexport const dark_blue_alt1_ModalOverlay = n16 as Theme\nexport const dark_blue_alt2_SheetOverlay = n16 as Theme\nexport const dark_blue_alt2_DialogOverlay = n16 as Theme\nexport const dark_blue_alt2_ModalOverlay = n16 as Theme\nexport const dark_blue_active_SheetOverlay = n16 as Theme\nexport const dark_blue_active_DialogOverlay = n16 as Theme\nexport const dark_blue_active_ModalOverlay = n16 as Theme\nexport const dark_mint_alt1_SheetOverlay = n16 as Theme\nexport const dark_mint_alt1_DialogOverlay = n16 as Theme\nexport const dark_mint_alt1_ModalOverlay = n16 as Theme\nexport const dark_mint_alt2_SheetOverlay = n16 as Theme\nexport const dark_mint_alt2_DialogOverlay = n16 as Theme\nexport const dark_mint_alt2_ModalOverlay = n16 as Theme\nexport const dark_mint_active_SheetOverlay = n16 as Theme\nexport const dark_mint_active_DialogOverlay = n16 as Theme\nexport const dark_mint_active_ModalOverlay = n16 as Theme\nexport const dark_red_alt1_SheetOverlay = n16 as Theme\nexport const dark_red_alt1_DialogOverlay = n16 as Theme\nexport const dark_red_alt1_ModalOverlay = n16 as Theme\nexport const dark_red_alt2_SheetOverlay = n16 as Theme\nexport const dark_red_alt2_DialogOverlay = n16 as Theme\nexport const dark_red_alt2_ModalOverlay = n16 as Theme\nexport const dark_red_active_SheetOverlay = n16 as Theme\nexport const dark_red_active_DialogOverlay = n16 as Theme\nexport const dark_red_active_ModalOverlay = n16 as Theme\nconst n17 = t([\n  [0, 1],\n  [1, 2],\n  [2, 3],\n  [3, 4],\n  [4, 5],\n  [5, 6],\n  [6, 7],\n  [7, 8],\n  [8, 9],\n  [9, 10],\n  [10, 11],\n  [11, 11],\n  [12, 2],\n  [13, 3],\n  [14, 4],\n  [15, 5],\n  [16, 1],\n  [17, 0],\n  [18, 10],\n  [19, 9],\n  [20, 10],\n  [21, 9],\n  [22, 11],\n  [23, 5],\n  [24, 6],\n  [25, 4],\n  [26, 5],\n  [27, 7],\n]) as Theme\n\nexport const light_alt1 = n17 as Theme\nconst n18 = t([\n  [0, 2],\n  [1, 3],\n  [2, 4],\n  [3, 5],\n  [4, 6],\n  [5, 7],\n  [6, 8],\n  [7, 9],\n  [8, 10],\n  [9, 11],\n  [10, 11],\n  [11, 11],\n  [12, 3],\n  [13, 4],\n  [14, 5],\n  [15, 6],\n  [16, 2],\n  [17, 1],\n  [18, 9],\n  [19, 8],\n  [20, 9],\n  [21, 8],\n  [22, 10],\n  [23, 5],\n  [24, 6],\n  [25, 4],\n  [26, 5],\n  [27, 6],\n]) as Theme\n\nexport const light_alt2 = n18 as Theme\nconst n19 = t([\n  [0, 3],\n  [1, 4],\n  [2, 5],\n  [3, 6],\n  [4, 7],\n  [5, 8],\n  [6, 9],\n  [7, 10],\n  [8, 11],\n  [9, 13],\n  [10, 13],\n  [11, 13],\n  [12, 4],\n  [13, 5],\n  [14, 6],\n  [15, 7],\n  [16, 3],\n  [17, 2],\n  [19, 7],\n  [20, 8],\n  [21, 7],\n  [22, 9],\n  [23, 6],\n  [24, 7],\n  [25, 5],\n  [26, 6],\n  [27, 5],\n]) as Theme\n\nexport const light_active = n19 as Theme\nconst n20 = t([\n  [0, 99],\n  [1, 100],\n  [2, 101],\n  [3, 102],\n  [4, 103],\n  [5, 104],\n  [6, 105],\n  [7, 106],\n  [8, 107],\n  [9, 108],\n  [10, 0],\n  [11, 0],\n  [12, 100],\n  [13, 101],\n  [14, 102],\n  [15, 103],\n  [16, 99],\n  [17, 98],\n  [18, 108],\n  [19, 107],\n  [20, 108],\n  [21, 107],\n  [22, 0],\n  [23, 103],\n  [24, 104],\n  [25, 102],\n  [26, 103],\n  [27, 105],\n]) as Theme\n\nexport const dark_alt1 = n20 as Theme\nexport const dark_alt1_ListItem = n20 as Theme\nconst n21 = t([\n  [0, 100],\n  [1, 101],\n  [2, 102],\n  [3, 103],\n  [4, 104],\n  [5, 105],\n  [6, 106],\n  [7, 107],\n  [8, 108],\n  [9, 0],\n  [10, 0],\n  [11, 0],\n  [12, 101],\n  [13, 102],\n  [14, 103],\n  [15, 104],\n  [16, 100],\n  [17, 99],\n  [18, 107],\n  [19, 106],\n  [20, 107],\n  [21, 106],\n  [22, 108],\n  [23, 103],\n  [24, 104],\n  [25, 102],\n  [26, 103],\n  [27, 104],\n]) as Theme\n\nexport const dark_alt2 = n21 as Theme\nexport const dark_alt2_ListItem = n21 as Theme\nconst n22 = t([\n  [0, 101],\n  [1, 102],\n  [2, 103],\n  [3, 104],\n  [4, 105],\n  [5, 106],\n  [6, 107],\n  [7, 108],\n  [8, 0],\n  [9, 12],\n  [10, 12],\n  [11, 12],\n  [12, 102],\n  [13, 103],\n  [14, 104],\n  [15, 105],\n  [16, 101],\n  [17, 100],\n  [19, 105],\n  [20, 106],\n  [21, 105],\n  [22, 107],\n  [23, 104],\n  [24, 105],\n  [25, 103],\n  [26, 104],\n  [27, 103],\n]) as Theme\n\nexport const dark_active = n22 as Theme\nexport const dark_active_ListItem = n22 as Theme\nconst n23 = t([\n  [0, 49],\n  [1, 50],\n  [2, 51],\n  [3, 52],\n  [4, 53],\n  [5, 55],\n  [6, 56],\n  [7, 57],\n  [8, 58],\n  [9, 59],\n  [10, 11],\n  [11, 11],\n  [12, 50],\n  [13, 51],\n  [14, 52],\n  [15, 53],\n  [16, 49],\n  [17, 48],\n  [18, 59],\n  [19, 58],\n  [20, 59],\n  [21, 58],\n  [22, 11],\n  [23, 52],\n  [24, 53],\n  [25, 52],\n  [26, 52],\n  [27, 56],\n]) as Theme\n\nexport const light_orange_alt1 = n23 as Theme\nconst n24 = t([\n  [0, 50],\n  [1, 51],\n  [2, 52],\n  [3, 53],\n  [4, 55],\n  [5, 56],\n  [6, 57],\n  [7, 58],\n  [8, 59],\n  [9, 11],\n  [10, 11],\n  [11, 11],\n  [12, 51],\n  [13, 52],\n  [14, 53],\n  [15, 55],\n  [16, 50],\n  [17, 49],\n  [18, 58],\n  [19, 57],\n  [20, 58],\n  [21, 57],\n  [22, 59],\n  [23, 52],\n  [24, 53],\n  [25, 52],\n  [26, 52],\n  [27, 55],\n]) as Theme\n\nexport const light_orange_alt2 = n24 as Theme\nconst n25 = t([\n  [0, 51],\n  [1, 52],\n  [2, 53],\n  [3, 55],\n  [4, 56],\n  [5, 57],\n  [6, 58],\n  [7, 59],\n  [8, 11],\n  [9, 189],\n  [10, 189],\n  [11, 189],\n  [12, 52],\n  [13, 53],\n  [14, 55],\n  [15, 56],\n  [16, 51],\n  [17, 50],\n  [19, 56],\n  [20, 57],\n  [21, 56],\n  [22, 58],\n  [23, 53],\n  [24, 55],\n  [25, 53],\n  [26, 53],\n  [27, 53],\n]) as Theme\n\nexport const light_orange_active = n25 as Theme\nconst n26 = t([\n  [0, 85],\n  [1, 86],\n  [2, 87],\n  [3, 88],\n  [4, 89],\n  [5, 91],\n  [6, 92],\n  [7, 93],\n  [8, 94],\n  [9, 95],\n  [10, 11],\n  [11, 11],\n  [12, 86],\n  [13, 87],\n  [14, 88],\n  [15, 89],\n  [16, 85],\n  [17, 84],\n  [18, 95],\n  [19, 94],\n  [20, 95],\n  [21, 94],\n  [22, 11],\n  [23, 88],\n  [24, 89],\n  [25, 88],\n  [26, 88],\n  [27, 92],\n]) as Theme\n\nexport const light_yellow_alt1 = n26 as Theme\nconst n27 = t([\n  [0, 86],\n  [1, 87],\n  [2, 88],\n  [3, 89],\n  [4, 91],\n  [5, 92],\n  [6, 93],\n  [7, 94],\n  [8, 95],\n  [9, 11],\n  [10, 11],\n  [11, 11],\n  [12, 87],\n  [13, 88],\n  [14, 89],\n  [15, 91],\n  [16, 86],\n  [17, 85],\n  [18, 94],\n  [19, 93],\n  [20, 94],\n  [21, 93],\n  [22, 95],\n  [23, 88],\n  [24, 89],\n  [25, 88],\n  [26, 88],\n  [27, 91],\n]) as Theme\n\nexport const light_yellow_alt2 = n27 as Theme\nconst n28 = t([\n  [0, 87],\n  [1, 88],\n  [2, 89],\n  [3, 91],\n  [4, 92],\n  [5, 93],\n  [6, 94],\n  [7, 95],\n  [8, 11],\n  [9, 191],\n  [10, 191],\n  [11, 191],\n  [12, 88],\n  [13, 89],\n  [14, 91],\n  [15, 92],\n  [16, 87],\n  [17, 86],\n  [19, 92],\n  [20, 93],\n  [21, 92],\n  [22, 94],\n  [23, 89],\n  [24, 91],\n  [25, 89],\n  [26, 89],\n  [27, 89],\n]) as Theme\n\nexport const light_yellow_active = n28 as Theme\nconst n29 = t([\n  [0, 37],\n  [1, 38],\n  [2, 39],\n  [3, 40],\n  [4, 41],\n  [5, 43],\n  [6, 44],\n  [7, 45],\n  [8, 46],\n  [9, 47],\n  [10, 11],\n  [11, 11],\n  [12, 38],\n  [13, 39],\n  [14, 40],\n  [15, 41],\n  [16, 37],\n  [17, 36],\n  [18, 47],\n  [19, 46],\n  [20, 47],\n  [21, 46],\n  [22, 11],\n  [23, 40],\n  [24, 41],\n  [25, 40],\n  [26, 40],\n  [27, 44],\n]) as Theme\n\nexport const light_green_alt1 = n29 as Theme\nconst n30 = t([\n  [0, 38],\n  [1, 39],\n  [2, 40],\n  [3, 41],\n  [4, 43],\n  [5, 44],\n  [6, 45],\n  [7, 46],\n  [8, 47],\n  [9, 11],\n  [10, 11],\n  [11, 11],\n  [12, 39],\n  [13, 40],\n  [14, 41],\n  [15, 43],\n  [16, 38],\n  [17, 37],\n  [18, 46],\n  [19, 45],\n  [20, 46],\n  [21, 45],\n  [22, 47],\n  [23, 40],\n  [24, 41],\n  [25, 40],\n  [26, 40],\n  [27, 43],\n]) as Theme\n\nexport const light_green_alt2 = n30 as Theme\nconst n31 = t([\n  [0, 39],\n  [1, 40],\n  [2, 41],\n  [3, 43],\n  [4, 44],\n  [5, 45],\n  [6, 46],\n  [7, 47],\n  [8, 11],\n  [9, 193],\n  [10, 193],\n  [11, 193],\n  [12, 40],\n  [13, 41],\n  [14, 43],\n  [15, 44],\n  [16, 39],\n  [17, 38],\n  [19, 44],\n  [20, 45],\n  [21, 44],\n  [22, 46],\n  [23, 41],\n  [24, 43],\n  [25, 41],\n  [26, 41],\n  [27, 41],\n]) as Theme\n\nexport const light_green_active = n31 as Theme\nconst n32 = t([\n  [0, 15],\n  [1, 16],\n  [2, 17],\n  [3, 18],\n  [4, 19],\n  [5, 21],\n  [6, 22],\n  [7, 23],\n  [8, 24],\n  [9, 25],\n  [10, 11],\n  [11, 11],\n  [12, 16],\n  [13, 17],\n  [14, 18],\n  [15, 19],\n  [16, 15],\n  [17, 14],\n  [18, 25],\n  [19, 24],\n  [20, 25],\n  [21, 24],\n  [22, 11],\n  [23, 18],\n  [24, 19],\n  [25, 18],\n  [26, 18],\n  [27, 22],\n]) as Theme\n\nexport const light_blue_alt1 = n32 as Theme\nconst n33 = t([\n  [0, 16],\n  [1, 17],\n  [2, 18],\n  [3, 19],\n  [4, 21],\n  [5, 22],\n  [6, 23],\n  [7, 24],\n  [8, 25],\n  [9, 11],\n  [10, 11],\n  [11, 11],\n  [12, 17],\n  [13, 18],\n  [14, 19],\n  [15, 21],\n  [16, 16],\n  [17, 15],\n  [18, 24],\n  [19, 23],\n  [20, 24],\n  [21, 23],\n  [22, 25],\n  [23, 18],\n  [24, 19],\n  [25, 18],\n  [26, 18],\n  [27, 21],\n]) as Theme\n\nexport const light_blue_alt2 = n33 as Theme\nconst n34 = t([\n  [0, 17],\n  [1, 18],\n  [2, 19],\n  [3, 21],\n  [4, 22],\n  [5, 23],\n  [6, 24],\n  [7, 25],\n  [8, 11],\n  [9, 195],\n  [10, 195],\n  [11, 195],\n  [12, 18],\n  [13, 19],\n  [14, 21],\n  [15, 22],\n  [16, 17],\n  [17, 16],\n  [19, 22],\n  [20, 23],\n  [21, 22],\n  [22, 24],\n  [23, 19],\n  [24, 21],\n  [25, 19],\n  [26, 19],\n  [27, 19],\n]) as Theme\n\nexport const light_blue_active = n34 as Theme\nconst n35 = t([\n  [0, 61],\n  [1, 62],\n  [2, 63],\n  [3, 64],\n  [4, 65],\n  [5, 67],\n  [6, 68],\n  [7, 69],\n  [8, 70],\n  [9, 71],\n  [10, 11],\n  [11, 11],\n  [12, 62],\n  [13, 63],\n  [14, 64],\n  [15, 65],\n  [16, 61],\n  [17, 60],\n  [18, 71],\n  [19, 70],\n  [20, 71],\n  [21, 70],\n  [22, 11],\n  [23, 64],\n  [24, 65],\n  [25, 64],\n  [26, 64],\n  [27, 68],\n]) as Theme\n\nexport const light_mint_alt1 = n35 as Theme\nconst n36 = t([\n  [0, 62],\n  [1, 63],\n  [2, 64],\n  [3, 65],\n  [4, 67],\n  [5, 68],\n  [6, 69],\n  [7, 70],\n  [8, 71],\n  [9, 11],\n  [10, 11],\n  [11, 11],\n  [12, 63],\n  [13, 64],\n  [14, 65],\n  [15, 67],\n  [16, 62],\n  [17, 61],\n  [18, 70],\n  [19, 69],\n  [20, 70],\n  [21, 69],\n  [22, 71],\n  [23, 64],\n  [24, 65],\n  [25, 64],\n  [26, 64],\n  [27, 67],\n]) as Theme\n\nexport const light_mint_alt2 = n36 as Theme\nconst n37 = t([\n  [0, 63],\n  [1, 64],\n  [2, 65],\n  [3, 67],\n  [4, 68],\n  [5, 69],\n  [6, 70],\n  [7, 71],\n  [8, 11],\n  [9, 197],\n  [10, 197],\n  [11, 197],\n  [12, 64],\n  [13, 65],\n  [14, 67],\n  [15, 68],\n  [16, 63],\n  [17, 62],\n  [19, 68],\n  [20, 69],\n  [21, 68],\n  [22, 70],\n  [23, 65],\n  [24, 67],\n  [25, 65],\n  [26, 65],\n  [27, 65],\n]) as Theme\n\nexport const light_mint_active = n37 as Theme\nconst n38 = t([\n  [0, 73],\n  [1, 74],\n  [2, 75],\n  [3, 76],\n  [4, 77],\n  [5, 79],\n  [6, 80],\n  [7, 81],\n  [8, 82],\n  [9, 83],\n  [10, 11],\n  [11, 11],\n  [12, 74],\n  [13, 75],\n  [14, 76],\n  [15, 77],\n  [16, 73],\n  [17, 72],\n  [18, 83],\n  [19, 82],\n  [20, 83],\n  [21, 82],\n  [22, 11],\n  [23, 76],\n  [24, 77],\n  [25, 76],\n  [26, 76],\n  [27, 80],\n]) as Theme\n\nexport const light_red_alt1 = n38 as Theme\nconst n39 = t([\n  [0, 74],\n  [1, 75],\n  [2, 76],\n  [3, 77],\n  [4, 79],\n  [5, 80],\n  [6, 81],\n  [7, 82],\n  [8, 83],\n  [9, 11],\n  [10, 11],\n  [11, 11],\n  [12, 75],\n  [13, 76],\n  [14, 77],\n  [15, 79],\n  [16, 74],\n  [17, 73],\n  [18, 82],\n  [19, 81],\n  [20, 82],\n  [21, 81],\n  [22, 83],\n  [23, 76],\n  [24, 77],\n  [25, 76],\n  [26, 76],\n  [27, 79],\n]) as Theme\n\nexport const light_red_alt2 = n39 as Theme\nconst n40 = t([\n  [0, 75],\n  [1, 76],\n  [2, 77],\n  [3, 79],\n  [4, 80],\n  [5, 81],\n  [6, 82],\n  [7, 83],\n  [8, 11],\n  [9, 199],\n  [10, 199],\n  [11, 199],\n  [12, 76],\n  [13, 77],\n  [14, 79],\n  [15, 80],\n  [16, 75],\n  [17, 74],\n  [19, 80],\n  [20, 81],\n  [21, 80],\n  [22, 82],\n  [23, 77],\n  [24, 79],\n  [25, 77],\n  [26, 77],\n  [27, 77],\n]) as Theme\n\nexport const light_red_active = n40 as Theme\nconst n41 = t([\n  [0, 143],\n  [1, 144],\n  [2, 145],\n  [3, 146],\n  [4, 147],\n  [5, 149],\n  [6, 56],\n  [7, 150],\n  [8, 151],\n  [9, 152],\n  [10, 0],\n  [11, 0],\n  [12, 144],\n  [13, 145],\n  [14, 146],\n  [15, 147],\n  [16, 143],\n  [17, 142],\n  [18, 152],\n  [19, 151],\n  [20, 152],\n  [21, 151],\n  [22, 0],\n  [23, 147],\n  [24, 149],\n  [25, 146],\n  [26, 147],\n  [27, 56],\n]) as Theme\n\nexport const dark_orange_alt1 = n41 as Theme\nexport const dark_orange_alt1_ListItem = n41 as Theme\nconst n42 = t([\n  [0, 144],\n  [1, 145],\n  [2, 146],\n  [3, 147],\n  [4, 149],\n  [5, 56],\n  [6, 150],\n  [7, 151],\n  [8, 152],\n  [9, 0],\n  [10, 0],\n  [11, 0],\n  [12, 145],\n  [13, 146],\n  [14, 147],\n  [15, 149],\n  [16, 144],\n  [17, 143],\n  [18, 151],\n  [19, 150],\n  [20, 151],\n  [21, 150],\n  [22, 152],\n  [23, 147],\n  [24, 149],\n  [25, 146],\n  [26, 147],\n  [27, 149],\n]) as Theme\n\nexport const dark_orange_alt2 = n42 as Theme\nexport const dark_orange_alt2_ListItem = n42 as Theme\nconst n43 = t([\n  [0, 145],\n  [1, 146],\n  [2, 147],\n  [3, 149],\n  [4, 56],\n  [5, 150],\n  [6, 151],\n  [7, 152],\n  [8, 0],\n  [9, 201],\n  [10, 201],\n  [11, 201],\n  [12, 146],\n  [13, 147],\n  [14, 149],\n  [15, 56],\n  [16, 145],\n  [17, 144],\n  [19, 56],\n  [20, 150],\n  [21, 56],\n  [22, 151],\n  [23, 149],\n  [24, 56],\n  [25, 147],\n  [26, 149],\n  [27, 147],\n]) as Theme\n\nexport const dark_orange_active = n43 as Theme\nexport const dark_orange_active_ListItem = n43 as Theme\nconst n44 = t([\n  [0, 176],\n  [1, 177],\n  [2, 178],\n  [3, 179],\n  [4, 180],\n  [5, 182],\n  [6, 92],\n  [7, 183],\n  [8, 184],\n  [9, 185],\n  [10, 0],\n  [11, 0],\n  [12, 177],\n  [13, 178],\n  [14, 179],\n  [15, 180],\n  [16, 176],\n  [17, 175],\n  [18, 185],\n  [19, 184],\n  [20, 185],\n  [21, 184],\n  [22, 0],\n  [23, 180],\n  [24, 182],\n  [25, 179],\n  [26, 180],\n  [27, 92],\n]) as Theme\n\nexport const dark_yellow_alt1 = n44 as Theme\nexport const dark_yellow_alt1_ListItem = n44 as Theme\nconst n45 = t([\n  [0, 177],\n  [1, 178],\n  [2, 179],\n  [3, 180],\n  [4, 182],\n  [5, 92],\n  [6, 183],\n  [7, 184],\n  [8, 185],\n  [9, 0],\n  [10, 0],\n  [11, 0],\n  [12, 178],\n  [13, 179],\n  [14, 180],\n  [15, 182],\n  [16, 177],\n  [17, 176],\n  [18, 184],\n  [19, 183],\n  [20, 184],\n  [21, 183],\n  [22, 185],\n  [23, 180],\n  [24, 182],\n  [25, 179],\n  [26, 180],\n  [27, 182],\n]) as Theme\n\nexport const dark_yellow_alt2 = n45 as Theme\nexport const dark_yellow_alt2_ListItem = n45 as Theme\nconst n46 = t([\n  [0, 178],\n  [1, 179],\n  [2, 180],\n  [3, 182],\n  [4, 92],\n  [5, 183],\n  [6, 184],\n  [7, 185],\n  [8, 0],\n  [9, 203],\n  [10, 203],\n  [11, 203],\n  [12, 179],\n  [13, 180],\n  [14, 182],\n  [15, 92],\n  [16, 178],\n  [17, 177],\n  [19, 92],\n  [20, 183],\n  [21, 92],\n  [22, 184],\n  [23, 182],\n  [24, 92],\n  [25, 180],\n  [26, 182],\n  [27, 180],\n]) as Theme\n\nexport const dark_yellow_active = n46 as Theme\nexport const dark_yellow_active_ListItem = n46 as Theme\nconst n47 = t([\n  [0, 132],\n  [1, 133],\n  [2, 134],\n  [3, 135],\n  [4, 136],\n  [5, 138],\n  [6, 44],\n  [7, 139],\n  [8, 140],\n  [9, 141],\n  [10, 0],\n  [11, 0],\n  [12, 133],\n  [13, 134],\n  [14, 135],\n  [15, 136],\n  [16, 132],\n  [17, 131],\n  [18, 141],\n  [19, 140],\n  [20, 141],\n  [21, 140],\n  [22, 0],\n  [23, 136],\n  [24, 138],\n  [25, 135],\n  [26, 136],\n  [27, 44],\n]) as Theme\n\nexport const dark_green_alt1 = n47 as Theme\nexport const dark_green_alt1_ListItem = n47 as Theme\nconst n48 = t([\n  [0, 133],\n  [1, 134],\n  [2, 135],\n  [3, 136],\n  [4, 138],\n  [5, 44],\n  [6, 139],\n  [7, 140],\n  [8, 141],\n  [9, 0],\n  [10, 0],\n  [11, 0],\n  [12, 134],\n  [13, 135],\n  [14, 136],\n  [15, 138],\n  [16, 133],\n  [17, 132],\n  [18, 140],\n  [19, 139],\n  [20, 140],\n  [21, 139],\n  [22, 141],\n  [23, 136],\n  [24, 138],\n  [25, 135],\n  [26, 136],\n  [27, 138],\n]) as Theme\n\nexport const dark_green_alt2 = n48 as Theme\nexport const dark_green_alt2_ListItem = n48 as Theme\nconst n49 = t([\n  [0, 134],\n  [1, 135],\n  [2, 136],\n  [3, 138],\n  [4, 44],\n  [5, 139],\n  [6, 140],\n  [7, 141],\n  [8, 0],\n  [9, 205],\n  [10, 205],\n  [11, 205],\n  [12, 135],\n  [13, 136],\n  [14, 138],\n  [15, 44],\n  [16, 134],\n  [17, 133],\n  [19, 44],\n  [20, 139],\n  [21, 44],\n  [22, 140],\n  [23, 138],\n  [24, 44],\n  [25, 136],\n  [26, 138],\n  [27, 136],\n]) as Theme\n\nexport const dark_green_active = n49 as Theme\nexport const dark_green_active_ListItem = n49 as Theme\nconst n50 = t([\n  [0, 110],\n  [1, 111],\n  [2, 112],\n  [3, 113],\n  [4, 114],\n  [5, 116],\n  [6, 22],\n  [7, 117],\n  [8, 118],\n  [9, 119],\n  [10, 0],\n  [11, 0],\n  [12, 111],\n  [13, 112],\n  [14, 113],\n  [15, 114],\n  [16, 110],\n  [17, 109],\n  [18, 119],\n  [19, 118],\n  [20, 119],\n  [21, 118],\n  [22, 0],\n  [23, 114],\n  [24, 116],\n  [25, 113],\n  [26, 114],\n  [27, 22],\n]) as Theme\n\nexport const dark_blue_alt1 = n50 as Theme\nexport const dark_blue_alt1_ListItem = n50 as Theme\nconst n51 = t([\n  [0, 111],\n  [1, 112],\n  [2, 113],\n  [3, 114],\n  [4, 116],\n  [5, 22],\n  [6, 117],\n  [7, 118],\n  [8, 119],\n  [9, 0],\n  [10, 0],\n  [11, 0],\n  [12, 112],\n  [13, 113],\n  [14, 114],\n  [15, 116],\n  [16, 111],\n  [17, 110],\n  [18, 118],\n  [19, 117],\n  [20, 118],\n  [21, 117],\n  [22, 119],\n  [23, 114],\n  [24, 116],\n  [25, 113],\n  [26, 114],\n  [27, 116],\n]) as Theme\n\nexport const dark_blue_alt2 = n51 as Theme\nexport const dark_blue_alt2_ListItem = n51 as Theme\nconst n52 = t([\n  [0, 112],\n  [1, 113],\n  [2, 114],\n  [3, 116],\n  [4, 22],\n  [5, 117],\n  [6, 118],\n  [7, 119],\n  [8, 0],\n  [9, 207],\n  [10, 207],\n  [11, 207],\n  [12, 113],\n  [13, 114],\n  [14, 116],\n  [15, 22],\n  [16, 112],\n  [17, 111],\n  [19, 22],\n  [20, 117],\n  [21, 22],\n  [22, 118],\n  [23, 116],\n  [24, 22],\n  [25, 114],\n  [26, 116],\n  [27, 114],\n]) as Theme\n\nexport const dark_blue_active = n52 as Theme\nexport const dark_blue_active_ListItem = n52 as Theme\nconst n53 = t([\n  [0, 154],\n  [1, 155],\n  [2, 156],\n  [3, 157],\n  [4, 158],\n  [5, 160],\n  [6, 68],\n  [7, 161],\n  [8, 162],\n  [9, 163],\n  [10, 0],\n  [11, 0],\n  [12, 155],\n  [13, 156],\n  [14, 157],\n  [15, 158],\n  [16, 154],\n  [17, 153],\n  [18, 163],\n  [19, 162],\n  [20, 163],\n  [21, 162],\n  [22, 0],\n  [23, 158],\n  [24, 160],\n  [25, 157],\n  [26, 158],\n  [27, 68],\n]) as Theme\n\nexport const dark_mint_alt1 = n53 as Theme\nexport const dark_mint_alt1_ListItem = n53 as Theme\nconst n54 = t([\n  [0, 155],\n  [1, 156],\n  [2, 157],\n  [3, 158],\n  [4, 160],\n  [5, 68],\n  [6, 161],\n  [7, 162],\n  [8, 163],\n  [9, 0],\n  [10, 0],\n  [11, 0],\n  [12, 156],\n  [13, 157],\n  [14, 158],\n  [15, 160],\n  [16, 155],\n  [17, 154],\n  [18, 162],\n  [19, 161],\n  [20, 162],\n  [21, 161],\n  [22, 163],\n  [23, 158],\n  [24, 160],\n  [25, 157],\n  [26, 158],\n  [27, 160],\n]) as Theme\n\nexport const dark_mint_alt2 = n54 as Theme\nexport const dark_mint_alt2_ListItem = n54 as Theme\nconst n55 = t([\n  [0, 156],\n  [1, 157],\n  [2, 158],\n  [3, 160],\n  [4, 68],\n  [5, 161],\n  [6, 162],\n  [7, 163],\n  [8, 0],\n  [9, 209],\n  [10, 209],\n  [11, 209],\n  [12, 157],\n  [13, 158],\n  [14, 160],\n  [15, 68],\n  [16, 156],\n  [17, 155],\n  [19, 68],\n  [20, 161],\n  [21, 68],\n  [22, 162],\n  [23, 160],\n  [24, 68],\n  [25, 158],\n  [26, 160],\n  [27, 158],\n]) as Theme\n\nexport const dark_mint_active = n55 as Theme\nexport const dark_mint_active_ListItem = n55 as Theme\nconst n56 = t([\n  [0, 165],\n  [1, 166],\n  [2, 167],\n  [3, 168],\n  [4, 169],\n  [5, 171],\n  [6, 80],\n  [7, 172],\n  [8, 173],\n  [9, 174],\n  [10, 0],\n  [11, 0],\n  [12, 166],\n  [13, 167],\n  [14, 168],\n  [15, 169],\n  [16, 165],\n  [17, 164],\n  [18, 174],\n  [19, 173],\n  [20, 174],\n  [21, 173],\n  [22, 0],\n  [23, 169],\n  [24, 171],\n  [25, 168],\n  [26, 169],\n  [27, 80],\n]) as Theme\n\nexport const dark_red_alt1 = n56 as Theme\nexport const dark_red_alt1_ListItem = n56 as Theme\nconst n57 = t([\n  [0, 166],\n  [1, 167],\n  [2, 168],\n  [3, 169],\n  [4, 171],\n  [5, 80],\n  [6, 172],\n  [7, 173],\n  [8, 174],\n  [9, 0],\n  [10, 0],\n  [11, 0],\n  [12, 167],\n  [13, 168],\n  [14, 169],\n  [15, 171],\n  [16, 166],\n  [17, 165],\n  [18, 173],\n  [19, 172],\n  [20, 173],\n  [21, 172],\n  [22, 174],\n  [23, 169],\n  [24, 171],\n  [25, 168],\n  [26, 169],\n  [27, 171],\n]) as Theme\n\nexport const dark_red_alt2 = n57 as Theme\nexport const dark_red_alt2_ListItem = n57 as Theme\nconst n58 = t([\n  [0, 167],\n  [1, 168],\n  [2, 169],\n  [3, 171],\n  [4, 80],\n  [5, 172],\n  [6, 173],\n  [7, 174],\n  [8, 0],\n  [9, 211],\n  [10, 211],\n  [11, 211],\n  [12, 168],\n  [13, 169],\n  [14, 171],\n  [15, 80],\n  [16, 167],\n  [17, 166],\n  [19, 80],\n  [20, 172],\n  [21, 80],\n  [22, 173],\n  [23, 171],\n  [24, 80],\n  [25, 169],\n  [26, 171],\n  [27, 169],\n]) as Theme\n\nexport const dark_red_active = n58 as Theme\nexport const dark_red_active_ListItem = n58 as Theme\nconst n59 = t([\n  [12, 0],\n  [13, 1],\n  [14, 2],\n  [15, 3],\n  [16, 0],\n  [17, 0],\n  [18, 11],\n  [19, 10],\n  [20, 11],\n  [21, 10],\n  [22, 11],\n  [23, 3],\n  [24, 4],\n  [25, 2],\n  [26, 3],\n  [27, 9],\n]) as Theme\n\nexport const light_ListItem = n59 as Theme\nconst n60 = t([\n  [12, 2],\n  [13, 3],\n  [14, 4],\n  [15, 5],\n  [16, 1],\n  [17, 0],\n  [18, 11],\n  [19, 10],\n  [20, 11],\n  [21, 10],\n  [22, 11],\n  [23, 5],\n  [24, 6],\n  [25, 4],\n  [26, 5],\n  [27, 7],\n]) as Theme\n\nexport const light_Card = n60 as Theme\nexport const light_DrawerFrame = n60 as Theme\nexport const light_Progress = n60 as Theme\nexport const light_TooltipArrow = n60 as Theme\nconst n61 = t([\n  [12, 3],\n  [13, 4],\n  [14, 5],\n  [15, 6],\n  [16, 2],\n  [17, 1],\n  [18, 11],\n  [19, 10],\n  [20, 11],\n  [21, 10],\n  [22, 10],\n  [23, 5],\n  [24, 6],\n  [25, 4],\n  [26, 5],\n  [27, 6],\n]) as Theme\n\nexport const light_Button = n61 as Theme\nexport const light_Switch = n61 as Theme\nexport const light_TooltipContent = n61 as Theme\nexport const light_SliderTrack = n61 as Theme\nconst n62 = t([\n  [12, 1],\n  [13, 2],\n  [14, 3],\n  [15, 4],\n  [16, 0],\n  [17, 12],\n  [18, 11],\n  [19, 10],\n  [20, 11],\n  [21, 10],\n  [22, 13],\n  [23, 6],\n  [24, 7],\n  [25, 5],\n  [26, 6],\n  [27, 8],\n]) as Theme\n\nexport const light_Checkbox = n62 as Theme\nexport const light_RadioGroupItem = n62 as Theme\nexport const light_Input = n62 as Theme\nexport const light_TextArea = n62 as Theme\nconst n63 = t([\n  [12, 11],\n  [13, 11],\n  [14, 10],\n  [15, 9],\n  [16, 11],\n  [17, 11],\n  [18, 0],\n  [19, 1],\n  [20, 0],\n  [21, 1],\n  [22, 0],\n  [23, 9],\n  [24, 8],\n  [25, 10],\n  [26, 9],\n  [27, 1],\n]) as Theme\n\nexport const light_SwitchThumb = n63 as Theme\nconst n64 = t([\n  [12, 8],\n  [13, 7],\n  [14, 6],\n  [15, 5],\n  [16, 9],\n  [17, 10],\n  [18, 0],\n  [19, 1],\n  [20, 0],\n  [21, 1],\n  [22, 1],\n  [23, 5],\n  [24, 4],\n  [25, 6],\n  [26, 5],\n  [27, 5],\n]) as Theme\n\nexport const light_SliderTrackActive = n64 as Theme\nconst n65 = t([\n  [12, 10],\n  [13, 9],\n  [14, 8],\n  [15, 7],\n  [16, 11],\n  [17, 13],\n  [18, 0],\n  [19, 1],\n  [20, 0],\n  [21, 1],\n  [22, 12],\n  [23, 7],\n  [24, 6],\n  [25, 8],\n  [26, 7],\n  [27, 3],\n]) as Theme\n\nexport const light_SliderThumb = n65 as Theme\nexport const light_Tooltip = n65 as Theme\nexport const light_ProgressIndicator = n65 as Theme\nconst n66 = t([\n  [0, 98],\n  [1, 99],\n  [2, 100],\n  [3, 101],\n  [4, 102],\n  [5, 103],\n  [6, 104],\n  [7, 105],\n  [8, 106],\n  [9, 107],\n  [10, 108],\n  [11, 0],\n  [12, 99],\n  [13, 100],\n  [14, 101],\n  [15, 102],\n  [16, 98],\n  [17, 13],\n  [18, 0],\n  [19, 108],\n  [20, 0],\n  [21, 108],\n  [22, 12],\n  [23, 102],\n  [24, 103],\n  [25, 101],\n  [26, 102],\n  [27, 106],\n]) as Theme\n\nexport const dark_ListItem = n66 as Theme\nconst n67 = t([\n  [12, 100],\n  [13, 101],\n  [14, 102],\n  [15, 103],\n  [16, 99],\n  [17, 98],\n  [18, 0],\n  [19, 108],\n  [20, 0],\n  [21, 108],\n  [22, 0],\n  [23, 103],\n  [24, 104],\n  [25, 102],\n  [26, 103],\n  [27, 105],\n]) as Theme\n\nexport const dark_Card = n67 as Theme\nexport const dark_DrawerFrame = n67 as Theme\nexport const dark_Progress = n67 as Theme\nexport const dark_TooltipArrow = n67 as Theme\nconst n68 = t([\n  [12, 101],\n  [13, 102],\n  [14, 103],\n  [15, 104],\n  [16, 100],\n  [17, 99],\n  [18, 0],\n  [19, 108],\n  [20, 0],\n  [21, 108],\n  [22, 108],\n  [23, 103],\n  [24, 104],\n  [25, 102],\n  [26, 103],\n  [27, 104],\n]) as Theme\n\nexport const dark_Button = n68 as Theme\nexport const dark_Switch = n68 as Theme\nexport const dark_TooltipContent = n68 as Theme\nexport const dark_SliderTrack = n68 as Theme\nconst n69 = t([\n  [12, 99],\n  [13, 100],\n  [14, 101],\n  [15, 102],\n  [16, 98],\n  [17, 13],\n  [18, 0],\n  [19, 108],\n  [20, 0],\n  [21, 108],\n  [22, 12],\n  [23, 104],\n  [24, 105],\n  [25, 103],\n  [26, 104],\n  [27, 106],\n]) as Theme\n\nexport const dark_Checkbox = n69 as Theme\nexport const dark_RadioGroupItem = n69 as Theme\nexport const dark_Input = n69 as Theme\nexport const dark_TextArea = n69 as Theme\nconst n70 = t([\n  [12, 0],\n  [13, 0],\n  [14, 108],\n  [15, 107],\n  [16, 0],\n  [17, 0],\n  [18, 98],\n  [19, 99],\n  [20, 98],\n  [21, 99],\n  [22, 98],\n  [23, 107],\n  [24, 106],\n  [25, 108],\n  [26, 107],\n  [27, 99],\n]) as Theme\n\nexport const dark_SwitchThumb = n70 as Theme\nconst n71 = t([\n  [12, 106],\n  [13, 105],\n  [14, 104],\n  [15, 103],\n  [16, 107],\n  [17, 108],\n  [18, 98],\n  [19, 99],\n  [20, 98],\n  [21, 99],\n  [22, 99],\n  [23, 103],\n  [24, 102],\n  [25, 104],\n  [26, 103],\n  [27, 103],\n]) as Theme\n\nexport const dark_SliderTrackActive = n71 as Theme\nconst n72 = t([\n  [12, 108],\n  [13, 107],\n  [14, 106],\n  [15, 105],\n  [16, 0],\n  [17, 12],\n  [18, 98],\n  [19, 99],\n  [20, 98],\n  [21, 99],\n  [22, 13],\n  [23, 105],\n  [24, 104],\n  [25, 106],\n  [26, 105],\n  [27, 101],\n]) as Theme\n\nexport const dark_SliderThumb = n72 as Theme\nexport const dark_Tooltip = n72 as Theme\nexport const dark_ProgressIndicator = n72 as Theme\nconst n73 = t([\n  [12, 48],\n  [13, 49],\n  [14, 50],\n  [15, 51],\n  [16, 48],\n  [17, 48],\n  [18, 11],\n  [19, 59],\n  [20, 11],\n  [21, 59],\n  [22, 11],\n  [23, 50],\n  [24, 51],\n  [25, 50],\n  [26, 50],\n  [27, 58],\n]) as Theme\n\nexport const light_orange_ListItem = n73 as Theme\nconst n74 = t([\n  [12, 50],\n  [13, 51],\n  [14, 52],\n  [15, 53],\n  [16, 49],\n  [17, 48],\n  [18, 11],\n  [19, 59],\n  [20, 11],\n  [21, 59],\n  [22, 11],\n  [23, 52],\n  [24, 53],\n  [25, 52],\n  [26, 52],\n  [27, 56],\n]) as Theme\n\nexport const light_orange_Card = n74 as Theme\nexport const light_orange_DrawerFrame = n74 as Theme\nexport const light_orange_Progress = n74 as Theme\nexport const light_orange_TooltipArrow = n74 as Theme\nconst n75 = t([\n  [12, 51],\n  [13, 52],\n  [14, 53],\n  [15, 55],\n  [16, 50],\n  [17, 49],\n  [18, 11],\n  [19, 59],\n  [20, 11],\n  [21, 59],\n  [22, 59],\n  [23, 52],\n  [24, 53],\n  [25, 52],\n  [26, 52],\n  [27, 55],\n]) as Theme\n\nexport const light_orange_Button = n75 as Theme\nexport const light_orange_Switch = n75 as Theme\nexport const light_orange_TooltipContent = n75 as Theme\nexport const light_orange_SliderTrack = n75 as Theme\nconst n76 = t([\n  [12, 49],\n  [13, 50],\n  [14, 51],\n  [15, 52],\n  [16, 48],\n  [17, 188],\n  [18, 11],\n  [19, 59],\n  [20, 11],\n  [21, 59],\n  [22, 189],\n  [23, 53],\n  [24, 55],\n  [25, 53],\n  [26, 53],\n  [27, 57],\n]) as Theme\n\nexport const light_orange_Checkbox = n76 as Theme\nexport const light_orange_RadioGroupItem = n76 as Theme\nexport const light_orange_Input = n76 as Theme\nexport const light_orange_TextArea = n76 as Theme\nconst n77 = t([\n  [12, 11],\n  [13, 11],\n  [14, 59],\n  [15, 58],\n  [16, 11],\n  [17, 11],\n  [18, 48],\n  [19, 49],\n  [20, 48],\n  [21, 49],\n  [22, 48],\n  [23, 59],\n  [24, 58],\n  [25, 59],\n  [26, 59],\n  [27, 49],\n]) as Theme\n\nexport const light_orange_SwitchThumb = n77 as Theme\nconst n78 = t([\n  [12, 57],\n  [13, 56],\n  [14, 55],\n  [15, 53],\n  [16, 58],\n  [17, 59],\n  [18, 48],\n  [19, 49],\n  [20, 48],\n  [21, 49],\n  [22, 49],\n  [23, 55],\n  [24, 53],\n  [25, 55],\n  [26, 55],\n  [27, 53],\n]) as Theme\n\nexport const light_orange_SliderTrackActive = n78 as Theme\nconst n79 = t([\n  [12, 59],\n  [13, 58],\n  [14, 57],\n  [15, 56],\n  [16, 11],\n  [17, 189],\n  [18, 48],\n  [19, 49],\n  [20, 48],\n  [21, 49],\n  [22, 188],\n  [23, 57],\n  [24, 56],\n  [25, 57],\n  [26, 57],\n  [27, 51],\n]) as Theme\n\nexport const light_orange_SliderThumb = n79 as Theme\nexport const light_orange_Tooltip = n79 as Theme\nexport const light_orange_ProgressIndicator = n79 as Theme\nconst n80 = t([\n  [12, 84],\n  [13, 85],\n  [14, 86],\n  [15, 87],\n  [16, 84],\n  [17, 84],\n  [18, 11],\n  [19, 95],\n  [20, 11],\n  [21, 95],\n  [22, 11],\n  [23, 86],\n  [24, 87],\n  [25, 86],\n  [26, 86],\n  [27, 94],\n]) as Theme\n\nexport const light_yellow_ListItem = n80 as Theme\nconst n81 = t([\n  [12, 86],\n  [13, 87],\n  [14, 88],\n  [15, 89],\n  [16, 85],\n  [17, 84],\n  [18, 11],\n  [19, 95],\n  [20, 11],\n  [21, 95],\n  [22, 11],\n  [23, 88],\n  [24, 89],\n  [25, 88],\n  [26, 88],\n  [27, 92],\n]) as Theme\n\nexport const light_yellow_Card = n81 as Theme\nexport const light_yellow_DrawerFrame = n81 as Theme\nexport const light_yellow_Progress = n81 as Theme\nexport const light_yellow_TooltipArrow = n81 as Theme\nconst n82 = t([\n  [12, 87],\n  [13, 88],\n  [14, 89],\n  [15, 91],\n  [16, 86],\n  [17, 85],\n  [18, 11],\n  [19, 95],\n  [20, 11],\n  [21, 95],\n  [22, 95],\n  [23, 88],\n  [24, 89],\n  [25, 88],\n  [26, 88],\n  [27, 91],\n]) as Theme\n\nexport const light_yellow_Button = n82 as Theme\nexport const light_yellow_Switch = n82 as Theme\nexport const light_yellow_TooltipContent = n82 as Theme\nexport const light_yellow_SliderTrack = n82 as Theme\nconst n83 = t([\n  [12, 85],\n  [13, 86],\n  [14, 87],\n  [15, 88],\n  [16, 84],\n  [17, 190],\n  [18, 11],\n  [19, 95],\n  [20, 11],\n  [21, 95],\n  [22, 191],\n  [23, 89],\n  [24, 91],\n  [25, 89],\n  [26, 89],\n  [27, 93],\n]) as Theme\n\nexport const light_yellow_Checkbox = n83 as Theme\nexport const light_yellow_RadioGroupItem = n83 as Theme\nexport const light_yellow_Input = n83 as Theme\nexport const light_yellow_TextArea = n83 as Theme\nconst n84 = t([\n  [12, 11],\n  [13, 11],\n  [14, 95],\n  [15, 94],\n  [16, 11],\n  [17, 11],\n  [18, 84],\n  [19, 85],\n  [20, 84],\n  [21, 85],\n  [22, 84],\n  [23, 95],\n  [24, 94],\n  [25, 95],\n  [26, 95],\n  [27, 85],\n]) as Theme\n\nexport const light_yellow_SwitchThumb = n84 as Theme\nconst n85 = t([\n  [12, 93],\n  [13, 92],\n  [14, 91],\n  [15, 89],\n  [16, 94],\n  [17, 95],\n  [18, 84],\n  [19, 85],\n  [20, 84],\n  [21, 85],\n  [22, 85],\n  [23, 91],\n  [24, 89],\n  [25, 91],\n  [26, 91],\n  [27, 89],\n]) as Theme\n\nexport const light_yellow_SliderTrackActive = n85 as Theme\nconst n86 = t([\n  [12, 95],\n  [13, 94],\n  [14, 93],\n  [15, 92],\n  [16, 11],\n  [17, 191],\n  [18, 84],\n  [19, 85],\n  [20, 84],\n  [21, 85],\n  [22, 190],\n  [23, 93],\n  [24, 92],\n  [25, 93],\n  [26, 93],\n  [27, 87],\n]) as Theme\n\nexport const light_yellow_SliderThumb = n86 as Theme\nexport const light_yellow_Tooltip = n86 as Theme\nexport const light_yellow_ProgressIndicator = n86 as Theme\nconst n87 = t([\n  [12, 36],\n  [13, 37],\n  [14, 38],\n  [15, 39],\n  [16, 36],\n  [17, 36],\n  [18, 11],\n  [19, 47],\n  [20, 11],\n  [21, 47],\n  [22, 11],\n  [23, 38],\n  [24, 39],\n  [25, 38],\n  [26, 38],\n  [27, 46],\n]) as Theme\n\nexport const light_green_ListItem = n87 as Theme\nconst n88 = t([\n  [12, 38],\n  [13, 39],\n  [14, 40],\n  [15, 41],\n  [16, 37],\n  [17, 36],\n  [18, 11],\n  [19, 47],\n  [20, 11],\n  [21, 47],\n  [22, 11],\n  [23, 40],\n  [24, 41],\n  [25, 40],\n  [26, 40],\n  [27, 44],\n]) as Theme\n\nexport const light_green_Card = n88 as Theme\nexport const light_green_DrawerFrame = n88 as Theme\nexport const light_green_Progress = n88 as Theme\nexport const light_green_TooltipArrow = n88 as Theme\nconst n89 = t([\n  [12, 39],\n  [13, 40],\n  [14, 41],\n  [15, 43],\n  [16, 38],\n  [17, 37],\n  [18, 11],\n  [19, 47],\n  [20, 11],\n  [21, 47],\n  [22, 47],\n  [23, 40],\n  [24, 41],\n  [25, 40],\n  [26, 40],\n  [27, 43],\n]) as Theme\n\nexport const light_green_Button = n89 as Theme\nexport const light_green_Switch = n89 as Theme\nexport const light_green_TooltipContent = n89 as Theme\nexport const light_green_SliderTrack = n89 as Theme\nconst n90 = t([\n  [12, 37],\n  [13, 38],\n  [14, 39],\n  [15, 40],\n  [16, 36],\n  [17, 192],\n  [18, 11],\n  [19, 47],\n  [20, 11],\n  [21, 47],\n  [22, 193],\n  [23, 41],\n  [24, 43],\n  [25, 41],\n  [26, 41],\n  [27, 45],\n]) as Theme\n\nexport const light_green_Checkbox = n90 as Theme\nexport const light_green_RadioGroupItem = n90 as Theme\nexport const light_green_Input = n90 as Theme\nexport const light_green_TextArea = n90 as Theme\nconst n91 = t([\n  [12, 11],\n  [13, 11],\n  [14, 47],\n  [15, 46],\n  [16, 11],\n  [17, 11],\n  [18, 36],\n  [19, 37],\n  [20, 36],\n  [21, 37],\n  [22, 36],\n  [23, 47],\n  [24, 46],\n  [25, 47],\n  [26, 47],\n  [27, 37],\n]) as Theme\n\nexport const light_green_SwitchThumb = n91 as Theme\nconst n92 = t([\n  [12, 45],\n  [13, 44],\n  [14, 43],\n  [15, 41],\n  [16, 46],\n  [17, 47],\n  [18, 36],\n  [19, 37],\n  [20, 36],\n  [21, 37],\n  [22, 37],\n  [23, 43],\n  [24, 41],\n  [25, 43],\n  [26, 43],\n  [27, 41],\n]) as Theme\n\nexport const light_green_SliderTrackActive = n92 as Theme\nconst n93 = t([\n  [12, 47],\n  [13, 46],\n  [14, 45],\n  [15, 44],\n  [16, 11],\n  [17, 193],\n  [18, 36],\n  [19, 37],\n  [20, 36],\n  [21, 37],\n  [22, 192],\n  [23, 45],\n  [24, 44],\n  [25, 45],\n  [26, 45],\n  [27, 39],\n]) as Theme\n\nexport const light_green_SliderThumb = n93 as Theme\nexport const light_green_Tooltip = n93 as Theme\nexport const light_green_ProgressIndicator = n93 as Theme\nconst n94 = t([\n  [12, 14],\n  [13, 15],\n  [14, 16],\n  [15, 17],\n  [16, 14],\n  [17, 14],\n  [18, 11],\n  [19, 25],\n  [20, 11],\n  [21, 25],\n  [22, 11],\n  [23, 16],\n  [24, 17],\n  [25, 16],\n  [26, 16],\n  [27, 24],\n]) as Theme\n\nexport const light_blue_ListItem = n94 as Theme\nconst n95 = t([\n  [12, 16],\n  [13, 17],\n  [14, 18],\n  [15, 19],\n  [16, 15],\n  [17, 14],\n  [18, 11],\n  [19, 25],\n  [20, 11],\n  [21, 25],\n  [22, 11],\n  [23, 18],\n  [24, 19],\n  [25, 18],\n  [26, 18],\n  [27, 22],\n]) as Theme\n\nexport const light_blue_Card = n95 as Theme\nexport const light_blue_DrawerFrame = n95 as Theme\nexport const light_blue_Progress = n95 as Theme\nexport const light_blue_TooltipArrow = n95 as Theme\nconst n96 = t([\n  [12, 17],\n  [13, 18],\n  [14, 19],\n  [15, 21],\n  [16, 16],\n  [17, 15],\n  [18, 11],\n  [19, 25],\n  [20, 11],\n  [21, 25],\n  [22, 25],\n  [23, 18],\n  [24, 19],\n  [25, 18],\n  [26, 18],\n  [27, 21],\n]) as Theme\n\nexport const light_blue_Button = n96 as Theme\nexport const light_blue_Switch = n96 as Theme\nexport const light_blue_TooltipContent = n96 as Theme\nexport const light_blue_SliderTrack = n96 as Theme\nconst n97 = t([\n  [12, 15],\n  [13, 16],\n  [14, 17],\n  [15, 18],\n  [16, 14],\n  [17, 194],\n  [18, 11],\n  [19, 25],\n  [20, 11],\n  [21, 25],\n  [22, 195],\n  [23, 19],\n  [24, 21],\n  [25, 19],\n  [26, 19],\n  [27, 23],\n]) as Theme\n\nexport const light_blue_Checkbox = n97 as Theme\nexport const light_blue_RadioGroupItem = n97 as Theme\nexport const light_blue_Input = n97 as Theme\nexport const light_blue_TextArea = n97 as Theme\nconst n98 = t([\n  [12, 11],\n  [13, 11],\n  [14, 25],\n  [15, 24],\n  [16, 11],\n  [17, 11],\n  [18, 14],\n  [19, 15],\n  [20, 14],\n  [21, 15],\n  [22, 14],\n  [23, 25],\n  [24, 24],\n  [25, 25],\n  [26, 25],\n  [27, 15],\n]) as Theme\n\nexport const light_blue_SwitchThumb = n98 as Theme\nconst n99 = t([\n  [12, 23],\n  [13, 22],\n  [14, 21],\n  [15, 19],\n  [16, 24],\n  [17, 25],\n  [18, 14],\n  [19, 15],\n  [20, 14],\n  [21, 15],\n  [22, 15],\n  [23, 21],\n  [24, 19],\n  [25, 21],\n  [26, 21],\n  [27, 19],\n]) as Theme\n\nexport const light_blue_SliderTrackActive = n99 as Theme\nconst n100 = t([\n  [12, 25],\n  [13, 24],\n  [14, 23],\n  [15, 22],\n  [16, 11],\n  [17, 195],\n  [18, 14],\n  [19, 15],\n  [20, 14],\n  [21, 15],\n  [22, 194],\n  [23, 23],\n  [24, 22],\n  [25, 23],\n  [26, 23],\n  [27, 17],\n]) as Theme\n\nexport const light_blue_SliderThumb = n100 as Theme\nexport const light_blue_Tooltip = n100 as Theme\nexport const light_blue_ProgressIndicator = n100 as Theme\nconst n101 = t([\n  [12, 60],\n  [13, 61],\n  [14, 62],\n  [15, 63],\n  [16, 60],\n  [17, 60],\n  [18, 11],\n  [19, 71],\n  [20, 11],\n  [21, 71],\n  [22, 11],\n  [23, 62],\n  [24, 63],\n  [25, 62],\n  [26, 62],\n  [27, 70],\n]) as Theme\n\nexport const light_mint_ListItem = n101 as Theme\nconst n102 = t([\n  [12, 62],\n  [13, 63],\n  [14, 64],\n  [15, 65],\n  [16, 61],\n  [17, 60],\n  [18, 11],\n  [19, 71],\n  [20, 11],\n  [21, 71],\n  [22, 11],\n  [23, 64],\n  [24, 65],\n  [25, 64],\n  [26, 64],\n  [27, 68],\n]) as Theme\n\nexport const light_mint_Card = n102 as Theme\nexport const light_mint_DrawerFrame = n102 as Theme\nexport const light_mint_Progress = n102 as Theme\nexport const light_mint_TooltipArrow = n102 as Theme\nconst n103 = t([\n  [12, 63],\n  [13, 64],\n  [14, 65],\n  [15, 67],\n  [16, 62],\n  [17, 61],\n  [18, 11],\n  [19, 71],\n  [20, 11],\n  [21, 71],\n  [22, 71],\n  [23, 64],\n  [24, 65],\n  [25, 64],\n  [26, 64],\n  [27, 67],\n]) as Theme\n\nexport const light_mint_Button = n103 as Theme\nexport const light_mint_Switch = n103 as Theme\nexport const light_mint_TooltipContent = n103 as Theme\nexport const light_mint_SliderTrack = n103 as Theme\nconst n104 = t([\n  [12, 61],\n  [13, 62],\n  [14, 63],\n  [15, 64],\n  [16, 60],\n  [17, 196],\n  [18, 11],\n  [19, 71],\n  [20, 11],\n  [21, 71],\n  [22, 197],\n  [23, 65],\n  [24, 67],\n  [25, 65],\n  [26, 65],\n  [27, 69],\n]) as Theme\n\nexport const light_mint_Checkbox = n104 as Theme\nexport const light_mint_RadioGroupItem = n104 as Theme\nexport const light_mint_Input = n104 as Theme\nexport const light_mint_TextArea = n104 as Theme\nconst n105 = t([\n  [12, 11],\n  [13, 11],\n  [14, 71],\n  [15, 70],\n  [16, 11],\n  [17, 11],\n  [18, 60],\n  [19, 61],\n  [20, 60],\n  [21, 61],\n  [22, 60],\n  [23, 71],\n  [24, 70],\n  [25, 71],\n  [26, 71],\n  [27, 61],\n]) as Theme\n\nexport const light_mint_SwitchThumb = n105 as Theme\nconst n106 = t([\n  [12, 69],\n  [13, 68],\n  [14, 67],\n  [15, 65],\n  [16, 70],\n  [17, 71],\n  [18, 60],\n  [19, 61],\n  [20, 60],\n  [21, 61],\n  [22, 61],\n  [23, 67],\n  [24, 65],\n  [25, 67],\n  [26, 67],\n  [27, 65],\n]) as Theme\n\nexport const light_mint_SliderTrackActive = n106 as Theme\nconst n107 = t([\n  [12, 71],\n  [13, 70],\n  [14, 69],\n  [15, 68],\n  [16, 11],\n  [17, 197],\n  [18, 60],\n  [19, 61],\n  [20, 60],\n  [21, 61],\n  [22, 196],\n  [23, 69],\n  [24, 68],\n  [25, 69],\n  [26, 69],\n  [27, 63],\n]) as Theme\n\nexport const light_mint_SliderThumb = n107 as Theme\nexport const light_mint_Tooltip = n107 as Theme\nexport const light_mint_ProgressIndicator = n107 as Theme\nconst n108 = t([\n  [12, 72],\n  [13, 73],\n  [14, 74],\n  [15, 75],\n  [16, 72],\n  [17, 72],\n  [18, 11],\n  [19, 83],\n  [20, 11],\n  [21, 83],\n  [22, 11],\n  [23, 74],\n  [24, 75],\n  [25, 74],\n  [26, 74],\n  [27, 82],\n]) as Theme\n\nexport const light_red_ListItem = n108 as Theme\nconst n109 = t([\n  [12, 74],\n  [13, 75],\n  [14, 76],\n  [15, 77],\n  [16, 73],\n  [17, 72],\n  [18, 11],\n  [19, 83],\n  [20, 11],\n  [21, 83],\n  [22, 11],\n  [23, 76],\n  [24, 77],\n  [25, 76],\n  [26, 76],\n  [27, 80],\n]) as Theme\n\nexport const light_red_Card = n109 as Theme\nexport const light_red_DrawerFrame = n109 as Theme\nexport const light_red_Progress = n109 as Theme\nexport const light_red_TooltipArrow = n109 as Theme\nconst n110 = t([\n  [12, 75],\n  [13, 76],\n  [14, 77],\n  [15, 79],\n  [16, 74],\n  [17, 73],\n  [18, 11],\n  [19, 83],\n  [20, 11],\n  [21, 83],\n  [22, 83],\n  [23, 76],\n  [24, 77],\n  [25, 76],\n  [26, 76],\n  [27, 79],\n]) as Theme\n\nexport const light_red_Button = n110 as Theme\nexport const light_red_Switch = n110 as Theme\nexport const light_red_TooltipContent = n110 as Theme\nexport const light_red_SliderTrack = n110 as Theme\nconst n111 = t([\n  [12, 73],\n  [13, 74],\n  [14, 75],\n  [15, 76],\n  [16, 72],\n  [17, 198],\n  [18, 11],\n  [19, 83],\n  [20, 11],\n  [21, 83],\n  [22, 199],\n  [23, 77],\n  [24, 79],\n  [25, 77],\n  [26, 77],\n  [27, 81],\n]) as Theme\n\nexport const light_red_Checkbox = n111 as Theme\nexport const light_red_RadioGroupItem = n111 as Theme\nexport const light_red_Input = n111 as Theme\nexport const light_red_TextArea = n111 as Theme\nconst n112 = t([\n  [12, 11],\n  [13, 11],\n  [14, 83],\n  [15, 82],\n  [16, 11],\n  [17, 11],\n  [18, 72],\n  [19, 73],\n  [20, 72],\n  [21, 73],\n  [22, 72],\n  [23, 83],\n  [24, 82],\n  [25, 83],\n  [26, 83],\n  [27, 73],\n]) as Theme\n\nexport const light_red_SwitchThumb = n112 as Theme\nconst n113 = t([\n  [12, 81],\n  [13, 80],\n  [14, 79],\n  [15, 77],\n  [16, 82],\n  [17, 83],\n  [18, 72],\n  [19, 73],\n  [20, 72],\n  [21, 73],\n  [22, 73],\n  [23, 79],\n  [24, 77],\n  [25, 79],\n  [26, 79],\n  [27, 77],\n]) as Theme\n\nexport const light_red_SliderTrackActive = n113 as Theme\nconst n114 = t([\n  [12, 83],\n  [13, 82],\n  [14, 81],\n  [15, 80],\n  [16, 11],\n  [17, 199],\n  [18, 72],\n  [19, 73],\n  [20, 72],\n  [21, 73],\n  [22, 198],\n  [23, 81],\n  [24, 80],\n  [25, 81],\n  [26, 81],\n  [27, 75],\n]) as Theme\n\nexport const light_red_SliderThumb = n114 as Theme\nexport const light_red_Tooltip = n114 as Theme\nexport const light_red_ProgressIndicator = n114 as Theme\nconst n115 = t([\n  [12, 144],\n  [13, 145],\n  [14, 146],\n  [15, 147],\n  [16, 143],\n  [17, 142],\n  [18, 0],\n  [19, 152],\n  [20, 0],\n  [21, 152],\n  [22, 0],\n  [23, 147],\n  [24, 149],\n  [25, 146],\n  [26, 147],\n  [27, 56],\n]) as Theme\n\nexport const dark_orange_Card = n115 as Theme\nexport const dark_orange_DrawerFrame = n115 as Theme\nexport const dark_orange_Progress = n115 as Theme\nexport const dark_orange_TooltipArrow = n115 as Theme\nconst n116 = t([\n  [12, 145],\n  [13, 146],\n  [14, 147],\n  [15, 149],\n  [16, 144],\n  [17, 143],\n  [18, 0],\n  [19, 152],\n  [20, 0],\n  [21, 152],\n  [22, 152],\n  [23, 147],\n  [24, 149],\n  [25, 146],\n  [26, 147],\n  [27, 149],\n]) as Theme\n\nexport const dark_orange_Button = n116 as Theme\nexport const dark_orange_Switch = n116 as Theme\nexport const dark_orange_TooltipContent = n116 as Theme\nexport const dark_orange_SliderTrack = n116 as Theme\nconst n117 = t([\n  [12, 143],\n  [13, 144],\n  [14, 145],\n  [15, 146],\n  [16, 142],\n  [17, 200],\n  [18, 0],\n  [19, 152],\n  [20, 0],\n  [21, 152],\n  [22, 201],\n  [23, 149],\n  [24, 56],\n  [25, 147],\n  [26, 149],\n  [27, 150],\n]) as Theme\n\nexport const dark_orange_Checkbox = n117 as Theme\nexport const dark_orange_RadioGroupItem = n117 as Theme\nexport const dark_orange_Input = n117 as Theme\nexport const dark_orange_TextArea = n117 as Theme\nconst n118 = t([\n  [12, 0],\n  [13, 0],\n  [14, 152],\n  [15, 151],\n  [16, 0],\n  [17, 0],\n  [18, 142],\n  [19, 143],\n  [20, 142],\n  [21, 143],\n  [22, 142],\n  [23, 151],\n  [24, 150],\n  [25, 152],\n  [26, 151],\n  [27, 143],\n]) as Theme\n\nexport const dark_orange_SwitchThumb = n118 as Theme\nconst n119 = t([\n  [12, 150],\n  [13, 56],\n  [14, 149],\n  [15, 147],\n  [16, 151],\n  [17, 152],\n  [18, 142],\n  [19, 143],\n  [20, 142],\n  [21, 143],\n  [22, 143],\n  [23, 147],\n  [24, 146],\n  [25, 149],\n  [26, 147],\n  [27, 147],\n]) as Theme\n\nexport const dark_orange_SliderTrackActive = n119 as Theme\nconst n120 = t([\n  [12, 152],\n  [13, 151],\n  [14, 150],\n  [15, 56],\n  [16, 0],\n  [17, 201],\n  [18, 142],\n  [19, 143],\n  [20, 142],\n  [21, 143],\n  [22, 200],\n  [23, 56],\n  [24, 149],\n  [25, 150],\n  [26, 56],\n  [27, 145],\n]) as Theme\n\nexport const dark_orange_SliderThumb = n120 as Theme\nexport const dark_orange_Tooltip = n120 as Theme\nexport const dark_orange_ProgressIndicator = n120 as Theme\nconst n121 = t([\n  [12, 177],\n  [13, 178],\n  [14, 179],\n  [15, 180],\n  [16, 176],\n  [17, 175],\n  [18, 0],\n  [19, 185],\n  [20, 0],\n  [21, 185],\n  [22, 0],\n  [23, 180],\n  [24, 182],\n  [25, 179],\n  [26, 180],\n  [27, 92],\n]) as Theme\n\nexport const dark_yellow_Card = n121 as Theme\nexport const dark_yellow_DrawerFrame = n121 as Theme\nexport const dark_yellow_Progress = n121 as Theme\nexport const dark_yellow_TooltipArrow = n121 as Theme\nconst n122 = t([\n  [12, 178],\n  [13, 179],\n  [14, 180],\n  [15, 182],\n  [16, 177],\n  [17, 176],\n  [18, 0],\n  [19, 185],\n  [20, 0],\n  [21, 185],\n  [22, 185],\n  [23, 180],\n  [24, 182],\n  [25, 179],\n  [26, 180],\n  [27, 182],\n]) as Theme\n\nexport const dark_yellow_Button = n122 as Theme\nexport const dark_yellow_Switch = n122 as Theme\nexport const dark_yellow_TooltipContent = n122 as Theme\nexport const dark_yellow_SliderTrack = n122 as Theme\nconst n123 = t([\n  [12, 176],\n  [13, 177],\n  [14, 178],\n  [15, 179],\n  [16, 175],\n  [17, 202],\n  [18, 0],\n  [19, 185],\n  [20, 0],\n  [21, 185],\n  [22, 203],\n  [23, 182],\n  [24, 92],\n  [25, 180],\n  [26, 182],\n  [27, 183],\n]) as Theme\n\nexport const dark_yellow_Checkbox = n123 as Theme\nexport const dark_yellow_RadioGroupItem = n123 as Theme\nexport const dark_yellow_Input = n123 as Theme\nexport const dark_yellow_TextArea = n123 as Theme\nconst n124 = t([\n  [12, 0],\n  [13, 0],\n  [14, 185],\n  [15, 184],\n  [16, 0],\n  [17, 0],\n  [18, 175],\n  [19, 176],\n  [20, 175],\n  [21, 176],\n  [22, 175],\n  [23, 184],\n  [24, 183],\n  [25, 185],\n  [26, 184],\n  [27, 176],\n]) as Theme\n\nexport const dark_yellow_SwitchThumb = n124 as Theme\nconst n125 = t([\n  [12, 183],\n  [13, 92],\n  [14, 182],\n  [15, 180],\n  [16, 184],\n  [17, 185],\n  [18, 175],\n  [19, 176],\n  [20, 175],\n  [21, 176],\n  [22, 176],\n  [23, 180],\n  [24, 179],\n  [25, 182],\n  [26, 180],\n  [27, 180],\n]) as Theme\n\nexport const dark_yellow_SliderTrackActive = n125 as Theme\nconst n126 = t([\n  [12, 185],\n  [13, 184],\n  [14, 183],\n  [15, 92],\n  [16, 0],\n  [17, 203],\n  [18, 175],\n  [19, 176],\n  [20, 175],\n  [21, 176],\n  [22, 202],\n  [23, 92],\n  [24, 182],\n  [25, 183],\n  [26, 92],\n  [27, 178],\n]) as Theme\n\nexport const dark_yellow_SliderThumb = n126 as Theme\nexport const dark_yellow_Tooltip = n126 as Theme\nexport const dark_yellow_ProgressIndicator = n126 as Theme\nconst n127 = t([\n  [12, 133],\n  [13, 134],\n  [14, 135],\n  [15, 136],\n  [16, 132],\n  [17, 131],\n  [18, 0],\n  [19, 141],\n  [20, 0],\n  [21, 141],\n  [22, 0],\n  [23, 136],\n  [24, 138],\n  [25, 135],\n  [26, 136],\n  [27, 44],\n]) as Theme\n\nexport const dark_green_Card = n127 as Theme\nexport const dark_green_DrawerFrame = n127 as Theme\nexport const dark_green_Progress = n127 as Theme\nexport const dark_green_TooltipArrow = n127 as Theme\nconst n128 = t([\n  [12, 134],\n  [13, 135],\n  [14, 136],\n  [15, 138],\n  [16, 133],\n  [17, 132],\n  [18, 0],\n  [19, 141],\n  [20, 0],\n  [21, 141],\n  [22, 141],\n  [23, 136],\n  [24, 138],\n  [25, 135],\n  [26, 136],\n  [27, 138],\n]) as Theme\n\nexport const dark_green_Button = n128 as Theme\nexport const dark_green_Switch = n128 as Theme\nexport const dark_green_TooltipContent = n128 as Theme\nexport const dark_green_SliderTrack = n128 as Theme\nconst n129 = t([\n  [12, 132],\n  [13, 133],\n  [14, 134],\n  [15, 135],\n  [16, 131],\n  [17, 204],\n  [18, 0],\n  [19, 141],\n  [20, 0],\n  [21, 141],\n  [22, 205],\n  [23, 138],\n  [24, 44],\n  [25, 136],\n  [26, 138],\n  [27, 139],\n]) as Theme\n\nexport const dark_green_Checkbox = n129 as Theme\nexport const dark_green_RadioGroupItem = n129 as Theme\nexport const dark_green_Input = n129 as Theme\nexport const dark_green_TextArea = n129 as Theme\nconst n130 = t([\n  [12, 0],\n  [13, 0],\n  [14, 141],\n  [15, 140],\n  [16, 0],\n  [17, 0],\n  [18, 131],\n  [19, 132],\n  [20, 131],\n  [21, 132],\n  [22, 131],\n  [23, 140],\n  [24, 139],\n  [25, 141],\n  [26, 140],\n  [27, 132],\n]) as Theme\n\nexport const dark_green_SwitchThumb = n130 as Theme\nconst n131 = t([\n  [12, 139],\n  [13, 44],\n  [14, 138],\n  [15, 136],\n  [16, 140],\n  [17, 141],\n  [18, 131],\n  [19, 132],\n  [20, 131],\n  [21, 132],\n  [22, 132],\n  [23, 136],\n  [24, 135],\n  [25, 138],\n  [26, 136],\n  [27, 136],\n]) as Theme\n\nexport const dark_green_SliderTrackActive = n131 as Theme\nconst n132 = t([\n  [12, 141],\n  [13, 140],\n  [14, 139],\n  [15, 44],\n  [16, 0],\n  [17, 205],\n  [18, 131],\n  [19, 132],\n  [20, 131],\n  [21, 132],\n  [22, 204],\n  [23, 44],\n  [24, 138],\n  [25, 139],\n  [26, 44],\n  [27, 134],\n]) as Theme\n\nexport const dark_green_SliderThumb = n132 as Theme\nexport const dark_green_Tooltip = n132 as Theme\nexport const dark_green_ProgressIndicator = n132 as Theme\nconst n133 = t([\n  [12, 111],\n  [13, 112],\n  [14, 113],\n  [15, 114],\n  [16, 110],\n  [17, 109],\n  [18, 0],\n  [19, 119],\n  [20, 0],\n  [21, 119],\n  [22, 0],\n  [23, 114],\n  [24, 116],\n  [25, 113],\n  [26, 114],\n  [27, 22],\n]) as Theme\n\nexport const dark_blue_Card = n133 as Theme\nexport const dark_blue_DrawerFrame = n133 as Theme\nexport const dark_blue_Progress = n133 as Theme\nexport const dark_blue_TooltipArrow = n133 as Theme\nconst n134 = t([\n  [12, 112],\n  [13, 113],\n  [14, 114],\n  [15, 116],\n  [16, 111],\n  [17, 110],\n  [18, 0],\n  [19, 119],\n  [20, 0],\n  [21, 119],\n  [22, 119],\n  [23, 114],\n  [24, 116],\n  [25, 113],\n  [26, 114],\n  [27, 116],\n]) as Theme\n\nexport const dark_blue_Button = n134 as Theme\nexport const dark_blue_Switch = n134 as Theme\nexport const dark_blue_TooltipContent = n134 as Theme\nexport const dark_blue_SliderTrack = n134 as Theme\nconst n135 = t([\n  [12, 110],\n  [13, 111],\n  [14, 112],\n  [15, 113],\n  [16, 109],\n  [17, 206],\n  [18, 0],\n  [19, 119],\n  [20, 0],\n  [21, 119],\n  [22, 207],\n  [23, 116],\n  [24, 22],\n  [25, 114],\n  [26, 116],\n  [27, 117],\n]) as Theme\n\nexport const dark_blue_Checkbox = n135 as Theme\nexport const dark_blue_RadioGroupItem = n135 as Theme\nexport const dark_blue_Input = n135 as Theme\nexport const dark_blue_TextArea = n135 as Theme\nconst n136 = t([\n  [12, 0],\n  [13, 0],\n  [14, 119],\n  [15, 118],\n  [16, 0],\n  [17, 0],\n  [18, 109],\n  [19, 110],\n  [20, 109],\n  [21, 110],\n  [22, 109],\n  [23, 118],\n  [24, 117],\n  [25, 119],\n  [26, 118],\n  [27, 110],\n]) as Theme\n\nexport const dark_blue_SwitchThumb = n136 as Theme\nconst n137 = t([\n  [12, 117],\n  [13, 22],\n  [14, 116],\n  [15, 114],\n  [16, 118],\n  [17, 119],\n  [18, 109],\n  [19, 110],\n  [20, 109],\n  [21, 110],\n  [22, 110],\n  [23, 114],\n  [24, 113],\n  [25, 116],\n  [26, 114],\n  [27, 114],\n]) as Theme\n\nexport const dark_blue_SliderTrackActive = n137 as Theme\nconst n138 = t([\n  [12, 119],\n  [13, 118],\n  [14, 117],\n  [15, 22],\n  [16, 0],\n  [17, 207],\n  [18, 109],\n  [19, 110],\n  [20, 109],\n  [21, 110],\n  [22, 206],\n  [23, 22],\n  [24, 116],\n  [25, 117],\n  [26, 22],\n  [27, 112],\n]) as Theme\n\nexport const dark_blue_SliderThumb = n138 as Theme\nexport const dark_blue_Tooltip = n138 as Theme\nexport const dark_blue_ProgressIndicator = n138 as Theme\nconst n139 = t([\n  [12, 155],\n  [13, 156],\n  [14, 157],\n  [15, 158],\n  [16, 154],\n  [17, 153],\n  [18, 0],\n  [19, 163],\n  [20, 0],\n  [21, 163],\n  [22, 0],\n  [23, 158],\n  [24, 160],\n  [25, 157],\n  [26, 158],\n  [27, 68],\n]) as Theme\n\nexport const dark_mint_Card = n139 as Theme\nexport const dark_mint_DrawerFrame = n139 as Theme\nexport const dark_mint_Progress = n139 as Theme\nexport const dark_mint_TooltipArrow = n139 as Theme\nconst n140 = t([\n  [12, 156],\n  [13, 157],\n  [14, 158],\n  [15, 160],\n  [16, 155],\n  [17, 154],\n  [18, 0],\n  [19, 163],\n  [20, 0],\n  [21, 163],\n  [22, 163],\n  [23, 158],\n  [24, 160],\n  [25, 157],\n  [26, 158],\n  [27, 160],\n]) as Theme\n\nexport const dark_mint_Button = n140 as Theme\nexport const dark_mint_Switch = n140 as Theme\nexport const dark_mint_TooltipContent = n140 as Theme\nexport const dark_mint_SliderTrack = n140 as Theme\nconst n141 = t([\n  [12, 154],\n  [13, 155],\n  [14, 156],\n  [15, 157],\n  [16, 153],\n  [17, 208],\n  [18, 0],\n  [19, 163],\n  [20, 0],\n  [21, 163],\n  [22, 209],\n  [23, 160],\n  [24, 68],\n  [25, 158],\n  [26, 160],\n  [27, 161],\n]) as Theme\n\nexport const dark_mint_Checkbox = n141 as Theme\nexport const dark_mint_RadioGroupItem = n141 as Theme\nexport const dark_mint_Input = n141 as Theme\nexport const dark_mint_TextArea = n141 as Theme\nconst n142 = t([\n  [12, 0],\n  [13, 0],\n  [14, 163],\n  [15, 162],\n  [16, 0],\n  [17, 0],\n  [18, 153],\n  [19, 154],\n  [20, 153],\n  [21, 154],\n  [22, 153],\n  [23, 162],\n  [24, 161],\n  [25, 163],\n  [26, 162],\n  [27, 154],\n]) as Theme\n\nexport const dark_mint_SwitchThumb = n142 as Theme\nconst n143 = t([\n  [12, 161],\n  [13, 68],\n  [14, 160],\n  [15, 158],\n  [16, 162],\n  [17, 163],\n  [18, 153],\n  [19, 154],\n  [20, 153],\n  [21, 154],\n  [22, 154],\n  [23, 158],\n  [24, 157],\n  [25, 160],\n  [26, 158],\n  [27, 158],\n]) as Theme\n\nexport const dark_mint_SliderTrackActive = n143 as Theme\nconst n144 = t([\n  [12, 163],\n  [13, 162],\n  [14, 161],\n  [15, 68],\n  [16, 0],\n  [17, 209],\n  [18, 153],\n  [19, 154],\n  [20, 153],\n  [21, 154],\n  [22, 208],\n  [23, 68],\n  [24, 160],\n  [25, 161],\n  [26, 68],\n  [27, 156],\n]) as Theme\n\nexport const dark_mint_SliderThumb = n144 as Theme\nexport const dark_mint_Tooltip = n144 as Theme\nexport const dark_mint_ProgressIndicator = n144 as Theme\nconst n145 = t([\n  [12, 166],\n  [13, 167],\n  [14, 168],\n  [15, 169],\n  [16, 165],\n  [17, 164],\n  [18, 0],\n  [19, 174],\n  [20, 0],\n  [21, 174],\n  [22, 0],\n  [23, 169],\n  [24, 171],\n  [25, 168],\n  [26, 169],\n  [27, 80],\n]) as Theme\n\nexport const dark_red_Card = n145 as Theme\nexport const dark_red_DrawerFrame = n145 as Theme\nexport const dark_red_Progress = n145 as Theme\nexport const dark_red_TooltipArrow = n145 as Theme\nconst n146 = t([\n  [12, 167],\n  [13, 168],\n  [14, 169],\n  [15, 171],\n  [16, 166],\n  [17, 165],\n  [18, 0],\n  [19, 174],\n  [20, 0],\n  [21, 174],\n  [22, 174],\n  [23, 169],\n  [24, 171],\n  [25, 168],\n  [26, 169],\n  [27, 171],\n]) as Theme\n\nexport const dark_red_Button = n146 as Theme\nexport const dark_red_Switch = n146 as Theme\nexport const dark_red_TooltipContent = n146 as Theme\nexport const dark_red_SliderTrack = n146 as Theme\nconst n147 = t([\n  [12, 165],\n  [13, 166],\n  [14, 167],\n  [15, 168],\n  [16, 164],\n  [17, 210],\n  [18, 0],\n  [19, 174],\n  [20, 0],\n  [21, 174],\n  [22, 211],\n  [23, 171],\n  [24, 80],\n  [25, 169],\n  [26, 171],\n  [27, 172],\n]) as Theme\n\nexport const dark_red_Checkbox = n147 as Theme\nexport const dark_red_RadioGroupItem = n147 as Theme\nexport const dark_red_Input = n147 as Theme\nexport const dark_red_TextArea = n147 as Theme\nconst n148 = t([\n  [12, 0],\n  [13, 0],\n  [14, 174],\n  [15, 173],\n  [16, 0],\n  [17, 0],\n  [18, 164],\n  [19, 165],\n  [20, 164],\n  [21, 165],\n  [22, 164],\n  [23, 173],\n  [24, 172],\n  [25, 174],\n  [26, 173],\n  [27, 165],\n]) as Theme\n\nexport const dark_red_SwitchThumb = n148 as Theme\nconst n149 = t([\n  [12, 172],\n  [13, 80],\n  [14, 171],\n  [15, 169],\n  [16, 173],\n  [17, 174],\n  [18, 164],\n  [19, 165],\n  [20, 164],\n  [21, 165],\n  [22, 165],\n  [23, 169],\n  [24, 168],\n  [25, 171],\n  [26, 169],\n  [27, 169],\n]) as Theme\n\nexport const dark_red_SliderTrackActive = n149 as Theme\nconst n150 = t([\n  [12, 174],\n  [13, 173],\n  [14, 172],\n  [15, 80],\n  [16, 0],\n  [17, 211],\n  [18, 164],\n  [19, 165],\n  [20, 164],\n  [21, 165],\n  [22, 210],\n  [23, 80],\n  [24, 171],\n  [25, 172],\n  [26, 80],\n  [27, 167],\n]) as Theme\n\nexport const dark_red_SliderThumb = n150 as Theme\nexport const dark_red_Tooltip = n150 as Theme\nexport const dark_red_ProgressIndicator = n150 as Theme\nconst n151 = t([\n  [12, 1],\n  [13, 2],\n  [14, 3],\n  [15, 4],\n  [16, 0],\n  [17, 0],\n  [18, 10],\n  [19, 9],\n  [20, 10],\n  [21, 9],\n  [22, 11],\n  [23, 4],\n  [24, 5],\n  [25, 3],\n  [26, 4],\n  [27, 8],\n]) as Theme\n\nexport const light_alt1_ListItem = n151 as Theme\nconst n152 = t([\n  [12, 3],\n  [13, 4],\n  [14, 5],\n  [15, 6],\n  [16, 2],\n  [17, 1],\n  [18, 10],\n  [19, 9],\n  [20, 10],\n  [21, 9],\n  [22, 10],\n  [23, 6],\n  [24, 7],\n  [25, 5],\n  [26, 6],\n  [27, 6],\n]) as Theme\n\nexport const light_alt1_Card = n152 as Theme\nexport const light_alt1_DrawerFrame = n152 as Theme\nexport const light_alt1_Progress = n152 as Theme\nexport const light_alt1_TooltipArrow = n152 as Theme\nconst n153 = t([\n  [12, 4],\n  [13, 5],\n  [14, 6],\n  [15, 7],\n  [16, 3],\n  [17, 2],\n  [18, 10],\n  [19, 9],\n  [20, 10],\n  [21, 9],\n  [22, 9],\n  [23, 6],\n  [24, 7],\n  [25, 5],\n  [26, 6],\n  [27, 5],\n]) as Theme\n\nexport const light_alt1_Button = n153 as Theme\nexport const light_alt1_Switch = n153 as Theme\nexport const light_alt1_TooltipContent = n153 as Theme\nexport const light_alt1_SliderTrack = n153 as Theme\nconst n154 = t([\n  [12, 2],\n  [13, 3],\n  [14, 4],\n  [15, 5],\n  [16, 1],\n  [17, 0],\n  [18, 10],\n  [19, 9],\n  [20, 10],\n  [21, 9],\n  [22, 11],\n  [23, 7],\n  [24, 8],\n  [25, 6],\n  [26, 7],\n  [27, 7],\n]) as Theme\n\nexport const light_alt1_Checkbox = n154 as Theme\nexport const light_alt1_RadioGroupItem = n154 as Theme\nexport const light_alt1_Input = n154 as Theme\nexport const light_alt1_TextArea = n154 as Theme\nconst n155 = t([\n  [12, 11],\n  [13, 10],\n  [14, 9],\n  [15, 8],\n  [16, 11],\n  [17, 11],\n  [18, 1],\n  [19, 2],\n  [20, 1],\n  [21, 2],\n  [22, 0],\n  [23, 8],\n  [24, 7],\n  [25, 9],\n  [26, 8],\n  [27, 2],\n]) as Theme\n\nexport const light_alt1_SwitchThumb = n155 as Theme\nconst n156 = t([\n  [12, 7],\n  [13, 6],\n  [14, 5],\n  [15, 4],\n  [16, 8],\n  [17, 9],\n  [18, 1],\n  [19, 2],\n  [20, 1],\n  [21, 2],\n  [22, 2],\n  [23, 4],\n  [24, 3],\n  [25, 5],\n  [26, 4],\n  [27, 6],\n]) as Theme\n\nexport const light_alt1_SliderTrackActive = n156 as Theme\nconst n157 = t([\n  [12, 9],\n  [13, 8],\n  [14, 7],\n  [15, 6],\n  [16, 10],\n  [17, 11],\n  [18, 1],\n  [19, 2],\n  [20, 1],\n  [21, 2],\n  [22, 0],\n  [23, 6],\n  [24, 5],\n  [25, 7],\n  [26, 6],\n  [27, 4],\n]) as Theme\n\nexport const light_alt1_SliderThumb = n157 as Theme\nexport const light_alt1_Tooltip = n157 as Theme\nexport const light_alt1_ProgressIndicator = n157 as Theme\nconst n158 = t([\n  [12, 2],\n  [13, 3],\n  [14, 4],\n  [15, 5],\n  [16, 1],\n  [17, 0],\n  [18, 9],\n  [19, 8],\n  [20, 9],\n  [21, 8],\n  [22, 11],\n  [23, 4],\n  [24, 5],\n  [25, 3],\n  [26, 4],\n  [27, 7],\n]) as Theme\n\nexport const light_alt2_ListItem = n158 as Theme\nconst n159 = t([\n  [12, 4],\n  [13, 5],\n  [14, 6],\n  [15, 7],\n  [16, 3],\n  [17, 2],\n  [18, 9],\n  [19, 8],\n  [20, 9],\n  [21, 8],\n  [22, 9],\n  [23, 6],\n  [24, 7],\n  [25, 5],\n  [26, 6],\n  [27, 5],\n]) as Theme\n\nexport const light_alt2_Card = n159 as Theme\nexport const light_alt2_DrawerFrame = n159 as Theme\nexport const light_alt2_Progress = n159 as Theme\nexport const light_alt2_TooltipArrow = n159 as Theme\nconst n160 = t([\n  [12, 5],\n  [13, 6],\n  [14, 7],\n  [15, 8],\n  [16, 4],\n  [17, 3],\n  [18, 9],\n  [19, 8],\n  [20, 9],\n  [21, 8],\n  [22, 8],\n  [23, 6],\n  [24, 7],\n  [25, 5],\n  [26, 6],\n  [27, 4],\n]) as Theme\n\nexport const light_alt2_Button = n160 as Theme\nexport const light_alt2_Switch = n160 as Theme\nexport const light_alt2_TooltipContent = n160 as Theme\nexport const light_alt2_SliderTrack = n160 as Theme\nconst n161 = t([\n  [12, 3],\n  [13, 4],\n  [14, 5],\n  [15, 6],\n  [16, 2],\n  [17, 1],\n  [18, 9],\n  [19, 8],\n  [20, 9],\n  [21, 8],\n  [22, 10],\n  [23, 7],\n  [24, 8],\n  [25, 6],\n  [26, 7],\n  [27, 6],\n]) as Theme\n\nexport const light_alt2_Checkbox = n161 as Theme\nexport const light_alt2_RadioGroupItem = n161 as Theme\nexport const light_alt2_Input = n161 as Theme\nexport const light_alt2_TextArea = n161 as Theme\nconst n162 = t([\n  [12, 10],\n  [13, 9],\n  [14, 8],\n  [15, 7],\n  [16, 11],\n  [17, 11],\n  [18, 2],\n  [19, 3],\n  [20, 2],\n  [21, 3],\n  [22, 0],\n  [23, 8],\n  [24, 7],\n  [25, 9],\n  [26, 8],\n  [27, 3],\n]) as Theme\n\nexport const light_alt2_SwitchThumb = n162 as Theme\nconst n163 = t([\n  [12, 6],\n  [13, 5],\n  [14, 4],\n  [15, 3],\n  [16, 7],\n  [17, 8],\n  [18, 2],\n  [19, 3],\n  [20, 2],\n  [21, 3],\n  [22, 3],\n  [23, 4],\n  [24, 3],\n  [25, 5],\n  [26, 4],\n  [27, 7],\n]) as Theme\n\nexport const light_alt2_SliderTrackActive = n163 as Theme\nconst n164 = t([\n  [12, 8],\n  [13, 7],\n  [14, 6],\n  [15, 5],\n  [16, 9],\n  [17, 10],\n  [18, 2],\n  [19, 3],\n  [20, 2],\n  [21, 3],\n  [22, 1],\n  [23, 6],\n  [24, 5],\n  [25, 7],\n  [26, 6],\n  [27, 5],\n]) as Theme\n\nexport const light_alt2_SliderThumb = n164 as Theme\nexport const light_alt2_Tooltip = n164 as Theme\nexport const light_alt2_ProgressIndicator = n164 as Theme\nconst n165 = t([\n  [12, 3],\n  [13, 4],\n  [14, 5],\n  [15, 6],\n  [16, 2],\n  [17, 1],\n  [19, 7],\n  [20, 8],\n  [21, 7],\n  [22, 10],\n  [23, 5],\n  [24, 6],\n  [25, 4],\n  [26, 5],\n  [27, 6],\n]) as Theme\n\nexport const light_active_ListItem = n165 as Theme\nconst n166 = t([\n  [12, 5],\n  [13, 6],\n  [14, 7],\n  [15, 8],\n  [16, 4],\n  [17, 3],\n  [19, 7],\n  [20, 8],\n  [21, 7],\n  [22, 8],\n  [23, 7],\n  [24, 8],\n  [25, 6],\n  [26, 7],\n  [27, 4],\n]) as Theme\n\nexport const light_active_Card = n166 as Theme\nexport const light_active_DrawerFrame = n166 as Theme\nexport const light_active_Progress = n166 as Theme\nexport const light_active_TooltipArrow = n166 as Theme\nconst n167 = t([\n  [12, 6],\n  [13, 7],\n  [14, 8],\n  [15, 9],\n  [16, 5],\n  [17, 4],\n  [19, 7],\n  [20, 8],\n  [21, 7],\n  [22, 7],\n  [23, 7],\n  [24, 8],\n  [25, 6],\n  [26, 7],\n  [27, 3],\n]) as Theme\n\nexport const light_active_Button = n167 as Theme\nexport const light_active_Switch = n167 as Theme\nexport const light_active_TooltipContent = n167 as Theme\nexport const light_active_SliderTrack = n167 as Theme\nconst n168 = t([\n  [12, 4],\n  [13, 5],\n  [14, 6],\n  [15, 7],\n  [16, 3],\n  [17, 2],\n  [19, 7],\n  [20, 8],\n  [21, 7],\n  [22, 9],\n  [23, 8],\n  [24, 9],\n  [25, 7],\n  [26, 8],\n  [27, 5],\n]) as Theme\n\nexport const light_active_Checkbox = n168 as Theme\nexport const light_active_RadioGroupItem = n168 as Theme\nexport const light_active_Input = n168 as Theme\nexport const light_active_TextArea = n168 as Theme\nconst n169 = t([\n  [12, 9],\n  [13, 8],\n  [14, 7],\n  [15, 6],\n  [16, 10],\n  [17, 11],\n  [19, 4],\n  [20, 3],\n  [21, 4],\n  [22, 0],\n  [23, 7],\n  [24, 6],\n  [25, 8],\n  [26, 7],\n  [27, 4],\n]) as Theme\n\nexport const light_active_SwitchThumb = n169 as Theme\nconst n170 = t([\n  [12, 5],\n  [13, 4],\n  [14, 3],\n  [15, 2],\n  [16, 6],\n  [17, 7],\n  [19, 4],\n  [20, 3],\n  [21, 4],\n  [22, 4],\n  [23, 3],\n  [24, 2],\n  [25, 4],\n  [26, 3],\n  [27, 8],\n]) as Theme\n\nexport const light_active_SliderTrackActive = n170 as Theme\nconst n171 = t([\n  [12, 7],\n  [13, 6],\n  [14, 5],\n  [15, 4],\n  [16, 8],\n  [17, 9],\n  [19, 4],\n  [20, 3],\n  [21, 4],\n  [22, 2],\n  [23, 5],\n  [24, 4],\n  [25, 6],\n  [26, 5],\n  [27, 6],\n]) as Theme\n\nexport const light_active_SliderThumb = n171 as Theme\nexport const light_active_Tooltip = n171 as Theme\nexport const light_active_ProgressIndicator = n171 as Theme\nconst n172 = t([\n  [12, 101],\n  [13, 102],\n  [14, 103],\n  [15, 104],\n  [16, 100],\n  [17, 99],\n  [18, 108],\n  [19, 107],\n  [20, 108],\n  [21, 107],\n  [22, 108],\n  [23, 104],\n  [24, 105],\n  [25, 103],\n  [26, 104],\n  [27, 104],\n]) as Theme\n\nexport const dark_alt1_Card = n172 as Theme\nexport const dark_alt1_DrawerFrame = n172 as Theme\nexport const dark_alt1_Progress = n172 as Theme\nexport const dark_alt1_TooltipArrow = n172 as Theme\nconst n173 = t([\n  [12, 102],\n  [13, 103],\n  [14, 104],\n  [15, 105],\n  [16, 101],\n  [17, 100],\n  [18, 108],\n  [19, 107],\n  [20, 108],\n  [21, 107],\n  [22, 107],\n  [23, 104],\n  [24, 105],\n  [25, 103],\n  [26, 104],\n  [27, 103],\n]) as Theme\n\nexport const dark_alt1_Button = n173 as Theme\nexport const dark_alt1_Switch = n173 as Theme\nexport const dark_alt1_TooltipContent = n173 as Theme\nexport const dark_alt1_SliderTrack = n173 as Theme\nconst n174 = t([\n  [12, 100],\n  [13, 101],\n  [14, 102],\n  [15, 103],\n  [16, 99],\n  [17, 98],\n  [18, 108],\n  [19, 107],\n  [20, 108],\n  [21, 107],\n  [22, 0],\n  [23, 105],\n  [24, 106],\n  [25, 104],\n  [26, 105],\n  [27, 105],\n]) as Theme\n\nexport const dark_alt1_Checkbox = n174 as Theme\nexport const dark_alt1_RadioGroupItem = n174 as Theme\nexport const dark_alt1_Input = n174 as Theme\nexport const dark_alt1_TextArea = n174 as Theme\nconst n175 = t([\n  [12, 0],\n  [13, 108],\n  [14, 107],\n  [15, 106],\n  [16, 0],\n  [17, 0],\n  [18, 99],\n  [19, 100],\n  [20, 99],\n  [21, 100],\n  [22, 98],\n  [23, 106],\n  [24, 105],\n  [25, 107],\n  [26, 106],\n  [27, 100],\n]) as Theme\n\nexport const dark_alt1_SwitchThumb = n175 as Theme\nconst n176 = t([\n  [12, 105],\n  [13, 104],\n  [14, 103],\n  [15, 102],\n  [16, 106],\n  [17, 107],\n  [18, 99],\n  [19, 100],\n  [20, 99],\n  [21, 100],\n  [22, 100],\n  [23, 102],\n  [24, 101],\n  [25, 103],\n  [26, 102],\n  [27, 104],\n]) as Theme\n\nexport const dark_alt1_SliderTrackActive = n176 as Theme\nconst n177 = t([\n  [12, 107],\n  [13, 106],\n  [14, 105],\n  [15, 104],\n  [16, 108],\n  [17, 0],\n  [18, 99],\n  [19, 100],\n  [20, 99],\n  [21, 100],\n  [22, 98],\n  [23, 104],\n  [24, 103],\n  [25, 105],\n  [26, 104],\n  [27, 102],\n]) as Theme\n\nexport const dark_alt1_SliderThumb = n177 as Theme\nexport const dark_alt1_Tooltip = n177 as Theme\nexport const dark_alt1_ProgressIndicator = n177 as Theme\nconst n178 = t([\n  [12, 102],\n  [13, 103],\n  [14, 104],\n  [15, 105],\n  [16, 101],\n  [17, 100],\n  [18, 107],\n  [19, 106],\n  [20, 107],\n  [21, 106],\n  [22, 107],\n  [23, 104],\n  [24, 105],\n  [25, 103],\n  [26, 104],\n  [27, 103],\n]) as Theme\n\nexport const dark_alt2_Card = n178 as Theme\nexport const dark_alt2_DrawerFrame = n178 as Theme\nexport const dark_alt2_Progress = n178 as Theme\nexport const dark_alt2_TooltipArrow = n178 as Theme\nconst n179 = t([\n  [12, 103],\n  [13, 104],\n  [14, 105],\n  [15, 106],\n  [16, 102],\n  [17, 101],\n  [18, 107],\n  [19, 106],\n  [20, 107],\n  [21, 106],\n  [22, 106],\n  [23, 104],\n  [24, 105],\n  [25, 103],\n  [26, 104],\n  [27, 102],\n]) as Theme\n\nexport const dark_alt2_Button = n179 as Theme\nexport const dark_alt2_Switch = n179 as Theme\nexport const dark_alt2_TooltipContent = n179 as Theme\nexport const dark_alt2_SliderTrack = n179 as Theme\nconst n180 = t([\n  [12, 101],\n  [13, 102],\n  [14, 103],\n  [15, 104],\n  [16, 100],\n  [17, 99],\n  [18, 107],\n  [19, 106],\n  [20, 107],\n  [21, 106],\n  [22, 108],\n  [23, 105],\n  [24, 106],\n  [25, 104],\n  [26, 105],\n  [27, 104],\n]) as Theme\n\nexport const dark_alt2_Checkbox = n180 as Theme\nexport const dark_alt2_RadioGroupItem = n180 as Theme\nexport const dark_alt2_Input = n180 as Theme\nexport const dark_alt2_TextArea = n180 as Theme\nconst n181 = t([\n  [12, 108],\n  [13, 107],\n  [14, 106],\n  [15, 105],\n  [16, 0],\n  [17, 0],\n  [18, 100],\n  [19, 101],\n  [20, 100],\n  [21, 101],\n  [22, 98],\n  [23, 106],\n  [24, 105],\n  [25, 107],\n  [26, 106],\n  [27, 101],\n]) as Theme\n\nexport const dark_alt2_SwitchThumb = n181 as Theme\nconst n182 = t([\n  [12, 104],\n  [13, 103],\n  [14, 102],\n  [15, 101],\n  [16, 105],\n  [17, 106],\n  [18, 100],\n  [19, 101],\n  [20, 100],\n  [21, 101],\n  [22, 101],\n  [23, 102],\n  [24, 101],\n  [25, 103],\n  [26, 102],\n  [27, 105],\n]) as Theme\n\nexport const dark_alt2_SliderTrackActive = n182 as Theme\nconst n183 = t([\n  [12, 106],\n  [13, 105],\n  [14, 104],\n  [15, 103],\n  [16, 107],\n  [17, 108],\n  [18, 100],\n  [19, 101],\n  [20, 100],\n  [21, 101],\n  [22, 99],\n  [23, 104],\n  [24, 103],\n  [25, 105],\n  [26, 104],\n  [27, 103],\n]) as Theme\n\nexport const dark_alt2_SliderThumb = n183 as Theme\nexport const dark_alt2_Tooltip = n183 as Theme\nexport const dark_alt2_ProgressIndicator = n183 as Theme\nconst n184 = t([\n  [12, 103],\n  [13, 104],\n  [14, 105],\n  [15, 106],\n  [16, 102],\n  [17, 101],\n  [19, 105],\n  [20, 106],\n  [21, 105],\n  [22, 106],\n  [23, 105],\n  [24, 106],\n  [25, 104],\n  [26, 105],\n  [27, 102],\n]) as Theme\n\nexport const dark_active_Card = n184 as Theme\nexport const dark_active_DrawerFrame = n184 as Theme\nexport const dark_active_Progress = n184 as Theme\nexport const dark_active_TooltipArrow = n184 as Theme\nconst n185 = t([\n  [12, 104],\n  [13, 105],\n  [14, 106],\n  [15, 107],\n  [16, 103],\n  [17, 102],\n  [19, 105],\n  [20, 106],\n  [21, 105],\n  [22, 105],\n  [23, 105],\n  [24, 106],\n  [25, 104],\n  [26, 105],\n  [27, 101],\n]) as Theme\n\nexport const dark_active_Button = n185 as Theme\nexport const dark_active_Switch = n185 as Theme\nexport const dark_active_TooltipContent = n185 as Theme\nexport const dark_active_SliderTrack = n185 as Theme\nconst n186 = t([\n  [12, 102],\n  [13, 103],\n  [14, 104],\n  [15, 105],\n  [16, 101],\n  [17, 100],\n  [19, 105],\n  [20, 106],\n  [21, 105],\n  [22, 107],\n  [23, 106],\n  [24, 107],\n  [25, 105],\n  [26, 106],\n  [27, 103],\n]) as Theme\n\nexport const dark_active_Checkbox = n186 as Theme\nexport const dark_active_RadioGroupItem = n186 as Theme\nexport const dark_active_Input = n186 as Theme\nexport const dark_active_TextArea = n186 as Theme\nconst n187 = t([\n  [12, 107],\n  [13, 106],\n  [14, 105],\n  [15, 104],\n  [16, 108],\n  [17, 0],\n  [19, 102],\n  [20, 101],\n  [21, 102],\n  [22, 98],\n  [23, 105],\n  [24, 104],\n  [25, 106],\n  [26, 105],\n  [27, 102],\n]) as Theme\n\nexport const dark_active_SwitchThumb = n187 as Theme\nconst n188 = t([\n  [12, 103],\n  [13, 102],\n  [14, 101],\n  [15, 100],\n  [16, 104],\n  [17, 105],\n  [19, 102],\n  [20, 101],\n  [21, 102],\n  [22, 102],\n  [23, 101],\n  [24, 100],\n  [25, 102],\n  [26, 101],\n  [27, 106],\n]) as Theme\n\nexport const dark_active_SliderTrackActive = n188 as Theme\nconst n189 = t([\n  [12, 105],\n  [13, 104],\n  [14, 103],\n  [15, 102],\n  [16, 106],\n  [17, 107],\n  [19, 102],\n  [20, 101],\n  [21, 102],\n  [22, 100],\n  [23, 103],\n  [24, 102],\n  [25, 104],\n  [26, 103],\n  [27, 104],\n]) as Theme\n\nexport const dark_active_SliderThumb = n189 as Theme\nexport const dark_active_Tooltip = n189 as Theme\nexport const dark_active_ProgressIndicator = n189 as Theme\nconst n190 = t([\n  [12, 49],\n  [13, 50],\n  [14, 51],\n  [15, 52],\n  [16, 48],\n  [17, 48],\n  [18, 59],\n  [19, 58],\n  [20, 59],\n  [21, 58],\n  [22, 11],\n  [23, 51],\n  [24, 52],\n  [25, 51],\n  [26, 51],\n  [27, 57],\n]) as Theme\n\nexport const light_orange_alt1_ListItem = n190 as Theme\nconst n191 = t([\n  [12, 51],\n  [13, 52],\n  [14, 53],\n  [15, 55],\n  [16, 50],\n  [17, 49],\n  [18, 59],\n  [19, 58],\n  [20, 59],\n  [21, 58],\n  [22, 59],\n  [23, 53],\n  [24, 55],\n  [25, 53],\n  [26, 53],\n  [27, 55],\n]) as Theme\n\nexport const light_orange_alt1_Card = n191 as Theme\nexport const light_orange_alt1_DrawerFrame = n191 as Theme\nexport const light_orange_alt1_Progress = n191 as Theme\nexport const light_orange_alt1_TooltipArrow = n191 as Theme\nconst n192 = t([\n  [12, 52],\n  [13, 53],\n  [14, 55],\n  [15, 56],\n  [16, 51],\n  [17, 50],\n  [18, 59],\n  [19, 58],\n  [20, 59],\n  [21, 58],\n  [22, 58],\n  [23, 53],\n  [24, 55],\n  [25, 53],\n  [26, 53],\n  [27, 53],\n]) as Theme\n\nexport const light_orange_alt1_Button = n192 as Theme\nexport const light_orange_alt1_Switch = n192 as Theme\nexport const light_orange_alt1_TooltipContent = n192 as Theme\nexport const light_orange_alt1_SliderTrack = n192 as Theme\nconst n193 = t([\n  [12, 50],\n  [13, 51],\n  [14, 52],\n  [15, 53],\n  [16, 49],\n  [17, 48],\n  [18, 59],\n  [19, 58],\n  [20, 59],\n  [21, 58],\n  [22, 11],\n  [23, 55],\n  [24, 56],\n  [25, 55],\n  [26, 55],\n  [27, 56],\n]) as Theme\n\nexport const light_orange_alt1_Checkbox = n193 as Theme\nexport const light_orange_alt1_RadioGroupItem = n193 as Theme\nexport const light_orange_alt1_Input = n193 as Theme\nexport const light_orange_alt1_TextArea = n193 as Theme\nconst n194 = t([\n  [12, 11],\n  [13, 59],\n  [14, 58],\n  [15, 57],\n  [16, 11],\n  [17, 11],\n  [18, 49],\n  [19, 50],\n  [20, 49],\n  [21, 50],\n  [22, 48],\n  [23, 58],\n  [24, 57],\n  [25, 58],\n  [26, 58],\n  [27, 50],\n]) as Theme\n\nexport const light_orange_alt1_SwitchThumb = n194 as Theme\nconst n195 = t([\n  [12, 56],\n  [13, 55],\n  [14, 53],\n  [15, 52],\n  [16, 57],\n  [17, 58],\n  [18, 49],\n  [19, 50],\n  [20, 49],\n  [21, 50],\n  [22, 50],\n  [23, 53],\n  [24, 52],\n  [25, 53],\n  [26, 53],\n  [27, 55],\n]) as Theme\n\nexport const light_orange_alt1_SliderTrackActive = n195 as Theme\nconst n196 = t([\n  [12, 58],\n  [13, 57],\n  [14, 56],\n  [15, 55],\n  [16, 59],\n  [17, 11],\n  [18, 49],\n  [19, 50],\n  [20, 49],\n  [21, 50],\n  [22, 48],\n  [23, 56],\n  [24, 55],\n  [25, 56],\n  [26, 56],\n  [27, 52],\n]) as Theme\n\nexport const light_orange_alt1_SliderThumb = n196 as Theme\nexport const light_orange_alt1_Tooltip = n196 as Theme\nexport const light_orange_alt1_ProgressIndicator = n196 as Theme\nconst n197 = t([\n  [12, 50],\n  [13, 51],\n  [14, 52],\n  [15, 53],\n  [16, 49],\n  [17, 48],\n  [18, 58],\n  [19, 57],\n  [20, 58],\n  [21, 57],\n  [22, 11],\n  [23, 51],\n  [24, 52],\n  [25, 51],\n  [26, 51],\n  [27, 56],\n]) as Theme\n\nexport const light_orange_alt2_ListItem = n197 as Theme\nconst n198 = t([\n  [12, 52],\n  [13, 53],\n  [14, 55],\n  [15, 56],\n  [16, 51],\n  [17, 50],\n  [18, 58],\n  [19, 57],\n  [20, 58],\n  [21, 57],\n  [22, 58],\n  [23, 53],\n  [24, 55],\n  [25, 53],\n  [26, 53],\n  [27, 53],\n]) as Theme\n\nexport const light_orange_alt2_Card = n198 as Theme\nexport const light_orange_alt2_DrawerFrame = n198 as Theme\nexport const light_orange_alt2_Progress = n198 as Theme\nexport const light_orange_alt2_TooltipArrow = n198 as Theme\nconst n199 = t([\n  [12, 53],\n  [13, 55],\n  [14, 56],\n  [15, 57],\n  [16, 52],\n  [17, 51],\n  [18, 58],\n  [19, 57],\n  [20, 58],\n  [21, 57],\n  [22, 57],\n  [23, 53],\n  [24, 55],\n  [25, 53],\n  [26, 53],\n  [27, 52],\n]) as Theme\n\nexport const light_orange_alt2_Button = n199 as Theme\nexport const light_orange_alt2_Switch = n199 as Theme\nexport const light_orange_alt2_TooltipContent = n199 as Theme\nexport const light_orange_alt2_SliderTrack = n199 as Theme\nconst n200 = t([\n  [12, 51],\n  [13, 52],\n  [14, 53],\n  [15, 55],\n  [16, 50],\n  [17, 49],\n  [18, 58],\n  [19, 57],\n  [20, 58],\n  [21, 57],\n  [22, 59],\n  [23, 55],\n  [24, 56],\n  [25, 55],\n  [26, 55],\n  [27, 55],\n]) as Theme\n\nexport const light_orange_alt2_Checkbox = n200 as Theme\nexport const light_orange_alt2_RadioGroupItem = n200 as Theme\nexport const light_orange_alt2_Input = n200 as Theme\nexport const light_orange_alt2_TextArea = n200 as Theme\nconst n201 = t([\n  [12, 59],\n  [13, 58],\n  [14, 57],\n  [15, 56],\n  [16, 11],\n  [17, 11],\n  [18, 50],\n  [19, 51],\n  [20, 50],\n  [21, 51],\n  [22, 48],\n  [23, 58],\n  [24, 57],\n  [25, 58],\n  [26, 58],\n  [27, 51],\n]) as Theme\n\nexport const light_orange_alt2_SwitchThumb = n201 as Theme\nconst n202 = t([\n  [12, 55],\n  [13, 53],\n  [14, 52],\n  [15, 51],\n  [16, 56],\n  [17, 57],\n  [18, 50],\n  [19, 51],\n  [20, 50],\n  [21, 51],\n  [22, 51],\n  [23, 53],\n  [24, 52],\n  [25, 53],\n  [26, 53],\n  [27, 56],\n]) as Theme\n\nexport const light_orange_alt2_SliderTrackActive = n202 as Theme\nconst n203 = t([\n  [12, 57],\n  [13, 56],\n  [14, 55],\n  [15, 53],\n  [16, 58],\n  [17, 59],\n  [18, 50],\n  [19, 51],\n  [20, 50],\n  [21, 51],\n  [22, 49],\n  [23, 56],\n  [24, 55],\n  [25, 56],\n  [26, 56],\n  [27, 53],\n]) as Theme\n\nexport const light_orange_alt2_SliderThumb = n203 as Theme\nexport const light_orange_alt2_Tooltip = n203 as Theme\nexport const light_orange_alt2_ProgressIndicator = n203 as Theme\nconst n204 = t([\n  [12, 51],\n  [13, 52],\n  [14, 53],\n  [15, 55],\n  [16, 50],\n  [17, 49],\n  [19, 56],\n  [20, 57],\n  [21, 56],\n  [22, 59],\n  [23, 52],\n  [24, 53],\n  [25, 52],\n  [26, 52],\n  [27, 55],\n]) as Theme\n\nexport const light_orange_active_ListItem = n204 as Theme\nconst n205 = t([\n  [12, 53],\n  [13, 55],\n  [14, 56],\n  [15, 57],\n  [16, 52],\n  [17, 51],\n  [19, 56],\n  [20, 57],\n  [21, 56],\n  [22, 57],\n  [23, 55],\n  [24, 56],\n  [25, 55],\n  [26, 55],\n  [27, 52],\n]) as Theme\n\nexport const light_orange_active_Card = n205 as Theme\nexport const light_orange_active_DrawerFrame = n205 as Theme\nexport const light_orange_active_Progress = n205 as Theme\nexport const light_orange_active_TooltipArrow = n205 as Theme\nconst n206 = t([\n  [12, 55],\n  [13, 56],\n  [14, 57],\n  [15, 58],\n  [16, 53],\n  [17, 52],\n  [19, 56],\n  [20, 57],\n  [21, 56],\n  [22, 56],\n  [23, 55],\n  [24, 56],\n  [25, 55],\n  [26, 55],\n  [27, 51],\n]) as Theme\n\nexport const light_orange_active_Button = n206 as Theme\nexport const light_orange_active_Switch = n206 as Theme\nexport const light_orange_active_TooltipContent = n206 as Theme\nexport const light_orange_active_SliderTrack = n206 as Theme\nconst n207 = t([\n  [12, 52],\n  [13, 53],\n  [14, 55],\n  [15, 56],\n  [16, 51],\n  [17, 50],\n  [19, 56],\n  [20, 57],\n  [21, 56],\n  [22, 58],\n  [23, 56],\n  [24, 57],\n  [25, 56],\n  [26, 56],\n  [27, 53],\n]) as Theme\n\nexport const light_orange_active_Checkbox = n207 as Theme\nexport const light_orange_active_RadioGroupItem = n207 as Theme\nexport const light_orange_active_Input = n207 as Theme\nexport const light_orange_active_TextArea = n207 as Theme\nconst n208 = t([\n  [12, 58],\n  [13, 57],\n  [14, 56],\n  [15, 55],\n  [16, 59],\n  [17, 11],\n  [19, 52],\n  [20, 51],\n  [21, 52],\n  [22, 48],\n  [23, 57],\n  [24, 56],\n  [25, 57],\n  [26, 57],\n  [27, 52],\n]) as Theme\n\nexport const light_orange_active_SwitchThumb = n208 as Theme\nconst n209 = t([\n  [12, 53],\n  [13, 52],\n  [14, 51],\n  [15, 50],\n  [16, 55],\n  [17, 56],\n  [19, 52],\n  [20, 51],\n  [21, 52],\n  [22, 52],\n  [23, 52],\n  [24, 51],\n  [25, 52],\n  [26, 52],\n  [27, 57],\n]) as Theme\n\nexport const light_orange_active_SliderTrackActive = n209 as Theme\nconst n210 = t([\n  [12, 56],\n  [13, 55],\n  [14, 53],\n  [15, 52],\n  [16, 57],\n  [17, 58],\n  [19, 52],\n  [20, 51],\n  [21, 52],\n  [22, 50],\n  [23, 55],\n  [24, 53],\n  [25, 55],\n  [26, 55],\n  [27, 55],\n]) as Theme\n\nexport const light_orange_active_SliderThumb = n210 as Theme\nexport const light_orange_active_Tooltip = n210 as Theme\nexport const light_orange_active_ProgressIndicator = n210 as Theme\nconst n211 = t([\n  [12, 85],\n  [13, 86],\n  [14, 87],\n  [15, 88],\n  [16, 84],\n  [17, 84],\n  [18, 95],\n  [19, 94],\n  [20, 95],\n  [21, 94],\n  [22, 11],\n  [23, 87],\n  [24, 88],\n  [25, 87],\n  [26, 87],\n  [27, 93],\n]) as Theme\n\nexport const light_yellow_alt1_ListItem = n211 as Theme\nconst n212 = t([\n  [12, 87],\n  [13, 88],\n  [14, 89],\n  [15, 91],\n  [16, 86],\n  [17, 85],\n  [18, 95],\n  [19, 94],\n  [20, 95],\n  [21, 94],\n  [22, 95],\n  [23, 89],\n  [24, 91],\n  [25, 89],\n  [26, 89],\n  [27, 91],\n]) as Theme\n\nexport const light_yellow_alt1_Card = n212 as Theme\nexport const light_yellow_alt1_DrawerFrame = n212 as Theme\nexport const light_yellow_alt1_Progress = n212 as Theme\nexport const light_yellow_alt1_TooltipArrow = n212 as Theme\nconst n213 = t([\n  [12, 88],\n  [13, 89],\n  [14, 91],\n  [15, 92],\n  [16, 87],\n  [17, 86],\n  [18, 95],\n  [19, 94],\n  [20, 95],\n  [21, 94],\n  [22, 94],\n  [23, 89],\n  [24, 91],\n  [25, 89],\n  [26, 89],\n  [27, 89],\n]) as Theme\n\nexport const light_yellow_alt1_Button = n213 as Theme\nexport const light_yellow_alt1_Switch = n213 as Theme\nexport const light_yellow_alt1_TooltipContent = n213 as Theme\nexport const light_yellow_alt1_SliderTrack = n213 as Theme\nconst n214 = t([\n  [12, 86],\n  [13, 87],\n  [14, 88],\n  [15, 89],\n  [16, 85],\n  [17, 84],\n  [18, 95],\n  [19, 94],\n  [20, 95],\n  [21, 94],\n  [22, 11],\n  [23, 91],\n  [24, 92],\n  [25, 91],\n  [26, 91],\n  [27, 92],\n]) as Theme\n\nexport const light_yellow_alt1_Checkbox = n214 as Theme\nexport const light_yellow_alt1_RadioGroupItem = n214 as Theme\nexport const light_yellow_alt1_Input = n214 as Theme\nexport const light_yellow_alt1_TextArea = n214 as Theme\nconst n215 = t([\n  [12, 11],\n  [13, 95],\n  [14, 94],\n  [15, 93],\n  [16, 11],\n  [17, 11],\n  [18, 85],\n  [19, 86],\n  [20, 85],\n  [21, 86],\n  [22, 84],\n  [23, 94],\n  [24, 93],\n  [25, 94],\n  [26, 94],\n  [27, 86],\n]) as Theme\n\nexport const light_yellow_alt1_SwitchThumb = n215 as Theme\nconst n216 = t([\n  [12, 92],\n  [13, 91],\n  [14, 89],\n  [15, 88],\n  [16, 93],\n  [17, 94],\n  [18, 85],\n  [19, 86],\n  [20, 85],\n  [21, 86],\n  [22, 86],\n  [23, 89],\n  [24, 88],\n  [25, 89],\n  [26, 89],\n  [27, 91],\n]) as Theme\n\nexport const light_yellow_alt1_SliderTrackActive = n216 as Theme\nconst n217 = t([\n  [12, 94],\n  [13, 93],\n  [14, 92],\n  [15, 91],\n  [16, 95],\n  [17, 11],\n  [18, 85],\n  [19, 86],\n  [20, 85],\n  [21, 86],\n  [22, 84],\n  [23, 92],\n  [24, 91],\n  [25, 92],\n  [26, 92],\n  [27, 88],\n]) as Theme\n\nexport const light_yellow_alt1_SliderThumb = n217 as Theme\nexport const light_yellow_alt1_Tooltip = n217 as Theme\nexport const light_yellow_alt1_ProgressIndicator = n217 as Theme\nconst n218 = t([\n  [12, 86],\n  [13, 87],\n  [14, 88],\n  [15, 89],\n  [16, 85],\n  [17, 84],\n  [18, 94],\n  [19, 93],\n  [20, 94],\n  [21, 93],\n  [22, 11],\n  [23, 87],\n  [24, 88],\n  [25, 87],\n  [26, 87],\n  [27, 92],\n]) as Theme\n\nexport const light_yellow_alt2_ListItem = n218 as Theme\nconst n219 = t([\n  [12, 88],\n  [13, 89],\n  [14, 91],\n  [15, 92],\n  [16, 87],\n  [17, 86],\n  [18, 94],\n  [19, 93],\n  [20, 94],\n  [21, 93],\n  [22, 94],\n  [23, 89],\n  [24, 91],\n  [25, 89],\n  [26, 89],\n  [27, 89],\n]) as Theme\n\nexport const light_yellow_alt2_Card = n219 as Theme\nexport const light_yellow_alt2_DrawerFrame = n219 as Theme\nexport const light_yellow_alt2_Progress = n219 as Theme\nexport const light_yellow_alt2_TooltipArrow = n219 as Theme\nconst n220 = t([\n  [12, 89],\n  [13, 91],\n  [14, 92],\n  [15, 93],\n  [16, 88],\n  [17, 87],\n  [18, 94],\n  [19, 93],\n  [20, 94],\n  [21, 93],\n  [22, 93],\n  [23, 89],\n  [24, 91],\n  [25, 89],\n  [26, 89],\n  [27, 88],\n]) as Theme\n\nexport const light_yellow_alt2_Button = n220 as Theme\nexport const light_yellow_alt2_Switch = n220 as Theme\nexport const light_yellow_alt2_TooltipContent = n220 as Theme\nexport const light_yellow_alt2_SliderTrack = n220 as Theme\nconst n221 = t([\n  [12, 87],\n  [13, 88],\n  [14, 89],\n  [15, 91],\n  [16, 86],\n  [17, 85],\n  [18, 94],\n  [19, 93],\n  [20, 94],\n  [21, 93],\n  [22, 95],\n  [23, 91],\n  [24, 92],\n  [25, 91],\n  [26, 91],\n  [27, 91],\n]) as Theme\n\nexport const light_yellow_alt2_Checkbox = n221 as Theme\nexport const light_yellow_alt2_RadioGroupItem = n221 as Theme\nexport const light_yellow_alt2_Input = n221 as Theme\nexport const light_yellow_alt2_TextArea = n221 as Theme\nconst n222 = t([\n  [12, 95],\n  [13, 94],\n  [14, 93],\n  [15, 92],\n  [16, 11],\n  [17, 11],\n  [18, 86],\n  [19, 87],\n  [20, 86],\n  [21, 87],\n  [22, 84],\n  [23, 94],\n  [24, 93],\n  [25, 94],\n  [26, 94],\n  [27, 87],\n]) as Theme\n\nexport const light_yellow_alt2_SwitchThumb = n222 as Theme\nconst n223 = t([\n  [12, 91],\n  [13, 89],\n  [14, 88],\n  [15, 87],\n  [16, 92],\n  [17, 93],\n  [18, 86],\n  [19, 87],\n  [20, 86],\n  [21, 87],\n  [22, 87],\n  [23, 89],\n  [24, 88],\n  [25, 89],\n  [26, 89],\n  [27, 92],\n]) as Theme\n\nexport const light_yellow_alt2_SliderTrackActive = n223 as Theme\nconst n224 = t([\n  [12, 93],\n  [13, 92],\n  [14, 91],\n  [15, 89],\n  [16, 94],\n  [17, 95],\n  [18, 86],\n  [19, 87],\n  [20, 86],\n  [21, 87],\n  [22, 85],\n  [23, 92],\n  [24, 91],\n  [25, 92],\n  [26, 92],\n  [27, 89],\n]) as Theme\n\nexport const light_yellow_alt2_SliderThumb = n224 as Theme\nexport const light_yellow_alt2_Tooltip = n224 as Theme\nexport const light_yellow_alt2_ProgressIndicator = n224 as Theme\nconst n225 = t([\n  [12, 87],\n  [13, 88],\n  [14, 89],\n  [15, 91],\n  [16, 86],\n  [17, 85],\n  [19, 92],\n  [20, 93],\n  [21, 92],\n  [22, 95],\n  [23, 88],\n  [24, 89],\n  [25, 88],\n  [26, 88],\n  [27, 91],\n]) as Theme\n\nexport const light_yellow_active_ListItem = n225 as Theme\nconst n226 = t([\n  [12, 89],\n  [13, 91],\n  [14, 92],\n  [15, 93],\n  [16, 88],\n  [17, 87],\n  [19, 92],\n  [20, 93],\n  [21, 92],\n  [22, 93],\n  [23, 91],\n  [24, 92],\n  [25, 91],\n  [26, 91],\n  [27, 88],\n]) as Theme\n\nexport const light_yellow_active_Card = n226 as Theme\nexport const light_yellow_active_DrawerFrame = n226 as Theme\nexport const light_yellow_active_Progress = n226 as Theme\nexport const light_yellow_active_TooltipArrow = n226 as Theme\nconst n227 = t([\n  [12, 91],\n  [13, 92],\n  [14, 93],\n  [15, 94],\n  [16, 89],\n  [17, 88],\n  [19, 92],\n  [20, 93],\n  [21, 92],\n  [22, 92],\n  [23, 91],\n  [24, 92],\n  [25, 91],\n  [26, 91],\n  [27, 87],\n]) as Theme\n\nexport const light_yellow_active_Button = n227 as Theme\nexport const light_yellow_active_Switch = n227 as Theme\nexport const light_yellow_active_TooltipContent = n227 as Theme\nexport const light_yellow_active_SliderTrack = n227 as Theme\nconst n228 = t([\n  [12, 88],\n  [13, 89],\n  [14, 91],\n  [15, 92],\n  [16, 87],\n  [17, 86],\n  [19, 92],\n  [20, 93],\n  [21, 92],\n  [22, 94],\n  [23, 92],\n  [24, 93],\n  [25, 92],\n  [26, 92],\n  [27, 89],\n]) as Theme\n\nexport const light_yellow_active_Checkbox = n228 as Theme\nexport const light_yellow_active_RadioGroupItem = n228 as Theme\nexport const light_yellow_active_Input = n228 as Theme\nexport const light_yellow_active_TextArea = n228 as Theme\nconst n229 = t([\n  [12, 94],\n  [13, 93],\n  [14, 92],\n  [15, 91],\n  [16, 95],\n  [17, 11],\n  [19, 88],\n  [20, 87],\n  [21, 88],\n  [22, 84],\n  [23, 93],\n  [24, 92],\n  [25, 93],\n  [26, 93],\n  [27, 88],\n]) as Theme\n\nexport const light_yellow_active_SwitchThumb = n229 as Theme\nconst n230 = t([\n  [12, 89],\n  [13, 88],\n  [14, 87],\n  [15, 86],\n  [16, 91],\n  [17, 92],\n  [19, 88],\n  [20, 87],\n  [21, 88],\n  [22, 88],\n  [23, 88],\n  [24, 87],\n  [25, 88],\n  [26, 88],\n  [27, 93],\n]) as Theme\n\nexport const light_yellow_active_SliderTrackActive = n230 as Theme\nconst n231 = t([\n  [12, 92],\n  [13, 91],\n  [14, 89],\n  [15, 88],\n  [16, 93],\n  [17, 94],\n  [19, 88],\n  [20, 87],\n  [21, 88],\n  [22, 86],\n  [23, 91],\n  [24, 89],\n  [25, 91],\n  [26, 91],\n  [27, 91],\n]) as Theme\n\nexport const light_yellow_active_SliderThumb = n231 as Theme\nexport const light_yellow_active_Tooltip = n231 as Theme\nexport const light_yellow_active_ProgressIndicator = n231 as Theme\nconst n232 = t([\n  [12, 37],\n  [13, 38],\n  [14, 39],\n  [15, 40],\n  [16, 36],\n  [17, 36],\n  [18, 47],\n  [19, 46],\n  [20, 47],\n  [21, 46],\n  [22, 11],\n  [23, 39],\n  [24, 40],\n  [25, 39],\n  [26, 39],\n  [27, 45],\n]) as Theme\n\nexport const light_green_alt1_ListItem = n232 as Theme\nconst n233 = t([\n  [12, 39],\n  [13, 40],\n  [14, 41],\n  [15, 43],\n  [16, 38],\n  [17, 37],\n  [18, 47],\n  [19, 46],\n  [20, 47],\n  [21, 46],\n  [22, 47],\n  [23, 41],\n  [24, 43],\n  [25, 41],\n  [26, 41],\n  [27, 43],\n]) as Theme\n\nexport const light_green_alt1_Card = n233 as Theme\nexport const light_green_alt1_DrawerFrame = n233 as Theme\nexport const light_green_alt1_Progress = n233 as Theme\nexport const light_green_alt1_TooltipArrow = n233 as Theme\nconst n234 = t([\n  [12, 40],\n  [13, 41],\n  [14, 43],\n  [15, 44],\n  [16, 39],\n  [17, 38],\n  [18, 47],\n  [19, 46],\n  [20, 47],\n  [21, 46],\n  [22, 46],\n  [23, 41],\n  [24, 43],\n  [25, 41],\n  [26, 41],\n  [27, 41],\n]) as Theme\n\nexport const light_green_alt1_Button = n234 as Theme\nexport const light_green_alt1_Switch = n234 as Theme\nexport const light_green_alt1_TooltipContent = n234 as Theme\nexport const light_green_alt1_SliderTrack = n234 as Theme\nconst n235 = t([\n  [12, 38],\n  [13, 39],\n  [14, 40],\n  [15, 41],\n  [16, 37],\n  [17, 36],\n  [18, 47],\n  [19, 46],\n  [20, 47],\n  [21, 46],\n  [22, 11],\n  [23, 43],\n  [24, 44],\n  [25, 43],\n  [26, 43],\n  [27, 44],\n]) as Theme\n\nexport const light_green_alt1_Checkbox = n235 as Theme\nexport const light_green_alt1_RadioGroupItem = n235 as Theme\nexport const light_green_alt1_Input = n235 as Theme\nexport const light_green_alt1_TextArea = n235 as Theme\nconst n236 = t([\n  [12, 11],\n  [13, 47],\n  [14, 46],\n  [15, 45],\n  [16, 11],\n  [17, 11],\n  [18, 37],\n  [19, 38],\n  [20, 37],\n  [21, 38],\n  [22, 36],\n  [23, 46],\n  [24, 45],\n  [25, 46],\n  [26, 46],\n  [27, 38],\n]) as Theme\n\nexport const light_green_alt1_SwitchThumb = n236 as Theme\nconst n237 = t([\n  [12, 44],\n  [13, 43],\n  [14, 41],\n  [15, 40],\n  [16, 45],\n  [17, 46],\n  [18, 37],\n  [19, 38],\n  [20, 37],\n  [21, 38],\n  [22, 38],\n  [23, 41],\n  [24, 40],\n  [25, 41],\n  [26, 41],\n  [27, 43],\n]) as Theme\n\nexport const light_green_alt1_SliderTrackActive = n237 as Theme\nconst n238 = t([\n  [12, 46],\n  [13, 45],\n  [14, 44],\n  [15, 43],\n  [16, 47],\n  [17, 11],\n  [18, 37],\n  [19, 38],\n  [20, 37],\n  [21, 38],\n  [22, 36],\n  [23, 44],\n  [24, 43],\n  [25, 44],\n  [26, 44],\n  [27, 40],\n]) as Theme\n\nexport const light_green_alt1_SliderThumb = n238 as Theme\nexport const light_green_alt1_Tooltip = n238 as Theme\nexport const light_green_alt1_ProgressIndicator = n238 as Theme\nconst n239 = t([\n  [12, 38],\n  [13, 39],\n  [14, 40],\n  [15, 41],\n  [16, 37],\n  [17, 36],\n  [18, 46],\n  [19, 45],\n  [20, 46],\n  [21, 45],\n  [22, 11],\n  [23, 39],\n  [24, 40],\n  [25, 39],\n  [26, 39],\n  [27, 44],\n]) as Theme\n\nexport const light_green_alt2_ListItem = n239 as Theme\nconst n240 = t([\n  [12, 40],\n  [13, 41],\n  [14, 43],\n  [15, 44],\n  [16, 39],\n  [17, 38],\n  [18, 46],\n  [19, 45],\n  [20, 46],\n  [21, 45],\n  [22, 46],\n  [23, 41],\n  [24, 43],\n  [25, 41],\n  [26, 41],\n  [27, 41],\n]) as Theme\n\nexport const light_green_alt2_Card = n240 as Theme\nexport const light_green_alt2_DrawerFrame = n240 as Theme\nexport const light_green_alt2_Progress = n240 as Theme\nexport const light_green_alt2_TooltipArrow = n240 as Theme\nconst n241 = t([\n  [12, 41],\n  [13, 43],\n  [14, 44],\n  [15, 45],\n  [16, 40],\n  [17, 39],\n  [18, 46],\n  [19, 45],\n  [20, 46],\n  [21, 45],\n  [22, 45],\n  [23, 41],\n  [24, 43],\n  [25, 41],\n  [26, 41],\n  [27, 40],\n]) as Theme\n\nexport const light_green_alt2_Button = n241 as Theme\nexport const light_green_alt2_Switch = n241 as Theme\nexport const light_green_alt2_TooltipContent = n241 as Theme\nexport const light_green_alt2_SliderTrack = n241 as Theme\nconst n242 = t([\n  [12, 39],\n  [13, 40],\n  [14, 41],\n  [15, 43],\n  [16, 38],\n  [17, 37],\n  [18, 46],\n  [19, 45],\n  [20, 46],\n  [21, 45],\n  [22, 47],\n  [23, 43],\n  [24, 44],\n  [25, 43],\n  [26, 43],\n  [27, 43],\n]) as Theme\n\nexport const light_green_alt2_Checkbox = n242 as Theme\nexport const light_green_alt2_RadioGroupItem = n242 as Theme\nexport const light_green_alt2_Input = n242 as Theme\nexport const light_green_alt2_TextArea = n242 as Theme\nconst n243 = t([\n  [12, 47],\n  [13, 46],\n  [14, 45],\n  [15, 44],\n  [16, 11],\n  [17, 11],\n  [18, 38],\n  [19, 39],\n  [20, 38],\n  [21, 39],\n  [22, 36],\n  [23, 46],\n  [24, 45],\n  [25, 46],\n  [26, 46],\n  [27, 39],\n]) as Theme\n\nexport const light_green_alt2_SwitchThumb = n243 as Theme\nconst n244 = t([\n  [12, 43],\n  [13, 41],\n  [14, 40],\n  [15, 39],\n  [16, 44],\n  [17, 45],\n  [18, 38],\n  [19, 39],\n  [20, 38],\n  [21, 39],\n  [22, 39],\n  [23, 41],\n  [24, 40],\n  [25, 41],\n  [26, 41],\n  [27, 44],\n]) as Theme\n\nexport const light_green_alt2_SliderTrackActive = n244 as Theme\nconst n245 = t([\n  [12, 45],\n  [13, 44],\n  [14, 43],\n  [15, 41],\n  [16, 46],\n  [17, 47],\n  [18, 38],\n  [19, 39],\n  [20, 38],\n  [21, 39],\n  [22, 37],\n  [23, 44],\n  [24, 43],\n  [25, 44],\n  [26, 44],\n  [27, 41],\n]) as Theme\n\nexport const light_green_alt2_SliderThumb = n245 as Theme\nexport const light_green_alt2_Tooltip = n245 as Theme\nexport const light_green_alt2_ProgressIndicator = n245 as Theme\nconst n246 = t([\n  [12, 39],\n  [13, 40],\n  [14, 41],\n  [15, 43],\n  [16, 38],\n  [17, 37],\n  [19, 44],\n  [20, 45],\n  [21, 44],\n  [22, 47],\n  [23, 40],\n  [24, 41],\n  [25, 40],\n  [26, 40],\n  [27, 43],\n]) as Theme\n\nexport const light_green_active_ListItem = n246 as Theme\nconst n247 = t([\n  [12, 41],\n  [13, 43],\n  [14, 44],\n  [15, 45],\n  [16, 40],\n  [17, 39],\n  [19, 44],\n  [20, 45],\n  [21, 44],\n  [22, 45],\n  [23, 43],\n  [24, 44],\n  [25, 43],\n  [26, 43],\n  [27, 40],\n]) as Theme\n\nexport const light_green_active_Card = n247 as Theme\nexport const light_green_active_DrawerFrame = n247 as Theme\nexport const light_green_active_Progress = n247 as Theme\nexport const light_green_active_TooltipArrow = n247 as Theme\nconst n248 = t([\n  [12, 43],\n  [13, 44],\n  [14, 45],\n  [15, 46],\n  [16, 41],\n  [17, 40],\n  [19, 44],\n  [20, 45],\n  [21, 44],\n  [22, 44],\n  [23, 43],\n  [24, 44],\n  [25, 43],\n  [26, 43],\n  [27, 39],\n]) as Theme\n\nexport const light_green_active_Button = n248 as Theme\nexport const light_green_active_Switch = n248 as Theme\nexport const light_green_active_TooltipContent = n248 as Theme\nexport const light_green_active_SliderTrack = n248 as Theme\nconst n249 = t([\n  [12, 40],\n  [13, 41],\n  [14, 43],\n  [15, 44],\n  [16, 39],\n  [17, 38],\n  [19, 44],\n  [20, 45],\n  [21, 44],\n  [22, 46],\n  [23, 44],\n  [24, 45],\n  [25, 44],\n  [26, 44],\n  [27, 41],\n]) as Theme\n\nexport const light_green_active_Checkbox = n249 as Theme\nexport const light_green_active_RadioGroupItem = n249 as Theme\nexport const light_green_active_Input = n249 as Theme\nexport const light_green_active_TextArea = n249 as Theme\nconst n250 = t([\n  [12, 46],\n  [13, 45],\n  [14, 44],\n  [15, 43],\n  [16, 47],\n  [17, 11],\n  [19, 40],\n  [20, 39],\n  [21, 40],\n  [22, 36],\n  [23, 45],\n  [24, 44],\n  [25, 45],\n  [26, 45],\n  [27, 40],\n]) as Theme\n\nexport const light_green_active_SwitchThumb = n250 as Theme\nconst n251 = t([\n  [12, 41],\n  [13, 40],\n  [14, 39],\n  [15, 38],\n  [16, 43],\n  [17, 44],\n  [19, 40],\n  [20, 39],\n  [21, 40],\n  [22, 40],\n  [23, 40],\n  [24, 39],\n  [25, 40],\n  [26, 40],\n  [27, 45],\n]) as Theme\n\nexport const light_green_active_SliderTrackActive = n251 as Theme\nconst n252 = t([\n  [12, 44],\n  [13, 43],\n  [14, 41],\n  [15, 40],\n  [16, 45],\n  [17, 46],\n  [19, 40],\n  [20, 39],\n  [21, 40],\n  [22, 38],\n  [23, 43],\n  [24, 41],\n  [25, 43],\n  [26, 43],\n  [27, 43],\n]) as Theme\n\nexport const light_green_active_SliderThumb = n252 as Theme\nexport const light_green_active_Tooltip = n252 as Theme\nexport const light_green_active_ProgressIndicator = n252 as Theme\nconst n253 = t([\n  [12, 15],\n  [13, 16],\n  [14, 17],\n  [15, 18],\n  [16, 14],\n  [17, 14],\n  [18, 25],\n  [19, 24],\n  [20, 25],\n  [21, 24],\n  [22, 11],\n  [23, 17],\n  [24, 18],\n  [25, 17],\n  [26, 17],\n  [27, 23],\n]) as Theme\n\nexport const light_blue_alt1_ListItem = n253 as Theme\nconst n254 = t([\n  [12, 17],\n  [13, 18],\n  [14, 19],\n  [15, 21],\n  [16, 16],\n  [17, 15],\n  [18, 25],\n  [19, 24],\n  [20, 25],\n  [21, 24],\n  [22, 25],\n  [23, 19],\n  [24, 21],\n  [25, 19],\n  [26, 19],\n  [27, 21],\n]) as Theme\n\nexport const light_blue_alt1_Card = n254 as Theme\nexport const light_blue_alt1_DrawerFrame = n254 as Theme\nexport const light_blue_alt1_Progress = n254 as Theme\nexport const light_blue_alt1_TooltipArrow = n254 as Theme\nconst n255 = t([\n  [12, 18],\n  [13, 19],\n  [14, 21],\n  [15, 22],\n  [16, 17],\n  [17, 16],\n  [18, 25],\n  [19, 24],\n  [20, 25],\n  [21, 24],\n  [22, 24],\n  [23, 19],\n  [24, 21],\n  [25, 19],\n  [26, 19],\n  [27, 19],\n]) as Theme\n\nexport const light_blue_alt1_Button = n255 as Theme\nexport const light_blue_alt1_Switch = n255 as Theme\nexport const light_blue_alt1_TooltipContent = n255 as Theme\nexport const light_blue_alt1_SliderTrack = n255 as Theme\nconst n256 = t([\n  [12, 16],\n  [13, 17],\n  [14, 18],\n  [15, 19],\n  [16, 15],\n  [17, 14],\n  [18, 25],\n  [19, 24],\n  [20, 25],\n  [21, 24],\n  [22, 11],\n  [23, 21],\n  [24, 22],\n  [25, 21],\n  [26, 21],\n  [27, 22],\n]) as Theme\n\nexport const light_blue_alt1_Checkbox = n256 as Theme\nexport const light_blue_alt1_RadioGroupItem = n256 as Theme\nexport const light_blue_alt1_Input = n256 as Theme\nexport const light_blue_alt1_TextArea = n256 as Theme\nconst n257 = t([\n  [12, 11],\n  [13, 25],\n  [14, 24],\n  [15, 23],\n  [16, 11],\n  [17, 11],\n  [18, 15],\n  [19, 16],\n  [20, 15],\n  [21, 16],\n  [22, 14],\n  [23, 24],\n  [24, 23],\n  [25, 24],\n  [26, 24],\n  [27, 16],\n]) as Theme\n\nexport const light_blue_alt1_SwitchThumb = n257 as Theme\nconst n258 = t([\n  [12, 22],\n  [13, 21],\n  [14, 19],\n  [15, 18],\n  [16, 23],\n  [17, 24],\n  [18, 15],\n  [19, 16],\n  [20, 15],\n  [21, 16],\n  [22, 16],\n  [23, 19],\n  [24, 18],\n  [25, 19],\n  [26, 19],\n  [27, 21],\n]) as Theme\n\nexport const light_blue_alt1_SliderTrackActive = n258 as Theme\nconst n259 = t([\n  [12, 24],\n  [13, 23],\n  [14, 22],\n  [15, 21],\n  [16, 25],\n  [17, 11],\n  [18, 15],\n  [19, 16],\n  [20, 15],\n  [21, 16],\n  [22, 14],\n  [23, 22],\n  [24, 21],\n  [25, 22],\n  [26, 22],\n  [27, 18],\n]) as Theme\n\nexport const light_blue_alt1_SliderThumb = n259 as Theme\nexport const light_blue_alt1_Tooltip = n259 as Theme\nexport const light_blue_alt1_ProgressIndicator = n259 as Theme\nconst n260 = t([\n  [12, 16],\n  [13, 17],\n  [14, 18],\n  [15, 19],\n  [16, 15],\n  [17, 14],\n  [18, 24],\n  [19, 23],\n  [20, 24],\n  [21, 23],\n  [22, 11],\n  [23, 17],\n  [24, 18],\n  [25, 17],\n  [26, 17],\n  [27, 22],\n]) as Theme\n\nexport const light_blue_alt2_ListItem = n260 as Theme\nconst n261 = t([\n  [12, 18],\n  [13, 19],\n  [14, 21],\n  [15, 22],\n  [16, 17],\n  [17, 16],\n  [18, 24],\n  [19, 23],\n  [20, 24],\n  [21, 23],\n  [22, 24],\n  [23, 19],\n  [24, 21],\n  [25, 19],\n  [26, 19],\n  [27, 19],\n]) as Theme\n\nexport const light_blue_alt2_Card = n261 as Theme\nexport const light_blue_alt2_DrawerFrame = n261 as Theme\nexport const light_blue_alt2_Progress = n261 as Theme\nexport const light_blue_alt2_TooltipArrow = n261 as Theme\nconst n262 = t([\n  [12, 19],\n  [13, 21],\n  [14, 22],\n  [15, 23],\n  [16, 18],\n  [17, 17],\n  [18, 24],\n  [19, 23],\n  [20, 24],\n  [21, 23],\n  [22, 23],\n  [23, 19],\n  [24, 21],\n  [25, 19],\n  [26, 19],\n  [27, 18],\n]) as Theme\n\nexport const light_blue_alt2_Button = n262 as Theme\nexport const light_blue_alt2_Switch = n262 as Theme\nexport const light_blue_alt2_TooltipContent = n262 as Theme\nexport const light_blue_alt2_SliderTrack = n262 as Theme\nconst n263 = t([\n  [12, 17],\n  [13, 18],\n  [14, 19],\n  [15, 21],\n  [16, 16],\n  [17, 15],\n  [18, 24],\n  [19, 23],\n  [20, 24],\n  [21, 23],\n  [22, 25],\n  [23, 21],\n  [24, 22],\n  [25, 21],\n  [26, 21],\n  [27, 21],\n]) as Theme\n\nexport const light_blue_alt2_Checkbox = n263 as Theme\nexport const light_blue_alt2_RadioGroupItem = n263 as Theme\nexport const light_blue_alt2_Input = n263 as Theme\nexport const light_blue_alt2_TextArea = n263 as Theme\nconst n264 = t([\n  [12, 25],\n  [13, 24],\n  [14, 23],\n  [15, 22],\n  [16, 11],\n  [17, 11],\n  [18, 16],\n  [19, 17],\n  [20, 16],\n  [21, 17],\n  [22, 14],\n  [23, 24],\n  [24, 23],\n  [25, 24],\n  [26, 24],\n  [27, 17],\n]) as Theme\n\nexport const light_blue_alt2_SwitchThumb = n264 as Theme\nconst n265 = t([\n  [12, 21],\n  [13, 19],\n  [14, 18],\n  [15, 17],\n  [16, 22],\n  [17, 23],\n  [18, 16],\n  [19, 17],\n  [20, 16],\n  [21, 17],\n  [22, 17],\n  [23, 19],\n  [24, 18],\n  [25, 19],\n  [26, 19],\n  [27, 22],\n]) as Theme\n\nexport const light_blue_alt2_SliderTrackActive = n265 as Theme\nconst n266 = t([\n  [12, 23],\n  [13, 22],\n  [14, 21],\n  [15, 19],\n  [16, 24],\n  [17, 25],\n  [18, 16],\n  [19, 17],\n  [20, 16],\n  [21, 17],\n  [22, 15],\n  [23, 22],\n  [24, 21],\n  [25, 22],\n  [26, 22],\n  [27, 19],\n]) as Theme\n\nexport const light_blue_alt2_SliderThumb = n266 as Theme\nexport const light_blue_alt2_Tooltip = n266 as Theme\nexport const light_blue_alt2_ProgressIndicator = n266 as Theme\nconst n267 = t([\n  [12, 17],\n  [13, 18],\n  [14, 19],\n  [15, 21],\n  [16, 16],\n  [17, 15],\n  [19, 22],\n  [20, 23],\n  [21, 22],\n  [22, 25],\n  [23, 18],\n  [24, 19],\n  [25, 18],\n  [26, 18],\n  [27, 21],\n]) as Theme\n\nexport const light_blue_active_ListItem = n267 as Theme\nconst n268 = t([\n  [12, 19],\n  [13, 21],\n  [14, 22],\n  [15, 23],\n  [16, 18],\n  [17, 17],\n  [19, 22],\n  [20, 23],\n  [21, 22],\n  [22, 23],\n  [23, 21],\n  [24, 22],\n  [25, 21],\n  [26, 21],\n  [27, 18],\n]) as Theme\n\nexport const light_blue_active_Card = n268 as Theme\nexport const light_blue_active_DrawerFrame = n268 as Theme\nexport const light_blue_active_Progress = n268 as Theme\nexport const light_blue_active_TooltipArrow = n268 as Theme\nconst n269 = t([\n  [12, 21],\n  [13, 22],\n  [14, 23],\n  [15, 24],\n  [16, 19],\n  [17, 18],\n  [19, 22],\n  [20, 23],\n  [21, 22],\n  [22, 22],\n  [23, 21],\n  [24, 22],\n  [25, 21],\n  [26, 21],\n  [27, 17],\n]) as Theme\n\nexport const light_blue_active_Button = n269 as Theme\nexport const light_blue_active_Switch = n269 as Theme\nexport const light_blue_active_TooltipContent = n269 as Theme\nexport const light_blue_active_SliderTrack = n269 as Theme\nconst n270 = t([\n  [12, 18],\n  [13, 19],\n  [14, 21],\n  [15, 22],\n  [16, 17],\n  [17, 16],\n  [19, 22],\n  [20, 23],\n  [21, 22],\n  [22, 24],\n  [23, 22],\n  [24, 23],\n  [25, 22],\n  [26, 22],\n  [27, 19],\n]) as Theme\n\nexport const light_blue_active_Checkbox = n270 as Theme\nexport const light_blue_active_RadioGroupItem = n270 as Theme\nexport const light_blue_active_Input = n270 as Theme\nexport const light_blue_active_TextArea = n270 as Theme\nconst n271 = t([\n  [12, 24],\n  [13, 23],\n  [14, 22],\n  [15, 21],\n  [16, 25],\n  [17, 11],\n  [19, 18],\n  [20, 17],\n  [21, 18],\n  [22, 14],\n  [23, 23],\n  [24, 22],\n  [25, 23],\n  [26, 23],\n  [27, 18],\n]) as Theme\n\nexport const light_blue_active_SwitchThumb = n271 as Theme\nconst n272 = t([\n  [12, 19],\n  [13, 18],\n  [14, 17],\n  [15, 16],\n  [16, 21],\n  [17, 22],\n  [19, 18],\n  [20, 17],\n  [21, 18],\n  [22, 18],\n  [23, 18],\n  [24, 17],\n  [25, 18],\n  [26, 18],\n  [27, 23],\n]) as Theme\n\nexport const light_blue_active_SliderTrackActive = n272 as Theme\nconst n273 = t([\n  [12, 22],\n  [13, 21],\n  [14, 19],\n  [15, 18],\n  [16, 23],\n  [17, 24],\n  [19, 18],\n  [20, 17],\n  [21, 18],\n  [22, 16],\n  [23, 21],\n  [24, 19],\n  [25, 21],\n  [26, 21],\n  [27, 21],\n]) as Theme\n\nexport const light_blue_active_SliderThumb = n273 as Theme\nexport const light_blue_active_Tooltip = n273 as Theme\nexport const light_blue_active_ProgressIndicator = n273 as Theme\nconst n274 = t([\n  [12, 61],\n  [13, 62],\n  [14, 63],\n  [15, 64],\n  [16, 60],\n  [17, 60],\n  [18, 71],\n  [19, 70],\n  [20, 71],\n  [21, 70],\n  [22, 11],\n  [23, 63],\n  [24, 64],\n  [25, 63],\n  [26, 63],\n  [27, 69],\n]) as Theme\n\nexport const light_mint_alt1_ListItem = n274 as Theme\nconst n275 = t([\n  [12, 63],\n  [13, 64],\n  [14, 65],\n  [15, 67],\n  [16, 62],\n  [17, 61],\n  [18, 71],\n  [19, 70],\n  [20, 71],\n  [21, 70],\n  [22, 71],\n  [23, 65],\n  [24, 67],\n  [25, 65],\n  [26, 65],\n  [27, 67],\n]) as Theme\n\nexport const light_mint_alt1_Card = n275 as Theme\nexport const light_mint_alt1_DrawerFrame = n275 as Theme\nexport const light_mint_alt1_Progress = n275 as Theme\nexport const light_mint_alt1_TooltipArrow = n275 as Theme\nconst n276 = t([\n  [12, 64],\n  [13, 65],\n  [14, 67],\n  [15, 68],\n  [16, 63],\n  [17, 62],\n  [18, 71],\n  [19, 70],\n  [20, 71],\n  [21, 70],\n  [22, 70],\n  [23, 65],\n  [24, 67],\n  [25, 65],\n  [26, 65],\n  [27, 65],\n]) as Theme\n\nexport const light_mint_alt1_Button = n276 as Theme\nexport const light_mint_alt1_Switch = n276 as Theme\nexport const light_mint_alt1_TooltipContent = n276 as Theme\nexport const light_mint_alt1_SliderTrack = n276 as Theme\nconst n277 = t([\n  [12, 62],\n  [13, 63],\n  [14, 64],\n  [15, 65],\n  [16, 61],\n  [17, 60],\n  [18, 71],\n  [19, 70],\n  [20, 71],\n  [21, 70],\n  [22, 11],\n  [23, 67],\n  [24, 68],\n  [25, 67],\n  [26, 67],\n  [27, 68],\n]) as Theme\n\nexport const light_mint_alt1_Checkbox = n277 as Theme\nexport const light_mint_alt1_RadioGroupItem = n277 as Theme\nexport const light_mint_alt1_Input = n277 as Theme\nexport const light_mint_alt1_TextArea = n277 as Theme\nconst n278 = t([\n  [12, 11],\n  [13, 71],\n  [14, 70],\n  [15, 69],\n  [16, 11],\n  [17, 11],\n  [18, 61],\n  [19, 62],\n  [20, 61],\n  [21, 62],\n  [22, 60],\n  [23, 70],\n  [24, 69],\n  [25, 70],\n  [26, 70],\n  [27, 62],\n]) as Theme\n\nexport const light_mint_alt1_SwitchThumb = n278 as Theme\nconst n279 = t([\n  [12, 68],\n  [13, 67],\n  [14, 65],\n  [15, 64],\n  [16, 69],\n  [17, 70],\n  [18, 61],\n  [19, 62],\n  [20, 61],\n  [21, 62],\n  [22, 62],\n  [23, 65],\n  [24, 64],\n  [25, 65],\n  [26, 65],\n  [27, 67],\n]) as Theme\n\nexport const light_mint_alt1_SliderTrackActive = n279 as Theme\nconst n280 = t([\n  [12, 70],\n  [13, 69],\n  [14, 68],\n  [15, 67],\n  [16, 71],\n  [17, 11],\n  [18, 61],\n  [19, 62],\n  [20, 61],\n  [21, 62],\n  [22, 60],\n  [23, 68],\n  [24, 67],\n  [25, 68],\n  [26, 68],\n  [27, 64],\n]) as Theme\n\nexport const light_mint_alt1_SliderThumb = n280 as Theme\nexport const light_mint_alt1_Tooltip = n280 as Theme\nexport const light_mint_alt1_ProgressIndicator = n280 as Theme\nconst n281 = t([\n  [12, 62],\n  [13, 63],\n  [14, 64],\n  [15, 65],\n  [16, 61],\n  [17, 60],\n  [18, 70],\n  [19, 69],\n  [20, 70],\n  [21, 69],\n  [22, 11],\n  [23, 63],\n  [24, 64],\n  [25, 63],\n  [26, 63],\n  [27, 68],\n]) as Theme\n\nexport const light_mint_alt2_ListItem = n281 as Theme\nconst n282 = t([\n  [12, 64],\n  [13, 65],\n  [14, 67],\n  [15, 68],\n  [16, 63],\n  [17, 62],\n  [18, 70],\n  [19, 69],\n  [20, 70],\n  [21, 69],\n  [22, 70],\n  [23, 65],\n  [24, 67],\n  [25, 65],\n  [26, 65],\n  [27, 65],\n]) as Theme\n\nexport const light_mint_alt2_Card = n282 as Theme\nexport const light_mint_alt2_DrawerFrame = n282 as Theme\nexport const light_mint_alt2_Progress = n282 as Theme\nexport const light_mint_alt2_TooltipArrow = n282 as Theme\nconst n283 = t([\n  [12, 65],\n  [13, 67],\n  [14, 68],\n  [15, 69],\n  [16, 64],\n  [17, 63],\n  [18, 70],\n  [19, 69],\n  [20, 70],\n  [21, 69],\n  [22, 69],\n  [23, 65],\n  [24, 67],\n  [25, 65],\n  [26, 65],\n  [27, 64],\n]) as Theme\n\nexport const light_mint_alt2_Button = n283 as Theme\nexport const light_mint_alt2_Switch = n283 as Theme\nexport const light_mint_alt2_TooltipContent = n283 as Theme\nexport const light_mint_alt2_SliderTrack = n283 as Theme\nconst n284 = t([\n  [12, 63],\n  [13, 64],\n  [14, 65],\n  [15, 67],\n  [16, 62],\n  [17, 61],\n  [18, 70],\n  [19, 69],\n  [20, 70],\n  [21, 69],\n  [22, 71],\n  [23, 67],\n  [24, 68],\n  [25, 67],\n  [26, 67],\n  [27, 67],\n]) as Theme\n\nexport const light_mint_alt2_Checkbox = n284 as Theme\nexport const light_mint_alt2_RadioGroupItem = n284 as Theme\nexport const light_mint_alt2_Input = n284 as Theme\nexport const light_mint_alt2_TextArea = n284 as Theme\nconst n285 = t([\n  [12, 71],\n  [13, 70],\n  [14, 69],\n  [15, 68],\n  [16, 11],\n  [17, 11],\n  [18, 62],\n  [19, 63],\n  [20, 62],\n  [21, 63],\n  [22, 60],\n  [23, 70],\n  [24, 69],\n  [25, 70],\n  [26, 70],\n  [27, 63],\n]) as Theme\n\nexport const light_mint_alt2_SwitchThumb = n285 as Theme\nconst n286 = t([\n  [12, 67],\n  [13, 65],\n  [14, 64],\n  [15, 63],\n  [16, 68],\n  [17, 69],\n  [18, 62],\n  [19, 63],\n  [20, 62],\n  [21, 63],\n  [22, 63],\n  [23, 65],\n  [24, 64],\n  [25, 65],\n  [26, 65],\n  [27, 68],\n]) as Theme\n\nexport const light_mint_alt2_SliderTrackActive = n286 as Theme\nconst n287 = t([\n  [12, 69],\n  [13, 68],\n  [14, 67],\n  [15, 65],\n  [16, 70],\n  [17, 71],\n  [18, 62],\n  [19, 63],\n  [20, 62],\n  [21, 63],\n  [22, 61],\n  [23, 68],\n  [24, 67],\n  [25, 68],\n  [26, 68],\n  [27, 65],\n]) as Theme\n\nexport const light_mint_alt2_SliderThumb = n287 as Theme\nexport const light_mint_alt2_Tooltip = n287 as Theme\nexport const light_mint_alt2_ProgressIndicator = n287 as Theme\nconst n288 = t([\n  [12, 63],\n  [13, 64],\n  [14, 65],\n  [15, 67],\n  [16, 62],\n  [17, 61],\n  [19, 68],\n  [20, 69],\n  [21, 68],\n  [22, 71],\n  [23, 64],\n  [24, 65],\n  [25, 64],\n  [26, 64],\n  [27, 67],\n]) as Theme\n\nexport const light_mint_active_ListItem = n288 as Theme\nconst n289 = t([\n  [12, 65],\n  [13, 67],\n  [14, 68],\n  [15, 69],\n  [16, 64],\n  [17, 63],\n  [19, 68],\n  [20, 69],\n  [21, 68],\n  [22, 69],\n  [23, 67],\n  [24, 68],\n  [25, 67],\n  [26, 67],\n  [27, 64],\n]) as Theme\n\nexport const light_mint_active_Card = n289 as Theme\nexport const light_mint_active_DrawerFrame = n289 as Theme\nexport const light_mint_active_Progress = n289 as Theme\nexport const light_mint_active_TooltipArrow = n289 as Theme\nconst n290 = t([\n  [12, 67],\n  [13, 68],\n  [14, 69],\n  [15, 70],\n  [16, 65],\n  [17, 64],\n  [19, 68],\n  [20, 69],\n  [21, 68],\n  [22, 68],\n  [23, 67],\n  [24, 68],\n  [25, 67],\n  [26, 67],\n  [27, 63],\n]) as Theme\n\nexport const light_mint_active_Button = n290 as Theme\nexport const light_mint_active_Switch = n290 as Theme\nexport const light_mint_active_TooltipContent = n290 as Theme\nexport const light_mint_active_SliderTrack = n290 as Theme\nconst n291 = t([\n  [12, 64],\n  [13, 65],\n  [14, 67],\n  [15, 68],\n  [16, 63],\n  [17, 62],\n  [19, 68],\n  [20, 69],\n  [21, 68],\n  [22, 70],\n  [23, 68],\n  [24, 69],\n  [25, 68],\n  [26, 68],\n  [27, 65],\n]) as Theme\n\nexport const light_mint_active_Checkbox = n291 as Theme\nexport const light_mint_active_RadioGroupItem = n291 as Theme\nexport const light_mint_active_Input = n291 as Theme\nexport const light_mint_active_TextArea = n291 as Theme\nconst n292 = t([\n  [12, 70],\n  [13, 69],\n  [14, 68],\n  [15, 67],\n  [16, 71],\n  [17, 11],\n  [19, 64],\n  [20, 63],\n  [21, 64],\n  [22, 60],\n  [23, 69],\n  [24, 68],\n  [25, 69],\n  [26, 69],\n  [27, 64],\n]) as Theme\n\nexport const light_mint_active_SwitchThumb = n292 as Theme\nconst n293 = t([\n  [12, 65],\n  [13, 64],\n  [14, 63],\n  [15, 62],\n  [16, 67],\n  [17, 68],\n  [19, 64],\n  [20, 63],\n  [21, 64],\n  [22, 64],\n  [23, 64],\n  [24, 63],\n  [25, 64],\n  [26, 64],\n  [27, 69],\n]) as Theme\n\nexport const light_mint_active_SliderTrackActive = n293 as Theme\nconst n294 = t([\n  [12, 68],\n  [13, 67],\n  [14, 65],\n  [15, 64],\n  [16, 69],\n  [17, 70],\n  [19, 64],\n  [20, 63],\n  [21, 64],\n  [22, 62],\n  [23, 67],\n  [24, 65],\n  [25, 67],\n  [26, 67],\n  [27, 67],\n]) as Theme\n\nexport const light_mint_active_SliderThumb = n294 as Theme\nexport const light_mint_active_Tooltip = n294 as Theme\nexport const light_mint_active_ProgressIndicator = n294 as Theme\nconst n295 = t([\n  [12, 73],\n  [13, 74],\n  [14, 75],\n  [15, 76],\n  [16, 72],\n  [17, 72],\n  [18, 83],\n  [19, 82],\n  [20, 83],\n  [21, 82],\n  [22, 11],\n  [23, 75],\n  [24, 76],\n  [25, 75],\n  [26, 75],\n  [27, 81],\n]) as Theme\n\nexport const light_red_alt1_ListItem = n295 as Theme\nconst n296 = t([\n  [12, 75],\n  [13, 76],\n  [14, 77],\n  [15, 79],\n  [16, 74],\n  [17, 73],\n  [18, 83],\n  [19, 82],\n  [20, 83],\n  [21, 82],\n  [22, 83],\n  [23, 77],\n  [24, 79],\n  [25, 77],\n  [26, 77],\n  [27, 79],\n]) as Theme\n\nexport const light_red_alt1_Card = n296 as Theme\nexport const light_red_alt1_DrawerFrame = n296 as Theme\nexport const light_red_alt1_Progress = n296 as Theme\nexport const light_red_alt1_TooltipArrow = n296 as Theme\nconst n297 = t([\n  [12, 76],\n  [13, 77],\n  [14, 79],\n  [15, 80],\n  [16, 75],\n  [17, 74],\n  [18, 83],\n  [19, 82],\n  [20, 83],\n  [21, 82],\n  [22, 82],\n  [23, 77],\n  [24, 79],\n  [25, 77],\n  [26, 77],\n  [27, 77],\n]) as Theme\n\nexport const light_red_alt1_Button = n297 as Theme\nexport const light_red_alt1_Switch = n297 as Theme\nexport const light_red_alt1_TooltipContent = n297 as Theme\nexport const light_red_alt1_SliderTrack = n297 as Theme\nconst n298 = t([\n  [12, 74],\n  [13, 75],\n  [14, 76],\n  [15, 77],\n  [16, 73],\n  [17, 72],\n  [18, 83],\n  [19, 82],\n  [20, 83],\n  [21, 82],\n  [22, 11],\n  [23, 79],\n  [24, 80],\n  [25, 79],\n  [26, 79],\n  [27, 80],\n]) as Theme\n\nexport const light_red_alt1_Checkbox = n298 as Theme\nexport const light_red_alt1_RadioGroupItem = n298 as Theme\nexport const light_red_alt1_Input = n298 as Theme\nexport const light_red_alt1_TextArea = n298 as Theme\nconst n299 = t([\n  [12, 11],\n  [13, 83],\n  [14, 82],\n  [15, 81],\n  [16, 11],\n  [17, 11],\n  [18, 73],\n  [19, 74],\n  [20, 73],\n  [21, 74],\n  [22, 72],\n  [23, 82],\n  [24, 81],\n  [25, 82],\n  [26, 82],\n  [27, 74],\n]) as Theme\n\nexport const light_red_alt1_SwitchThumb = n299 as Theme\nconst n300 = t([\n  [12, 80],\n  [13, 79],\n  [14, 77],\n  [15, 76],\n  [16, 81],\n  [17, 82],\n  [18, 73],\n  [19, 74],\n  [20, 73],\n  [21, 74],\n  [22, 74],\n  [23, 77],\n  [24, 76],\n  [25, 77],\n  [26, 77],\n  [27, 79],\n]) as Theme\n\nexport const light_red_alt1_SliderTrackActive = n300 as Theme\nconst n301 = t([\n  [12, 82],\n  [13, 81],\n  [14, 80],\n  [15, 79],\n  [16, 83],\n  [17, 11],\n  [18, 73],\n  [19, 74],\n  [20, 73],\n  [21, 74],\n  [22, 72],\n  [23, 80],\n  [24, 79],\n  [25, 80],\n  [26, 80],\n  [27, 76],\n]) as Theme\n\nexport const light_red_alt1_SliderThumb = n301 as Theme\nexport const light_red_alt1_Tooltip = n301 as Theme\nexport const light_red_alt1_ProgressIndicator = n301 as Theme\nconst n302 = t([\n  [12, 74],\n  [13, 75],\n  [14, 76],\n  [15, 77],\n  [16, 73],\n  [17, 72],\n  [18, 82],\n  [19, 81],\n  [20, 82],\n  [21, 81],\n  [22, 11],\n  [23, 75],\n  [24, 76],\n  [25, 75],\n  [26, 75],\n  [27, 80],\n]) as Theme\n\nexport const light_red_alt2_ListItem = n302 as Theme\nconst n303 = t([\n  [12, 76],\n  [13, 77],\n  [14, 79],\n  [15, 80],\n  [16, 75],\n  [17, 74],\n  [18, 82],\n  [19, 81],\n  [20, 82],\n  [21, 81],\n  [22, 82],\n  [23, 77],\n  [24, 79],\n  [25, 77],\n  [26, 77],\n  [27, 77],\n]) as Theme\n\nexport const light_red_alt2_Card = n303 as Theme\nexport const light_red_alt2_DrawerFrame = n303 as Theme\nexport const light_red_alt2_Progress = n303 as Theme\nexport const light_red_alt2_TooltipArrow = n303 as Theme\nconst n304 = t([\n  [12, 77],\n  [13, 79],\n  [14, 80],\n  [15, 81],\n  [16, 76],\n  [17, 75],\n  [18, 82],\n  [19, 81],\n  [20, 82],\n  [21, 81],\n  [22, 81],\n  [23, 77],\n  [24, 79],\n  [25, 77],\n  [26, 77],\n  [27, 76],\n]) as Theme\n\nexport const light_red_alt2_Button = n304 as Theme\nexport const light_red_alt2_Switch = n304 as Theme\nexport const light_red_alt2_TooltipContent = n304 as Theme\nexport const light_red_alt2_SliderTrack = n304 as Theme\nconst n305 = t([\n  [12, 75],\n  [13, 76],\n  [14, 77],\n  [15, 79],\n  [16, 74],\n  [17, 73],\n  [18, 82],\n  [19, 81],\n  [20, 82],\n  [21, 81],\n  [22, 83],\n  [23, 79],\n  [24, 80],\n  [25, 79],\n  [26, 79],\n  [27, 79],\n]) as Theme\n\nexport const light_red_alt2_Checkbox = n305 as Theme\nexport const light_red_alt2_RadioGroupItem = n305 as Theme\nexport const light_red_alt2_Input = n305 as Theme\nexport const light_red_alt2_TextArea = n305 as Theme\nconst n306 = t([\n  [12, 83],\n  [13, 82],\n  [14, 81],\n  [15, 80],\n  [16, 11],\n  [17, 11],\n  [18, 74],\n  [19, 75],\n  [20, 74],\n  [21, 75],\n  [22, 72],\n  [23, 82],\n  [24, 81],\n  [25, 82],\n  [26, 82],\n  [27, 75],\n]) as Theme\n\nexport const light_red_alt2_SwitchThumb = n306 as Theme\nconst n307 = t([\n  [12, 79],\n  [13, 77],\n  [14, 76],\n  [15, 75],\n  [16, 80],\n  [17, 81],\n  [18, 74],\n  [19, 75],\n  [20, 74],\n  [21, 75],\n  [22, 75],\n  [23, 77],\n  [24, 76],\n  [25, 77],\n  [26, 77],\n  [27, 80],\n]) as Theme\n\nexport const light_red_alt2_SliderTrackActive = n307 as Theme\nconst n308 = t([\n  [12, 81],\n  [13, 80],\n  [14, 79],\n  [15, 77],\n  [16, 82],\n  [17, 83],\n  [18, 74],\n  [19, 75],\n  [20, 74],\n  [21, 75],\n  [22, 73],\n  [23, 80],\n  [24, 79],\n  [25, 80],\n  [26, 80],\n  [27, 77],\n]) as Theme\n\nexport const light_red_alt2_SliderThumb = n308 as Theme\nexport const light_red_alt2_Tooltip = n308 as Theme\nexport const light_red_alt2_ProgressIndicator = n308 as Theme\nconst n309 = t([\n  [12, 75],\n  [13, 76],\n  [14, 77],\n  [15, 79],\n  [16, 74],\n  [17, 73],\n  [19, 80],\n  [20, 81],\n  [21, 80],\n  [22, 83],\n  [23, 76],\n  [24, 77],\n  [25, 76],\n  [26, 76],\n  [27, 79],\n]) as Theme\n\nexport const light_red_active_ListItem = n309 as Theme\nconst n310 = t([\n  [12, 77],\n  [13, 79],\n  [14, 80],\n  [15, 81],\n  [16, 76],\n  [17, 75],\n  [19, 80],\n  [20, 81],\n  [21, 80],\n  [22, 81],\n  [23, 79],\n  [24, 80],\n  [25, 79],\n  [26, 79],\n  [27, 76],\n]) as Theme\n\nexport const light_red_active_Card = n310 as Theme\nexport const light_red_active_DrawerFrame = n310 as Theme\nexport const light_red_active_Progress = n310 as Theme\nexport const light_red_active_TooltipArrow = n310 as Theme\nconst n311 = t([\n  [12, 79],\n  [13, 80],\n  [14, 81],\n  [15, 82],\n  [16, 77],\n  [17, 76],\n  [19, 80],\n  [20, 81],\n  [21, 80],\n  [22, 80],\n  [23, 79],\n  [24, 80],\n  [25, 79],\n  [26, 79],\n  [27, 75],\n]) as Theme\n\nexport const light_red_active_Button = n311 as Theme\nexport const light_red_active_Switch = n311 as Theme\nexport const light_red_active_TooltipContent = n311 as Theme\nexport const light_red_active_SliderTrack = n311 as Theme\nconst n312 = t([\n  [12, 76],\n  [13, 77],\n  [14, 79],\n  [15, 80],\n  [16, 75],\n  [17, 74],\n  [19, 80],\n  [20, 81],\n  [21, 80],\n  [22, 82],\n  [23, 80],\n  [24, 81],\n  [25, 80],\n  [26, 80],\n  [27, 77],\n]) as Theme\n\nexport const light_red_active_Checkbox = n312 as Theme\nexport const light_red_active_RadioGroupItem = n312 as Theme\nexport const light_red_active_Input = n312 as Theme\nexport const light_red_active_TextArea = n312 as Theme\nconst n313 = t([\n  [12, 82],\n  [13, 81],\n  [14, 80],\n  [15, 79],\n  [16, 83],\n  [17, 11],\n  [19, 76],\n  [20, 75],\n  [21, 76],\n  [22, 72],\n  [23, 81],\n  [24, 80],\n  [25, 81],\n  [26, 81],\n  [27, 76],\n]) as Theme\n\nexport const light_red_active_SwitchThumb = n313 as Theme\nconst n314 = t([\n  [12, 77],\n  [13, 76],\n  [14, 75],\n  [15, 74],\n  [16, 79],\n  [17, 80],\n  [19, 76],\n  [20, 75],\n  [21, 76],\n  [22, 76],\n  [23, 76],\n  [24, 75],\n  [25, 76],\n  [26, 76],\n  [27, 81],\n]) as Theme\n\nexport const light_red_active_SliderTrackActive = n314 as Theme\nconst n315 = t([\n  [12, 80],\n  [13, 79],\n  [14, 77],\n  [15, 76],\n  [16, 81],\n  [17, 82],\n  [19, 76],\n  [20, 75],\n  [21, 76],\n  [22, 74],\n  [23, 79],\n  [24, 77],\n  [25, 79],\n  [26, 79],\n  [27, 79],\n]) as Theme\n\nexport const light_red_active_SliderThumb = n315 as Theme\nexport const light_red_active_Tooltip = n315 as Theme\nexport const light_red_active_ProgressIndicator = n315 as Theme\nconst n316 = t([\n  [12, 145],\n  [13, 146],\n  [14, 147],\n  [15, 149],\n  [16, 144],\n  [17, 143],\n  [18, 152],\n  [19, 151],\n  [20, 152],\n  [21, 151],\n  [22, 152],\n  [23, 149],\n  [24, 56],\n  [25, 147],\n  [26, 149],\n  [27, 149],\n]) as Theme\n\nexport const dark_orange_alt1_Card = n316 as Theme\nexport const dark_orange_alt1_DrawerFrame = n316 as Theme\nexport const dark_orange_alt1_Progress = n316 as Theme\nexport const dark_orange_alt1_TooltipArrow = n316 as Theme\nconst n317 = t([\n  [12, 146],\n  [13, 147],\n  [14, 149],\n  [15, 56],\n  [16, 145],\n  [17, 144],\n  [18, 152],\n  [19, 151],\n  [20, 152],\n  [21, 151],\n  [22, 151],\n  [23, 149],\n  [24, 56],\n  [25, 147],\n  [26, 149],\n  [27, 147],\n]) as Theme\n\nexport const dark_orange_alt1_Button = n317 as Theme\nexport const dark_orange_alt1_Switch = n317 as Theme\nexport const dark_orange_alt1_TooltipContent = n317 as Theme\nexport const dark_orange_alt1_SliderTrack = n317 as Theme\nconst n318 = t([\n  [12, 144],\n  [13, 145],\n  [14, 146],\n  [15, 147],\n  [16, 143],\n  [17, 142],\n  [18, 152],\n  [19, 151],\n  [20, 152],\n  [21, 151],\n  [22, 0],\n  [23, 56],\n  [24, 150],\n  [25, 149],\n  [26, 56],\n  [27, 56],\n]) as Theme\n\nexport const dark_orange_alt1_Checkbox = n318 as Theme\nexport const dark_orange_alt1_RadioGroupItem = n318 as Theme\nexport const dark_orange_alt1_Input = n318 as Theme\nexport const dark_orange_alt1_TextArea = n318 as Theme\nconst n319 = t([\n  [12, 0],\n  [13, 152],\n  [14, 151],\n  [15, 150],\n  [16, 0],\n  [17, 0],\n  [18, 143],\n  [19, 144],\n  [20, 143],\n  [21, 144],\n  [22, 142],\n  [23, 150],\n  [24, 56],\n  [25, 151],\n  [26, 150],\n  [27, 144],\n]) as Theme\n\nexport const dark_orange_alt1_SwitchThumb = n319 as Theme\nconst n320 = t([\n  [12, 56],\n  [13, 149],\n  [14, 147],\n  [15, 146],\n  [16, 150],\n  [17, 151],\n  [18, 143],\n  [19, 144],\n  [20, 143],\n  [21, 144],\n  [22, 144],\n  [23, 146],\n  [24, 145],\n  [25, 147],\n  [26, 146],\n  [27, 149],\n]) as Theme\n\nexport const dark_orange_alt1_SliderTrackActive = n320 as Theme\nconst n321 = t([\n  [12, 151],\n  [13, 150],\n  [14, 56],\n  [15, 149],\n  [16, 152],\n  [17, 0],\n  [18, 143],\n  [19, 144],\n  [20, 143],\n  [21, 144],\n  [22, 142],\n  [23, 149],\n  [24, 147],\n  [25, 56],\n  [26, 149],\n  [27, 146],\n]) as Theme\n\nexport const dark_orange_alt1_SliderThumb = n321 as Theme\nexport const dark_orange_alt1_Tooltip = n321 as Theme\nexport const dark_orange_alt1_ProgressIndicator = n321 as Theme\nconst n322 = t([\n  [12, 146],\n  [13, 147],\n  [14, 149],\n  [15, 56],\n  [16, 145],\n  [17, 144],\n  [18, 151],\n  [19, 150],\n  [20, 151],\n  [21, 150],\n  [22, 151],\n  [23, 149],\n  [24, 56],\n  [25, 147],\n  [26, 149],\n  [27, 147],\n]) as Theme\n\nexport const dark_orange_alt2_Card = n322 as Theme\nexport const dark_orange_alt2_DrawerFrame = n322 as Theme\nexport const dark_orange_alt2_Progress = n322 as Theme\nexport const dark_orange_alt2_TooltipArrow = n322 as Theme\nconst n323 = t([\n  [12, 147],\n  [13, 149],\n  [14, 56],\n  [15, 150],\n  [16, 146],\n  [17, 145],\n  [18, 151],\n  [19, 150],\n  [20, 151],\n  [21, 150],\n  [22, 150],\n  [23, 149],\n  [24, 56],\n  [25, 147],\n  [26, 149],\n  [27, 146],\n]) as Theme\n\nexport const dark_orange_alt2_Button = n323 as Theme\nexport const dark_orange_alt2_Switch = n323 as Theme\nexport const dark_orange_alt2_TooltipContent = n323 as Theme\nexport const dark_orange_alt2_SliderTrack = n323 as Theme\nconst n324 = t([\n  [12, 145],\n  [13, 146],\n  [14, 147],\n  [15, 149],\n  [16, 144],\n  [17, 143],\n  [18, 151],\n  [19, 150],\n  [20, 151],\n  [21, 150],\n  [22, 152],\n  [23, 56],\n  [24, 150],\n  [25, 149],\n  [26, 56],\n  [27, 149],\n]) as Theme\n\nexport const dark_orange_alt2_Checkbox = n324 as Theme\nexport const dark_orange_alt2_RadioGroupItem = n324 as Theme\nexport const dark_orange_alt2_Input = n324 as Theme\nexport const dark_orange_alt2_TextArea = n324 as Theme\nconst n325 = t([\n  [12, 152],\n  [13, 151],\n  [14, 150],\n  [15, 56],\n  [16, 0],\n  [17, 0],\n  [18, 144],\n  [19, 145],\n  [20, 144],\n  [21, 145],\n  [22, 142],\n  [23, 150],\n  [24, 56],\n  [25, 151],\n  [26, 150],\n  [27, 145],\n]) as Theme\n\nexport const dark_orange_alt2_SwitchThumb = n325 as Theme\nconst n326 = t([\n  [12, 149],\n  [13, 147],\n  [14, 146],\n  [15, 145],\n  [16, 56],\n  [17, 150],\n  [18, 144],\n  [19, 145],\n  [20, 144],\n  [21, 145],\n  [22, 145],\n  [23, 146],\n  [24, 145],\n  [25, 147],\n  [26, 146],\n  [27, 56],\n]) as Theme\n\nexport const dark_orange_alt2_SliderTrackActive = n326 as Theme\nconst n327 = t([\n  [12, 150],\n  [13, 56],\n  [14, 149],\n  [15, 147],\n  [16, 151],\n  [17, 152],\n  [18, 144],\n  [19, 145],\n  [20, 144],\n  [21, 145],\n  [22, 143],\n  [23, 149],\n  [24, 147],\n  [25, 56],\n  [26, 149],\n  [27, 147],\n]) as Theme\n\nexport const dark_orange_alt2_SliderThumb = n327 as Theme\nexport const dark_orange_alt2_Tooltip = n327 as Theme\nexport const dark_orange_alt2_ProgressIndicator = n327 as Theme\nconst n328 = t([\n  [12, 147],\n  [13, 149],\n  [14, 56],\n  [15, 150],\n  [16, 146],\n  [17, 145],\n  [19, 56],\n  [20, 150],\n  [21, 56],\n  [22, 150],\n  [23, 56],\n  [24, 150],\n  [25, 149],\n  [26, 56],\n  [27, 146],\n]) as Theme\n\nexport const dark_orange_active_Card = n328 as Theme\nexport const dark_orange_active_DrawerFrame = n328 as Theme\nexport const dark_orange_active_Progress = n328 as Theme\nexport const dark_orange_active_TooltipArrow = n328 as Theme\nconst n329 = t([\n  [12, 149],\n  [13, 56],\n  [14, 150],\n  [15, 151],\n  [16, 147],\n  [17, 146],\n  [19, 56],\n  [20, 150],\n  [21, 56],\n  [22, 56],\n  [23, 56],\n  [24, 150],\n  [25, 149],\n  [26, 56],\n  [27, 145],\n]) as Theme\n\nexport const dark_orange_active_Button = n329 as Theme\nexport const dark_orange_active_Switch = n329 as Theme\nexport const dark_orange_active_TooltipContent = n329 as Theme\nexport const dark_orange_active_SliderTrack = n329 as Theme\nconst n330 = t([\n  [12, 146],\n  [13, 147],\n  [14, 149],\n  [15, 56],\n  [16, 145],\n  [17, 144],\n  [19, 56],\n  [20, 150],\n  [21, 56],\n  [22, 151],\n  [23, 150],\n  [24, 151],\n  [25, 56],\n  [26, 150],\n  [27, 147],\n]) as Theme\n\nexport const dark_orange_active_Checkbox = n330 as Theme\nexport const dark_orange_active_RadioGroupItem = n330 as Theme\nexport const dark_orange_active_Input = n330 as Theme\nexport const dark_orange_active_TextArea = n330 as Theme\nconst n331 = t([\n  [12, 151],\n  [13, 150],\n  [14, 56],\n  [15, 149],\n  [16, 152],\n  [17, 0],\n  [19, 146],\n  [20, 145],\n  [21, 146],\n  [22, 142],\n  [23, 56],\n  [24, 149],\n  [25, 150],\n  [26, 56],\n  [27, 146],\n]) as Theme\n\nexport const dark_orange_active_SwitchThumb = n331 as Theme\nconst n332 = t([\n  [12, 147],\n  [13, 146],\n  [14, 145],\n  [15, 144],\n  [16, 149],\n  [17, 56],\n  [19, 146],\n  [20, 145],\n  [21, 146],\n  [22, 146],\n  [23, 145],\n  [24, 144],\n  [25, 146],\n  [26, 145],\n  [27, 150],\n]) as Theme\n\nexport const dark_orange_active_SliderTrackActive = n332 as Theme\nconst n333 = t([\n  [12, 56],\n  [13, 149],\n  [14, 147],\n  [15, 146],\n  [16, 150],\n  [17, 151],\n  [19, 146],\n  [20, 145],\n  [21, 146],\n  [22, 144],\n  [23, 147],\n  [24, 146],\n  [25, 149],\n  [26, 147],\n  [27, 149],\n]) as Theme\n\nexport const dark_orange_active_SliderThumb = n333 as Theme\nexport const dark_orange_active_Tooltip = n333 as Theme\nexport const dark_orange_active_ProgressIndicator = n333 as Theme\nconst n334 = t([\n  [12, 178],\n  [13, 179],\n  [14, 180],\n  [15, 182],\n  [16, 177],\n  [17, 176],\n  [18, 185],\n  [19, 184],\n  [20, 185],\n  [21, 184],\n  [22, 185],\n  [23, 182],\n  [24, 92],\n  [25, 180],\n  [26, 182],\n  [27, 182],\n]) as Theme\n\nexport const dark_yellow_alt1_Card = n334 as Theme\nexport const dark_yellow_alt1_DrawerFrame = n334 as Theme\nexport const dark_yellow_alt1_Progress = n334 as Theme\nexport const dark_yellow_alt1_TooltipArrow = n334 as Theme\nconst n335 = t([\n  [12, 179],\n  [13, 180],\n  [14, 182],\n  [15, 92],\n  [16, 178],\n  [17, 177],\n  [18, 185],\n  [19, 184],\n  [20, 185],\n  [21, 184],\n  [22, 184],\n  [23, 182],\n  [24, 92],\n  [25, 180],\n  [26, 182],\n  [27, 180],\n]) as Theme\n\nexport const dark_yellow_alt1_Button = n335 as Theme\nexport const dark_yellow_alt1_Switch = n335 as Theme\nexport const dark_yellow_alt1_TooltipContent = n335 as Theme\nexport const dark_yellow_alt1_SliderTrack = n335 as Theme\nconst n336 = t([\n  [12, 177],\n  [13, 178],\n  [14, 179],\n  [15, 180],\n  [16, 176],\n  [17, 175],\n  [18, 185],\n  [19, 184],\n  [20, 185],\n  [21, 184],\n  [22, 0],\n  [23, 92],\n  [24, 183],\n  [25, 182],\n  [26, 92],\n  [27, 92],\n]) as Theme\n\nexport const dark_yellow_alt1_Checkbox = n336 as Theme\nexport const dark_yellow_alt1_RadioGroupItem = n336 as Theme\nexport const dark_yellow_alt1_Input = n336 as Theme\nexport const dark_yellow_alt1_TextArea = n336 as Theme\nconst n337 = t([\n  [12, 0],\n  [13, 185],\n  [14, 184],\n  [15, 183],\n  [16, 0],\n  [17, 0],\n  [18, 176],\n  [19, 177],\n  [20, 176],\n  [21, 177],\n  [22, 175],\n  [23, 183],\n  [24, 92],\n  [25, 184],\n  [26, 183],\n  [27, 177],\n]) as Theme\n\nexport const dark_yellow_alt1_SwitchThumb = n337 as Theme\nconst n338 = t([\n  [12, 92],\n  [13, 182],\n  [14, 180],\n  [15, 179],\n  [16, 183],\n  [17, 184],\n  [18, 176],\n  [19, 177],\n  [20, 176],\n  [21, 177],\n  [22, 177],\n  [23, 179],\n  [24, 178],\n  [25, 180],\n  [26, 179],\n  [27, 182],\n]) as Theme\n\nexport const dark_yellow_alt1_SliderTrackActive = n338 as Theme\nconst n339 = t([\n  [12, 184],\n  [13, 183],\n  [14, 92],\n  [15, 182],\n  [16, 185],\n  [17, 0],\n  [18, 176],\n  [19, 177],\n  [20, 176],\n  [21, 177],\n  [22, 175],\n  [23, 182],\n  [24, 180],\n  [25, 92],\n  [26, 182],\n  [27, 179],\n]) as Theme\n\nexport const dark_yellow_alt1_SliderThumb = n339 as Theme\nexport const dark_yellow_alt1_Tooltip = n339 as Theme\nexport const dark_yellow_alt1_ProgressIndicator = n339 as Theme\nconst n340 = t([\n  [12, 179],\n  [13, 180],\n  [14, 182],\n  [15, 92],\n  [16, 178],\n  [17, 177],\n  [18, 184],\n  [19, 183],\n  [20, 184],\n  [21, 183],\n  [22, 184],\n  [23, 182],\n  [24, 92],\n  [25, 180],\n  [26, 182],\n  [27, 180],\n]) as Theme\n\nexport const dark_yellow_alt2_Card = n340 as Theme\nexport const dark_yellow_alt2_DrawerFrame = n340 as Theme\nexport const dark_yellow_alt2_Progress = n340 as Theme\nexport const dark_yellow_alt2_TooltipArrow = n340 as Theme\nconst n341 = t([\n  [12, 180],\n  [13, 182],\n  [14, 92],\n  [15, 183],\n  [16, 179],\n  [17, 178],\n  [18, 184],\n  [19, 183],\n  [20, 184],\n  [21, 183],\n  [22, 183],\n  [23, 182],\n  [24, 92],\n  [25, 180],\n  [26, 182],\n  [27, 179],\n]) as Theme\n\nexport const dark_yellow_alt2_Button = n341 as Theme\nexport const dark_yellow_alt2_Switch = n341 as Theme\nexport const dark_yellow_alt2_TooltipContent = n341 as Theme\nexport const dark_yellow_alt2_SliderTrack = n341 as Theme\nconst n342 = t([\n  [12, 178],\n  [13, 179],\n  [14, 180],\n  [15, 182],\n  [16, 177],\n  [17, 176],\n  [18, 184],\n  [19, 183],\n  [20, 184],\n  [21, 183],\n  [22, 185],\n  [23, 92],\n  [24, 183],\n  [25, 182],\n  [26, 92],\n  [27, 182],\n]) as Theme\n\nexport const dark_yellow_alt2_Checkbox = n342 as Theme\nexport const dark_yellow_alt2_RadioGroupItem = n342 as Theme\nexport const dark_yellow_alt2_Input = n342 as Theme\nexport const dark_yellow_alt2_TextArea = n342 as Theme\nconst n343 = t([\n  [12, 185],\n  [13, 184],\n  [14, 183],\n  [15, 92],\n  [16, 0],\n  [17, 0],\n  [18, 177],\n  [19, 178],\n  [20, 177],\n  [21, 178],\n  [22, 175],\n  [23, 183],\n  [24, 92],\n  [25, 184],\n  [26, 183],\n  [27, 178],\n]) as Theme\n\nexport const dark_yellow_alt2_SwitchThumb = n343 as Theme\nconst n344 = t([\n  [12, 182],\n  [13, 180],\n  [14, 179],\n  [15, 178],\n  [16, 92],\n  [17, 183],\n  [18, 177],\n  [19, 178],\n  [20, 177],\n  [21, 178],\n  [22, 178],\n  [23, 179],\n  [24, 178],\n  [25, 180],\n  [26, 179],\n  [27, 92],\n]) as Theme\n\nexport const dark_yellow_alt2_SliderTrackActive = n344 as Theme\nconst n345 = t([\n  [12, 183],\n  [13, 92],\n  [14, 182],\n  [15, 180],\n  [16, 184],\n  [17, 185],\n  [18, 177],\n  [19, 178],\n  [20, 177],\n  [21, 178],\n  [22, 176],\n  [23, 182],\n  [24, 180],\n  [25, 92],\n  [26, 182],\n  [27, 180],\n]) as Theme\n\nexport const dark_yellow_alt2_SliderThumb = n345 as Theme\nexport const dark_yellow_alt2_Tooltip = n345 as Theme\nexport const dark_yellow_alt2_ProgressIndicator = n345 as Theme\nconst n346 = t([\n  [12, 180],\n  [13, 182],\n  [14, 92],\n  [15, 183],\n  [16, 179],\n  [17, 178],\n  [19, 92],\n  [20, 183],\n  [21, 92],\n  [22, 183],\n  [23, 92],\n  [24, 183],\n  [25, 182],\n  [26, 92],\n  [27, 179],\n]) as Theme\n\nexport const dark_yellow_active_Card = n346 as Theme\nexport const dark_yellow_active_DrawerFrame = n346 as Theme\nexport const dark_yellow_active_Progress = n346 as Theme\nexport const dark_yellow_active_TooltipArrow = n346 as Theme\nconst n347 = t([\n  [12, 182],\n  [13, 92],\n  [14, 183],\n  [15, 184],\n  [16, 180],\n  [17, 179],\n  [19, 92],\n  [20, 183],\n  [21, 92],\n  [22, 92],\n  [23, 92],\n  [24, 183],\n  [25, 182],\n  [26, 92],\n  [27, 178],\n]) as Theme\n\nexport const dark_yellow_active_Button = n347 as Theme\nexport const dark_yellow_active_Switch = n347 as Theme\nexport const dark_yellow_active_TooltipContent = n347 as Theme\nexport const dark_yellow_active_SliderTrack = n347 as Theme\nconst n348 = t([\n  [12, 179],\n  [13, 180],\n  [14, 182],\n  [15, 92],\n  [16, 178],\n  [17, 177],\n  [19, 92],\n  [20, 183],\n  [21, 92],\n  [22, 184],\n  [23, 183],\n  [24, 184],\n  [25, 92],\n  [26, 183],\n  [27, 180],\n]) as Theme\n\nexport const dark_yellow_active_Checkbox = n348 as Theme\nexport const dark_yellow_active_RadioGroupItem = n348 as Theme\nexport const dark_yellow_active_Input = n348 as Theme\nexport const dark_yellow_active_TextArea = n348 as Theme\nconst n349 = t([\n  [12, 184],\n  [13, 183],\n  [14, 92],\n  [15, 182],\n  [16, 185],\n  [17, 0],\n  [19, 179],\n  [20, 178],\n  [21, 179],\n  [22, 175],\n  [23, 92],\n  [24, 182],\n  [25, 183],\n  [26, 92],\n  [27, 179],\n]) as Theme\n\nexport const dark_yellow_active_SwitchThumb = n349 as Theme\nconst n350 = t([\n  [12, 180],\n  [13, 179],\n  [14, 178],\n  [15, 177],\n  [16, 182],\n  [17, 92],\n  [19, 179],\n  [20, 178],\n  [21, 179],\n  [22, 179],\n  [23, 178],\n  [24, 177],\n  [25, 179],\n  [26, 178],\n  [27, 183],\n]) as Theme\n\nexport const dark_yellow_active_SliderTrackActive = n350 as Theme\nconst n351 = t([\n  [12, 92],\n  [13, 182],\n  [14, 180],\n  [15, 179],\n  [16, 183],\n  [17, 184],\n  [19, 179],\n  [20, 178],\n  [21, 179],\n  [22, 177],\n  [23, 180],\n  [24, 179],\n  [25, 182],\n  [26, 180],\n  [27, 182],\n]) as Theme\n\nexport const dark_yellow_active_SliderThumb = n351 as Theme\nexport const dark_yellow_active_Tooltip = n351 as Theme\nexport const dark_yellow_active_ProgressIndicator = n351 as Theme\nconst n352 = t([\n  [12, 134],\n  [13, 135],\n  [14, 136],\n  [15, 138],\n  [16, 133],\n  [17, 132],\n  [18, 141],\n  [19, 140],\n  [20, 141],\n  [21, 140],\n  [22, 141],\n  [23, 138],\n  [24, 44],\n  [25, 136],\n  [26, 138],\n  [27, 138],\n]) as Theme\n\nexport const dark_green_alt1_Card = n352 as Theme\nexport const dark_green_alt1_DrawerFrame = n352 as Theme\nexport const dark_green_alt1_Progress = n352 as Theme\nexport const dark_green_alt1_TooltipArrow = n352 as Theme\nconst n353 = t([\n  [12, 135],\n  [13, 136],\n  [14, 138],\n  [15, 44],\n  [16, 134],\n  [17, 133],\n  [18, 141],\n  [19, 140],\n  [20, 141],\n  [21, 140],\n  [22, 140],\n  [23, 138],\n  [24, 44],\n  [25, 136],\n  [26, 138],\n  [27, 136],\n]) as Theme\n\nexport const dark_green_alt1_Button = n353 as Theme\nexport const dark_green_alt1_Switch = n353 as Theme\nexport const dark_green_alt1_TooltipContent = n353 as Theme\nexport const dark_green_alt1_SliderTrack = n353 as Theme\nconst n354 = t([\n  [12, 133],\n  [13, 134],\n  [14, 135],\n  [15, 136],\n  [16, 132],\n  [17, 131],\n  [18, 141],\n  [19, 140],\n  [20, 141],\n  [21, 140],\n  [22, 0],\n  [23, 44],\n  [24, 139],\n  [25, 138],\n  [26, 44],\n  [27, 44],\n]) as Theme\n\nexport const dark_green_alt1_Checkbox = n354 as Theme\nexport const dark_green_alt1_RadioGroupItem = n354 as Theme\nexport const dark_green_alt1_Input = n354 as Theme\nexport const dark_green_alt1_TextArea = n354 as Theme\nconst n355 = t([\n  [12, 0],\n  [13, 141],\n  [14, 140],\n  [15, 139],\n  [16, 0],\n  [17, 0],\n  [18, 132],\n  [19, 133],\n  [20, 132],\n  [21, 133],\n  [22, 131],\n  [23, 139],\n  [24, 44],\n  [25, 140],\n  [26, 139],\n  [27, 133],\n]) as Theme\n\nexport const dark_green_alt1_SwitchThumb = n355 as Theme\nconst n356 = t([\n  [12, 44],\n  [13, 138],\n  [14, 136],\n  [15, 135],\n  [16, 139],\n  [17, 140],\n  [18, 132],\n  [19, 133],\n  [20, 132],\n  [21, 133],\n  [22, 133],\n  [23, 135],\n  [24, 134],\n  [25, 136],\n  [26, 135],\n  [27, 138],\n]) as Theme\n\nexport const dark_green_alt1_SliderTrackActive = n356 as Theme\nconst n357 = t([\n  [12, 140],\n  [13, 139],\n  [14, 44],\n  [15, 138],\n  [16, 141],\n  [17, 0],\n  [18, 132],\n  [19, 133],\n  [20, 132],\n  [21, 133],\n  [22, 131],\n  [23, 138],\n  [24, 136],\n  [25, 44],\n  [26, 138],\n  [27, 135],\n]) as Theme\n\nexport const dark_green_alt1_SliderThumb = n357 as Theme\nexport const dark_green_alt1_Tooltip = n357 as Theme\nexport const dark_green_alt1_ProgressIndicator = n357 as Theme\nconst n358 = t([\n  [12, 135],\n  [13, 136],\n  [14, 138],\n  [15, 44],\n  [16, 134],\n  [17, 133],\n  [18, 140],\n  [19, 139],\n  [20, 140],\n  [21, 139],\n  [22, 140],\n  [23, 138],\n  [24, 44],\n  [25, 136],\n  [26, 138],\n  [27, 136],\n]) as Theme\n\nexport const dark_green_alt2_Card = n358 as Theme\nexport const dark_green_alt2_DrawerFrame = n358 as Theme\nexport const dark_green_alt2_Progress = n358 as Theme\nexport const dark_green_alt2_TooltipArrow = n358 as Theme\nconst n359 = t([\n  [12, 136],\n  [13, 138],\n  [14, 44],\n  [15, 139],\n  [16, 135],\n  [17, 134],\n  [18, 140],\n  [19, 139],\n  [20, 140],\n  [21, 139],\n  [22, 139],\n  [23, 138],\n  [24, 44],\n  [25, 136],\n  [26, 138],\n  [27, 135],\n]) as Theme\n\nexport const dark_green_alt2_Button = n359 as Theme\nexport const dark_green_alt2_Switch = n359 as Theme\nexport const dark_green_alt2_TooltipContent = n359 as Theme\nexport const dark_green_alt2_SliderTrack = n359 as Theme\nconst n360 = t([\n  [12, 134],\n  [13, 135],\n  [14, 136],\n  [15, 138],\n  [16, 133],\n  [17, 132],\n  [18, 140],\n  [19, 139],\n  [20, 140],\n  [21, 139],\n  [22, 141],\n  [23, 44],\n  [24, 139],\n  [25, 138],\n  [26, 44],\n  [27, 138],\n]) as Theme\n\nexport const dark_green_alt2_Checkbox = n360 as Theme\nexport const dark_green_alt2_RadioGroupItem = n360 as Theme\nexport const dark_green_alt2_Input = n360 as Theme\nexport const dark_green_alt2_TextArea = n360 as Theme\nconst n361 = t([\n  [12, 141],\n  [13, 140],\n  [14, 139],\n  [15, 44],\n  [16, 0],\n  [17, 0],\n  [18, 133],\n  [19, 134],\n  [20, 133],\n  [21, 134],\n  [22, 131],\n  [23, 139],\n  [24, 44],\n  [25, 140],\n  [26, 139],\n  [27, 134],\n]) as Theme\n\nexport const dark_green_alt2_SwitchThumb = n361 as Theme\nconst n362 = t([\n  [12, 138],\n  [13, 136],\n  [14, 135],\n  [15, 134],\n  [16, 44],\n  [17, 139],\n  [18, 133],\n  [19, 134],\n  [20, 133],\n  [21, 134],\n  [22, 134],\n  [23, 135],\n  [24, 134],\n  [25, 136],\n  [26, 135],\n  [27, 44],\n]) as Theme\n\nexport const dark_green_alt2_SliderTrackActive = n362 as Theme\nconst n363 = t([\n  [12, 139],\n  [13, 44],\n  [14, 138],\n  [15, 136],\n  [16, 140],\n  [17, 141],\n  [18, 133],\n  [19, 134],\n  [20, 133],\n  [21, 134],\n  [22, 132],\n  [23, 138],\n  [24, 136],\n  [25, 44],\n  [26, 138],\n  [27, 136],\n]) as Theme\n\nexport const dark_green_alt2_SliderThumb = n363 as Theme\nexport const dark_green_alt2_Tooltip = n363 as Theme\nexport const dark_green_alt2_ProgressIndicator = n363 as Theme\nconst n364 = t([\n  [12, 136],\n  [13, 138],\n  [14, 44],\n  [15, 139],\n  [16, 135],\n  [17, 134],\n  [19, 44],\n  [20, 139],\n  [21, 44],\n  [22, 139],\n  [23, 44],\n  [24, 139],\n  [25, 138],\n  [26, 44],\n  [27, 135],\n]) as Theme\n\nexport const dark_green_active_Card = n364 as Theme\nexport const dark_green_active_DrawerFrame = n364 as Theme\nexport const dark_green_active_Progress = n364 as Theme\nexport const dark_green_active_TooltipArrow = n364 as Theme\nconst n365 = t([\n  [12, 138],\n  [13, 44],\n  [14, 139],\n  [15, 140],\n  [16, 136],\n  [17, 135],\n  [19, 44],\n  [20, 139],\n  [21, 44],\n  [22, 44],\n  [23, 44],\n  [24, 139],\n  [25, 138],\n  [26, 44],\n  [27, 134],\n]) as Theme\n\nexport const dark_green_active_Button = n365 as Theme\nexport const dark_green_active_Switch = n365 as Theme\nexport const dark_green_active_TooltipContent = n365 as Theme\nexport const dark_green_active_SliderTrack = n365 as Theme\nconst n366 = t([\n  [12, 135],\n  [13, 136],\n  [14, 138],\n  [15, 44],\n  [16, 134],\n  [17, 133],\n  [19, 44],\n  [20, 139],\n  [21, 44],\n  [22, 140],\n  [23, 139],\n  [24, 140],\n  [25, 44],\n  [26, 139],\n  [27, 136],\n]) as Theme\n\nexport const dark_green_active_Checkbox = n366 as Theme\nexport const dark_green_active_RadioGroupItem = n366 as Theme\nexport const dark_green_active_Input = n366 as Theme\nexport const dark_green_active_TextArea = n366 as Theme\nconst n367 = t([\n  [12, 140],\n  [13, 139],\n  [14, 44],\n  [15, 138],\n  [16, 141],\n  [17, 0],\n  [19, 135],\n  [20, 134],\n  [21, 135],\n  [22, 131],\n  [23, 44],\n  [24, 138],\n  [25, 139],\n  [26, 44],\n  [27, 135],\n]) as Theme\n\nexport const dark_green_active_SwitchThumb = n367 as Theme\nconst n368 = t([\n  [12, 136],\n  [13, 135],\n  [14, 134],\n  [15, 133],\n  [16, 138],\n  [17, 44],\n  [19, 135],\n  [20, 134],\n  [21, 135],\n  [22, 135],\n  [23, 134],\n  [24, 133],\n  [25, 135],\n  [26, 134],\n  [27, 139],\n]) as Theme\n\nexport const dark_green_active_SliderTrackActive = n368 as Theme\nconst n369 = t([\n  [12, 44],\n  [13, 138],\n  [14, 136],\n  [15, 135],\n  [16, 139],\n  [17, 140],\n  [19, 135],\n  [20, 134],\n  [21, 135],\n  [22, 133],\n  [23, 136],\n  [24, 135],\n  [25, 138],\n  [26, 136],\n  [27, 138],\n]) as Theme\n\nexport const dark_green_active_SliderThumb = n369 as Theme\nexport const dark_green_active_Tooltip = n369 as Theme\nexport const dark_green_active_ProgressIndicator = n369 as Theme\nconst n370 = t([\n  [12, 112],\n  [13, 113],\n  [14, 114],\n  [15, 116],\n  [16, 111],\n  [17, 110],\n  [18, 119],\n  [19, 118],\n  [20, 119],\n  [21, 118],\n  [22, 119],\n  [23, 116],\n  [24, 22],\n  [25, 114],\n  [26, 116],\n  [27, 116],\n]) as Theme\n\nexport const dark_blue_alt1_Card = n370 as Theme\nexport const dark_blue_alt1_DrawerFrame = n370 as Theme\nexport const dark_blue_alt1_Progress = n370 as Theme\nexport const dark_blue_alt1_TooltipArrow = n370 as Theme\nconst n371 = t([\n  [12, 113],\n  [13, 114],\n  [14, 116],\n  [15, 22],\n  [16, 112],\n  [17, 111],\n  [18, 119],\n  [19, 118],\n  [20, 119],\n  [21, 118],\n  [22, 118],\n  [23, 116],\n  [24, 22],\n  [25, 114],\n  [26, 116],\n  [27, 114],\n]) as Theme\n\nexport const dark_blue_alt1_Button = n371 as Theme\nexport const dark_blue_alt1_Switch = n371 as Theme\nexport const dark_blue_alt1_TooltipContent = n371 as Theme\nexport const dark_blue_alt1_SliderTrack = n371 as Theme\nconst n372 = t([\n  [12, 111],\n  [13, 112],\n  [14, 113],\n  [15, 114],\n  [16, 110],\n  [17, 109],\n  [18, 119],\n  [19, 118],\n  [20, 119],\n  [21, 118],\n  [22, 0],\n  [23, 22],\n  [24, 117],\n  [25, 116],\n  [26, 22],\n  [27, 22],\n]) as Theme\n\nexport const dark_blue_alt1_Checkbox = n372 as Theme\nexport const dark_blue_alt1_RadioGroupItem = n372 as Theme\nexport const dark_blue_alt1_Input = n372 as Theme\nexport const dark_blue_alt1_TextArea = n372 as Theme\nconst n373 = t([\n  [12, 0],\n  [13, 119],\n  [14, 118],\n  [15, 117],\n  [16, 0],\n  [17, 0],\n  [18, 110],\n  [19, 111],\n  [20, 110],\n  [21, 111],\n  [22, 109],\n  [23, 117],\n  [24, 22],\n  [25, 118],\n  [26, 117],\n  [27, 111],\n]) as Theme\n\nexport const dark_blue_alt1_SwitchThumb = n373 as Theme\nconst n374 = t([\n  [12, 22],\n  [13, 116],\n  [14, 114],\n  [15, 113],\n  [16, 117],\n  [17, 118],\n  [18, 110],\n  [19, 111],\n  [20, 110],\n  [21, 111],\n  [22, 111],\n  [23, 113],\n  [24, 112],\n  [25, 114],\n  [26, 113],\n  [27, 116],\n]) as Theme\n\nexport const dark_blue_alt1_SliderTrackActive = n374 as Theme\nconst n375 = t([\n  [12, 118],\n  [13, 117],\n  [14, 22],\n  [15, 116],\n  [16, 119],\n  [17, 0],\n  [18, 110],\n  [19, 111],\n  [20, 110],\n  [21, 111],\n  [22, 109],\n  [23, 116],\n  [24, 114],\n  [25, 22],\n  [26, 116],\n  [27, 113],\n]) as Theme\n\nexport const dark_blue_alt1_SliderThumb = n375 as Theme\nexport const dark_blue_alt1_Tooltip = n375 as Theme\nexport const dark_blue_alt1_ProgressIndicator = n375 as Theme\nconst n376 = t([\n  [12, 113],\n  [13, 114],\n  [14, 116],\n  [15, 22],\n  [16, 112],\n  [17, 111],\n  [18, 118],\n  [19, 117],\n  [20, 118],\n  [21, 117],\n  [22, 118],\n  [23, 116],\n  [24, 22],\n  [25, 114],\n  [26, 116],\n  [27, 114],\n]) as Theme\n\nexport const dark_blue_alt2_Card = n376 as Theme\nexport const dark_blue_alt2_DrawerFrame = n376 as Theme\nexport const dark_blue_alt2_Progress = n376 as Theme\nexport const dark_blue_alt2_TooltipArrow = n376 as Theme\nconst n377 = t([\n  [12, 114],\n  [13, 116],\n  [14, 22],\n  [15, 117],\n  [16, 113],\n  [17, 112],\n  [18, 118],\n  [19, 117],\n  [20, 118],\n  [21, 117],\n  [22, 117],\n  [23, 116],\n  [24, 22],\n  [25, 114],\n  [26, 116],\n  [27, 113],\n]) as Theme\n\nexport const dark_blue_alt2_Button = n377 as Theme\nexport const dark_blue_alt2_Switch = n377 as Theme\nexport const dark_blue_alt2_TooltipContent = n377 as Theme\nexport const dark_blue_alt2_SliderTrack = n377 as Theme\nconst n378 = t([\n  [12, 112],\n  [13, 113],\n  [14, 114],\n  [15, 116],\n  [16, 111],\n  [17, 110],\n  [18, 118],\n  [19, 117],\n  [20, 118],\n  [21, 117],\n  [22, 119],\n  [23, 22],\n  [24, 117],\n  [25, 116],\n  [26, 22],\n  [27, 116],\n]) as Theme\n\nexport const dark_blue_alt2_Checkbox = n378 as Theme\nexport const dark_blue_alt2_RadioGroupItem = n378 as Theme\nexport const dark_blue_alt2_Input = n378 as Theme\nexport const dark_blue_alt2_TextArea = n378 as Theme\nconst n379 = t([\n  [12, 119],\n  [13, 118],\n  [14, 117],\n  [15, 22],\n  [16, 0],\n  [17, 0],\n  [18, 111],\n  [19, 112],\n  [20, 111],\n  [21, 112],\n  [22, 109],\n  [23, 117],\n  [24, 22],\n  [25, 118],\n  [26, 117],\n  [27, 112],\n]) as Theme\n\nexport const dark_blue_alt2_SwitchThumb = n379 as Theme\nconst n380 = t([\n  [12, 116],\n  [13, 114],\n  [14, 113],\n  [15, 112],\n  [16, 22],\n  [17, 117],\n  [18, 111],\n  [19, 112],\n  [20, 111],\n  [21, 112],\n  [22, 112],\n  [23, 113],\n  [24, 112],\n  [25, 114],\n  [26, 113],\n  [27, 22],\n]) as Theme\n\nexport const dark_blue_alt2_SliderTrackActive = n380 as Theme\nconst n381 = t([\n  [12, 117],\n  [13, 22],\n  [14, 116],\n  [15, 114],\n  [16, 118],\n  [17, 119],\n  [18, 111],\n  [19, 112],\n  [20, 111],\n  [21, 112],\n  [22, 110],\n  [23, 116],\n  [24, 114],\n  [25, 22],\n  [26, 116],\n  [27, 114],\n]) as Theme\n\nexport const dark_blue_alt2_SliderThumb = n381 as Theme\nexport const dark_blue_alt2_Tooltip = n381 as Theme\nexport const dark_blue_alt2_ProgressIndicator = n381 as Theme\nconst n382 = t([\n  [12, 114],\n  [13, 116],\n  [14, 22],\n  [15, 117],\n  [16, 113],\n  [17, 112],\n  [19, 22],\n  [20, 117],\n  [21, 22],\n  [22, 117],\n  [23, 22],\n  [24, 117],\n  [25, 116],\n  [26, 22],\n  [27, 113],\n]) as Theme\n\nexport const dark_blue_active_Card = n382 as Theme\nexport const dark_blue_active_DrawerFrame = n382 as Theme\nexport const dark_blue_active_Progress = n382 as Theme\nexport const dark_blue_active_TooltipArrow = n382 as Theme\nconst n383 = t([\n  [12, 116],\n  [13, 22],\n  [14, 117],\n  [15, 118],\n  [16, 114],\n  [17, 113],\n  [19, 22],\n  [20, 117],\n  [21, 22],\n  [22, 22],\n  [23, 22],\n  [24, 117],\n  [25, 116],\n  [26, 22],\n  [27, 112],\n]) as Theme\n\nexport const dark_blue_active_Button = n383 as Theme\nexport const dark_blue_active_Switch = n383 as Theme\nexport const dark_blue_active_TooltipContent = n383 as Theme\nexport const dark_blue_active_SliderTrack = n383 as Theme\nconst n384 = t([\n  [12, 113],\n  [13, 114],\n  [14, 116],\n  [15, 22],\n  [16, 112],\n  [17, 111],\n  [19, 22],\n  [20, 117],\n  [21, 22],\n  [22, 118],\n  [23, 117],\n  [24, 118],\n  [25, 22],\n  [26, 117],\n  [27, 114],\n]) as Theme\n\nexport const dark_blue_active_Checkbox = n384 as Theme\nexport const dark_blue_active_RadioGroupItem = n384 as Theme\nexport const dark_blue_active_Input = n384 as Theme\nexport const dark_blue_active_TextArea = n384 as Theme\nconst n385 = t([\n  [12, 118],\n  [13, 117],\n  [14, 22],\n  [15, 116],\n  [16, 119],\n  [17, 0],\n  [19, 113],\n  [20, 112],\n  [21, 113],\n  [22, 109],\n  [23, 22],\n  [24, 116],\n  [25, 117],\n  [26, 22],\n  [27, 113],\n]) as Theme\n\nexport const dark_blue_active_SwitchThumb = n385 as Theme\nconst n386 = t([\n  [12, 114],\n  [13, 113],\n  [14, 112],\n  [15, 111],\n  [16, 116],\n  [17, 22],\n  [19, 113],\n  [20, 112],\n  [21, 113],\n  [22, 113],\n  [23, 112],\n  [24, 111],\n  [25, 113],\n  [26, 112],\n  [27, 117],\n]) as Theme\n\nexport const dark_blue_active_SliderTrackActive = n386 as Theme\nconst n387 = t([\n  [12, 22],\n  [13, 116],\n  [14, 114],\n  [15, 113],\n  [16, 117],\n  [17, 118],\n  [19, 113],\n  [20, 112],\n  [21, 113],\n  [22, 111],\n  [23, 114],\n  [24, 113],\n  [25, 116],\n  [26, 114],\n  [27, 116],\n]) as Theme\n\nexport const dark_blue_active_SliderThumb = n387 as Theme\nexport const dark_blue_active_Tooltip = n387 as Theme\nexport const dark_blue_active_ProgressIndicator = n387 as Theme\nconst n388 = t([\n  [12, 156],\n  [13, 157],\n  [14, 158],\n  [15, 160],\n  [16, 155],\n  [17, 154],\n  [18, 163],\n  [19, 162],\n  [20, 163],\n  [21, 162],\n  [22, 163],\n  [23, 160],\n  [24, 68],\n  [25, 158],\n  [26, 160],\n  [27, 160],\n]) as Theme\n\nexport const dark_mint_alt1_Card = n388 as Theme\nexport const dark_mint_alt1_DrawerFrame = n388 as Theme\nexport const dark_mint_alt1_Progress = n388 as Theme\nexport const dark_mint_alt1_TooltipArrow = n388 as Theme\nconst n389 = t([\n  [12, 157],\n  [13, 158],\n  [14, 160],\n  [15, 68],\n  [16, 156],\n  [17, 155],\n  [18, 163],\n  [19, 162],\n  [20, 163],\n  [21, 162],\n  [22, 162],\n  [23, 160],\n  [24, 68],\n  [25, 158],\n  [26, 160],\n  [27, 158],\n]) as Theme\n\nexport const dark_mint_alt1_Button = n389 as Theme\nexport const dark_mint_alt1_Switch = n389 as Theme\nexport const dark_mint_alt1_TooltipContent = n389 as Theme\nexport const dark_mint_alt1_SliderTrack = n389 as Theme\nconst n390 = t([\n  [12, 155],\n  [13, 156],\n  [14, 157],\n  [15, 158],\n  [16, 154],\n  [17, 153],\n  [18, 163],\n  [19, 162],\n  [20, 163],\n  [21, 162],\n  [22, 0],\n  [23, 68],\n  [24, 161],\n  [25, 160],\n  [26, 68],\n  [27, 68],\n]) as Theme\n\nexport const dark_mint_alt1_Checkbox = n390 as Theme\nexport const dark_mint_alt1_RadioGroupItem = n390 as Theme\nexport const dark_mint_alt1_Input = n390 as Theme\nexport const dark_mint_alt1_TextArea = n390 as Theme\nconst n391 = t([\n  [12, 0],\n  [13, 163],\n  [14, 162],\n  [15, 161],\n  [16, 0],\n  [17, 0],\n  [18, 154],\n  [19, 155],\n  [20, 154],\n  [21, 155],\n  [22, 153],\n  [23, 161],\n  [24, 68],\n  [25, 162],\n  [26, 161],\n  [27, 155],\n]) as Theme\n\nexport const dark_mint_alt1_SwitchThumb = n391 as Theme\nconst n392 = t([\n  [12, 68],\n  [13, 160],\n  [14, 158],\n  [15, 157],\n  [16, 161],\n  [17, 162],\n  [18, 154],\n  [19, 155],\n  [20, 154],\n  [21, 155],\n  [22, 155],\n  [23, 157],\n  [24, 156],\n  [25, 158],\n  [26, 157],\n  [27, 160],\n]) as Theme\n\nexport const dark_mint_alt1_SliderTrackActive = n392 as Theme\nconst n393 = t([\n  [12, 162],\n  [13, 161],\n  [14, 68],\n  [15, 160],\n  [16, 163],\n  [17, 0],\n  [18, 154],\n  [19, 155],\n  [20, 154],\n  [21, 155],\n  [22, 153],\n  [23, 160],\n  [24, 158],\n  [25, 68],\n  [26, 160],\n  [27, 157],\n]) as Theme\n\nexport const dark_mint_alt1_SliderThumb = n393 as Theme\nexport const dark_mint_alt1_Tooltip = n393 as Theme\nexport const dark_mint_alt1_ProgressIndicator = n393 as Theme\nconst n394 = t([\n  [12, 157],\n  [13, 158],\n  [14, 160],\n  [15, 68],\n  [16, 156],\n  [17, 155],\n  [18, 162],\n  [19, 161],\n  [20, 162],\n  [21, 161],\n  [22, 162],\n  [23, 160],\n  [24, 68],\n  [25, 158],\n  [26, 160],\n  [27, 158],\n]) as Theme\n\nexport const dark_mint_alt2_Card = n394 as Theme\nexport const dark_mint_alt2_DrawerFrame = n394 as Theme\nexport const dark_mint_alt2_Progress = n394 as Theme\nexport const dark_mint_alt2_TooltipArrow = n394 as Theme\nconst n395 = t([\n  [12, 158],\n  [13, 160],\n  [14, 68],\n  [15, 161],\n  [16, 157],\n  [17, 156],\n  [18, 162],\n  [19, 161],\n  [20, 162],\n  [21, 161],\n  [22, 161],\n  [23, 160],\n  [24, 68],\n  [25, 158],\n  [26, 160],\n  [27, 157],\n]) as Theme\n\nexport const dark_mint_alt2_Button = n395 as Theme\nexport const dark_mint_alt2_Switch = n395 as Theme\nexport const dark_mint_alt2_TooltipContent = n395 as Theme\nexport const dark_mint_alt2_SliderTrack = n395 as Theme\nconst n396 = t([\n  [12, 156],\n  [13, 157],\n  [14, 158],\n  [15, 160],\n  [16, 155],\n  [17, 154],\n  [18, 162],\n  [19, 161],\n  [20, 162],\n  [21, 161],\n  [22, 163],\n  [23, 68],\n  [24, 161],\n  [25, 160],\n  [26, 68],\n  [27, 160],\n]) as Theme\n\nexport const dark_mint_alt2_Checkbox = n396 as Theme\nexport const dark_mint_alt2_RadioGroupItem = n396 as Theme\nexport const dark_mint_alt2_Input = n396 as Theme\nexport const dark_mint_alt2_TextArea = n396 as Theme\nconst n397 = t([\n  [12, 163],\n  [13, 162],\n  [14, 161],\n  [15, 68],\n  [16, 0],\n  [17, 0],\n  [18, 155],\n  [19, 156],\n  [20, 155],\n  [21, 156],\n  [22, 153],\n  [23, 161],\n  [24, 68],\n  [25, 162],\n  [26, 161],\n  [27, 156],\n]) as Theme\n\nexport const dark_mint_alt2_SwitchThumb = n397 as Theme\nconst n398 = t([\n  [12, 160],\n  [13, 158],\n  [14, 157],\n  [15, 156],\n  [16, 68],\n  [17, 161],\n  [18, 155],\n  [19, 156],\n  [20, 155],\n  [21, 156],\n  [22, 156],\n  [23, 157],\n  [24, 156],\n  [25, 158],\n  [26, 157],\n  [27, 68],\n]) as Theme\n\nexport const dark_mint_alt2_SliderTrackActive = n398 as Theme\nconst n399 = t([\n  [12, 161],\n  [13, 68],\n  [14, 160],\n  [15, 158],\n  [16, 162],\n  [17, 163],\n  [18, 155],\n  [19, 156],\n  [20, 155],\n  [21, 156],\n  [22, 154],\n  [23, 160],\n  [24, 158],\n  [25, 68],\n  [26, 160],\n  [27, 158],\n]) as Theme\n\nexport const dark_mint_alt2_SliderThumb = n399 as Theme\nexport const dark_mint_alt2_Tooltip = n399 as Theme\nexport const dark_mint_alt2_ProgressIndicator = n399 as Theme\nconst n400 = t([\n  [12, 158],\n  [13, 160],\n  [14, 68],\n  [15, 161],\n  [16, 157],\n  [17, 156],\n  [19, 68],\n  [20, 161],\n  [21, 68],\n  [22, 161],\n  [23, 68],\n  [24, 161],\n  [25, 160],\n  [26, 68],\n  [27, 157],\n]) as Theme\n\nexport const dark_mint_active_Card = n400 as Theme\nexport const dark_mint_active_DrawerFrame = n400 as Theme\nexport const dark_mint_active_Progress = n400 as Theme\nexport const dark_mint_active_TooltipArrow = n400 as Theme\nconst n401 = t([\n  [12, 160],\n  [13, 68],\n  [14, 161],\n  [15, 162],\n  [16, 158],\n  [17, 157],\n  [19, 68],\n  [20, 161],\n  [21, 68],\n  [22, 68],\n  [23, 68],\n  [24, 161],\n  [25, 160],\n  [26, 68],\n  [27, 156],\n]) as Theme\n\nexport const dark_mint_active_Button = n401 as Theme\nexport const dark_mint_active_Switch = n401 as Theme\nexport const dark_mint_active_TooltipContent = n401 as Theme\nexport const dark_mint_active_SliderTrack = n401 as Theme\nconst n402 = t([\n  [12, 157],\n  [13, 158],\n  [14, 160],\n  [15, 68],\n  [16, 156],\n  [17, 155],\n  [19, 68],\n  [20, 161],\n  [21, 68],\n  [22, 162],\n  [23, 161],\n  [24, 162],\n  [25, 68],\n  [26, 161],\n  [27, 158],\n]) as Theme\n\nexport const dark_mint_active_Checkbox = n402 as Theme\nexport const dark_mint_active_RadioGroupItem = n402 as Theme\nexport const dark_mint_active_Input = n402 as Theme\nexport const dark_mint_active_TextArea = n402 as Theme\nconst n403 = t([\n  [12, 162],\n  [13, 161],\n  [14, 68],\n  [15, 160],\n  [16, 163],\n  [17, 0],\n  [19, 157],\n  [20, 156],\n  [21, 157],\n  [22, 153],\n  [23, 68],\n  [24, 160],\n  [25, 161],\n  [26, 68],\n  [27, 157],\n]) as Theme\n\nexport const dark_mint_active_SwitchThumb = n403 as Theme\nconst n404 = t([\n  [12, 158],\n  [13, 157],\n  [14, 156],\n  [15, 155],\n  [16, 160],\n  [17, 68],\n  [19, 157],\n  [20, 156],\n  [21, 157],\n  [22, 157],\n  [23, 156],\n  [24, 155],\n  [25, 157],\n  [26, 156],\n  [27, 161],\n]) as Theme\n\nexport const dark_mint_active_SliderTrackActive = n404 as Theme\nconst n405 = t([\n  [12, 68],\n  [13, 160],\n  [14, 158],\n  [15, 157],\n  [16, 161],\n  [17, 162],\n  [19, 157],\n  [20, 156],\n  [21, 157],\n  [22, 155],\n  [23, 158],\n  [24, 157],\n  [25, 160],\n  [26, 158],\n  [27, 160],\n]) as Theme\n\nexport const dark_mint_active_SliderThumb = n405 as Theme\nexport const dark_mint_active_Tooltip = n405 as Theme\nexport const dark_mint_active_ProgressIndicator = n405 as Theme\nconst n406 = t([\n  [12, 167],\n  [13, 168],\n  [14, 169],\n  [15, 171],\n  [16, 166],\n  [17, 165],\n  [18, 174],\n  [19, 173],\n  [20, 174],\n  [21, 173],\n  [22, 174],\n  [23, 171],\n  [24, 80],\n  [25, 169],\n  [26, 171],\n  [27, 171],\n]) as Theme\n\nexport const dark_red_alt1_Card = n406 as Theme\nexport const dark_red_alt1_DrawerFrame = n406 as Theme\nexport const dark_red_alt1_Progress = n406 as Theme\nexport const dark_red_alt1_TooltipArrow = n406 as Theme\nconst n407 = t([\n  [12, 168],\n  [13, 169],\n  [14, 171],\n  [15, 80],\n  [16, 167],\n  [17, 166],\n  [18, 174],\n  [19, 173],\n  [20, 174],\n  [21, 173],\n  [22, 173],\n  [23, 171],\n  [24, 80],\n  [25, 169],\n  [26, 171],\n  [27, 169],\n]) as Theme\n\nexport const dark_red_alt1_Button = n407 as Theme\nexport const dark_red_alt1_Switch = n407 as Theme\nexport const dark_red_alt1_TooltipContent = n407 as Theme\nexport const dark_red_alt1_SliderTrack = n407 as Theme\nconst n408 = t([\n  [12, 166],\n  [13, 167],\n  [14, 168],\n  [15, 169],\n  [16, 165],\n  [17, 164],\n  [18, 174],\n  [19, 173],\n  [20, 174],\n  [21, 173],\n  [22, 0],\n  [23, 80],\n  [24, 172],\n  [25, 171],\n  [26, 80],\n  [27, 80],\n]) as Theme\n\nexport const dark_red_alt1_Checkbox = n408 as Theme\nexport const dark_red_alt1_RadioGroupItem = n408 as Theme\nexport const dark_red_alt1_Input = n408 as Theme\nexport const dark_red_alt1_TextArea = n408 as Theme\nconst n409 = t([\n  [12, 0],\n  [13, 174],\n  [14, 173],\n  [15, 172],\n  [16, 0],\n  [17, 0],\n  [18, 165],\n  [19, 166],\n  [20, 165],\n  [21, 166],\n  [22, 164],\n  [23, 172],\n  [24, 80],\n  [25, 173],\n  [26, 172],\n  [27, 166],\n]) as Theme\n\nexport const dark_red_alt1_SwitchThumb = n409 as Theme\nconst n410 = t([\n  [12, 80],\n  [13, 171],\n  [14, 169],\n  [15, 168],\n  [16, 172],\n  [17, 173],\n  [18, 165],\n  [19, 166],\n  [20, 165],\n  [21, 166],\n  [22, 166],\n  [23, 168],\n  [24, 167],\n  [25, 169],\n  [26, 168],\n  [27, 171],\n]) as Theme\n\nexport const dark_red_alt1_SliderTrackActive = n410 as Theme\nconst n411 = t([\n  [12, 173],\n  [13, 172],\n  [14, 80],\n  [15, 171],\n  [16, 174],\n  [17, 0],\n  [18, 165],\n  [19, 166],\n  [20, 165],\n  [21, 166],\n  [22, 164],\n  [23, 171],\n  [24, 169],\n  [25, 80],\n  [26, 171],\n  [27, 168],\n]) as Theme\n\nexport const dark_red_alt1_SliderThumb = n411 as Theme\nexport const dark_red_alt1_Tooltip = n411 as Theme\nexport const dark_red_alt1_ProgressIndicator = n411 as Theme\nconst n412 = t([\n  [12, 168],\n  [13, 169],\n  [14, 171],\n  [15, 80],\n  [16, 167],\n  [17, 166],\n  [18, 173],\n  [19, 172],\n  [20, 173],\n  [21, 172],\n  [22, 173],\n  [23, 171],\n  [24, 80],\n  [25, 169],\n  [26, 171],\n  [27, 169],\n]) as Theme\n\nexport const dark_red_alt2_Card = n412 as Theme\nexport const dark_red_alt2_DrawerFrame = n412 as Theme\nexport const dark_red_alt2_Progress = n412 as Theme\nexport const dark_red_alt2_TooltipArrow = n412 as Theme\nconst n413 = t([\n  [12, 169],\n  [13, 171],\n  [14, 80],\n  [15, 172],\n  [16, 168],\n  [17, 167],\n  [18, 173],\n  [19, 172],\n  [20, 173],\n  [21, 172],\n  [22, 172],\n  [23, 171],\n  [24, 80],\n  [25, 169],\n  [26, 171],\n  [27, 168],\n]) as Theme\n\nexport const dark_red_alt2_Button = n413 as Theme\nexport const dark_red_alt2_Switch = n413 as Theme\nexport const dark_red_alt2_TooltipContent = n413 as Theme\nexport const dark_red_alt2_SliderTrack = n413 as Theme\nconst n414 = t([\n  [12, 167],\n  [13, 168],\n  [14, 169],\n  [15, 171],\n  [16, 166],\n  [17, 165],\n  [18, 173],\n  [19, 172],\n  [20, 173],\n  [21, 172],\n  [22, 174],\n  [23, 80],\n  [24, 172],\n  [25, 171],\n  [26, 80],\n  [27, 171],\n]) as Theme\n\nexport const dark_red_alt2_Checkbox = n414 as Theme\nexport const dark_red_alt2_RadioGroupItem = n414 as Theme\nexport const dark_red_alt2_Input = n414 as Theme\nexport const dark_red_alt2_TextArea = n414 as Theme\nconst n415 = t([\n  [12, 174],\n  [13, 173],\n  [14, 172],\n  [15, 80],\n  [16, 0],\n  [17, 0],\n  [18, 166],\n  [19, 167],\n  [20, 166],\n  [21, 167],\n  [22, 164],\n  [23, 172],\n  [24, 80],\n  [25, 173],\n  [26, 172],\n  [27, 167],\n]) as Theme\n\nexport const dark_red_alt2_SwitchThumb = n415 as Theme\nconst n416 = t([\n  [12, 171],\n  [13, 169],\n  [14, 168],\n  [15, 167],\n  [16, 80],\n  [17, 172],\n  [18, 166],\n  [19, 167],\n  [20, 166],\n  [21, 167],\n  [22, 167],\n  [23, 168],\n  [24, 167],\n  [25, 169],\n  [26, 168],\n  [27, 80],\n]) as Theme\n\nexport const dark_red_alt2_SliderTrackActive = n416 as Theme\nconst n417 = t([\n  [12, 172],\n  [13, 80],\n  [14, 171],\n  [15, 169],\n  [16, 173],\n  [17, 174],\n  [18, 166],\n  [19, 167],\n  [20, 166],\n  [21, 167],\n  [22, 165],\n  [23, 171],\n  [24, 169],\n  [25, 80],\n  [26, 171],\n  [27, 169],\n]) as Theme\n\nexport const dark_red_alt2_SliderThumb = n417 as Theme\nexport const dark_red_alt2_Tooltip = n417 as Theme\nexport const dark_red_alt2_ProgressIndicator = n417 as Theme\nconst n418 = t([\n  [12, 169],\n  [13, 171],\n  [14, 80],\n  [15, 172],\n  [16, 168],\n  [17, 167],\n  [19, 80],\n  [20, 172],\n  [21, 80],\n  [22, 172],\n  [23, 80],\n  [24, 172],\n  [25, 171],\n  [26, 80],\n  [27, 168],\n]) as Theme\n\nexport const dark_red_active_Card = n418 as Theme\nexport const dark_red_active_DrawerFrame = n418 as Theme\nexport const dark_red_active_Progress = n418 as Theme\nexport const dark_red_active_TooltipArrow = n418 as Theme\nconst n419 = t([\n  [12, 171],\n  [13, 80],\n  [14, 172],\n  [15, 173],\n  [16, 169],\n  [17, 168],\n  [19, 80],\n  [20, 172],\n  [21, 80],\n  [22, 80],\n  [23, 80],\n  [24, 172],\n  [25, 171],\n  [26, 80],\n  [27, 167],\n]) as Theme\n\nexport const dark_red_active_Button = n419 as Theme\nexport const dark_red_active_Switch = n419 as Theme\nexport const dark_red_active_TooltipContent = n419 as Theme\nexport const dark_red_active_SliderTrack = n419 as Theme\nconst n420 = t([\n  [12, 168],\n  [13, 169],\n  [14, 171],\n  [15, 80],\n  [16, 167],\n  [17, 166],\n  [19, 80],\n  [20, 172],\n  [21, 80],\n  [22, 173],\n  [23, 172],\n  [24, 173],\n  [25, 80],\n  [26, 172],\n  [27, 169],\n]) as Theme\n\nexport const dark_red_active_Checkbox = n420 as Theme\nexport const dark_red_active_RadioGroupItem = n420 as Theme\nexport const dark_red_active_Input = n420 as Theme\nexport const dark_red_active_TextArea = n420 as Theme\nconst n421 = t([\n  [12, 173],\n  [13, 172],\n  [14, 80],\n  [15, 171],\n  [16, 174],\n  [17, 0],\n  [19, 168],\n  [20, 167],\n  [21, 168],\n  [22, 164],\n  [23, 80],\n  [24, 171],\n  [25, 172],\n  [26, 80],\n  [27, 168],\n]) as Theme\n\nexport const dark_red_active_SwitchThumb = n421 as Theme\nconst n422 = t([\n  [12, 169],\n  [13, 168],\n  [14, 167],\n  [15, 166],\n  [16, 171],\n  [17, 80],\n  [19, 168],\n  [20, 167],\n  [21, 168],\n  [22, 168],\n  [23, 167],\n  [24, 166],\n  [25, 168],\n  [26, 167],\n  [27, 172],\n]) as Theme\n\nexport const dark_red_active_SliderTrackActive = n422 as Theme\nconst n423 = t([\n  [12, 80],\n  [13, 171],\n  [14, 169],\n  [15, 168],\n  [16, 172],\n  [17, 173],\n  [19, 168],\n  [20, 167],\n  [21, 168],\n  [22, 166],\n  [23, 169],\n  [24, 168],\n  [25, 171],\n  [26, 169],\n  [27, 171],\n]) as Theme\n\nexport const dark_red_active_SliderThumb = n423 as Theme\nexport const dark_red_active_Tooltip = n423 as Theme\nexport const dark_red_active_ProgressIndicator = n423 as Theme\n\nexport const textSizes = {\n  $1: {\n    fontSize: 8,\n    lineHeight: 12,\n  },\n  $2: {\n    fontSize: 12,\n    lineHeight: 16,\n  },\n  $3: {\n    fontSize: 14,\n    lineHeight: 20,\n  },\n}\n"
  },
  {
    "path": "src/components/Editor/ui/src/global.ts",
    "content": "// @ts-nocheck\nimport { config } from './tamagui.config'\n\nexport type Conf = typeof config\n\ndeclare module 'tamagui' {\n  interface TamaguiCustomConfig extends Conf {}\n\n  interface TypeOverride {\n    groupNames(): 'header' | 'item' | 'blocknode' | 'pathitem' | 'icon'\n  }\n}\n\nexport default config\n"
  },
  {
    "path": "src/components/Editor/ui/src/helpers.ts",
    "content": "/* eslint-disable @typescript-eslint/naming-convention */\n// @ts-nocheck\ntype ObjectType = Record<PropertyKey, unknown>\n\ntype PickByValue<OBJ_T, VALUE_T> = // From https://stackoverflow.com/a/55153000\n  Pick<OBJ_T, { [K in keyof OBJ_T]: OBJ_T[K] extends VALUE_T ? K : never }[keyof OBJ_T]>\n\ntype ObjectEntries<OBJ_T> = // From https://stackoverflow.com/a/60142095\n  {\n    [K in keyof OBJ_T]: [keyof PickByValue<OBJ_T, OBJ_T[K]>, OBJ_T[K]]\n  }[keyof OBJ_T][]\n\nexport const objectKeys = <O extends Object>(obj: O) => Object.keys(obj) as Array<keyof O>\n\nexport function objectEntries<OBJ_T extends ObjectType>(obj: OBJ_T): ObjectEntries<OBJ_T> {\n  return Object.entries(obj) as ObjectEntries<OBJ_T>\n}\n\ntype EntriesType = [PropertyKey, unknown][] | ReadonlyArray<readonly [PropertyKey, unknown]>\n\n// Existing Utils\ntype DeepWritable<OBJ_T> = {\n  -readonly [P in keyof OBJ_T]: DeepWritable<OBJ_T[P]>\n}\ntype UnionToIntersection<UNION_T> = // From https://stackoverflow.com/a/50375286\n  (UNION_T extends any ? (k: UNION_T) => void : never) extends (k: infer I) => void ? I : never\n\n// New Utils\ntype UnionObjectFromArrayOfPairs<ARR_T extends EntriesType> =\n  DeepWritable<ARR_T> extends (infer R)[]\n    ? R extends [infer key, infer val]\n      ? { [prop in key & PropertyKey]: val }\n      : never\n    : never\ntype MergeIntersectingObjects<ObjT> = { [key in keyof ObjT]: ObjT[key] }\ntype EntriesToObject<ARR_T extends EntriesType> = MergeIntersectingObjects<\n  UnionToIntersection<UnionObjectFromArrayOfPairs<ARR_T>>\n>\n\nexport function objectFromEntries<ARR_T extends EntriesType>(arr: ARR_T): EntriesToObject<ARR_T> {\n  return Object.fromEntries(arr) as EntriesToObject<ARR_T>\n}\n"
  },
  {
    "path": "src/components/Editor/ui/src/icons.tsx",
    "content": "// /* eslint-disable react/prop-types */\n// /* eslint-disable react/destructuring-assignment */\nimport React from 'react'\n\nexport { ChevronDown, ChevronUp } from '@tamagui/lucide-icons'\n\nconst DefaultIconColor = '#2C2C2C'\n\nexport const Check = ({\n  color = DefaultIconColor,\n  size = '1em',\n  ...props\n}: {\n  color?: string\n  size?: string | number\n}) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" width={size} height={size} fill=\"none\" {...props}>\n      <path\n        stroke={color}\n        strokeLinecap=\"round\"\n        strokeWidth={1.2}\n        d=\"m16.03 5.682-5.855 7.217c-.538.664-.808.995-1.175 1.016-.367.022-.672-.277-1.284-.873l-2.603-2.54\"\n      />\n    </svg>\n  )\n}\n"
  },
  {
    "path": "src/components/Editor/ui/src/index.tsx",
    "content": "export * from 'tamagui'\nexport { default as config } from './tamagui/tamagui.config'\n\nexport { Button as TButton, Paragraph as TParagraph, Section as TSection, Tooltip as TTooltip } from 'tamagui'\nexport { Button, AccountTypeButton } from './button'\nexport * from './container'\nexport * from './icons'\nexport { default as MenuItem } from './menu-item'\nexport { default as ResizeHandle } from './resize-handle'\n// export * from './toast'\nexport { default as Tooltip } from './tooltip'\nexport { default as EmbedComponent } from './embed-links'\nexport * from './toggle'\n"
  },
  {
    "path": "src/components/Editor/ui/src/input.ts",
    "content": "import { styled, Input, View, Text } from 'tamagui'\n\nexport const StyledInput = styled(Input, {\n  name: 'StyledInput',\n  flex: 1,\n  backgroundColor: 'transparent',\n  padding: '$1',\n  pr: '$4',\n  color: '$white',\n  outlineWidth: 0,\n})\n\nexport const StyledResultCount = styled(Text, {\n  name: 'StyledResultCount',\n  position: 'absolute',\n  right: '$2',\n  top: '50%',\n  transform: [{ translateY: -'50%' }],\n  fontSize: '$2',\n  color: '$white',\n})\n\nexport const StyledDivider = styled(View, {\n  name: 'StyledDivider',\n  mx: '$2',\n  height: '$4',\n  width: 1,\n  backgroundColor: '$gray700', // Adjusted for Tamagui colors\n})\n"
  },
  {
    "path": "src/components/Editor/ui/src/menu-item.tsx",
    "content": "import React from 'react'\nimport { ListItem, ListItemProps } from '@tamagui/list-item'\nimport { SizableText } from '@tamagui/text'\n\n// @ts-ignore Produces \"union type that is too complex to present\" error.\nconst MenuItem: React.FC<ListItemProps> = ({ disabled, title, icon, iconAfter, children, ...props }) => {\n  return (\n    <ListItem\n      hoverTheme\n      pressTheme\n      size=\"$2\"\n      focusTheme\n      paddingVertical=\"$2\"\n      paddingHorizontal=\"$4\"\n      textAlign=\"left\"\n      outlineColor=\"transparent\"\n      space=\"$2\"\n      opacity={disabled ? 0.5 : 1}\n      userSelect=\"none\"\n      cursor={disabled ? 'not-allowed' : 'default'}\n      title={\n        title ? (\n          <SizableText\n            fontSize=\"$2\"\n            cursor={disabled ? 'not-allowed' : 'default'}\n            userSelect=\"none\"\n            color={props.color}\n          >\n            {title}\n          </SizableText>\n        ) : undefined\n      }\n      icon={icon}\n      iconAfter={iconAfter}\n      {...props}\n    >\n      {children}\n    </ListItem>\n  )\n}\n\nexport default MenuItem\n"
  },
  {
    "path": "src/components/Editor/ui/src/resize-handle.ts",
    "content": "import { styled, XStack } from 'tamagui'\n\nconst ResizeHandle = styled(XStack, {\n  position: 'absolute',\n  width: '8px',\n  height: '32px',\n  top: 'calc(50% - 16px)',\n  zIndex: '$zIndex.5',\n  bg: '$color',\n  borderColor: '$background',\n  borderWidth: 1,\n  borderStyle: 'solid',\n  borderRadius: '5px',\n  cursor: 'ew-resize',\n})\n\nexport default ResizeHandle\n"
  },
  {
    "path": "src/components/Editor/ui/src/section.tsx",
    "content": "import React, { ComponentProps } from 'react'\nimport { YStack } from 'tamagui'\n\nconst Section = ({ children, ...props }: ComponentProps<typeof YStack>) => {\n  return (\n    <YStack borderBottomWidth={1} borderBottomColor=\"black\" borderColor=\"$gray6\" paddingVertical=\"$4\" {...props}>\n      {children}\n    </YStack>\n  )\n}\n\nexport default Section\n"
  },
  {
    "path": "src/components/Editor/ui/src/tamagui/config/animations.ts",
    "content": "import { createAnimations } from '@tamagui/animations-css'\n\nconst animations = createAnimations({\n  fast: 'ease-in-out 150ms',\n  medium: 'ease-in-out 300ms',\n  slow: 'ease-in-out 450ms',\n  slideInDownSlow: {\n    type: 'spring',\n    damping: 15,\n    mass: 1,\n    stiffness: 120,\n    opacity: {\n      overshootClamping: true,\n    },\n  },\n  slideInDownMedium: {\n    type: 'timing',\n    duration: 300,\n  },\n  slideInDownFast: {\n    type: 'timing',\n    duration: 150,\n  },\n})\n\nexport default animations\n"
  },
  {
    "path": "src/components/Editor/ui/src/tamagui/config/create-generic-font.ts",
    "content": "import { GenericFont, createFont } from '@tamagui/web'\n\nconst genericFontSizes = {\n  1: 10,\n  2: 11,\n  3: 12,\n  4: 14,\n  5: 15,\n  6: 16,\n  7: 20,\n  8: 22,\n  9: 30,\n  10: 42,\n  11: 52,\n  12: 62,\n  13: 72,\n  14: 92,\n  15: 114,\n  16: 124,\n} as const\n\nfunction createGenericFont<A extends GenericFont<keyof typeof genericFontSizes>>(\n  family: string,\n  font: Partial<A> = {},\n  {\n    sizeLineHeight = (val) => val * 1.35,\n  }: {\n    sizeLineHeight?: (val: number) => number\n  } = {},\n): A {\n  const size = font.size || genericFontSizes\n  return createFont({\n    family,\n    size,\n    lineHeight: Object.fromEntries(Object.entries(size).map(([k, v]) => [k, sizeLineHeight(+v)])) as typeof size,\n    weight: { 0: '300' },\n    letterSpacing: { 4: 0 },\n    ...(font as any),\n  })\n}\n\nexport default createGenericFont\n"
  },
  {
    "path": "src/components/Editor/ui/src/tamagui/config/fonts.ts",
    "content": "import { createInterFont } from '@tamagui/font-inter'\nimport createGenericFont from './create-generic-font'\n\nexport const headingFont = createInterFont(\n  {\n    size: {\n      1: 36,\n      2: 30,\n      3: 24,\n      4: 22,\n      5: 20,\n      6: 18,\n      true: 30,\n    },\n    weight: {\n      1: '700',\n      2: '500',\n      3: '400',\n      4: '200',\n    },\n    face: {\n      700: { normal: 'InterBold' },\n      500: { normal: 'InterBold' },\n      400: { normal: 'InterBold' },\n      200: { normal: 'InterBold' },\n    },\n  },\n  {\n    sizeSize: (size) => size,\n    sizeLineHeight: (fontSize) => fontSize * 1.25,\n  },\n)\n\nexport const bodyFont = createInterFont(\n  {\n    face: {\n      700: { normal: 'InterBold' },\n    },\n  },\n  {\n    sizeSize: (size) => Math.round(size * 1.1),\n    sizeLineHeight: (size) => size + 5,\n  },\n)\n\nexport const monoFont = createGenericFont(\n  `\"ui-monospace\", \"SFMono-Regular\", \"SF Mono\", Menlo, Consolas, \"Liberation Mono\", monospace`,\n  {\n    weight: {\n      1: '500',\n    },\n    size: {\n      1: 11,\n      2: 12,\n      3: 13,\n      4: 14,\n      5: 16,\n      6: 18,\n      7: 20,\n      8: 22,\n      9: 30,\n      10: 42,\n      11: 52,\n      12: 62,\n      13: 72,\n      14: 92,\n      15: 114,\n      16: 124,\n    },\n  },\n  {\n    sizeLineHeight: (x) => x * 1.5,\n  },\n)\n\nexport const editorBody = createGenericFont(\n  `Georgia, Times, \"Times New Roman\", serif`,\n  {\n    weight: {\n      1: '500',\n    },\n    size: {\n      1: 12,\n      2: 14,\n      3: 16,\n      4: 18,\n      5: 20,\n      6: 22,\n      7: 28,\n      8: 32,\n      9: 40,\n      10: 42,\n      11: 52,\n      12: 62,\n      13: 72,\n      14: 92,\n      15: 114,\n      16: 124,\n    },\n  },\n  {\n    sizeLineHeight: (x) => x * 1.5,\n  },\n)\n"
  },
  {
    "path": "src/components/Editor/ui/src/tamagui/config/media.ts",
    "content": "import { createMedia } from '@tamagui/react-native-media-driver'\n\nexport const media = createMedia({\n  xxs: { maxWidth: 390 },\n  xs: { maxWidth: 660 },\n  sm: { maxWidth: 768 },\n  md: { maxWidth: 1024 },\n  lg: { maxWidth: 1280 },\n  xl: { maxWidth: 1650 },\n\n  gtXs: { minWidth: 660 + 1 },\n  gtSm: { minWidth: 768 + 1 },\n  gtMd: { minWidth: 1024 + 1 },\n  gtLg: { minWidth: 1280 + 1 },\n  gtXl: { minWidth: 1650 + 1 },\n})\n\n// note all the non \"gt\" ones should be true to start to match mobile-first\n// we're aiming for \"xs\" to be the default to \"gtXs\" true too\nexport const mediaQueryDefaultActive = {\n  xxs: false,\n  xs: true,\n  sm: true,\n  md: true,\n  lg: true,\n  xl: true,\n\n  gtXs: false,\n  gtSm: false,\n  gtMd: false,\n  gtLg: false,\n  gtXl: false,\n}\n"
  },
  {
    "path": "src/components/Editor/ui/src/tamagui/config/mediaEmbed.ts",
    "content": "import { CiImageOn, CiVideoOn } from 'react-icons/ci'\n// import { LuAudioLines } from \"react-icons/lu\";\n\nconst mediaConfig = {\n  image: {\n    mediaType: 'image',\n    icon: CiImageOn,\n    hint: 'Add an Image',\n    uploadOptionHint: 'Upload Image',\n    embedPlaceholder: 'Paste your link here...',\n    embedOptionHint: 'Embed Link',\n  },\n  video: {\n    mediaType: 'video',\n    icon: CiVideoOn,\n    hint: 'Add a Video',\n    uploadOptionHint: 'Upload Video',\n    embedPlaceholder: 'Paste your link here...',\n    embedOptionHint: 'Embed Video',\n  },\n  // audio: {\n  //   icon: LuAudioLines,\n  //   hint: \"Add an audio file\",\n  //   uploadOptionHint: \"Upload Audio File\",\n  //   embedPlaceholder: \"Paste your link here...\",\n  //   embedOptionHint: \"Embed Audio\",\n  // }\n}\n\nexport default mediaConfig\n"
  },
  {
    "path": "src/components/Editor/ui/src/tamagui/tamagui.config.ts",
    "content": "import { createTamagui } from '@tamagui/core'\nimport { shorthands } from '@tamagui/shorthands'\nimport { createTokens } from '@tamagui/web'\nimport animations from './config/animations'\nimport { bodyFont, editorBody, headingFont, monoFont } from './config/fonts'\nimport { media, mediaQueryDefaultActive } from './config/media'\nimport radius from './themes/token-radius'\nimport { size } from './themes/token-size'\nimport space from './themes/token-space'\nimport zIndex from './themes/token-z-index'\n\nimport * as themes from './themes/themes-generated'\nimport { color } from './themes/token-colors'\n\nconst conf = {\n  themes: themes.themes,\n  defaultFont: 'body',\n  animations,\n  shouldAddPrefersColorThemes: true,\n  themeClassNameOnRoot: true,\n  shorthands,\n  fonts: {\n    heading: headingFont,\n    body: bodyFont,\n    mono: monoFont,\n    editorBody: editorBody,\n  },\n  tokens: createTokens({\n    color,\n    radius,\n    zIndex,\n    space,\n    size,\n    opacity: {\n      low: 0.4,\n      medium: 0.6,\n      high: 0.8,\n      full: 1.0,\n    },\n  }),\n  media,\n  settings: {\n    webContainerType: 'inherit',\n  },\n} satisfies Parameters<typeof createTamagui>['0']\n\n// @ts-ignore\nconf.mediaQueryDefaultActive = mediaQueryDefaultActive\nconst config = createTamagui(conf)\n\nexport default config\n"
  },
  {
    "path": "src/components/Editor/ui/src/tamagui/themes/colors.ts",
    "content": "import { grayDark, gray } from '@tamagui/themes'\n\nexport {\n  blue,\n  blueDark,\n  // gray,\n  // grayDark,\n  green,\n  greenDark,\n  orange,\n  orangeDark,\n  pink,\n  pinkDark,\n  purple,\n  purpleDark,\n  red,\n  redDark,\n  yellow,\n  yellowDark,\n  whiteA,\n  blackA,\n} from '@tamagui/themes'\n\nexport const lightTransparent = 'rgba(255,255,255,0)'\nexport const darkTransparent = 'rgba(10,10,10,0)'\n\nexport const brand = {\n  brand1: 'hsl(180, 29%, 17%)',\n  brand2: 'hsl(180, 36%, 22%)',\n  brand3: 'hsl(166, 30%, 29%)',\n  brand4: 'hsl(166, 55%, 31%)',\n  brand5: 'hsl(171, 96%, 28%)',\n  brand6: 'hsl(148, 44%, 47%)',\n  brand7: 'hsl(144, 55%, 57%)',\n  brand8: 'hsl(144, 73%, 68%)',\n  brand9: 'hsl(133, 54%, 78%)',\n  brand10: 'hsl(133, 63%, 83%)',\n  brand11: 'hsl(122, 53%, 88%)', // PLEASE manually sync with editor.css .seed-app-dark .ProseMirror .hm-link\n  brand12: 'hsl(123, 50%, 93%)',\n  brandHighlight: 'hsl(125, 50%, 96%)',\n}\n\nexport const brandDark = {\n  brand1: brand.brand12,\n  brand2: brand.brand11,\n  brand3: 'hsl(125, 100%, 98%)',\n  brand4: 'hsl(166, 55%, 31%)',\n  brand5: 'hsl(171, 96%, 28%)',\n  brand6: 'hsl(148, 44%, 47%)',\n  brand7: 'hsl(144, 55%, 57%)',\n  brand8: 'hsl(144, 73%, 68%)',\n  brand9: 'hsl(133, 54%, 78%)',\n  brand10: 'hsl(166, 30%, 29%)',\n  brand11: brand.brand2,\n  brand12: brand.brand1,\n  brandHighlight: 'hsl(180, 41%, 8%)',\n}\n\nexport const customGray = {\n  gray1: gray.gray1,\n  gray2: gray.gray2,\n  gray3: gray.gray3,\n  gray4: gray.gray4,\n  gray5: gray.gray5,\n  gray6: gray.gray6,\n  gray7: gray.gray7,\n  gray8: gray.gray8,\n  gray9: gray.gray9,\n  gray10: gray.gray10,\n  gray11: gray.gray11,\n  gray12: 'hsl(0, 0%, 99.0%)',\n  gray13: gray.gray12,\n}\n\nexport const customGrayDark = {\n  gray1: grayDark.gray1,\n  gray2: grayDark.gray2,\n  gray3: grayDark.gray3,\n  gray4: grayDark.gray4,\n  gray5: grayDark.gray5,\n  gray6: grayDark.gray6,\n  gray7: grayDark.gray7,\n  gray8: grayDark.gray8,\n  gray9: grayDark.gray9,\n  gray10: grayDark.gray10,\n  gray11: grayDark.gray11,\n  gray12: 'hsl(0, 0%, 18%)',\n  gray13: grayDark.gray12,\n}\n\nexport const lightColor = 'hsl(0, 0%, 9.0%)'\nexport const lightPalette = [\n  lightTransparent,\n  '#fff',\n  '#f9f9f9',\n  'hsl(0, 0%, 97.3%)',\n  'hsl(0, 0%, 95.1%)',\n  'hsl(0, 0%, 94.0%)',\n  'hsl(0, 0%, 92.0%)',\n  'hsl(0, 0%, 89.5%)',\n  'hsl(0, 0%, 81.0%)',\n  'hsl(0, 0%, 56.1%)',\n  'hsl(0, 0%, 50.3%)',\n  'hsl(0, 0%, 42.5%)',\n  lightColor,\n  darkTransparent,\n]\n\nexport const darkColor = '#fff'\nexport const darkPalette = [\n  darkTransparent,\n  '#050505',\n  '#151515',\n  '#191919',\n  '#232323',\n  '#282828',\n  '#323232',\n  '#424242',\n  '#494949',\n  '#545454',\n  '#626262',\n  '#a5a5a5',\n  darkColor,\n  lightTransparent,\n]\n"
  },
  {
    "path": "src/components/Editor/ui/src/tamagui/themes/componentThemeDefinitions.tsx",
    "content": "import { maskOptions } from './templates'\n\nconst overlayThemes = {\n  light: {\n    background: 'rgba(0,0,0,0.5)',\n  },\n  dark: {\n    background: 'rgba(0,0,0,0.9)',\n  },\n}\n\nexport const overlayThemeDefinitions = [\n  {\n    parent: 'light',\n    theme: overlayThemes.light,\n  },\n  {\n    parent: 'dark',\n    theme: overlayThemes.dark,\n  },\n]\n\nexport const componentThemeDefinitions = {\n  ListItem: [\n    {\n      parent: 'light',\n      mask: 'strengthen',\n      ...maskOptions.component,\n    },\n    {\n      parent: 'dark',\n      mask: 'identity',\n      ...maskOptions.component,\n    },\n  ],\n\n  Card: {\n    mask: 'soften',\n    ...maskOptions.component,\n  },\n\n  Button: {\n    mask: 'soften2',\n    ...maskOptions.button,\n  },\n\n  Checkbox: {\n    mask: 'soften2',\n    ...maskOptions.component,\n  },\n\n  Switch: {\n    mask: 'soften2',\n    ...maskOptions.component,\n  },\n\n  SwitchThumb: {\n    mask: 'inverseStrengthen2',\n    ...maskOptions.component,\n    debug: true,\n  },\n\n  TooltipContent: {\n    mask: 'soften2',\n    ...maskOptions.component,\n  },\n\n  DrawerFrame: {\n    mask: 'soften',\n    ...maskOptions.component,\n  },\n\n  Progress: {\n    mask: 'soften',\n    ...maskOptions.component,\n  },\n\n  TooltipArrow: {\n    mask: 'soften',\n    ...maskOptions.component,\n  },\n\n  SliderTrackActive: {\n    mask: 'inverseSoften',\n    ...maskOptions.component,\n  },\n\n  SliderTrack: {\n    mask: 'soften2',\n    ...maskOptions.component,\n  },\n\n  SliderThumb: {\n    mask: 'inverse',\n    ...maskOptions.component,\n  },\n\n  Tooltip: {\n    mask: 'inverse',\n    ...maskOptions.component,\n  },\n\n  ProgressIndicator: {\n    mask: 'inverse',\n    ...maskOptions.component,\n  },\n\n  SheetOverlay: overlayThemeDefinitions,\n  DialogOverlay: overlayThemeDefinitions,\n  ModalOverlay: overlayThemeDefinitions,\n\n  Input: [\n    {\n      parent: 'light',\n      mask: 'strengthenButSoftenBorder',\n      ...maskOptions.component,\n    },\n    {\n      parent: 'dark',\n      mask: 'softenBorder',\n      ...maskOptions.component,\n    },\n  ],\n\n  TextArea: [\n    {\n      parent: 'light',\n      mask: 'strengthenButSoftenBorder',\n      ...maskOptions.component,\n    },\n    {\n      parent: 'dark',\n      mask: 'softenBorder',\n      ...maskOptions.component,\n    },\n  ],\n}\n"
  },
  {
    "path": "src/components/Editor/ui/src/tamagui/themes/helpers.ts",
    "content": "/* eslint-disable @typescript-eslint/naming-convention */\ntype ObjectType = Record<PropertyKey, unknown>\n\ntype PickByValue<OBJ_T, VALUE_T> = // From https://stackoverflow.com/a/55153000\n  Pick<OBJ_T, { [K in keyof OBJ_T]: OBJ_T[K] extends VALUE_T ? K : never }[keyof OBJ_T]>\n\ntype ObjectEntries<OBJ_T> = // From https://stackoverflow.com/a/60142095\n  {\n    [K in keyof OBJ_T]: [keyof PickByValue<OBJ_T, OBJ_T[K]>, OBJ_T[K]]\n  }[keyof OBJ_T][]\n\nexport const objectKeys = <O extends object>(obj: O) => Object.keys(obj) as (keyof O)[]\n\nexport function objectEntries<OBJ_T extends ObjectType>(obj: OBJ_T): ObjectEntries<OBJ_T> {\n  return Object.entries(obj) as ObjectEntries<OBJ_T>\n}\n\ntype EntriesType = [PropertyKey, unknown][] | readonly (readonly [PropertyKey, unknown])[]\n\n// Existing Utils\ntype DeepWritable<OBJ_T> = {\n  -readonly [P in keyof OBJ_T]: DeepWritable<OBJ_T[P]>\n}\ntype UnionToIntersection<UNION_T> = // From https://stackoverflow.com/a/50375286\n  (UNION_T extends unknown ? (k: UNION_T) => void : never) extends (k: infer I) => void ? I : never\n\n// New Utils\ntype UnionObjectFromArrayOfPairs<ARR_T extends EntriesType> =\n  DeepWritable<ARR_T> extends (infer R)[]\n    ? R extends [infer key, infer val]\n      ? { [prop in key & PropertyKey]: val }\n      : never\n    : never\ntype MergeIntersectingObjects<ObjT> = { [key in keyof ObjT]: ObjT[key] }\ntype EntriesToObject<ARR_T extends EntriesType> = MergeIntersectingObjects<\n  UnionToIntersection<UnionObjectFromArrayOfPairs<ARR_T>>\n>\n\nexport function objectFromEntries<ARR_T extends EntriesType>(arr: ARR_T): EntriesToObject<ARR_T> {\n  return Object.fromEntries(arr) as EntriesToObject<ARR_T>\n}\n"
  },
  {
    "path": "src/components/Editor/ui/src/tamagui/themes/masks.tsx",
    "content": "import {\n  combineMasks,\n  createIdentityMask,\n  createInverseMask,\n  createMask,\n  createSoftenMask,\n  createStrengthenMask,\n  skipMask,\n} from '@tamagui/create-theme'\n\nconst masks = {\n  identity: createIdentityMask(),\n  soften: createSoftenMask(),\n  soften2: createSoftenMask({ strength: 2 }),\n  soften3: createSoftenMask({ strength: 3 }),\n  strengthen: createStrengthenMask(),\n  inverse: createInverseMask(),\n  inverseSoften: combineMasks(createInverseMask(), createSoftenMask({ strength: 2 })),\n  inverseStrengthen2: combineMasks(createInverseMask(), createStrengthenMask({ strength: 2 })),\n  strengthenButSoftenBorder: createMask((template, options) => {\n    const stronger = createStrengthenMask().mask(template, options)\n    const softer = createSoftenMask().mask(template, options)\n    return {\n      ...stronger,\n      borderColor: softer.borderColor,\n      borderColorHover: softer.borderColorHover,\n      borderColorPress: softer.borderColorPress,\n      borderColorFocus: softer.borderColorFocus,\n    }\n  }),\n  softenBorder: createMask((template, options) => {\n    const plain = skipMask.mask(template, options)\n    const softer = createSoftenMask().mask(template, options)\n    return {\n      ...plain,\n      borderColor: softer.borderColor,\n      borderColorHover: softer.borderColorHover,\n      borderColorPress: softer.borderColorPress,\n      borderColorFocus: softer.borderColorFocus,\n    }\n  }),\n}\n\nexport default masks\n"
  },
  {
    "path": "src/components/Editor/ui/src/tamagui/themes/palettes.tsx",
    "content": "import { objectFromEntries, objectKeys } from './helpers'\nimport { colorTokens } from './token-colors'\n\nconst palettes = (() => {\n  const lightTransparent = 'rgba(255,255,255,0)'\n  const darkTransparent = 'rgba(10,10,10,0)'\n\n  const transparent = (hsl: string, opacity = 0) => hsl.replace(`%)`, `%, ${opacity})`).replace(`hsl(`, `hsla(`)\n\n  const getColorPalette = (colors: object, color: string): string[] => {\n    const colorPalette = Object.values(colors)\n\n    // were re-ordering these\n    const [head, tail] = [colorPalette.slice(0, 6), colorPalette.slice(colorPalette.length - 5)]\n\n    // add our transparent colors first/last\n    // and make sure the last (foreground) color is white/black rather than colorful\n    // this is mostly for consistency with the older theme-base\n    return [transparent(colorPalette[0]), ...head, ...tail, color, transparent(colorPalette[colorPalette.length - 1])]\n  }\n\n  const lightColor = 'hsl(0, 0%, 9.0%)'\n  const lightPalette = [\n    lightTransparent,\n    '#fff',\n    '#f9f9f9',\n    'hsl(0, 0%, 97.3%)',\n    'hsl(0, 0%, 95.1%)',\n    'hsl(0, 0%, 94.0%)',\n    'hsl(0, 0%, 92.0%)',\n    'hsl(0, 0%, 89.5%)',\n    'hsl(0, 0%, 81.0%)',\n    'hsl(0, 0%, 56.1%)',\n    'hsl(0, 0%, 50.3%)',\n    'hsl(0, 0%, 42.5%)',\n    lightColor,\n    darkTransparent,\n  ]\n\n  const darkColor = '#fff'\n  const darkPalette = [\n    darkTransparent,\n    '#050505',\n    '#151515',\n    '#191919',\n    '#232323',\n    '#282828',\n    '#323232',\n    '#424242',\n    '#494949',\n    '#545454',\n    '#626262',\n    '#a5a5a5',\n    darkColor,\n    lightTransparent,\n  ]\n\n  const lightPalettes = objectFromEntries(\n    objectKeys(colorTokens.light).map(\n      (key) => [`light_${key}`, getColorPalette(colorTokens.light[key], lightColor)] as const,\n    ),\n  )\n\n  const darkPalettes = objectFromEntries(\n    objectKeys(colorTokens.dark).map(\n      (key) => [`dark_${key}`, getColorPalette(colorTokens.dark[key], darkColor)] as const,\n    ),\n  )\n\n  const colorPalettes = {\n    ...lightPalettes,\n    ...darkPalettes,\n  }\n\n  return {\n    light: lightPalette,\n    dark: darkPalette,\n    ...colorPalettes,\n  }\n})()\n\nexport default palettes\n"
  },
  {
    "path": "src/components/Editor/ui/src/tamagui/themes/shadows.tsx",
    "content": "const lightShadowColor = 'rgba(0,0,0,0.02)'\nconst lightShadowColorStrong = 'rgba(0,0,0,0.066)'\nconst darkShadowColor = 'rgba(0,0,0,0.2)'\nconst darkShadowColorStrong = 'rgba(0,0,0,0.3)'\n\nconst shadows = {\n  light: {\n    shadowColor: lightShadowColorStrong,\n    shadowColorHover: lightShadowColorStrong,\n    shadowColorPress: lightShadowColor,\n    shadowColorFocus: lightShadowColor,\n  },\n  dark: {\n    shadowColor: darkShadowColorStrong,\n    shadowColorHover: darkShadowColorStrong,\n    shadowColorPress: darkShadowColor,\n    shadowColorFocus: darkShadowColor,\n  },\n}\n\nexport default shadows\n"
  },
  {
    "path": "src/components/Editor/ui/src/tamagui/themes/templates.tsx",
    "content": "import { MaskOptions } from '@tamagui/create-theme'\n\nimport palettes from './palettes'\n\nconst templateColors = {\n  color1: 1,\n  color2: 2,\n  color3: 3,\n  color4: 4,\n  color5: 5,\n  color6: 6,\n  color7: 7,\n  color8: 8,\n  color9: 9,\n  color10: 10,\n  color11: 11,\n  color12: 12,\n}\n\n// templates use the palette and specify index\n// negative goes backwards from end so -1 is the last item\nconst template = {\n  ...templateColors,\n  // the background, color, etc keys here work like generics - they make it so you\n  // can publish components for others to use without mandating a specific color scale\n  // the @tamagui/button Button component looks for `$background`, so you set the\n  // dark_red_Button theme to have a stronger background than the dark_red theme.\n  background: 2,\n  backgroundHover: 3,\n  backgroundPress: 4,\n  backgroundFocus: 5,\n  backgroundStrong: 1,\n  backgroundTransparent: 0,\n  color: -1,\n  colorHover: -2,\n  colorPress: -1,\n  colorFocus: -2,\n  colorTransparent: -0,\n  borderColor: 5,\n  borderColorHover: 6,\n  borderColorFocus: 4,\n  borderColorPress: 5,\n  placeholderColor: -4,\n  outlineColor: 5,\n}\n\nconst templates = {\n  base: template,\n  colorLight: {\n    ...template,\n    // light color themes are a bit less sensitive\n    borderColor: 4,\n    borderColorHover: 5,\n    borderColorFocus: 4,\n    borderColorPress: 4,\n  },\n}\n\nconst overrideShadows = {\n  shadowColor: 0,\n  shadowColorHover: 0,\n  shadowColorPress: 0,\n  shadowColorFocus: 0,\n}\n\nconst overrideWithColors = {\n  ...overrideShadows,\n  color: 0,\n  colorHover: 0,\n  colorFocus: 0,\n  colorPress: 0,\n}\n\nconst baseMaskOptions: MaskOptions = {\n  override: overrideShadows,\n  skip: overrideShadows,\n  // avoids the transparent ends\n  max: palettes.light.length - 2,\n  min: 1,\n}\n\nconst skipShadowsAndColors = {\n  ...overrideShadows,\n  ...templateColors,\n}\n\nconst maskOptions = {\n  component: {\n    ...baseMaskOptions,\n    override: overrideWithColors,\n    skip: skipShadowsAndColors,\n  },\n  alt: {\n    ...baseMaskOptions,\n  },\n  button: {\n    ...baseMaskOptions,\n    override: {\n      ...overrideWithColors,\n      borderColor: 'transparent',\n      borderColorHover: 'transparent',\n    },\n    skip: skipShadowsAndColors,\n  },\n} satisfies Record<string, MaskOptions>\n\nexport { templates, maskOptions }\n"
  },
  {
    "path": "src/components/Editor/ui/src/tamagui/themes/theme.ts",
    "content": "import { createThemeBuilder } from '@tamagui/theme-builder'\n\nimport masks from './masks'\nimport palettes from './palettes'\nimport shadows from './shadows'\nimport { templates } from './templates'\nimport { darkColors, lightColors } from './token-colors'\n\nconst colorThemeDefinition = (colorName: string) => [\n  {\n    parent: 'light',\n    palette: colorName,\n    template: 'colorLight',\n  },\n  {\n    parent: 'dark',\n    palette: colorName,\n    template: 'base',\n  },\n]\n\nconst themesBuilder = createThemeBuilder()\n  .addPalettes({ ...palettes })\n  .addTemplates(templates)\n  .addMasks(masks)\n  .addThemes({\n    light: {\n      template: 'base',\n      palette: 'light',\n      nonInheritedValues: {\n        ...lightColors,\n        ...shadows.light,\n      },\n    },\n    dark: {\n      template: 'base',\n      palette: 'dark',\n      nonInheritedValues: {\n        ...darkColors,\n        ...shadows.dark,\n      },\n    },\n  })\n  .addChildThemes({\n    yellow: colorThemeDefinition('yellow'),\n    green: colorThemeDefinition('green'),\n    blue: colorThemeDefinition('blue'),\n    purple: colorThemeDefinition('purple'),\n    red: colorThemeDefinition('red'),\n    brand: colorThemeDefinition('brand'),\n  })\n\nconst themes = themesBuilder.build()\nexport default themes\n"
  },
  {
    "path": "src/components/Editor/ui/src/tamagui/themes/themes-generated.ts",
    "content": "// @ts-nocheck\ntype Theme = {\n  color1: string\n  color2: string\n  color3: string\n  color4: string\n  color5: string\n  color6: string\n  color7: string\n  color8: string\n  color9: string\n  color10: string\n  color11: string\n  color12: string\n  background: string\n  backgroundHover: string\n  backgroundPress: string\n  backgroundFocus: string\n  backgroundStrong: string\n  backgroundTransparent: string\n  color: string\n  colorHover: string\n  colorPress: string\n  colorFocus: string\n  colorTransparent: string\n  borderColor: string\n  borderColorHover: string\n  borderColorFocus: string\n  borderColorPress: string\n  placeholderColor: string\n  outlineColor: string\n  blue1: string\n  blue2: string\n  blue3: string\n  blue4: string\n  blue5: string\n  blue6: string\n  blue7: string\n  blue8: string\n  blue9: string\n  blue10: string\n  blue11: string\n  blue12: string\n  gray1: string\n  gray2: string\n  gray3: string\n  gray4: string\n  gray5: string\n  gray6: string\n  gray7: string\n  gray8: string\n  gray9: string\n  gray10: string\n  gray11: string\n  gray12: string\n  gray13: string\n  green1: string\n  green2: string\n  green3: string\n  green4: string\n  green5: string\n  green6: string\n  green7: string\n  green8: string\n  green9: string\n  green10: string\n  green11: string\n  green12: string\n  purple1: string\n  purple2: string\n  purple3: string\n  purple4: string\n  purple5: string\n  purple6: string\n  purple7: string\n  purple8: string\n  purple9: string\n  purple10: string\n  purple11: string\n  purple12: string\n  red1: string\n  red2: string\n  red3: string\n  red4: string\n  red5: string\n  red6: string\n  red7: string\n  red8: string\n  red9: string\n  red10: string\n  red11: string\n  red12: string\n  yellow1: string\n  yellow2: string\n  yellow3: string\n  yellow4: string\n  yellow5: string\n  yellow6: string\n  yellow7: string\n  yellow8: string\n  yellow9: string\n  yellow10: string\n  yellow11: string\n  yellow12: string\n  brand1: string\n  brand2: string\n  brand3: string\n  brand4: string\n  brand5: string\n  brand6: string\n  brand7: string\n  brand8: string\n  brand9: string\n  brand10: string\n  brand11: string\n  brand12: string\n  brandHighlight: string\n  shadowColor: string\n  shadowColorHover: string\n  shadowColorPress: string\n  shadowColorFocus: string\n}\n\nfunction t(a: [number, number][]) {\n  const res: Record<string, string> = {}\n  for (const [ki, vi] of a) {\n    res[ks[ki] as string] = colors[vi] as string\n  }\n  return res as Theme\n}\nexport const colors = [\n  '#fff',\n  '#f9f9f9',\n  'hsl(0, 0%, 97.3%)',\n  'hsl(0, 0%, 95.1%)',\n  'hsl(0, 0%, 94.0%)',\n  'hsl(0, 0%, 92.0%)',\n  'hsl(0, 0%, 89.5%)',\n  'hsl(0, 0%, 81.0%)',\n  'hsl(0, 0%, 56.1%)',\n  'hsl(0, 0%, 50.3%)',\n  'hsl(0, 0%, 42.5%)',\n  'hsl(0, 0%, 9.0%)',\n  'rgba(255,255,255,0)',\n  'rgba(10,10,10,0)',\n  'hsl(206, 100%, 99.2%)',\n  'hsl(210, 100%, 98.0%)',\n  'hsl(209, 100%, 96.5%)',\n  'hsl(210, 98.8%, 94.0%)',\n  'hsl(209, 95.0%, 90.1%)',\n  'hsl(209, 81.2%, 84.5%)',\n  'hsl(208, 77.5%, 76.9%)',\n  'hsl(206, 81.9%, 65.3%)',\n  'hsl(206, 100%, 50.0%)',\n  'hsl(208, 100%, 47.3%)',\n  'hsl(211, 100%, 43.2%)',\n  'hsl(211, 100%, 15.0%)',\n  'hsl(0, 0%, 99.0%)',\n  'hsl(0, 0%, 93.0%)',\n  'hsl(0, 0%, 90.9%)',\n  'hsl(0, 0%, 88.7%)',\n  'hsl(0, 0%, 85.8%)',\n  'hsl(0, 0%, 78.0%)',\n  'hsl(0, 0%, 52.3%)',\n  'hsl(0, 0%, 43.5%)',\n  'hsl(136, 50.0%, 98.9%)',\n  'hsl(138, 62.5%, 96.9%)',\n  'hsl(139, 55.2%, 94.5%)',\n  'hsl(140, 48.7%, 91.0%)',\n  'hsl(141, 43.7%, 86.0%)',\n  'hsl(143, 40.3%, 79.0%)',\n  'hsl(146, 38.5%, 69.0%)',\n  'hsl(151, 40.2%, 54.1%)',\n  'hsl(151, 55.0%, 41.5%)',\n  'hsl(152, 57.5%, 37.6%)',\n  'hsl(153, 67.0%, 28.5%)',\n  'hsl(155, 40.0%, 14.0%)',\n  'hsl(280, 65.0%, 99.4%)',\n  'hsl(276, 100%, 99.0%)',\n  'hsl(276, 83.1%, 97.0%)',\n  'hsl(275, 76.4%, 94.7%)',\n  'hsl(275, 70.8%, 91.8%)',\n  'hsl(274, 65.4%, 87.8%)',\n  'hsl(273, 61.0%, 81.7%)',\n  'hsl(272, 60.0%, 73.5%)',\n  'hsl(272, 51.0%, 54.0%)',\n  'hsl(272, 46.8%, 50.3%)',\n  'hsl(272, 50.0%, 45.8%)',\n  'hsl(272, 66.0%, 16.0%)',\n  'hsl(359, 100%, 99.4%)',\n  'hsl(359, 100%, 98.6%)',\n  'hsl(360, 100%, 96.8%)',\n  'hsl(360, 97.9%, 94.8%)',\n  'hsl(360, 90.2%, 91.9%)',\n  'hsl(360, 81.7%, 87.8%)',\n  'hsl(359, 74.2%, 81.7%)',\n  'hsl(359, 69.5%, 74.3%)',\n  'hsl(358, 75.0%, 59.0%)',\n  'hsl(358, 69.4%, 55.2%)',\n  'hsl(358, 65.0%, 48.7%)',\n  'hsl(354, 50.0%, 14.6%)',\n  'hsl(60, 54.0%, 98.5%)',\n  'hsl(52, 100%, 95.5%)',\n  'hsl(55, 100%, 90.9%)',\n  'hsl(54, 100%, 86.6%)',\n  'hsl(52, 97.9%, 82.0%)',\n  'hsl(50, 89.4%, 76.1%)',\n  'hsl(47, 80.4%, 68.0%)',\n  'hsl(48, 100%, 46.1%)',\n  'hsl(53, 92.0%, 50.0%)',\n  'hsl(50, 100%, 48.5%)',\n  'hsl(42, 100%, 29.0%)',\n  'hsl(40, 55.0%, 13.5%)',\n  'hsl(180, 29%, 17%)',\n  'hsl(180, 36%, 22%)',\n  'hsl(166, 30%, 29%)',\n  'hsl(166, 55%, 31%)',\n  'hsl(171, 96%, 28%)',\n  'hsl(148, 44%, 47%)',\n  'hsl(144, 55%, 57%)',\n  'hsl(144, 73%, 68%)',\n  'hsl(133, 54%, 78%)',\n  'hsl(133, 63%, 83%)',\n  'hsl(122, 53%, 88%)',\n  'hsl(123, 50%, 93%)',\n  'hsl(125, 50%, 96%)',\n  'rgba(0,0,0,0.066)',\n  'rgba(0,0,0,0.02)',\n  '#050505',\n  '#151515',\n  '#191919',\n  '#232323',\n  '#282828',\n  '#323232',\n  '#424242',\n  '#494949',\n  '#545454',\n  '#626262',\n  '#a5a5a5',\n  'hsl(212, 35.0%, 9.2%)',\n  'hsl(216, 50.0%, 11.8%)',\n  'hsl(214, 59.4%, 15.3%)',\n  'hsl(214, 65.8%, 17.9%)',\n  'hsl(213, 71.2%, 20.2%)',\n  'hsl(212, 77.4%, 23.1%)',\n  'hsl(211, 85.1%, 27.4%)',\n  'hsl(211, 89.7%, 34.1%)',\n  'hsl(209, 100%, 60.6%)',\n  'hsl(210, 100%, 66.1%)',\n  'hsl(206, 98.0%, 95.8%)',\n  'hsl(0, 0%, 8.5%)',\n  'hsl(0, 0%, 11.0%)',\n  'hsl(0, 0%, 13.6%)',\n  'hsl(0, 0%, 15.8%)',\n  'hsl(0, 0%, 17.9%)',\n  'hsl(0, 0%, 20.5%)',\n  'hsl(0, 0%, 24.3%)',\n  'hsl(0, 0%, 31.2%)',\n  'hsl(0, 0%, 43.9%)',\n  'hsl(0, 0%, 49.4%)',\n  'hsl(0, 0%, 62.8%)',\n  'hsl(0, 0%, 18%)',\n  'hsl(146, 30.0%, 7.4%)',\n  'hsl(155, 44.2%, 8.4%)',\n  'hsl(155, 46.7%, 10.9%)',\n  'hsl(154, 48.4%, 12.9%)',\n  'hsl(154, 49.7%, 14.9%)',\n  'hsl(154, 50.9%, 17.6%)',\n  'hsl(153, 51.8%, 21.8%)',\n  'hsl(151, 51.7%, 28.4%)',\n  'hsl(151, 49.3%, 46.5%)',\n  'hsl(151, 50.0%, 53.2%)',\n  'hsl(137, 72.0%, 94.0%)',\n  'hsl(284, 20.0%, 9.6%)',\n  'hsl(283, 30.0%, 11.8%)',\n  'hsl(281, 37.5%, 16.5%)',\n  'hsl(280, 41.2%, 20.0%)',\n  'hsl(279, 43.8%, 23.3%)',\n  'hsl(277, 46.4%, 27.5%)',\n  'hsl(275, 49.3%, 34.6%)',\n  'hsl(272, 52.1%, 45.9%)',\n  'hsl(273, 57.3%, 59.1%)',\n  'hsl(275, 80.0%, 71.0%)',\n  'hsl(279, 75.0%, 95.7%)',\n  'hsl(353, 23.0%, 9.8%)',\n  'hsl(357, 34.4%, 12.0%)',\n  'hsl(356, 43.4%, 16.4%)',\n  'hsl(356, 47.6%, 19.2%)',\n  'hsl(356, 51.1%, 21.9%)',\n  'hsl(356, 55.2%, 25.9%)',\n  'hsl(357, 60.2%, 31.8%)',\n  'hsl(358, 65.0%, 40.4%)',\n  'hsl(358, 85.3%, 64.0%)',\n  'hsl(358, 100%, 69.5%)',\n  'hsl(351, 89.0%, 96.0%)',\n  'hsl(45, 100%, 5.5%)',\n  'hsl(46, 100%, 6.7%)',\n  'hsl(45, 100%, 8.7%)',\n  'hsl(45, 100%, 10.4%)',\n  'hsl(47, 100%, 12.1%)',\n  'hsl(49, 100%, 14.3%)',\n  'hsl(49, 90.3%, 18.4%)',\n  'hsl(50, 100%, 22.0%)',\n  'hsl(54, 100%, 68.0%)',\n  'hsl(48, 100%, 47.0%)',\n  'hsl(53, 100%, 91.0%)',\n  'hsl(125, 100%, 98%)',\n  'hsl(180, 41%, 8%)',\n  'rgba(0,0,0,0.3)',\n  'rgba(0,0,0,0.2)',\n  'hsla(60, 54.0%, 98.5%, 0)',\n  'hsla(40, 55.0%, 13.5%, 0)',\n  'hsla(136, 50.0%, 98.9%, 0)',\n  'hsla(155, 40.0%, 14.0%, 0)',\n  'hsla(206, 100%, 99.2%, 0)',\n  'hsla(211, 100%, 15.0%, 0)',\n  'hsla(280, 65.0%, 99.4%, 0)',\n  'hsla(272, 66.0%, 16.0%, 0)',\n  'hsla(359, 100%, 99.4%, 0)',\n  'hsla(354, 50.0%, 14.6%, 0)',\n  'hsla(180, 29%, 17%, 0)',\n  'hsla(125, 50%, 96%, 0)',\n  'hsla(45, 100%, 5.5%, 0)',\n  'hsla(53, 100%, 91.0%, 0)',\n  'hsla(146, 30.0%, 7.4%, 0)',\n  'hsla(137, 72.0%, 94.0%, 0)',\n  'hsla(212, 35.0%, 9.2%, 0)',\n  'hsla(206, 98.0%, 95.8%, 0)',\n  'hsla(284, 20.0%, 9.6%, 0)',\n  'hsla(279, 75.0%, 95.7%, 0)',\n  'hsla(353, 23.0%, 9.8%, 0)',\n  'hsla(351, 89.0%, 96.0%, 0)',\n  'hsla(123, 50%, 93%, 0)',\n  'hsla(180, 41%, 8%, 0)',\n]\n\nconst ks = [\n  'color1',\n  'color2',\n  'color3',\n  'color4',\n  'color5',\n  'color6',\n  'color7',\n  'color8',\n  'color9',\n  'color10',\n  'color11',\n  'color12',\n  'background',\n  'backgroundHover',\n  'backgroundPress',\n  'backgroundFocus',\n  'backgroundStrong',\n  'backgroundTransparent',\n  'color',\n  'colorHover',\n  'colorPress',\n  'colorFocus',\n  'colorTransparent',\n  'borderColor',\n  'borderColorHover',\n  'borderColorFocus',\n  'borderColorPress',\n  'placeholderColor',\n  'outlineColor',\n  'blue1',\n  'blue2',\n  'blue3',\n  'blue4',\n  'blue5',\n  'blue6',\n  'blue7',\n  'blue8',\n  'blue9',\n  'blue10',\n  'blue11',\n  'blue12',\n  'gray1',\n  'gray2',\n  'gray3',\n  'gray4',\n  'gray5',\n  'gray6',\n  'gray7',\n  'gray8',\n  'gray9',\n  'gray10',\n  'gray11',\n  'gray12',\n  'gray13',\n  'green1',\n  'green2',\n  'green3',\n  'green4',\n  'green5',\n  'green6',\n  'green7',\n  'green8',\n  'green9',\n  'green10',\n  'green11',\n  'green12',\n  'purple1',\n  'purple2',\n  'purple3',\n  'purple4',\n  'purple5',\n  'purple6',\n  'purple7',\n  'purple8',\n  'purple9',\n  'purple10',\n  'purple11',\n  'purple12',\n  'red1',\n  'red2',\n  'red3',\n  'red4',\n  'red5',\n  'red6',\n  'red7',\n  'red8',\n  'red9',\n  'red10',\n  'red11',\n  'red12',\n  'yellow1',\n  'yellow2',\n  'yellow3',\n  'yellow4',\n  'yellow5',\n  'yellow6',\n  'yellow7',\n  'yellow8',\n  'yellow9',\n  'yellow10',\n  'yellow11',\n  'yellow12',\n  'brand1',\n  'brand2',\n  'brand3',\n  'brand4',\n  'brand5',\n  'brand6',\n  'brand7',\n  'brand8',\n  'brand9',\n  'brand10',\n  'brand11',\n  'brand12',\n  'brandHighlight',\n  'shadowColor',\n  'shadowColorHover',\n  'shadowColorPress',\n  'shadowColorFocus',\n]\n\nconst n1 = t([\n  [0, 0],\n  [1, 1],\n  [2, 2],\n  [3, 3],\n  [4, 4],\n  [5, 5],\n  [6, 6],\n  [7, 7],\n  [8, 8],\n  [9, 9],\n  [10, 10],\n  [11, 11],\n  [12, 1],\n  [13, 2],\n  [14, 3],\n  [15, 4],\n  [16, 0],\n  [17, 12],\n  [18, 11],\n  [19, 10],\n  [20, 11],\n  [21, 10],\n  [22, 13],\n  [23, 4],\n  [24, 5],\n  [25, 3],\n  [26, 4],\n  [27, 8],\n  [28, 4],\n  [29, 14],\n  [30, 15],\n  [31, 16],\n  [32, 17],\n  [33, 18],\n  [34, 19],\n  [35, 20],\n  [36, 21],\n  [37, 22],\n  [38, 23],\n  [39, 24],\n  [40, 25],\n  [41, 26],\n  [42, 2],\n  [43, 3],\n  [44, 27],\n  [45, 28],\n  [46, 29],\n  [47, 30],\n  [48, 31],\n  [49, 8],\n  [50, 32],\n  [51, 33],\n  [52, 26],\n  [53, 11],\n  [54, 34],\n  [55, 35],\n  [56, 36],\n  [57, 37],\n  [58, 38],\n  [59, 39],\n  [60, 40],\n  [61, 41],\n  [62, 42],\n  [63, 43],\n  [64, 44],\n  [65, 45],\n  [66, 46],\n  [67, 47],\n  [68, 48],\n  [69, 49],\n  [70, 50],\n  [71, 51],\n  [72, 52],\n  [73, 53],\n  [74, 54],\n  [75, 55],\n  [76, 56],\n  [77, 57],\n  [78, 58],\n  [79, 59],\n  [80, 60],\n  [81, 61],\n  [82, 62],\n  [83, 63],\n  [84, 64],\n  [85, 65],\n  [86, 66],\n  [87, 67],\n  [88, 68],\n  [89, 69],\n  [90, 70],\n  [91, 71],\n  [92, 72],\n  [93, 73],\n  [94, 74],\n  [95, 75],\n  [96, 76],\n  [97, 77],\n  [98, 78],\n  [99, 79],\n  [100, 80],\n  [101, 81],\n  [102, 82],\n  [103, 83],\n  [104, 84],\n  [105, 85],\n  [106, 86],\n  [107, 87],\n  [108, 88],\n  [109, 89],\n  [110, 90],\n  [111, 91],\n  [112, 92],\n  [113, 93],\n  [114, 94],\n  [115, 95],\n  [116, 95],\n  [117, 96],\n  [118, 96],\n])\nconst n2 = t([\n  [0, 97],\n  [1, 98],\n  [2, 99],\n  [3, 100],\n  [4, 101],\n  [5, 102],\n  [6, 103],\n  [7, 104],\n  [8, 105],\n  [9, 106],\n  [10, 107],\n  [11, 0],\n  [12, 98],\n  [13, 99],\n  [14, 100],\n  [15, 101],\n  [16, 97],\n  [17, 13],\n  [18, 0],\n  [19, 107],\n  [20, 0],\n  [21, 107],\n  [22, 12],\n  [23, 101],\n  [24, 102],\n  [25, 100],\n  [26, 101],\n  [27, 105],\n  [28, 101],\n  [29, 108],\n  [30, 109],\n  [31, 110],\n  [32, 111],\n  [33, 112],\n  [34, 113],\n  [35, 114],\n  [36, 115],\n  [37, 22],\n  [38, 116],\n  [39, 117],\n  [40, 118],\n  [41, 119],\n  [42, 120],\n  [43, 121],\n  [44, 122],\n  [45, 123],\n  [46, 124],\n  [47, 125],\n  [48, 126],\n  [49, 127],\n  [50, 128],\n  [51, 129],\n  [52, 130],\n  [53, 27],\n  [54, 131],\n  [55, 132],\n  [56, 133],\n  [57, 134],\n  [58, 135],\n  [59, 136],\n  [60, 137],\n  [61, 138],\n  [62, 42],\n  [63, 139],\n  [64, 140],\n  [65, 141],\n  [66, 142],\n  [67, 143],\n  [68, 144],\n  [69, 145],\n  [70, 146],\n  [71, 147],\n  [72, 148],\n  [73, 149],\n  [74, 54],\n  [75, 150],\n  [76, 151],\n  [77, 152],\n  [78, 153],\n  [79, 154],\n  [80, 155],\n  [81, 156],\n  [82, 157],\n  [83, 158],\n  [84, 159],\n  [85, 160],\n  [86, 66],\n  [87, 161],\n  [88, 162],\n  [89, 163],\n  [90, 164],\n  [91, 165],\n  [92, 166],\n  [93, 167],\n  [94, 168],\n  [95, 169],\n  [96, 170],\n  [97, 171],\n  [98, 78],\n  [99, 172],\n  [100, 173],\n  [101, 174],\n  [102, 93],\n  [103, 92],\n  [104, 175],\n  [105, 85],\n  [106, 86],\n  [107, 87],\n  [108, 88],\n  [109, 89],\n  [110, 90],\n  [111, 84],\n  [112, 83],\n  [113, 82],\n  [114, 176],\n  [115, 177],\n  [116, 177],\n  [117, 178],\n  [118, 178],\n])\nconst n3 = t([\n  [0, 70],\n  [1, 71],\n  [2, 72],\n  [3, 73],\n  [4, 74],\n  [5, 75],\n  [6, 77],\n  [7, 78],\n  [8, 79],\n  [9, 80],\n  [10, 81],\n  [11, 11],\n  [12, 71],\n  [13, 72],\n  [14, 73],\n  [15, 74],\n  [16, 70],\n  [17, 179],\n  [18, 11],\n  [19, 81],\n  [20, 11],\n  [21, 81],\n  [22, 180],\n  [23, 73],\n  [24, 74],\n  [25, 73],\n  [26, 73],\n  [27, 79],\n  [28, 74],\n])\nconst n4 = t([\n  [0, 34],\n  [1, 35],\n  [2, 36],\n  [3, 37],\n  [4, 38],\n  [5, 39],\n  [6, 41],\n  [7, 42],\n  [8, 43],\n  [9, 44],\n  [10, 45],\n  [11, 11],\n  [12, 35],\n  [13, 36],\n  [14, 37],\n  [15, 38],\n  [16, 34],\n  [17, 181],\n  [18, 11],\n  [19, 45],\n  [20, 11],\n  [21, 45],\n  [22, 182],\n  [23, 37],\n  [24, 38],\n  [25, 37],\n  [26, 37],\n  [27, 43],\n  [28, 38],\n])\nconst n5 = t([\n  [0, 14],\n  [1, 15],\n  [2, 16],\n  [3, 17],\n  [4, 18],\n  [5, 19],\n  [6, 21],\n  [7, 22],\n  [8, 23],\n  [9, 24],\n  [10, 25],\n  [11, 11],\n  [12, 15],\n  [13, 16],\n  [14, 17],\n  [15, 18],\n  [16, 14],\n  [17, 183],\n  [18, 11],\n  [19, 25],\n  [20, 11],\n  [21, 25],\n  [22, 184],\n  [23, 17],\n  [24, 18],\n  [25, 17],\n  [26, 17],\n  [27, 23],\n  [28, 18],\n])\nconst n6 = t([\n  [0, 46],\n  [1, 47],\n  [2, 48],\n  [3, 49],\n  [4, 50],\n  [5, 51],\n  [6, 53],\n  [7, 54],\n  [8, 55],\n  [9, 56],\n  [10, 57],\n  [11, 11],\n  [12, 47],\n  [13, 48],\n  [14, 49],\n  [15, 50],\n  [16, 46],\n  [17, 185],\n  [18, 11],\n  [19, 57],\n  [20, 11],\n  [21, 57],\n  [22, 186],\n  [23, 49],\n  [24, 50],\n  [25, 49],\n  [26, 49],\n  [27, 55],\n  [28, 50],\n])\nconst n7 = t([\n  [0, 58],\n  [1, 59],\n  [2, 60],\n  [3, 61],\n  [4, 62],\n  [5, 63],\n  [6, 65],\n  [7, 66],\n  [8, 67],\n  [9, 68],\n  [10, 69],\n  [11, 11],\n  [12, 59],\n  [13, 60],\n  [14, 61],\n  [15, 62],\n  [16, 58],\n  [17, 187],\n  [18, 11],\n  [19, 69],\n  [20, 11],\n  [21, 69],\n  [22, 188],\n  [23, 61],\n  [24, 62],\n  [25, 61],\n  [26, 61],\n  [27, 67],\n  [28, 62],\n])\nconst n8 = t([\n  [0, 82],\n  [1, 83],\n  [2, 84],\n  [3, 85],\n  [4, 86],\n  [5, 87],\n  [6, 90],\n  [7, 91],\n  [8, 92],\n  [9, 93],\n  [10, 94],\n  [11, 11],\n  [12, 83],\n  [13, 84],\n  [14, 85],\n  [15, 86],\n  [16, 82],\n  [17, 189],\n  [18, 11],\n  [19, 94],\n  [20, 11],\n  [21, 94],\n  [22, 190],\n  [23, 85],\n  [24, 86],\n  [25, 85],\n  [26, 85],\n  [27, 92],\n  [28, 86],\n])\nconst n9 = t([\n  [0, 164],\n  [1, 165],\n  [2, 166],\n  [3, 167],\n  [4, 168],\n  [5, 169],\n  [6, 171],\n  [7, 78],\n  [8, 172],\n  [9, 173],\n  [10, 174],\n  [11, 0],\n  [12, 165],\n  [13, 166],\n  [14, 167],\n  [15, 168],\n  [16, 164],\n  [17, 191],\n  [18, 0],\n  [19, 174],\n  [20, 0],\n  [21, 174],\n  [22, 192],\n  [23, 168],\n  [24, 169],\n  [25, 167],\n  [26, 168],\n  [27, 172],\n  [28, 168],\n])\nconst n10 = t([\n  [0, 131],\n  [1, 132],\n  [2, 133],\n  [3, 134],\n  [4, 135],\n  [5, 136],\n  [6, 138],\n  [7, 42],\n  [8, 139],\n  [9, 140],\n  [10, 141],\n  [11, 0],\n  [12, 132],\n  [13, 133],\n  [14, 134],\n  [15, 135],\n  [16, 131],\n  [17, 193],\n  [18, 0],\n  [19, 141],\n  [20, 0],\n  [21, 141],\n  [22, 194],\n  [23, 135],\n  [24, 136],\n  [25, 134],\n  [26, 135],\n  [27, 139],\n  [28, 135],\n])\nconst n11 = t([\n  [0, 108],\n  [1, 109],\n  [2, 110],\n  [3, 111],\n  [4, 112],\n  [5, 113],\n  [6, 115],\n  [7, 22],\n  [8, 116],\n  [9, 117],\n  [10, 118],\n  [11, 0],\n  [12, 109],\n  [13, 110],\n  [14, 111],\n  [15, 112],\n  [16, 108],\n  [17, 195],\n  [18, 0],\n  [19, 118],\n  [20, 0],\n  [21, 118],\n  [22, 196],\n  [23, 112],\n  [24, 113],\n  [25, 111],\n  [26, 112],\n  [27, 116],\n  [28, 112],\n])\nconst n12 = t([\n  [0, 142],\n  [1, 143],\n  [2, 144],\n  [3, 145],\n  [4, 146],\n  [5, 147],\n  [6, 149],\n  [7, 54],\n  [8, 150],\n  [9, 151],\n  [10, 152],\n  [11, 0],\n  [12, 143],\n  [13, 144],\n  [14, 145],\n  [15, 146],\n  [16, 142],\n  [17, 197],\n  [18, 0],\n  [19, 152],\n  [20, 0],\n  [21, 152],\n  [22, 198],\n  [23, 146],\n  [24, 147],\n  [25, 145],\n  [26, 146],\n  [27, 150],\n  [28, 146],\n])\nconst n13 = t([\n  [0, 153],\n  [1, 154],\n  [2, 155],\n  [3, 156],\n  [4, 157],\n  [5, 158],\n  [6, 160],\n  [7, 66],\n  [8, 161],\n  [9, 162],\n  [10, 163],\n  [11, 0],\n  [12, 154],\n  [13, 155],\n  [14, 156],\n  [15, 157],\n  [16, 153],\n  [17, 199],\n  [18, 0],\n  [19, 163],\n  [20, 0],\n  [21, 163],\n  [22, 200],\n  [23, 157],\n  [24, 158],\n  [25, 156],\n  [26, 157],\n  [27, 161],\n  [28, 157],\n])\nconst n14 = t([\n  [0, 93],\n  [1, 92],\n  [2, 175],\n  [3, 85],\n  [4, 86],\n  [5, 87],\n  [6, 90],\n  [7, 84],\n  [8, 83],\n  [9, 82],\n  [10, 176],\n  [11, 0],\n  [12, 92],\n  [13, 175],\n  [14, 85],\n  [15, 86],\n  [16, 93],\n  [17, 201],\n  [18, 0],\n  [19, 176],\n  [20, 0],\n  [21, 176],\n  [22, 202],\n  [23, 86],\n  [24, 87],\n  [25, 85],\n  [26, 86],\n  [27, 83],\n  [28, 86],\n])\n\ntype ThemeNames =\n  | 'light'\n  | 'dark'\n  | 'light_yellow'\n  | 'light_green'\n  | 'light_blue'\n  | 'light_purple'\n  | 'light_red'\n  | 'light_brand'\n  | 'dark_yellow'\n  | 'dark_green'\n  | 'dark_blue'\n  | 'dark_purple'\n  | 'dark_red'\n  | 'dark_brand'\n\nexport const themes: Record<ThemeNames, Theme> = {\n  light: n1,\n  dark: n2,\n  light_yellow: n3,\n  light_green: n4,\n  light_blue: n5,\n  light_purple: n6,\n  light_red: n7,\n  light_brand: n8,\n  dark_yellow: n9,\n  dark_green: n10,\n  dark_blue: n11,\n  dark_purple: n12,\n  dark_red: n13,\n  dark_brand: n14,\n}\n"
  },
  {
    "path": "src/components/Editor/ui/src/tamagui/themes/token-colors.ts",
    "content": "import { Variable } from '@tamagui/web'\n\nimport {\n  blue,\n  blueDark,\n  brand,\n  brandDark,\n  customGray,\n  customGrayDark,\n  green,\n  greenDark,\n  // orange,\n  // orangeDark,\n  // pink,\n  // pinkDark,\n  purple,\n  purpleDark,\n  red,\n  redDark,\n  yellow,\n  yellowDark,\n  whiteA,\n  blackA,\n} from './colors'\n\nexport {\n  darkColor,\n  darkPalette,\n  darkTransparent,\n  lightColor,\n  lightPalette,\n  lightTransparent,\n  customGrayDark,\n} from './colors'\n\nexport const colorTokens = {\n  light: {\n    blue,\n    customGray,\n    green,\n    // orange,\n    // pink,\n    purple,\n    red,\n    yellow,\n    brand,\n    brandDark,\n    whiteA,\n  },\n  dark: {\n    blue: blueDark,\n    gray: customGrayDark,\n    green: greenDark,\n    // orange: orangeDark,\n    // pink: pinkDark,\n    purple: purpleDark,\n    red: redDark,\n    yellow: yellowDark,\n    brand: brandDark,\n    whiteA: blackA,\n  },\n}\n\nexport const darkColors = {\n  ...colorTokens.dark.blue,\n  ...colorTokens.dark.gray,\n  ...colorTokens.dark.green,\n  // ...colorTokens.dark.orange,\n  // ...colorTokens.dark.pink,\n  ...colorTokens.dark.purple,\n  ...colorTokens.dark.red,\n  ...colorTokens.dark.yellow,\n  ...colorTokens.dark.brand,\n}\n\nexport const lightColors = {\n  ...colorTokens.light.blue,\n  ...colorTokens.light.customGray,\n  ...colorTokens.light.green,\n  // ...colorTokens.light.orange,\n  // ...colorTokens.light.pink,\n  ...colorTokens.light.purple,\n  ...colorTokens.light.red,\n  ...colorTokens.light.yellow,\n  ...colorTokens.light.brand,\n}\n\nfunction postfixObjKeys<A extends { [key: string]: Variable<string> | string }, B extends string>(\n  obj: A,\n  postfix: B,\n): {\n  [Key in `${keyof A extends string ? keyof A : never}${B}`]: Variable<string> | string\n} {\n  return Object.fromEntries(Object.entries(obj).map(([k, v]) => [`${k}${postfix}`, v])) as never\n}\n\nexport const color = {\n  ...postfixObjKeys(lightColors, 'Light'),\n  ...postfixObjKeys(darkColors, 'Dark'),\n}\n"
  },
  {
    "path": "src/components/Editor/ui/src/tamagui/themes/token-radius.ts",
    "content": "const radius = {\n  0: 0,\n  1: 3,\n  2: 5,\n  3: 7,\n  4: 9,\n  true: 9,\n  5: 10,\n  6: 16,\n  7: 19,\n  8: 22,\n  9: 26,\n  10: 34,\n  11: 42,\n  12: 50,\n}\n\n// rectangular design\n// export const radius = {\n//   0: 0,\n//   1: 0,\n//   2: 0,\n//   3: 0,\n//   4: 0,\n//   true: 0,\n//   5: 0,\n//   6: 0,\n//   7: 0,\n//   8: 0,\n//   9: 0,\n//   10: 0,\n//   11: 0,\n//   12: 0,\n// }\n\n// more rounded design\n// export const radius = {\n//   0: 0,\n//   1: 9,\n//   2: 10,\n//   3: 16,\n//   4: 19,\n//   true: 19,\n//   5: 22,\n//   6: 26,\n//   7: 34,\n//   8: 42,\n//   9: 50,\n//   10: 60,\n//   11: 72,\n//   12: 84,\n// }\n\nexport default radius\n"
  },
  {
    "path": "src/components/Editor/ui/src/tamagui/themes/token-size.ts",
    "content": "export const size = {\n  $0: 0,\n  '$0.25': 2,\n  '$0.5': 4,\n  '$0.75': 8,\n  $1: 20,\n  '$1.5': 24,\n  $2: 28,\n  '$2.5': 32,\n  $3: 36,\n  '$3.5': 40,\n  $4: 44,\n  $true: 44,\n  '$4.5': 48,\n  $5: 52,\n  $6: 64,\n  $7: 74,\n  $8: 84,\n  $9: 94,\n  $10: 104,\n  $11: 124,\n  $12: 144,\n  $13: 164,\n  $14: 184,\n  $15: 204,\n  $16: 224,\n  $17: 224,\n  $18: 244,\n  $19: 264,\n  $20: 284,\n}\n\nexport type SizeKeysIn = keyof typeof size\nexport type Sizes = {\n  // eslint-disable-next-line @typescript-eslint/no-shadow\n  [Key in SizeKeysIn extends `$${infer Key}` ? Key : SizeKeysIn]: number\n}\nexport type SizeKeys = `${keyof Sizes extends `${infer K}` ? K : never}`\n"
  },
  {
    "path": "src/components/Editor/ui/src/tamagui/themes/token-space.ts",
    "content": "import { SizeKeys, Sizes, size } from './token-size'\n\n// a bit odd but keeping backward compat for values >8 while fixing below\nfunction sizeToSpace(v: number) {\n  if (v === 0) return 0\n  if (v === 2) return 0.5\n  if (v === 4) return 1\n  if (v === 8) return 1.5\n  if (v <= 16) return Math.round(v * 0.333)\n  return Math.floor(v * 0.7 - 12)\n}\n\nconst spaces = Object.entries(size).map(([k, v]) => {\n  return [k, sizeToSpace(v)] as const\n})\n\nconst spacesNegative = spaces.slice(1).map(([k, v]) => [`-${k.slice(1)}`, -v])\n\ntype SizeKeysWithNegatives = Exclude<`-${SizeKeys extends `$${infer Key}` ? Key : SizeKeys}`, '-0'> | SizeKeys\n\nconst space: {\n  [Key in SizeKeysWithNegatives]: Key extends keyof Sizes ? Sizes[Key] : number\n} = {\n  ...Object.fromEntries(spaces),\n  ...Object.fromEntries(spacesNegative),\n}\n\nexport default space\n"
  },
  {
    "path": "src/components/Editor/ui/src/tamagui/themes/token-z-index.ts",
    "content": "const zIndex = {\n  0: 0,\n  1: 100,\n  2: 200,\n  3: 300,\n  4: 400,\n  5: 500,\n  6: 600,\n  7: 700,\n  8: 800,\n  9: 900,\n}\n\nexport default zIndex\n"
  },
  {
    "path": "src/components/Editor/ui/src/toggle.tsx",
    "content": "import { Button, Stack, styled } from 'tamagui'\n\nexport const ToggleButton = styled(Button, {\n  position: 'relative',\n  height: 20,\n  width: 36,\n  alignItems: 'center',\n  borderRadius: 1000,\n  variants: {\n    hybrid: {\n      true: {\n        backgroundColor: '$blue9',\n        hoverStyle: {\n          backgroundColor: '$blue10',\n        },\n      },\n      false: {\n        backgroundColor: '$gray4',\n        hoverStyle: {\n          backgroundColor: '$gray5',\n        },\n      },\n    },\n  } as const,\n})\n\nexport const ToggleThumb = styled(Stack, {\n  position: 'absolute',\n  left: 2,\n  width: 14,\n  height: 14,\n  borderRadius: 1000,\n  backgroundColor: 'white',\n  shadowColor: '$shadowColor',\n  shadowRadius: 1,\n  shadowOffset: { width: 0, height: 1 },\n  transition: 'transform 0.3s',\n  variants: {\n    hybrid: {\n      true: {\n        transform: [{ translateX: 18 }],\n      },\n      false: {\n        transform: [{ translateX: 2 }],\n      },\n    },\n  } as const,\n})\n"
  },
  {
    "path": "src/components/Editor/ui/src/tooltip.tsx",
    "content": "import { Text } from '@tamagui/core'\nimport React from 'react'\nimport { ScrollView, Stack } from 'tamagui'\nimport { Tooltip as TTooltip, TooltipProps } from './TamaguiTooltip'\nimport MarkdownRenderer from '@/components/Common/MarkdownRenderer'\n\nconst Tooltip = ({\n  children,\n  content,\n  placement,\n  delay = 100,\n  open,\n  renderMarkdown,\n}: {\n  children: React.ReactNode\n  content: string | React.ReactElement\n  placement?: TooltipProps['placement']\n  delay?: number\n  open?: boolean\n  renderMarkdown?: boolean\n}) => {\n  return content ? (\n    <TTooltip placement={placement} delay={delay} open={open}>\n      <TTooltip.Trigger asChild>{children}</TTooltip.Trigger>\n      <TTooltip.Content\n        backgroundColor=\"$gray4\"\n        enterStyle={{ x: 0, y: -5, opacity: 0, scale: 0.9 }}\n        exitStyle={{ x: 0, y: -5, opacity: 0, scale: 0.9 }}\n        scale={1}\n        x={0}\n        y={0}\n        px={0}\n        opacity={1}\n        paddingVertical=\"$1\"\n        animation={[\n          'fast',\n          {\n            opacity: {\n              overshootClamping: true,\n            },\n          },\n        ]}\n      >\n        <TTooltip.Arrow />\n        <ScrollView maxHeight=\"300px\" maxWidth=\"350px\">\n          <Stack px={4}>\n            <Text fontSize=\"$1\" fontFamily=\"$body\" margin={0} lineHeight=\"$1\" color=\"$gray11\">\n              {renderMarkdown ? (\n                <MarkdownRenderer content={content as string} />\n              ) : (\n                <Text fontSize=\"$1\" fontFamily=\"$body\" margin={0} lineHeight=\"$1\" color=\"$gray11\" whiteSpace=\"pre-wrap\">\n                  {content}\n                </Text>\n              )}\n            </Text>\n          </Stack>\n        </ScrollView>\n      </TTooltip.Content>\n    </TTooltip>\n  ) : (\n    children\n  )\n}\n\nexport default Tooltip\n"
  },
  {
    "path": "src/components/Editor/utils.ts",
    "content": "import { Editor } from '@tiptap/core'\n\nfunction getMarkdown(editor: Editor) {\n  // Fetch the current markdown content from the editor\n  const originalMarkdown = editor.storage.markdown.getMarkdown()\n  // Replace the escaped square brackets with unescaped ones\n  const modifiedMarkdown = originalMarkdown\n    .replace(/\\\\\\[/g, '[') // Replaces \\[ with [\n    .replace(/\\\\\\]/g, ']') // Replaces \\] wi ]\n\n  return modifiedMarkdown\n}\n\nexport default getMarkdown\n"
  },
  {
    "path": "src/components/File/DBResultPreview.tsx",
    "content": "import React from 'react'\nimport { formatDistanceToNow } from 'date-fns'\nimport { DBQueryResult } from 'electron/main/vector-database/schema'\nimport { Card, Text, YStack, Stack } from 'tamagui'\nimport MarkdownRenderer from '../Common/MarkdownRenderer'\n\nconst cosineDistanceToPercentage = (similarity: number) => {\n  // Ensure we show at least 1% similarity\n  const percentage = (1 - similarity) * 100\n  return percentage < 1 ? '1.00' : percentage.toFixed(2)\n}\n\nexport function getFileName(filePath: string): string {\n  const parts = filePath.split(/[/\\\\]/)\n  return parts.pop() || ''\n}\n\nconst formatModifiedDate = (date: Date) => {\n  if (!date || Number.isNaN(new Date(date).getTime())) {\n    return ''\n  }\n  return formatDistanceToNow(new Date(date), { addSuffix: true })\n}\n\ninterface DBResultPreviewProps {\n  dbResult: DBQueryResult\n  onSelect: (path: string) => void\n}\n\nexport const DBResultPreview: React.FC<DBResultPreviewProps> = ({ dbResult: entry, onSelect }) => {\n  const modified = formatModifiedDate(entry.filemodified)\n  const fileName = getFileName(entry.notepath)\n\n  return (\n    <Stack\n      mt={0}\n      width=\"100%\"\n      cursor=\"pointer\"\n      overflow=\"hidden\"\n      backgroundColor=\"$gray3\"\n      hoverStyle={{\n        backgroundColor: '$gray5',\n      }}\n      borderRadius=\"$1\"\n      borderWidth={0.1}\n      borderColor=\"$gray7\"\n      paddingHorizontal=\"$2\"\n      paddingVertical=\"$1\"\n      onPress={() => onSelect(entry.notepath)}\n    >\n      <Stack width=\"100%\">\n        <Text fontSize=\"sm\" color=\"$gray11\">\n          <MarkdownRenderer content={entry.content} />\n        </Text>\n      </Stack>\n      <div className=\"mt-2 text-xs\">\n        {fileName && <span className=\"text-xs text-gray-400\">{fileName} </span>} | Similarity:{' '}\n        {/* eslint-disable-next-line no-underscore-dangle */}\n        {cosineDistanceToPercentage(entry._distance)}% |{' '}\n        {modified && <span className=\"text-xs text-gray-400\">Modified {modified}</span>}\n      </div>\n    </Stack>\n  )\n}\n\ninterface DBSearchPreviewProps {\n  dbResult: DBQueryResult\n  onSelect: (path: string) => void\n}\n\nexport const DBSearchPreview: React.FC<DBSearchPreviewProps> = ({ dbResult: entry, onSelect }) => {\n  const modified = formatModifiedDate(entry.filemodified)\n  const fileName = getFileName(entry.notepath)\n\n  return (\n    <Card\n      marginBottom=\"$4\"\n      marginTop=\"$0\"\n      maxWidth=\"100%\"\n      cursor=\"pointer\"\n      overflow=\"hidden\"\n      borderRadius=\"$4\"\n      borderWidth={1}\n      borderColor=\"$borderColor\"\n      padding=\"$2\"\n      shadowColor=\"$gray7\"\n      shadowRadius=\"$2\"\n      hoverStyle={{\n        shadowRadius: '$4',\n      }}\n      onPress={() => onSelect(entry.notepath)}\n    >\n      <YStack>\n        <Text fontSize=\"$2\" color=\"$colorLight\">\n          <MarkdownRenderer content={entry.content} />\n        </Text>\n        <Text marginTop=\"$2\" fontSize=\"$1\" color=\"$colorMuted\">\n          {fileName && (\n            <Text fontSize=\"$1\" color=\"$colorMuted\">\n              {fileName}{' '}\n            </Text>\n          )}{' '}\n          | Similarity: {cosineDistanceToPercentage(entry._distance)}% |{' '}\n          {modified && (\n            <Text fontSize=\"$1\" color=\"$colorMuted\">\n              Modified {modified}\n            </Text>\n          )}\n        </Text>\n      </YStack>\n    </Card>\n  )\n}\n"
  },
  {
    "path": "src/components/File/NewDirectory.tsx",
    "content": "import React, { useEffect, useState } from 'react'\n\nimport { Button } from '@material-tailwind/react'\nimport posthog from 'posthog-js'\n\nimport { Input, H3 } from 'tamagui'\nimport { NativeSyntheticEvent, TextInputKeyPressEventData } from 'react-native'\nimport ReorModal from '../Common/Modal'\nimport { getInvalidCharacterInFilePath } from '@/lib/file'\nimport { useFileContext } from '@/contexts/FileContext'\n\ninterface NewDirectoryComponentProps {\n  isOpen: boolean\n  onClose: () => void\n  parentDirectoryPath?: string\n}\n\nconst NewDirectoryComponent: React.FC<NewDirectoryComponentProps> = ({ isOpen, onClose, parentDirectoryPath }) => {\n  const [directoryRelativePath, setDirectoryRelativePath] = useState<string>('')\n  const [errorMessage, setErrorMessage] = useState<string | null>(null)\n\n  const { selectedDirectory } = useFileContext()\n\n  useEffect(() => {\n    const setupInitialPath = async () => {\n      const vaultDirectory = await window.electronStore.getVaultDirectoryForWindow()\n\n      let fullPath = ''\n      if (parentDirectoryPath) {\n        fullPath = parentDirectoryPath\n      } else if (selectedDirectory) {\n        fullPath = selectedDirectory\n      }\n\n      if (fullPath) {\n        const relativePath = await window.path.relative(vaultDirectory, fullPath)\n        const pathWithSeparator = relativePath ? `${relativePath}${await window.path.pathSep()}` : ''\n        setDirectoryRelativePath(pathWithSeparator)\n      }\n    }\n\n    if (isOpen) {\n      setupInitialPath()\n    }\n  }, [isOpen, parentDirectoryPath, selectedDirectory])\n\n  useEffect(() => {\n    if (!isOpen) {\n      setDirectoryRelativePath('')\n      setErrorMessage(null)\n    }\n  }, [isOpen])\n\n  const handleValidName = async (name: string) => {\n    const invalidCharacters = await getInvalidCharacterInFilePath(name)\n    if (invalidCharacters) {\n      setErrorMessage(`Cannot put ${invalidCharacters} in file name`)\n      return false\n    }\n    setErrorMessage(null)\n    return true\n  }\n\n  const handleNameChange = async (newName: string) => {\n    await handleValidName(newName)\n    setDirectoryRelativePath(newName)\n  }\n\n  const createNewDirectory = async () => {\n    const validName = await handleValidName(directoryRelativePath)\n    if (!directoryRelativePath || errorMessage || !validName) return\n\n    const directoryPath = await window.electronStore.getVaultDirectoryForWindow()\n\n    const finalPath = await window.path.join(directoryPath, directoryRelativePath)\n    window.fileSystem.createDirectory(finalPath)\n    posthog.capture('created_new_directory_from_new_directory_modal')\n    onClose()\n  }\n\n  return (\n    <ReorModal isOpen={isOpen} onClose={onClose}>\n      <div className=\"my-2 ml-3 mr-6 h-full min-w-[400px]\">\n        <H3 color=\"$gray13\" fontWeight=\"semi-bold\">\n          New Directory\n        </H3>\n        <Input\n          width=\"100%\"\n          height=\"$3\"\n          fontSize=\"$1\"\n          borderRadius=\"$3\"\n          borderWidth={1}\n          borderColor=\"$gray7\"\n          paddingHorizontal=\"$3\"\n          paddingVertical=\"$2\"\n          focusStyle={{ borderColor: '$blue7', outlineStyle: 'none' }}\n          value={directoryRelativePath}\n          onChangeText={handleNameChange}\n          onKeyPress={(e: NativeSyntheticEvent<TextInputKeyPressEventData>) => {\n            if (e.nativeEvent.key === 'Enter') {\n              createNewDirectory()\n            }\n          }}\n          placeholder=\"Directory Name\"\n          marginTop=\"$3\"\n          autoFocus\n        />\n\n        <div className=\"flex items-center gap-3\">\n          <Button\n            className=\"mb-2 mt-3 h-10 w-[80px] cursor-pointer border-none bg-blue-500 px-2 py-0 text-center hover:bg-blue-600\"\n            onClick={createNewDirectory}\n            placeholder=\"\"\n          >\n            Create\n          </Button>\n          {errorMessage && <p className=\"text-xs text-red-500\">{errorMessage}</p>}\n        </div>\n      </div>\n    </ReorModal>\n  )\n}\n\nexport default NewDirectoryComponent\n"
  },
  {
    "path": "src/components/File/RenameDirectory.tsx",
    "content": "import React, { useEffect, useState } from 'react'\n\nimport { Button } from '@material-tailwind/react'\nimport { toast } from 'react-toastify'\n\nimport ReorModal from '../Common/Modal'\n\nimport { getInvalidCharacterInFileName } from '@/lib/file'\nimport { useFileContext } from '@/contexts/FileContext'\n\nconst RenameDirModal: React.FC = () => {\n  const { fileDirToBeRenamed, setFileDirToBeRenamed, renameFile } = useFileContext()\n  const [isUpdatingDirName, setIsUpdatingDirName] = useState<boolean>(false)\n\n  const [dirPrefix, setDirPrefix] = useState<string>('')\n  const [dirName, setDirName] = useState<string>('')\n  const [errorMessage, setErrorMessage] = useState<string | null>(null)\n\n  useEffect(() => {\n    const setDirectoryUponNoteChange = async () => {\n      const initialDirPathPrefix = await window.path.dirname(fileDirToBeRenamed)\n      setDirPrefix(initialDirPathPrefix)\n      const trimmedInitialDirName = await window.path.basename(fileDirToBeRenamed)\n      setDirName(trimmedInitialDirName)\n    }\n\n    setDirectoryUponNoteChange()\n  }, [fileDirToBeRenamed])\n\n  const handleNameChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n    const newName = e.target.value\n    setDirName(newName)\n\n    const invalidCharacter = getInvalidCharacterInFileName(newName)\n    if (invalidCharacter) {\n      setErrorMessage(`The character [${invalidCharacter}] cannot be included in directory name.`)\n    } else {\n      setErrorMessage(null)\n    }\n  }\n\n  const onClose = () => {\n    setFileDirToBeRenamed('')\n  }\n\n  const sendDirRename = async () => {\n    if (errorMessage) {\n      return\n    }\n    if (!dirName) {\n      toast.error('Directory name cannot be empty', {\n        className: 'mt-5',\n        closeOnClick: false,\n        draggable: false,\n      })\n      return\n    }\n    setIsUpdatingDirName(true)\n    // get full path of new directory\n\n    // await renameDir({\n    //   path: `${fileDirToBeRenamed}`,\n    //   newDirName: `${dirPrefix}${dirName}`,\n    // })\n    await renameFile(fileDirToBeRenamed, `${dirPrefix}${dirName}`)\n    onClose()\n    setIsUpdatingDirName(false)\n  }\n\n  const handleKeyPress = (e: React.KeyboardEvent<HTMLInputElement>) => {\n    if (e.key === 'Enter' && !isUpdatingDirName) {\n      sendDirRename()\n    }\n  }\n\n  return (\n    <ReorModal isOpen={!!fileDirToBeRenamed} onClose={onClose}>\n      <div className=\"my-2 ml-3 mr-6 h-full min-w-[400px]\">\n        <h2 className=\"mb-3 text-xl font-semibold text-white\">Rename Directory</h2>\n        <input\n          type=\"text\"\n          className=\" block w-full rounded-md border border-gray-300 px-3 py-2 transition duration-150 ease-in-out focus:border-blue-300 focus:outline-none\"\n          value={dirName}\n          onChange={handleNameChange}\n          onKeyDown={handleKeyPress}\n          placeholder=\"New directory Name\"\n        />\n        <div className=\"flex items-center gap-3\">\n          <Button\n            className=\"mb-2 mt-3 h-10 w-[80px] cursor-pointer border-none bg-blue-600 px-2 py-0 text-center hover:bg-blue-600\"\n            onClick={sendDirRename}\n            placeholder=\"\"\n            disabled={isUpdatingDirName}\n          >\n            Rename\n          </Button>\n          {errorMessage && <p className=\"text-xs text-red-500\">{errorMessage}</p>}\n        </div>\n      </div>\n    </ReorModal>\n  )\n}\n\nexport default RenameDirModal\n"
  },
  {
    "path": "src/components/File/RenameNote.tsx",
    "content": "import React, { useState } from 'react'\n\nimport { Button } from '@material-tailwind/react'\nimport { toast } from 'react-toastify'\n\nimport { YStack, SizableText, Input, XStack } from 'tamagui'\nimport { NativeSyntheticEvent, TextInputKeyPressEventData } from 'react-native'\nimport ReorModal from '../Common/Modal'\n\nimport { getInvalidCharacterInFileName } from '@/lib/file'\nimport { useFileContext } from '@/contexts/FileContext'\n\nconst RenameNoteModal: React.FC = () => {\n  const { noteToBeRenamed, setNoteToBeRenamed, renameFile } = useFileContext()\n  const [newNoteName, setNewNoteName] = useState<string>('')\n  const [errorMessage, setErrorMessage] = useState<string | null>(null)\n\n  const handleNameChange = (name: string) => {\n    // const newName = e.target.value\n    setNewNoteName(name)\n\n    const invalidCharacter = getInvalidCharacterInFileName(name)\n    if (invalidCharacter) {\n      setErrorMessage(`The character [${invalidCharacter}] cannot be included in note name.`)\n    } else {\n      setErrorMessage(null)\n    }\n  }\n  const onClose = () => {\n    setNoteToBeRenamed('')\n  }\n\n  const handleNoteRename = async () => {\n    if (errorMessage) {\n      return\n    }\n    if (!newNoteName) {\n      toast.error('Note name cannot be empty', {\n        className: 'mt-5',\n        closeOnClick: false,\n        draggable: false,\n      })\n      return\n    }\n\n    const initialNotePathPrefix = await window.path.dirname(noteToBeRenamed)\n    const initialPath = await window.path.join(initialNotePathPrefix, newNoteName)\n    const outputPath = await window.path.addExtensionIfNoExtensionPresent(initialPath)\n\n    await renameFile(noteToBeRenamed, outputPath)\n    onClose()\n  }\n\n  const handleKeyPress = (e: NativeSyntheticEvent<TextInputKeyPressEventData>) => {\n    if (e.nativeEvent.key === 'Enter') {\n      handleNoteRename()\n    }\n  }\n\n  return (\n    <ReorModal isOpen={!!noteToBeRenamed} onClose={onClose}>\n      <YStack my={2} ml={3} mr={6} h=\"100%\" minWidth={400}>\n        <SizableText mb={3} fontSize={18} fontWeight=\"bold\">\n          Rename Note\n        </SizableText>\n\n        <Input\n          width=\"100%\"\n          borderRadius=\"$4\"\n          borderWidth={1}\n          borderColor=\"$gray6\"\n          mt={10}\n          value={newNoteName}\n          onChangeText={handleNameChange}\n          onKeyPress={handleKeyPress}\n          fontSize=\"$1\"\n          height=\"$3\"\n          placeholder=\"New Note Name\"\n          focusStyle={{\n            borderColor: '$blue6',\n            outlineWidth: 0,\n          }}\n        />\n\n        <XStack alignItems=\"center\" gap={12}>\n          <Button\n            className=\"mb-2 mt-3 h-[40px] w-[80px] cursor-pointer border-none bg-blue-500 px-2 py-0 text-center hover:bg-blue-600\"\n            onClick={handleNoteRename}\n          >\n            Rename\n          </Button>\n          {errorMessage && (\n            <SizableText fontSize={12} color=\"$red10\">\n              {errorMessage}\n            </SizableText>\n          )}\n        </XStack>\n      </YStack>\n    </ReorModal>\n  )\n}\n\nexport default RenameNoteModal\n"
  },
  {
    "path": "src/components/MainPage.tsx",
    "content": "/* eslint-disable react/button-has-type */\n/* eslint-disable jsx-a11y/control-has-associated-label */\n/* eslint-disable react/jsx-no-useless-fragment */\n/* eslint-disable no-nested-ternary */\nimport React from 'react'\nimport { YStack } from 'tamagui'\nimport { ResizableHandle, ResizablePanel, ResizablePanelGroup } from '@/components/ui/resizable'\n\nimport '../styles/global.css'\nimport ChatComponent from './Chat'\nimport TitleBar from './TitleBar/TitleBar'\nimport EditorManager from './Editor/EditorManager'\nimport IconsSidebar from './Sidebars/IconsSidebar'\nimport SidebarManager from './Sidebars/MainSidebar'\nimport EmptyPage from './Common/EmptyPage'\nimport { ContentProvider, useContentContext } from '../contexts/ContentContext'\n// import WritingAssistant from './WritingAssistant/WritingAssistant'\nimport { ChatProvider, useChatContext } from '@/contexts/ChatContext'\nimport { FileProvider, useFileContext } from '@/contexts/FileContext'\nimport ModalProvider from '@/contexts/ModalContext'\nimport CommonModals from './Common/CommonModals'\nimport useAppShortcuts from '../lib/shortcuts/use-shortcut'\nimport WindowControls from './ui/window-controls'\nimport SimilarFilesSidebarComponent from '@/components/Sidebars/SimilarFilesSidebar'\n\ninterface MainContentProps {\n  togglePanel: (panel: 'chat' | 'similarFiles' | null) => void\n}\n\n// Moved MainContent outside as a separate component\nconst MainContent: React.FC<MainContentProps> = ({ togglePanel }) => {\n  const { currentlyOpenFilePath } = useFileContext()\n  const { showEditor, setShowEditor } = useContentContext()\n\n  return (\n    <div className=\"relative flex size-full overflow-hidden\">\n      {currentlyOpenFilePath && showEditor && (\n        <div className=\"size-full overflow-hidden\">\n          <WindowControls\n            onClose={() => setShowEditor(false)}\n            onMaximize={() => {\n              togglePanel('chat')\n            }}\n          />\n          <EditorManager />\n        </div>\n      )}\n    </div>\n  )\n}\n\nconst MainPageContent: React.FC = () => {\n  const { currentlyOpenFilePath } = useFileContext()\n  const { setShowEditor, showEditor } = useContentContext()\n  const { getShortcutDescription } = useAppShortcuts()\n  const { activePanel, setActivePanel, openNewChat } = useChatContext()\n\n  const togglePanel = (panel: 'chat' | 'similarFiles' | null) => {\n    setActivePanel((prev) => (prev === panel ? null : panel))\n  }\n\n  const panelSizes = {\n    mainContent: 65,\n    chatComponent: 35,\n    similarFilesSidebar: 30,\n  }\n\n  return (\n    <YStack className=\"relative flex h-screen flex-col overflow-hidden\">\n      <TitleBar activePanel={activePanel} togglePanel={togglePanel} />\n      <div className=\"flex min-h-0 flex-1\">\n        <div className=\"border-y-0 border-l-0 border-r-[0.001px] border-solid border-neutral-700\">\n          <IconsSidebar getShortcutDescription={getShortcutDescription} />\n        </div>\n\n        <ResizablePanelGroup direction=\"horizontal\" className=\"flex-1\">\n          <ResizablePanel defaultSize={20} minSize={15} maxSize={40}>\n            <div className=\"size-full border-y-0 border-l-0 border-r-[0.001px] border-solid border-neutral-700\">\n              <SidebarManager />\n            </div>\n          </ResizablePanel>\n\n          <ResizableHandle />\n\n          <ResizablePanel>\n            <div className=\"size-full\">\n              {currentlyOpenFilePath || activePanel ? (\n                <ResizablePanelGroup direction=\"horizontal\" className=\"size-full\">\n                  {currentlyOpenFilePath && showEditor && (\n                    <>\n                      <ResizablePanel defaultSize={panelSizes.mainContent}>\n                        <MainContent togglePanel={togglePanel} />\n                      </ResizablePanel>\n                      <ResizableHandle />\n                    </>\n                  )}\n                  {activePanel === 'chat' && (\n                    <ResizablePanel defaultSize={panelSizes.chatComponent}>\n                      <div className=\"relative size-full \">\n                        <WindowControls\n                          onClose={() => setActivePanel(null)}\n                          onMaximize={() => setShowEditor(false)}\n                          onNewChat={() => openNewChat()}\n                        />\n                        <ChatComponent />\n                      </div>\n                    </ResizablePanel>\n                  )}\n                  {activePanel === 'similarFiles' && (\n                    <ResizablePanel defaultSize={panelSizes.similarFilesSidebar}>\n                      <SimilarFilesSidebarComponent />\n                    </ResizablePanel>\n                  )}\n                </ResizablePanelGroup>\n              ) : (\n                <EmptyPage />\n              )}\n            </div>\n          </ResizablePanel>\n        </ResizablePanelGroup>\n\n        <CommonModals />\n      </div>\n    </YStack>\n  )\n}\n\nconst MainPageComponent: React.FC = () => {\n  return (\n    <FileProvider>\n      <ChatProvider>\n        <ContentProvider>\n          <ModalProvider>\n            <MainPageContent />\n          </ModalProvider>\n        </ContentProvider>\n      </ChatProvider>\n    </FileProvider>\n  )\n}\n\nexport default MainPageComponent\n"
  },
  {
    "path": "src/components/Settings/AnalyticsSettings.tsx",
    "content": "import React, { useState, useEffect } from 'react'\n\nimport Switch from '@mui/material/Switch'\nimport posthog from 'posthog-js'\nimport { YStack, XStack, SizableText } from 'tamagui'\n\ninterface AnalyticsSettingsProps {}\nconst AnalyticsSettings: React.FC<AnalyticsSettingsProps> = () => {\n  const [isAnalyticsEnabled, setIsAnalyticsEnabled] = useState<boolean>(false)\n\n  useEffect(() => {\n    const fetchParams = async () => {\n      const storedIsAnalyticsEnabled = await window.electronStore.getAnalyticsMode()\n\n      if (storedIsAnalyticsEnabled !== undefined) {\n        setIsAnalyticsEnabled(storedIsAnalyticsEnabled)\n      }\n    }\n\n    fetchParams()\n  }, [])\n\n  const handleSave = () => {\n    // Execute the save function here\n    if (isAnalyticsEnabled !== undefined) {\n      window.electronStore.setAnalyticsMode(!isAnalyticsEnabled)\n      setIsAnalyticsEnabled(!isAnalyticsEnabled)\n      posthog.capture('analytics_disabled')\n    }\n  }\n\n  return (\n    <YStack px=\"$4\" backgroundColor=\"$gray1\" maxWidth=\"100%\">\n      <h2 className=\"mb-0\">Analytics</h2>\n      <YStack maxWidth=\"100%\" width=\"100%\" overflow=\"hidden\" py=\"$4\">\n        <XStack className=\"h-[2px] w-full bg-neutral-700\" />\n        <XStack>\n          <XStack justifyContent=\"space-between\" alignItems=\"center\" py=\"$3\" width=\"100%\">\n            <SizableText size=\"$2\">\n              Reor tracks anonymous usage data to help us understand how the app is used and which features are popular.\n              You can disable this at any time:\n            </SizableText>\n            <Switch checked={isAnalyticsEnabled} onChange={handleSave} inputProps={{ 'aria-label': 'controlled' }} />\n          </XStack>\n        </XStack>\n      </YStack>\n    </YStack>\n  )\n}\n\nexport default AnalyticsSettings\n"
  },
  {
    "path": "src/components/Settings/ChunkSizeSettings.tsx",
    "content": "import React, { useState, useEffect, ReactNode } from 'react'\nimport posthog from 'posthog-js'\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'\n\ninterface ChunkSizeSettingsProps {\n  children?: ReactNode\n}\n\nconst ChunkSizeSettings: React.FC<ChunkSizeSettingsProps> = ({ children }) => {\n  const [chunkSize, setChunkSize] = useState<number | null>(null)\n\n  useEffect(() => {\n    const fetchData = async () => {\n      const defaultChunkSize = await window.electronStore.getChunkSize()\n      if (defaultChunkSize) {\n        setChunkSize(defaultChunkSize)\n      } else {\n        setChunkSize(500) // Default value\n        window.electronStore.setChunkSize(500)\n      }\n    }\n\n    fetchData()\n  }, [])\n\n  const handleChangeOnChunkSizeSelect = (size: string) => {\n    const numberVersion = parseInt(size, 10)\n    setChunkSize(numberVersion)\n    window.electronStore.setChunkSize(numberVersion)\n    posthog.capture('change_chunk_size', {\n      chunkSize: numberVersion,\n    })\n  }\n\n  const possibleChunkSizes = Array.from({ length: 20 }, (_, i) => (i + 1) * 100)\n\n  return (\n    <div className=\"flex w-[140px] items-center justify-between gap-5 pb-2 pt-3\">\n      {children}\n      {chunkSize && (\n        <div>\n          <Select onValueChange={handleChangeOnChunkSizeSelect} value={chunkSize.toString()}>\n            <SelectTrigger>\n              <SelectValue placeholder=\"Select chunk size\" />\n            </SelectTrigger>\n            <SelectContent>\n              {possibleChunkSizes.map((size) => (\n                <SelectItem key={size} value={size.toString()}>\n                  {size}\n                </SelectItem>\n              ))}\n            </SelectContent>\n          </Select>\n        </div>\n      )}\n    </div>\n  )\n}\n\nexport default ChunkSizeSettings\n"
  },
  {
    "path": "src/components/Settings/DirectorySelector.tsx",
    "content": "import React, { useEffect, useState } from 'react'\n\nimport { Button } from '@material-tailwind/react'\nimport { SizableText } from 'tamagui'\nimport { truncateName } from '../Chat/MessageComponents/ChatSources'\n\ninterface DirectorySelectorProps {\n  setErrorMsg: (error: string) => void\n}\n\nconst DirectorySelector: React.FC<DirectorySelectorProps> = ({ setErrorMsg }) => {\n  const [userDirectory, setUserDirectory] = useState<string>('')\n\n  const handleDirectorySelection = async () => {\n    const paths = await window.fileSystem.openDirectoryDialog()\n    if (paths && paths[0]) {\n      setUserDirectory(paths[0])\n    }\n  }\n\n  useEffect(() => {\n    const fetchDirectory = async () => {\n      const directory = await window.electronStore.getVaultDirectoryForWindow()\n      if (directory) {\n        setUserDirectory(directory)\n      }\n    }\n    fetchDirectory()\n  }, [])\n\n  useEffect(() => {\n    if (!userDirectory) {\n      setErrorMsg('Please select a directory')\n    } else {\n      window.electronStore.setVaultDirectoryForWindow(userDirectory)\n      setErrorMsg('')\n    }\n  }, [userDirectory, setErrorMsg])\n\n  return (\n    <div className=\"flex w-full max-w-60 flex-col items-end\">\n      <Button\n        className=\"h-10 w-[140px] cursor-pointer border-none bg-blue-500 px-2 py-0 text-center hover:bg-blue-600\"\n        onClick={handleDirectorySelection}\n        placeholder=\"\"\n      >\n        Select Directory\n      </Button>\n      {userDirectory && (\n        <SizableText fontSize={12} width=\"100%\" textAlign=\"left\" marginTop={1} fontWeight={300}>\n          <strong>{truncateName(userDirectory, 60)}</strong>\n        </SizableText>\n      )}\n    </div>\n  )\n}\n\nexport default DirectorySelector\n"
  },
  {
    "path": "src/components/Settings/EmbeddingSettings/EmbeddingModelSelect.tsx",
    "content": "import React from 'react'\nimport { EmbeddingModelConfig } from 'electron/main/electron-store/storeConfig'\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'\n\ninterface EmbeddingModelSelectProps {\n  selectedModel: string\n  embeddingModels: Record<string, EmbeddingModelConfig>\n  onModelChange: (newSelectedModel: string) => void\n}\n\nconst EmbeddingModelSelect: React.FC<EmbeddingModelSelectProps> = ({\n  selectedModel,\n  embeddingModels,\n  onModelChange,\n}) => {\n  return (\n    <div className=\"w-[150px]\">\n      <Select value={selectedModel} onValueChange={onModelChange}>\n        <SelectTrigger>\n          <SelectValue placeholder=\"Select a model\" />\n        </SelectTrigger>\n        <SelectContent position=\"popper\" align=\"center\" className=\"max-h-[300px] max-w-[250px] overflow-y-auto\">\n          {Object.entries(embeddingModels).map(([model, config]) => (\n            <SelectItem key={model} value={model}>\n              <div>\n                <div>{config.readableName || model}</div>\n                <div className=\"text-xs text-gray-400\">{config.description}</div>\n              </div>\n            </SelectItem>\n          ))}\n        </SelectContent>\n      </Select>\n    </div>\n  )\n}\n\nexport default EmbeddingModelSelect\n"
  },
  {
    "path": "src/components/Settings/EmbeddingSettings/EmbeddingSettings.tsx",
    "content": "import React, { useState, useEffect } from 'react'\n\nimport { EmbeddingModelConfig } from 'electron/main/electron-store/storeConfig'\nimport posthog from 'posthog-js'\n\nimport ChunkSizeSettings from '../ChunkSizeSettings'\nimport EmbeddingModelSelect from './EmbeddingModelSelect'\nimport NewRemoteEmbeddingModelModal from './modals/NewRemoteEmbeddingModel'\nimport { Button } from '@/components/ui/button'\nimport SettingsSection, { SettingsRow } from '../Shared/SettingsRow'\n\ninterface EmbeddingModelManagerProps {\n  handleUserHasChangedModel?: () => void\n  userTriedToSubmit?: boolean\n}\n\nconst EmbeddingModelSettings: React.FC<EmbeddingModelManagerProps> = ({\n  handleUserHasChangedModel,\n  userTriedToSubmit,\n}) => {\n  const [currentError, setCurrentError] = useState<string>('')\n  const [isConextLengthModalOpen, setIsContextLengthModalOpen] = useState<boolean>(false)\n  const [selectedModel, setSelectedModel] = useState<string>('')\n  const [embeddingModels, setEmbeddingModels] = useState<Record<string, EmbeddingModelConfig>>({})\n\n  const updateEmbeddingModels = async () => {\n    const storedEmbeddingModels = await window.electronStore.getEmbeddingModels()\n\n    if (storedEmbeddingModels) {\n      setEmbeddingModels(storedEmbeddingModels)\n    }\n\n    const defaultModel = await window.electronStore.getDefaultEmbeddingModel()\n\n    if (defaultModel) {\n      setSelectedModel(defaultModel)\n    }\n  }\n\n  useEffect(() => {\n    updateEmbeddingModels()\n  }, [])\n\n  useEffect(() => {\n    if (selectedModel) {\n      setCurrentError('')\n    } else {\n      setCurrentError('No model selected')\n    }\n  }, [selectedModel])\n\n  const handleChangeOnModelSelect = (newSelectedModel: string) => {\n    setSelectedModel(newSelectedModel)\n    window.electronStore.setDefaultEmbeddingModel(newSelectedModel)\n    posthog.capture('change_default_embedding_model', {\n      defaultEmbeddingModel: newSelectedModel,\n    })\n    if (handleUserHasChangedModel) {\n      handleUserHasChangedModel()\n    }\n  }\n\n  return (\n    <SettingsSection\n      title=\"Embedding Model\"\n      footnote=\"Note: If you notice some lag in the editor it is likely because you chose too large of an embedding model...\"\n      error={userTriedToSubmit && !selectedModel ? currentError : ''}\n    >\n      <SettingsRow\n        title=\"Embedding Model\"\n        control={\n          <EmbeddingModelSelect\n            selectedModel={selectedModel}\n            embeddingModels={embeddingModels}\n            onModelChange={handleChangeOnModelSelect}\n          />\n        }\n      />\n\n      <SettingsRow\n        title=\"Custom Embedding Model\"\n        description=\"Reor will download a HuggingFace embedding model for you.\"\n        control={\n          <Button variant=\"secondary\" onClick={() => setIsContextLengthModalOpen(true)}>\n            Attach\n          </Button>\n        }\n      />\n\n      <SettingsRow\n        title=\"Change Chunk Size\"\n        description='A larger chunk size means more context is fed to the model at the cost of \"needle in a haystack\" effects.'\n        control={<ChunkSizeSettings />}\n        divider={false}\n      />\n\n      <NewRemoteEmbeddingModelModal\n        isOpen={isConextLengthModalOpen}\n        onClose={() => {\n          setIsContextLengthModalOpen(false)\n        }}\n        handleUserHasChangedModel={() => {\n          updateEmbeddingModels()\n          if (handleUserHasChangedModel) {\n            handleUserHasChangedModel()\n          }\n        }}\n      />\n    </SettingsSection>\n  )\n}\n\nexport default EmbeddingModelSettings\n"
  },
  {
    "path": "src/components/Settings/EmbeddingSettings/InitialEmbeddingSettings.tsx",
    "content": "/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React, { useState, useEffect } from 'react'\n\nimport { EmbeddingModelConfig } from 'electron/main/electron-store/storeConfig'\nimport { XStack, YStack, SizableText } from 'tamagui'\n\nimport NewRemoteEmbeddingModelModal from './modals/NewRemoteEmbeddingModel'\nimport EmbeddingModelSelect from './EmbeddingModelSelect'\n\ninterface InitialEmbeddingModelSettingsProps {\n  setErrorMsg: (msg: string) => void\n}\n\nconst InitialEmbeddingModelSettings: React.FC<InitialEmbeddingModelSettingsProps> = ({ setErrorMsg }) => {\n  const [selectedModel, setSelectedModel] = useState<string>('')\n  const [embeddingModels, setEmbeddingModels] = useState<Record<string, EmbeddingModelConfig>>({})\n  const [showNewEmbeddingModelModal, setShowNewEmbeddingModelModal] = useState<boolean>(false)\n\n  const updateEmbeddingModels = async () => {\n    const storedEmbeddingModels = await window.electronStore.getEmbeddingModels()\n\n    if (storedEmbeddingModels) {\n      setEmbeddingModels(storedEmbeddingModels)\n    }\n\n    const defaultModel = await window.electronStore.getDefaultEmbeddingModel()\n\n    if (defaultModel) {\n      setSelectedModel(defaultModel)\n    }\n  }\n\n  useEffect(() => {\n    updateEmbeddingModels()\n  }, [])\n\n  useEffect(() => {\n    if (selectedModel) {\n      setErrorMsg('')\n    } else {\n      setErrorMsg('No embedding model selected')\n    }\n  }, [selectedModel, setErrorMsg])\n\n  const handleChangeOnModelSelect = (newSelectedModel: string) => {\n    setSelectedModel(newSelectedModel)\n    window.electronStore.setDefaultEmbeddingModel(newSelectedModel)\n  }\n\n  return (\n    <XStack width=\"100%\">\n      <YStack flex={1}>\n        <SizableText color=\"$gray13\" fontWeight={600} fontSize={16}>\n          Embedding Model\n        </SizableText>\n        <SizableText color=\"$black\" fontSize={12} fontWeight={300} marginTop=\"$2\">\n          Choose a recommended model or a{' '}\n          <a className=\"underline\" onClick={() => setShowNewEmbeddingModelModal(true)}>\n            custom embedding model\n          </a>\n        </SizableText>\n      </YStack>\n      <YStack>\n        <EmbeddingModelSelect\n          selectedModel={selectedModel}\n          embeddingModels={embeddingModels}\n          onModelChange={handleChangeOnModelSelect}\n        />\n      </YStack>\n\n      <NewRemoteEmbeddingModelModal\n        isOpen={showNewEmbeddingModelModal}\n        onClose={() => {\n          setShowNewEmbeddingModelModal(false)\n        }}\n        handleUserHasChangedModel={() => {\n          updateEmbeddingModels()\n        }}\n      />\n    </XStack>\n  )\n}\n\nexport default InitialEmbeddingModelSettings\n"
  },
  {
    "path": "src/components/Settings/EmbeddingSettings/modals/NewRemoteEmbeddingModel.tsx",
    "content": "import React, { useState } from 'react'\nimport { EmbeddingModelWithRepo } from 'electron/main/electron-store/storeConfig'\nimport posthog from 'posthog-js'\nimport { Input } from 'tamagui'\nimport { NativeSyntheticEvent, TextInputKeyPressEventData } from 'react-native'\nimport { Button } from '@/components/ui/button'\nimport {\n  Dialog,\n  DialogContent,\n  DialogDescription,\n  DialogFooter,\n  DialogHeader,\n  DialogTitle,\n  DialogOverlay,\n} from '@/components/ui/dialog'\nimport ExternalLink from '../../../Common/ExternalLink'\n\ninterface NewRemoteEmbeddingModelModalProps {\n  isOpen: boolean\n  onClose: () => void\n  handleUserHasChangedModel?: () => void\n}\n\nconst NewRemoteEmbeddingModelModal: React.FC<NewRemoteEmbeddingModelModalProps> = ({\n  isOpen,\n  onClose,\n  handleUserHasChangedModel,\n}) => {\n  const [huggingfaceRepo, setHuggingfaceRepo] = useState('')\n\n  const saveModelConfigToElectronStore = async () => {\n    if (!huggingfaceRepo) {\n      onClose()\n      return\n    }\n\n    const modelObject: EmbeddingModelWithRepo = {\n      type: 'repo',\n      repoName: huggingfaceRepo,\n    }\n\n    await window.electronStore.addNewRepoEmbeddingModel(modelObject)\n    posthog.capture('save_repo_embedding_model', {\n      modelRepo: huggingfaceRepo,\n    })\n    if (handleUserHasChangedModel) {\n      handleUserHasChangedModel()\n    }\n    onClose()\n  }\n\n  const handleKeyPress = (e: NativeSyntheticEvent<TextInputKeyPressEventData>) => {\n    if (e.nativeEvent.key === 'Enter') {\n      saveModelConfigToElectronStore()\n    }\n  }\n\n  return (\n    <Dialog open={isOpen} onOpenChange={(open) => !open && onClose()}>\n      <DialogOverlay>\n        <DialogContent className=\"p-4 sm:max-w-[425px]\">\n          <DialogHeader>\n            <DialogTitle>Custom embedding model</DialogTitle>\n            <DialogDescription>\n              If you don&apos;t want to use one of our default embedding models, you can choose a Hugging Face model and\n              attach it here.\n            </DialogDescription>\n          </DialogHeader>\n          <div className=\"grid gap-4 py-4\">\n            <Input\n              value={huggingfaceRepo}\n              onChangeText={setHuggingfaceRepo}\n              onKeyPress={handleKeyPress}\n              placeholder=\"Xenova/bge-base-en-v1.5\"\n              size=\"$1\"\n              py=\"$3\"\n              px=\"$2\"\n            />\n            <p className=\"text-xs italic text-muted-foreground\">\n              <ExternalLink href=\"https://huggingface.co/models?pipeline_tag=feature-extraction&sort=downloads&search=xenova\">\n                This page on Hugging Face\n              </ExternalLink>{' '}\n              has models that are compatible with Reor. It must be a &quot;Xenova&quot; ONNX embedding model. Check out{' '}\n              <ExternalLink href=\"https://www.reorproject.org/docs/documentation/embedding\">our guide</ExternalLink> for\n              more info.\n            </p>\n          </div>\n          <DialogFooter>\n            <Button variant=\"secondary\" onClick={saveModelConfigToElectronStore}>\n              Attach\n            </Button>\n          </DialogFooter>\n        </DialogContent>\n      </DialogOverlay>\n    </Dialog>\n  )\n}\n\nexport default NewRemoteEmbeddingModelModal\n"
  },
  {
    "path": "src/components/Settings/GeneralSettings.tsx",
    "content": "import React, { useEffect, useState } from 'react'\nimport Switch from '@mui/material/Switch'\nimport SettingsSection, { SettingsRow } from './Shared/SettingsRow'\n\nexport const EditorSection = () => {\n  const [tempSpellCheckEnabled, setTempSpellCheckEnabled] = useState(false)\n  const [documentStatsEnabled, setDocumentStatsEnabled] = useState(false)\n  const [editorFlexCenter, setEditorFlexCenter] = useState<boolean>(true)\n\n  useEffect(() => {\n    const fetchParams = async () => {\n      const isSpellCheckEnabled = await window.electronStore.getSpellCheckMode()\n      const isDocumentStatsCheckEnabled = await window.electronStore.getDocumentStats()\n\n      if (isSpellCheckEnabled !== undefined) {\n        setTempSpellCheckEnabled(isSpellCheckEnabled)\n      }\n      if (isDocumentStatsCheckEnabled !== undefined) {\n        setDocumentStatsEnabled(isDocumentStatsCheckEnabled)\n      }\n    }\n\n    fetchParams()\n  }, [])\n\n  const handleSaveSpellCheck = (setChecked: boolean) => {\n    // Execute the save function here\n    window.electronStore.setSpellCheckMode(setChecked)\n    setTempSpellCheckEnabled(!tempSpellCheckEnabled)\n  }\n  const handleSaveDocStats = async (setChecked: boolean) => {\n    // Execute the save function here\n    await window.electronStore.setDocumentStats(setChecked)\n    setDocumentStatsEnabled(!documentStatsEnabled)\n  }\n\n  // Check if we should have flex center for our editor\n  useEffect(() => {\n    const fetchParams = async () => {\n      const getEditorFlexCenter = await window.electronStore.getEditorFlexCenter()\n\n      if (getEditorFlexCenter !== undefined) {\n        setEditorFlexCenter(getEditorFlexCenter)\n      }\n    }\n\n    fetchParams()\n  }, [])\n\n  return (\n    <SettingsSection title=\"Editor\">\n      <SettingsRow\n        title=\"Content Flex Center\"\n        description=\"Centers content inside editor. Recommended for larger screens\"\n        control={\n          <Switch\n            checked={editorFlexCenter}\n            onChange={() => {\n              setEditorFlexCenter(!editorFlexCenter)\n              if (editorFlexCenter !== undefined) {\n                window.electronStore.setEditorFlexCenter(!editorFlexCenter)\n              }\n            }}\n          />\n        }\n      />\n      <SettingsRow\n        title=\"Spell Check\"\n        description=\"Note: Quit and restart the app for this to take effect\"\n        control={\n          <Switch\n            checked={tempSpellCheckEnabled}\n            onChange={() => {\n              handleSaveSpellCheck(!tempSpellCheckEnabled)\n            }}\n            inputProps={{ 'aria-label': 'controlled' }}\n          />\n        }\n      />\n      <SettingsRow\n        title=\"Document Statistics\"\n        description=\"Display real-time word and character statistics while editing your document\"\n        control={\n          <Switch\n            checked={documentStatsEnabled}\n            onChange={() => {\n              handleSaveDocStats(!documentStatsEnabled)\n            }}\n            inputProps={{ 'aria-label': 'controlled' }}\n          />\n        }\n        divider={false}\n      />\n    </SettingsSection>\n  )\n}\n\nexport default EditorSection\n"
  },
  {
    "path": "src/components/Settings/InitialSettingsSinglePage.tsx",
    "content": "import React, { useState } from 'react'\n\nimport { Button } from '@material-tailwind/react'\n\nimport { YStack, H2, SizableText, XStack } from 'tamagui'\nimport ReorModal from '../Common/Modal'\n\nimport DirectorySelector from './DirectorySelector'\nimport InitialEmbeddingModelSettings from './EmbeddingSettings/InitialEmbeddingSettings'\nimport InitialSetupLLMSettings from './LLMSettings/InitialSetupLLMSettings'\n\ninterface OldInitialSettingsProps {\n  readyForIndexing: () => void\n  onClose?: () => void\n}\n\nconst InitialSetupSinglePage: React.FC<OldInitialSettingsProps> = ({ readyForIndexing, onClose }) => {\n  const [directoryErrorMsg, setDirectoryErrorMsg] = useState('')\n  const [embeddingErrorMsg, setEmbeddingErrorMsg] = useState('')\n  const [showError, setShowError] = useState(false)\n\n  const handleNext = () => {\n    if (!directoryErrorMsg && !embeddingErrorMsg) {\n      readyForIndexing()\n    } else {\n      setShowError(true)\n    }\n  }\n\n  return (\n    <ReorModal isOpen onClose={onClose || (() => {})} hideCloseButton={!onClose}>\n      <YStack className=\"ml-2 mr-4 w-[620px] py-3\">\n        <YStack className=\"ml-2 mt-0 h-[450px]  \">\n          <H2 marginBottom={0} textAlign=\"center\" fontWeight={600}>\n            Welcome to the Reor Project\n          </H2>\n          <SizableText marginTop={3} textAlign=\"center\" fontWeight={300}>\n            Reor is a private AI personal knowledge management tool. Each note will be saved as a markdown file to a\n            vault directory on your machine.\n          </SizableText>\n          <XStack className=\"mt-10 flex w-full items-center justify-between border-0 border-b-2 border-solid border-neutral-700 pb-4\">\n            <YStack className=\"w-80 flex-col\">\n              <SizableText fontSize={16} fontWeight=\"bold\">\n                Vault Directory\n              </SizableText>\n              <SizableText margin={0} paddingTop={1} fontSize={12}>\n                Your vault directory doesn&apos;t need to be empty. Only markdown files will be indexed.\n              </SizableText>\n            </YStack>\n            <YStack className=\"flex-col\">\n              <DirectorySelector setErrorMsg={setDirectoryErrorMsg} />\n              {showError && directoryErrorMsg && (\n                <SizableText className=\"text-xs text-red-500\">{directoryErrorMsg}</SizableText>\n              )}\n            </YStack>\n          </XStack>\n          <YStack className=\"mt-2 border-0 border-b-2 border-solid border-neutral-700 pb-2\">\n            <InitialEmbeddingModelSettings setErrorMsg={setEmbeddingErrorMsg} />\n            {showError && embeddingErrorMsg && (\n              <SizableText className=\"text-xs text-red-500\">{embeddingErrorMsg}</SizableText>\n            )}\n          </YStack>\n          <InitialSetupLLMSettings />\n        </YStack>\n        <div className=\"flex justify-end\">\n          <Button\n            className=\"mb-3 mt-4 h-10  w-[80px] cursor-pointer border-none bg-blue-500 px-2 py-0 text-center hover:bg-blue-600\"\n            onClick={handleNext}\n            placeholder=\"\"\n          >\n            Next\n          </Button>\n        </div>\n      </YStack>\n    </ReorModal>\n  )\n}\n\nexport default InitialSetupSinglePage\n"
  },
  {
    "path": "src/components/Settings/LLMSettings/DefaultLLMSelector.tsx",
    "content": "import React, { useState, useEffect } from 'react'\nimport { LLMConfig } from 'electron/main/electron-store/storeConfig'\nimport posthog from 'posthog-js'\nimport { FiTrash2 } from 'react-icons/fi'\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'\n\ninterface DefaultLLMSelectorProps {\n  llmConfigs: LLMConfig[]\n  defaultLLM: string\n  setDefaultLLM: (model: string) => void\n}\n\nconst DefaultLLMSelector: React.FC<DefaultLLMSelectorProps> = ({ llmConfigs, defaultLLM, setDefaultLLM }) => {\n  const [selectedLLM, setSelectedLLM] = useState(defaultLLM)\n\n  useEffect(() => {\n    setSelectedLLM(defaultLLM)\n  }, [defaultLLM])\n\n  const handleDefaultModelChange = (modelName: string) => {\n    setSelectedLLM(modelName)\n    setDefaultLLM(modelName)\n    window.llm.setDefaultLLM(modelName)\n\n    posthog.capture('change_default_llm', {\n      defaultLLM: modelName,\n    })\n  }\n\n  const handleDeleteLLM = async (modelName: string) => {\n    // eslint-disable-next-line no-alert\n    const confirmDelete = window.confirm(`Are you sure you want to delete the model ${modelName}?`)\n    if (!confirmDelete) return\n\n    await window.llm.deleteLLM(modelName)\n\n    posthog.capture('delete_llm', {\n      modelName,\n    })\n  }\n\n  return (\n    <Select onValueChange={handleDefaultModelChange} value={selectedLLM}>\n      <SelectTrigger className=\"w-[180px]\">\n        <SelectValue placeholder=\"Select default LLM\" />\n      </SelectTrigger>\n      <SelectContent>\n        {llmConfigs.map((config) => {\n          const { modelName } = config\n          return (\n            <div key={modelName} className=\"flex w-full items-center justify-between\">\n              <SelectItem className=\"cursor-pointer\" value={modelName}>\n                {modelName}\n              </SelectItem>\n              {config.apiName === 'Ollama' && (\n                <div className=\"cursor-pointer text-red-500\">\n                  <FiTrash2 onClick={() => handleDeleteLLM(modelName)} />\n                </div>\n              )}\n            </div>\n          )\n        })}\n      </SelectContent>\n    </Select>\n  )\n}\n\nexport default DefaultLLMSelector\n"
  },
  {
    "path": "src/components/Settings/LLMSettings/InitialSetupLLMSettings.tsx",
    "content": "import React from 'react'\nimport { CheckCircleIcon, CogIcon } from '@heroicons/react/24/solid'\nimport { Button } from '@material-tailwind/react'\nimport { SizableText, XStack, ScrollView } from 'tamagui'\nimport useLLMConfigs from '../../../lib/hooks/use-llm-configs'\nimport LLMSettingsContent from './LLMSettingsContent'\nimport { Dialog, DialogContent, DialogTrigger, DialogOverlay } from '@/components/ui/dialog'\n\ninterface InitialSetupLLMSettingsProps {}\n\nconst InitialSetupLLMSettings: React.FC<InitialSetupLLMSettingsProps> = () => {\n  const [isSetupModalOpen, setIsSetupModalOpen] = React.useState<boolean>(false)\n  const { llmConfigs, fetchAndUpdateModelConfigs } = useLLMConfigs()\n\n  const isSetupComplete = llmConfigs.length > 0\n\n  const handleOpenChange = (open: boolean) => {\n    setIsSetupModalOpen(open)\n    if (!open) {\n      fetchAndUpdateModelConfigs()\n    }\n  }\n\n  return (\n    <XStack width=\"100%\" justifyContent=\"space-between\" alignItems=\"center\" paddingTop=\"$2\">\n      <SizableText color=\"$gray13\" fontWeight={600}>\n        LLM\n      </SizableText>\n      <Dialog open={isSetupModalOpen} onOpenChange={handleOpenChange}>\n        <DialogTrigger asChild>\n          <Button\n            className={`flex cursor-pointer items-center justify-between rounded-md border border-none border-gray-300 px-3 py-2 ${\n              isSetupComplete\n                ? 'bg-green-700 text-white hover:bg-green-800'\n                : 'bg-dark-gray-c-eight hover:bg-dark-gray-c-ten'\n            } font-normal transition-colors duration-200`}\n            placeholder=\"\"\n          >\n            {isSetupComplete ? (\n              <>\n                <CheckCircleIcon className=\"mr-2 size-5\" />\n                <span>Setup</span>\n              </>\n            ) : (\n              <>\n                <CogIcon className=\"mr-2 size-5\" />\n                <span>Setup</span>\n              </>\n            )}\n          </Button>\n        </DialogTrigger>\n        <DialogOverlay>\n          <DialogContent style={{ maxHeight: '60vh', display: 'flex', flexDirection: 'column' }}>\n            <ScrollView style={{ flex: 1 }}>\n              <LLMSettingsContent />\n            </ScrollView>\n          </DialogContent>\n        </DialogOverlay>\n      </Dialog>\n    </XStack>\n  )\n}\n\nexport default InitialSetupLLMSettings\n"
  },
  {
    "path": "src/components/Settings/LLMSettings/LLMSelectOrButton.tsx",
    "content": "import React, { useState } from 'react'\nimport { Button } from '@/components/ui/button'\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'\nimport SettingsModal, { SettingsTab } from '../Settings'\nimport useLLMConfigs from '@/lib/hooks/use-llm-configs'\nimport { useThemeManager } from '@/contexts/ThemeContext'\n\ninterface LLMSelectOrButtonProps {\n  selectedLLM: string | undefined\n  setSelectedLLM: (value: string | undefined) => void\n}\n\nconst LLMSelectOrButton: React.FC<LLMSelectOrButtonProps> = ({ selectedLLM, setSelectedLLM }) => {\n  const { llmConfigs } = useLLMConfigs()\n  const { state } = useThemeManager()\n  const handleLLMChange = (value: string) => {\n    setSelectedLLM(value)\n  }\n\n  const [isSettingsModalOpen, setSettingsModalOpen] = useState(false)\n  const [activeTab, setActiveTab] = useState<SettingsTab>(SettingsTab.GeneralSettingsTab)\n\n  const openModalWithTab = (tab: SettingsTab) => {\n    setActiveTab(tab)\n    setSettingsModalOpen(true)\n  }\n\n  const closeModal = () => {\n    setSettingsModalOpen(false)\n  }\n\n  const openLLMSettings = () => {\n    openModalWithTab(SettingsTab.LLMSettingsTab)\n  }\n\n  return (\n    <div className=\"text-left\">\n      <div className=\"flex items-center\">\n        {llmConfigs.length === 0 ? (\n          <Button className=\"bg-transparent text-primary hover:bg-slate-700\" onClick={openLLMSettings}>\n            Attach LLM\n          </Button>\n        ) : (\n          <Select value={selectedLLM} onValueChange={(value) => handleLLMChange(value)}>\n            <SelectTrigger\n              className={`h-7 w-32 border-0 text-[10px] ${state === 'light' ? 'text-black' : 'text-white'}focus:ring-0 focus:ring-offset-0`}\n            >\n              <SelectValue placeholder=\"Select LLM\" />\n            </SelectTrigger>\n            <SelectContent className=\"rounded-md border border-dark-gray-c-eight bg-[#1c1c1c]\">\n              {llmConfigs.map((llm) => (\n                <SelectItem\n                  key={llm.modelName}\n                  value={llm.modelName}\n                  className=\"cursor-pointer text-[10px] text-gray-300 hover:bg-[#252525] focus:bg-[#252525] focus:text-gray-200\"\n                >\n                  {llm.modelName}\n                </SelectItem>\n              ))}\n            </SelectContent>\n          </Select>\n        )}\n        <SettingsModal isOpen={isSettingsModalOpen} onClose={closeModal} initialTab={activeTab} />\n      </div>\n    </div>\n  )\n}\n\nexport default LLMSelectOrButton\n"
  },
  {
    "path": "src/components/Settings/LLMSettings/LLMSettingsContent.tsx",
    "content": "import React, { useState } from 'react'\nimport DefaultLLMSelector from './DefaultLLMSelector'\nimport useLLMConfigs from '../../../lib/hooks/use-llm-configs'\nimport { Button } from '@/components/ui/button'\nimport { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '@/components/ui/dropdown-menu'\n\nimport DefaultLLMAPISetupModal from './modals/DefaultLLMAPISetupModal'\nimport NewOllamaModelModal from './modals/NewOllamaModel'\nimport CustomLLMAPISetupModal from './modals/CustomLLMAPISetup'\nimport SettingsSection, { SettingsRow } from '../Shared/SettingsRow'\n\ninterface LLMSettingsContentProps {}\n\nconst LLMSettingsContent: React.FC<LLMSettingsContentProps> = () => {\n  const { llmConfigs, defaultLLM, setDefaultLLM, fetchAndUpdateModelConfigs } = useLLMConfigs()\n\n  const [openModal, setOpenModal] = useState<string | null>(null)\n\n  const closeModal = () => {\n    setOpenModal(null)\n    fetchAndUpdateModelConfigs()\n  }\n\n  const modalOptions = [\n    { label: 'OpenAI Setup', value: 'openai' },\n    { label: 'Anthropic Setup', value: 'anthropic' },\n  ]\n\n  return (\n    <SettingsSection title=\"LLM\">\n      <SettingsRow\n        title=\"Default LLM\"\n        description=\"Select your default language model\"\n        control={<DefaultLLMSelector llmConfigs={llmConfigs} defaultLLM={defaultLLM} setDefaultLLM={setDefaultLLM} />}\n      />\n\n      <SettingsRow\n        title=\"Local LLM\"\n        description=\"Attach a local LLM. Reor will download the model for you.\"\n        control={\n          <Button variant=\"secondary\" onClick={() => setOpenModal('newLocalModel')}>\n            Attach Local LLM\n          </Button>\n        }\n      />\n\n      <SettingsRow\n        title=\"Setup Cloud LLM API\"\n        description=\"Add your API key (OpenAI or Anthropic)\"\n        control={\n          <DropdownMenu>\n            <DropdownMenuTrigger asChild>\n              <Button variant=\"secondary\">Attach Cloud LLM</Button>\n            </DropdownMenuTrigger>\n            <DropdownMenuContent>\n              {modalOptions.map((option) => (\n                <DropdownMenuItem\n                  key={option.value}\n                  onClick={() => setOpenModal(option.value)}\n                  className=\"cursor-pointer\"\n                >\n                  {option.label}\n                </DropdownMenuItem>\n              ))}\n            </DropdownMenuContent>\n          </DropdownMenu>\n        }\n      />\n\n      <SettingsRow\n        title=\"Setup a custom LLM API\"\n        description=\"I.e. a non-OpenAI/Anthropic LLM\"\n        control={\n          <Button variant=\"secondary\" onClick={() => setOpenModal('remoteLLM')}>\n            Custom LLM Setup\n          </Button>\n        }\n        divider={false}\n      />\n\n      <NewOllamaModelModal isOpen={openModal === 'newLocalModel'} onClose={closeModal} />\n      <CustomLLMAPISetupModal isOpen={openModal === 'remoteLLM'} onClose={closeModal} />\n      <DefaultLLMAPISetupModal isOpen={openModal === 'openai'} onClose={closeModal} apiInterface=\"openai\" />\n      <DefaultLLMAPISetupModal isOpen={openModal === 'anthropic'} onClose={closeModal} apiInterface=\"anthropic\" />\n    </SettingsSection>\n  )\n}\n\nexport default LLMSettingsContent\n"
  },
  {
    "path": "src/components/Settings/LLMSettings/modals/CustomLLMAPISetup.tsx",
    "content": "/* eslint-disable jsx-a11y/label-has-associated-control */\nimport React, { useState } from 'react'\nimport { LLMAPIConfig } from 'electron/main/electron-store/storeConfig'\nimport posthog from 'posthog-js'\nimport { Input, XStack, YStack } from 'tamagui'\nimport { Button } from '@/components/ui/button'\nimport {\n  Dialog,\n  DialogContent,\n  DialogDescription,\n  DialogHeader,\n  DialogTitle,\n  DialogFooter,\n  DialogOverlay,\n} from '@/components/ui/dialog'\nimport ExternalLink from '../../../Common/ExternalLink'\nimport errorToStringRendererProcess from '@/lib/error'\n\ninterface RemoteLLMModalProps {\n  isOpen: boolean\n  onClose: () => void\n}\n\ninterface ModelNameInputProps {\n  modelNames: string[]\n  setModelNames: React.Dispatch<React.SetStateAction<string[]>>\n}\n\nconst ModelNameInput: React.FC<ModelNameInputProps> = ({ modelNames, setModelNames }) => {\n  const [newModelName, setNewModelName] = useState('')\n\n  const addModelName = () => {\n    if (newModelName.trim() !== '') {\n      setModelNames([...modelNames, newModelName.trim()])\n      setNewModelName('')\n    }\n  }\n\n  return (\n    <YStack className=\"\">\n      <h4 className=\"mb-1 font-medium\">Model Names</h4>\n      <XStack flex={1} gap=\"$2\">\n        <Input\n          className=\"mt-0 w-full\"\n          placeholder=\"Add model name\"\n          value={newModelName}\n          onChangeText={setNewModelName}\n          size=\"$1\"\n          py=\"$4\"\n          px=\"$2\"\n        />\n        <Button onClick={addModelName} type=\"button\" variant=\"secondary\">\n          Add\n        </Button>\n      </XStack>\n      <div className=\"flex flex-wrap gap-2\">\n        {modelNames.map((name, index) => (\n          // eslint-disable-next-line react/no-array-index-key\n          <span key={index} className=\"rounded bg-secondary px-2 py-1 text-sm\">\n            {name}\n          </span>\n        ))}\n      </div>\n    </YStack>\n  )\n}\n\nconst CustomLLMAPISetupModal: React.FC<RemoteLLMModalProps> = ({ isOpen, onClose: parentOnClose }) => {\n  const [apiName, setApiName] = useState<string>('')\n  const [apiURL, setApiURL] = useState<string>('')\n  const [apiKey, setApiKey] = useState<string>('')\n  const [modelNames, setModelNames] = useState<string[]>([])\n  const [currentError, setCurrentError] = useState<string>('')\n\n  const handleSave = async () => {\n    if (!apiName || !apiURL) {\n      setCurrentError('API Name and URL are required')\n      return\n    }\n    const apiConfig: LLMAPIConfig = {\n      name: apiName,\n      apiInterface: 'openai',\n      apiURL,\n      apiKey,\n    }\n    posthog.capture('save_remote_llm', {\n      modelName: apiName,\n      modelCount: modelNames.length,\n    })\n    try {\n      await window.llm.addOrUpdateLLMAPIConfig(apiConfig)\n      modelNames.forEach(async (modelName) => {\n        await window.llm.addOrUpdateLLMConfig({\n          modelName,\n          apiName,\n        })\n      })\n      parentOnClose()\n    } catch (error) {\n      setCurrentError(errorToStringRendererProcess(error))\n    }\n  }\n\n  const handleClose = () => {\n    if (apiName && apiURL) {\n      handleSave()\n    } else {\n      parentOnClose()\n    }\n  }\n\n  return (\n    <Dialog open={isOpen} onOpenChange={(open) => !open && handleClose()}>\n      <DialogOverlay>\n        <DialogContent className=\"max-h-[60vh] overflow-y-auto p-4 sm:max-w-[525px]\">\n          <DialogHeader>\n            <DialogTitle>Remote LLM Setup</DialogTitle>\n            <DialogDescription>\n              Connect with a custom OpenAI-like API endpoint like{' '}\n              <ExternalLink href=\"https://github.com/oobabooga/text-generation-webui/wiki/12-%E2%80%90-OpenAI-API\">\n                Oobabooga\n              </ExternalLink>\n              . A guide to doing this is on the{' '}\n              <ExternalLink href=\"https://www.reorproject.org/docs/documentation/openai-like-api\">docs</ExternalLink>.\n              This is mainly for folks hosting their own models on other machines.\n            </DialogDescription>\n          </DialogHeader>\n          <div className=\"grid gap-2 py-4\">\n            <div className=\"grid gap-1\">\n              <label htmlFor=\"apiUrl\">API URL</label>\n              <Input\n                id=\"apiUrl\"\n                placeholder=\"API URL\"\n                value={apiURL}\n                onChangeText={setApiURL}\n                size=\"$1\"\n                py=\"$4\"\n                px=\"$2\"\n              />\n              <p className=\"mt-0 text-xs text-muted-foreground\">\n                (This must be an OpenAI compatible API endpoint. That typically is the part of the url before\n                /chat/completions like for example http://127.0.0.1:1337/v1)\n              </p>\n            </div>\n            <div className=\"grid gap-1\">\n              <label htmlFor=\"apiName\">API Name</label>\n              <Input\n                id=\"apiName\"\n                placeholder=\"API Name\"\n                value={apiName}\n                onChangeText={setApiName}\n                size=\"$1\"\n                py=\"$4\"\n                px=\"$2\"\n              />\n              <p className=\"mt-0 text-xs text-muted-foreground\">(A name for your new api)</p>\n            </div>\n            <div className=\"grid gap-1\">\n              <label htmlFor=\"apiKey\">Optional API Key</label>\n              <Input\n                id=\"apiKey\"\n                placeholder=\"API Key\"\n                value={apiKey}\n                onChangeText={setApiKey}\n                size=\"$1\"\n                py=\"$4\"\n                px=\"$2\"\n              />\n              <p className=\"mt-0 text-xs text-muted-foreground\">(If your endpoint requires an API key.)</p>\n            </div>\n            <ModelNameInput modelNames={modelNames} setModelNames={setModelNames} />\n            {currentError && <p className=\"text-xs text-destructive\">{currentError}</p>}\n          </div>\n          <DialogFooter>\n            <Button variant=\"secondary\" onClick={handleSave}>\n              Save\n            </Button>\n          </DialogFooter>\n        </DialogContent>\n      </DialogOverlay>\n    </Dialog>\n  )\n}\n\nexport default CustomLLMAPISetupModal\n"
  },
  {
    "path": "src/components/Settings/LLMSettings/modals/DefaultLLMAPISetupModal.tsx",
    "content": "import React, { useState } from 'react'\nimport { APIInterface, LLMAPIConfig } from 'electron/main/electron-store/storeConfig'\nimport {\n  anthropicDefaultAPIName,\n  anthropicDefaultLLMs,\n  openAIDefaultAPIName,\n  openAIDefaultLLMs,\n} from '@shared/defaultLLMs'\nimport { Input } from 'tamagui'\nimport { NativeSyntheticEvent, TextInputKeyPressEventData } from 'react-native'\nimport { Button } from '@/components/ui/button'\nimport {\n  Dialog,\n  DialogContent,\n  DialogDescription,\n  DialogHeader,\n  DialogTitle,\n  DialogFooter,\n  DialogOverlay,\n} from '@/components/ui/dialog'\n\nexport interface CloudLLMSetupModalProps {\n  isOpen: boolean\n  onClose: () => void\n  apiInterface: APIInterface\n}\n\nconst DefaultLLMAPISetupModal: React.FC<CloudLLMSetupModalProps> = ({ isOpen, onClose, apiInterface }) => {\n  const [apiKey, setAPIKey] = useState('')\n\n  const LLMDisplayName = apiInterface === 'openai' ? 'OpenAI' : 'Anthropic'\n\n  const handleSave = async () => {\n    if (apiKey) {\n      if (apiInterface === 'openai') {\n        const api: LLMAPIConfig = {\n          apiKey,\n          apiInterface: 'openai',\n          name: openAIDefaultAPIName,\n        }\n        await window.llm.addOrUpdateLLMAPIConfig(api)\n        openAIDefaultLLMs.forEach(async (model) => {\n          await window.llm.addOrUpdateLLMConfig(model)\n        })\n      } else if (apiInterface === 'anthropic') {\n        const api: LLMAPIConfig = {\n          apiKey,\n          apiInterface: 'anthropic',\n          name: anthropicDefaultAPIName,\n        }\n        await window.llm.addOrUpdateLLMAPIConfig(api)\n        anthropicDefaultLLMs.forEach(async (model) => {\n          await window.llm.addOrUpdateLLMConfig(model)\n        })\n      }\n    }\n    onClose()\n  }\n\n  const handleKeyPress = (e: NativeSyntheticEvent<TextInputKeyPressEventData>) => {\n    if (e.nativeEvent.key === 'Enter') {\n      handleSave()\n    }\n  }\n\n  return (\n    <Dialog open={isOpen} onOpenChange={(open) => !open && onClose()}>\n      <DialogOverlay>\n        <DialogContent className=\"p-4 sm:max-w-[425px]\">\n          <DialogHeader>\n            <DialogTitle>{LLMDisplayName} Setup</DialogTitle>\n            <DialogDescription>Enter your {LLMDisplayName} API key below:</DialogDescription>\n          </DialogHeader>\n          <div className=\"grid gap-4 pt-4\">\n            <Input\n              value={apiKey}\n              onChangeText={setAPIKey}\n              onKeyPress={handleKeyPress}\n              placeholder={`${LLMDisplayName} API Key`}\n              size=\"$1\"\n              py=\"$3\"\n              px=\"$2\"\n              secureTextEntry\n            />\n            <p className=\"mt-0 text-xs text-muted-foreground\">\n              <i>You&apos;ll then be able to choose an {LLMDisplayName} model in the model dropdown...</i>\n            </p>\n          </div>\n          <DialogFooter>\n            <Button variant=\"secondary\" onClick={handleSave}>\n              Save\n            </Button>\n          </DialogFooter>\n        </DialogContent>\n      </DialogOverlay>\n    </Dialog>\n  )\n}\n\nexport default DefaultLLMAPISetupModal\n"
  },
  {
    "path": "src/components/Settings/LLMSettings/modals/NewOllamaModel.tsx",
    "content": "import React, { useState, useEffect } from 'react'\nimport { ProgressResponse } from 'ollama'\nimport posthog from 'posthog-js'\nimport { toast } from 'react-toastify'\nimport { Input } from 'tamagui'\nimport { Button } from '@/components/ui/button'\nimport {\n  Dialog,\n  DialogContent,\n  DialogDescription,\n  DialogHeader,\n  DialogTitle,\n  DialogFooter,\n  DialogOverlay,\n} from '@/components/ui/dialog'\nimport ExternalLink from '@/components/Common/ExternalLink'\nimport errorToStringRendererProcess from '@/lib/error'\nimport downloadPercentage from './utils'\n\ninterface NewOllamaModelModalProps {\n  isOpen: boolean\n  onClose: () => void\n}\n\ninterface ModelDownloadStatus {\n  progress: ProgressResponse\n  error?: string\n}\n\nconst NewOllamaModelModal: React.FC<NewOllamaModelModalProps> = ({ isOpen, onClose }) => {\n  const [modelNameBeingInputted, setModelNameBeingInputted] = useState('')\n  const [modelNameerror, setModelNameError] = useState('')\n  const [downloadProgress, setDownloadProgress] = useState<{\n    [modelName: string]: ModelDownloadStatus\n  }>({})\n\n  const downloadSelectedModel = async () => {\n    if (!modelNameBeingInputted) {\n      setModelNameError('Please enter a model name')\n      return\n    }\n    let taggedModelName = modelNameBeingInputted\n    if (!taggedModelName.includes(':')) {\n      taggedModelName = `${taggedModelName}:latest`\n    }\n    try {\n      posthog.capture('download_new_llm', {\n        modelName: taggedModelName,\n      })\n      await window.llm.pullOllamaModel(taggedModelName)\n      await window.llm.setDefaultLLM(taggedModelName)\n      toast.success(`${taggedModelName} download complete!`)\n    } catch (e) {\n      const errorMessage = errorToStringRendererProcess(e)\n      setDownloadProgress((prevProgress) => ({\n        ...prevProgress,\n        [taggedModelName]: {\n          ...prevProgress[taggedModelName],\n          error: errorMessage,\n        },\n      }))\n      throw e\n    }\n  }\n\n  useEffect(() => {\n    const updateStream = (modelName: string, progress: ProgressResponse) => {\n      setDownloadProgress((prevProgress) => ({\n        ...prevProgress,\n        [modelName]: {\n          ...prevProgress[modelName],\n          progress,\n        },\n      }))\n    }\n\n    const removeOllamaDownloadProgressListener = window.ipcRenderer.receive('ollamaDownloadProgress', updateStream)\n\n    return () => {\n      removeOllamaDownloadProgressListener()\n    }\n  }, [])\n\n  return (\n    <Dialog open={isOpen} onOpenChange={(open) => !open && onClose()}>\n      <DialogOverlay>\n        <DialogContent className=\"p-4 sm:max-w-[525px]\">\n          <DialogHeader>\n            <DialogTitle>New Local LLM</DialogTitle>\n            <DialogDescription>\n              Reor will automatically download an LLM. Please choose an LLM from the{' '}\n              <ExternalLink href=\"https://ollama.com/library\">Ollama Library</ExternalLink> and paste the name of the\n              LLM below:\n            </DialogDescription>\n          </DialogHeader>\n          <div className=\"grid gap-4 py-4\">\n            <Input\n              value={modelNameBeingInputted}\n              onChangeText={setModelNameBeingInputted}\n              placeholder=\"llama3.2\"\n              size=\"$1\"\n              py=\"$3\"\n              px=\"$2\"\n            />\n            <p className=\"text-xs italic text-muted-foreground\">\n              We recommended either nemotron-mini, llama3.2, or qwen2.5.\n            </p>\n            {modelNameerror && <p className=\"text-xs text-destructive\">{modelNameerror}</p>}\n            {Object.entries(downloadProgress).map(([modelName, { progress, error }]) => (\n              <div key={modelName}>\n                {(() => {\n                  if (error) {\n                    return <p className=\"text-sm text-destructive\">{`${modelName}: Error - ${error}`}</p>\n                  }\n                  if (progress.status === 'success') {\n                    return (\n                      <p className=\"text-sm text-muted-foreground\">\n                        {`${modelName}: Download complete! Refresh the chat window to use the new model.`}\n                      </p>\n                    )\n                  }\n                  return (\n                    <p className=\"text-sm text-muted-foreground\">\n                      {`${modelName}: Download progress - ${downloadPercentage(progress)}`}\n                    </p>\n                  )\n                })()}\n              </div>\n            ))}\n            {Object.entries(downloadProgress).length > 0 && (\n              <p className=\"text-xs text-muted-foreground\">\n                (Feel free to close this modal while the download completes)\n              </p>\n            )}\n          </div>\n          <DialogFooter>\n            <Button variant=\"secondary\" onClick={downloadSelectedModel}>\n              Download\n            </Button>\n          </DialogFooter>\n        </DialogContent>\n      </DialogOverlay>\n    </Dialog>\n  )\n}\n\nexport default NewOllamaModelModal\n"
  },
  {
    "path": "src/components/Settings/LLMSettings/modals/utils.ts",
    "content": "import { ProgressResponse } from 'ollama'\n\nconst downloadPercentage = (progress: ProgressResponse): string => {\n  // Check if `total` is 0, undefined, or not a number to avoid division by zero or invalid operations\n  if (\n    !progress.total ||\n    Number.isNaN(progress.total) ||\n    progress.total === 0 ||\n    !progress.completed ||\n    Number.isNaN(progress.completed)\n  ) {\n    // Depending on your logic, you might want to return 0, or handle this case differently\n    return 'checking...'\n  }\n\n  const percentage = (100 * progress.completed) / progress.total\n\n  return `${percentage.toFixed(2)}%`\n}\n\nexport default downloadPercentage\n"
  },
  {
    "path": "src/components/Settings/Settings.tsx",
    "content": "import React, { useState, useEffect } from 'react'\nimport { YStack, SizableText, XStack, ScrollView } from 'tamagui'\nimport { Dialog, DialogContent, DialogOverlay } from '@/components/ui/dialog'\n\nimport AnalyticsSettings from './AnalyticsSettings'\nimport EmbeddingModelSettings from './EmbeddingSettings/EmbeddingSettings'\nimport EditorSettings from './GeneralSettings'\n\nimport LLMSettingsContent from './LLMSettings/LLMSettingsContent'\n\ninterface SettingsModalProps {\n  isOpen: boolean\n  onClose: () => void\n  initialTab?: SettingsTab\n}\n\nexport enum SettingsTab {\n  GeneralSettingsTab = 'generalSettings',\n  LLMSettingsTab = 'llmSettings',\n  EmbeddingModelTab = 'embeddingModel',\n  AnalyticsTab = 'analytics',\n}\n\nconst SettingsModal: React.FC<SettingsModalProps> = ({\n  isOpen,\n  onClose: onCloseFromParent,\n  initialTab = SettingsTab.GeneralSettingsTab,\n}) => {\n  const [willNeedToReIndex, setWillNeedToReIndex] = useState(false)\n  const [activeTab, setActiveTab] = useState<SettingsTab>(initialTab)\n\n  useEffect(() => {\n    setActiveTab(initialTab)\n  }, [initialTab])\n\n  const handleSave = () => {\n    if (willNeedToReIndex) {\n      window.database.indexFilesInDirectory()\n    }\n    onCloseFromParent()\n  }\n\n  return (\n    <Dialog\n      open={isOpen}\n      onOpenChange={(open) => {\n        if (!open) handleSave()\n      }}\n    >\n      <DialogOverlay>\n        <DialogContent>\n          <ScrollView height=\"80vh\">\n            <XStack height=\"100%\" minHeight=\"80vh\" width=\"100%\">\n              <YStack\n                backgroundColor=\"$gray12\"\n                width=\"150px\"\n                gap=\"$1\"\n                flex={1}\n                className=\"flex flex-col rounded-l-lg border-y-0 border-l-0 border-r-[0.1px] border-solid border-gray-700 p-2 text-white\"\n              >\n                <YStack\n                  backgroundColor={activeTab === SettingsTab.GeneralSettingsTab ? '$gray7' : ''}\n                  hoverStyle={{\n                    backgroundColor: '$gray7',\n                  }}\n                  cursor=\"pointer\"\n                  py=\"$2\"\n                  px=\"$2\"\n                  alignItems=\"flex-start\"\n                  onPress={() => setActiveTab(SettingsTab.GeneralSettingsTab)}\n                >\n                  <SizableText\n                    size=\"$2\"\n                    fontWeight={activeTab === SettingsTab.GeneralSettingsTab ? 'bold' : 'normal'}\n                    color={activeTab === SettingsTab.GeneralSettingsTab ? '$gray13' : ''}\n                  >\n                    Editor\n                  </SizableText>\n                </YStack>\n                <YStack\n                  backgroundColor={activeTab === SettingsTab.LLMSettingsTab ? '$gray7' : ''}\n                  hoverStyle={{\n                    backgroundColor: '$gray7',\n                  }}\n                  cursor=\"pointer\"\n                  py=\"$2\"\n                  px=\"$2\"\n                  alignItems=\"flex-start\"\n                  borderRadius=\"$2\"\n                  onPress={() => setActiveTab(SettingsTab.LLMSettingsTab)}\n                >\n                  <SizableText\n                    size=\"$2\"\n                    fontWeight={activeTab === SettingsTab.LLMSettingsTab ? 'bold' : 'normal'}\n                    color={activeTab === SettingsTab.LLMSettingsTab ? '$gray13' : ''}\n                  >\n                    LLM\n                  </SizableText>\n                </YStack>\n                <YStack\n                  backgroundColor={activeTab === SettingsTab.EmbeddingModelTab ? '$gray7' : ''}\n                  hoverStyle={{\n                    backgroundColor: '$gray7',\n                  }}\n                  cursor=\"pointer\"\n                  py=\"$2\"\n                  px=\"$2\"\n                  alignItems=\"flex-start\"\n                  borderRadius=\"$2\"\n                  onPress={() => setActiveTab(SettingsTab.EmbeddingModelTab)}\n                >\n                  <SizableText\n                    size=\"$2\"\n                    fontWeight={activeTab === SettingsTab.EmbeddingModelTab ? 'bold' : 'normal'}\n                    color={activeTab === SettingsTab.EmbeddingModelTab ? '$gray13' : ''}\n                  >\n                    Embedding Model\n                  </SizableText>\n                </YStack>\n                <YStack\n                  backgroundColor={activeTab === SettingsTab.AnalyticsTab ? '$gray7' : ''}\n                  hoverStyle={{\n                    backgroundColor: '$gray7',\n                  }}\n                  cursor=\"pointer\"\n                  py=\"$2\"\n                  px=\"$2\"\n                  alignItems=\"flex-start\"\n                  borderRadius=\"$2\"\n                  onPress={() => setActiveTab(SettingsTab.AnalyticsTab)}\n                >\n                  <SizableText\n                    size=\"$2\"\n                    fontWeight={activeTab === SettingsTab.AnalyticsTab ? 'bold' : 'normal'}\n                    color={activeTab === SettingsTab.AnalyticsTab ? '$gray13' : ''}\n                  >\n                    Analytics\n                  </SizableText>\n                </YStack>\n              </YStack>\n\n              <XStack maxWidth=\"calc(100% - 150px)\" flex={1}>\n                {activeTab === SettingsTab.GeneralSettingsTab && <EditorSettings />}\n                {activeTab === SettingsTab.LLMSettingsTab && <LLMSettingsContent />}\n                {activeTab === SettingsTab.EmbeddingModelTab && (\n                  <EmbeddingModelSettings handleUserHasChangedModel={() => setWillNeedToReIndex(true)} />\n                )}\n                {activeTab === SettingsTab.AnalyticsTab && <AnalyticsSettings />}\n              </XStack>\n            </XStack>\n          </ScrollView>\n        </DialogContent>\n      </DialogOverlay>\n    </Dialog>\n  )\n}\n\nexport default SettingsModal\n"
  },
  {
    "path": "src/components/Settings/Shared/SettingsRow.tsx",
    "content": "import React, { ReactNode } from 'react'\nimport { YStack, XStack, SizableText } from 'tamagui'\n\ninterface SettingsSectionProps {\n  title: string\n  children: ReactNode\n  footnote?: string | ReactNode\n  error?: string | ReactNode\n}\n\ninterface SettingsRowProps {\n  title: string\n  description?: string\n  control: ReactNode\n  divider?: boolean\n}\n\nconst SettingsSection: React.FC<SettingsSectionProps> = ({ title, children, footnote, error }) => (\n  <YStack px=\"$4\" backgroundColor=\"$gray1\" width=\"100%\" height=\"100%\" justifyContent=\"space-between\">\n    <YStack>\n      <h2 className=\"mb-2\">{title}</h2>\n      <XStack className=\"h-[2px] w-full bg-neutral-700\" />\n      <YStack maxWidth=\"100%\" width=\"100%\" overflow=\"hidden\">\n        {children}\n        {error && (\n          <SizableText size=\"$1\" color=\"$red\" py=\"$2\">\n            {error}\n          </SizableText>\n        )}\n      </YStack>\n    </YStack>\n    {footnote && (\n      <SizableText size=\"$1\" py=\"$2\">\n        {footnote}\n      </SizableText>\n    )}\n  </YStack>\n)\n\nexport const SettingsRow: React.FC<SettingsRowProps> = ({ title, description, control, divider = true }) => {\n  return (\n    <>\n      <XStack width=\"100%\">\n        <XStack justifyContent=\"space-between\" alignItems=\"center\" py=\"$3\" width=\"100%\">\n          <YStack flex={1} pr=\"$4\">\n            <SizableText size=\"$3\" fontWeight=\"semi-bold\">\n              {title}\n            </SizableText>\n            {description && (\n              <SizableText size=\"$1\" py=\"$2\">\n                {description}\n              </SizableText>\n            )}\n          </YStack>\n          {control}\n        </XStack>\n      </XStack>\n      {divider && <XStack className=\"h-[2px] w-full bg-neutral-700\" />}\n    </>\n  )\n}\n\nexport default SettingsSection\n"
  },
  {
    "path": "src/components/Sidebars/FileSideBar/FileItemRows.tsx",
    "content": "import React, { useState, useCallback } from 'react'\nimport { ListChildComponentProps } from 'react-window'\nimport posthog from 'posthog-js'\nimport { isFileNodeDirectory } from '@shared/utils'\nimport { XStack, Text } from 'tamagui'\nimport { ChevronRight, ChevronDown } from '@tamagui/lucide-icons'\nimport { useFileContext } from '@/contexts/FileContext'\nimport { removeFileExtension } from '@/lib/file'\nimport { useContentContext } from '@/contexts/ContentContext'\nimport { ContextMenu, ContextMenuContent, ContextMenuItem, ContextMenuTrigger } from '@/components/ui/context-menu'\nimport NewDirectoryComponent from '@/components/File/NewDirectory'\n\nconst FileItemRows: React.FC<ListChildComponentProps> = ({ index, style, data }) => {\n  const { file, indentation } = data.filesAndIndentations[index]\n\n  const {\n    handleDirectoryToggle,\n    expandedDirectories,\n    currentlyOpenFilePath,\n    setNoteToBeRenamed,\n    deleteFile,\n    selectedDirectory,\n    setSelectedDirectory,\n    renameFile,\n  } = useFileContext()\n  const { openContent, createUntitledNote } = useContentContext()\n  const [isNewDirectoryModalOpen, setIsNewDirectoryModalOpen] = useState(false)\n  const [parentDirectoryPathForNewDirectory, setParentDirectoryPathForNewDirectory] = useState<string | undefined>()\n  const [isDragOver, setIsDragOver] = useState(false)\n\n  const isDirectory = isFileNodeDirectory(file)\n  const isSelected = isDirectory ? file.path === selectedDirectory : file.path === currentlyOpenFilePath\n\n  const indentationPadding = indentation ? 10 * indentation : 0\n  const isExpanded = expandedDirectories.get(file.path)\n\n  const handleDragOver = useCallback((e: React.DragEvent) => {\n    e.preventDefault()\n    setIsDragOver(true)\n  }, [])\n\n  const handleDragLeave = useCallback(() => setIsDragOver(false), [])\n\n  const handleDragStart = useCallback(\n    (e: React.DragEvent) => {\n      e.stopPropagation()\n      e.dataTransfer.setData('text/plain', file.path)\n      e.dataTransfer.effectAllowed = 'move'\n    },\n    [file.path],\n  )\n\n  const handleDrop = useCallback(\n    async (e: React.DragEvent) => {\n      e.preventDefault()\n      e.stopPropagation()\n      setIsDragOver(false)\n      const sourcePath = e.dataTransfer.getData('text/plain')\n      const destinationDirectory = isDirectory ? file.path : await window.path.dirname(file.path)\n      const destinationPath = await window.path.join(destinationDirectory, await window.path.basename(sourcePath))\n      renameFile(sourcePath, destinationPath)\n    },\n    [file.path, isDirectory, renameFile],\n  )\n\n  const clickOnFileOrDirectory = useCallback(\n    (event: any) => {\n      const e = event.nativeEvent\n      if (isDirectory) {\n        handleDirectoryToggle(file.path)\n        setSelectedDirectory(file.path)\n      } else {\n        openContent(file.path)\n        posthog.capture('open_file_from_sidebar')\n      }\n      e.stopPropagation()\n    },\n    [file.path, isDirectory, handleDirectoryToggle, openContent, setSelectedDirectory],\n  )\n\n  const openNewDirectoryModal = useCallback(async () => {\n    const dirPath = isDirectory ? file.path : await window.path.dirname(file.path)\n    setParentDirectoryPathForNewDirectory(dirPath)\n    setIsNewDirectoryModalOpen(true)\n  }, [file.path, isDirectory])\n\n  const handleDelete = useCallback(() => {\n    const itemType = isDirectory ? 'directory' : 'file'\n    const confirmMessage = `Are you sure you want to delete this ${itemType}?${\n      isDirectory ? ' This will delete all contents of the directory.' : ''\n    }`\n\n    // eslint-disable-next-line no-alert\n    if (window.confirm(confirmMessage)) {\n      deleteFile(file.path)\n    }\n  }, [deleteFile, file.path, isDirectory])\n\n  const itemClasses = `flex items-center cursor-pointer px-2 py-1 border-b border-gray-200 h-full mt-0 mb-0 font-sans text-xs leading-relaxed rounded-md ${\n    isSelected ? 'font-semibold' : ''\n  } ${isDragOver ? 'bg-neutral-500' : ''}`\n\n  const renderContextMenuItems = () => (\n    <>\n      <ContextMenuItem\n        onClick={async () => createUntitledNote(isDirectory ? file.path : await window.path.dirname(file.path))}\n      >\n        New file\n      </ContextMenuItem>\n      <ContextMenuItem onClick={openNewDirectoryModal}>New folder</ContextMenuItem>\n      <ContextMenuItem onClick={() => setNoteToBeRenamed(file.path)}>Rename</ContextMenuItem>\n      <ContextMenuItem onClick={handleDelete}>Delete</ContextMenuItem>\n    </>\n  )\n\n  return (\n    <div style={{ ...style, paddingLeft: `${indentationPadding}px` }}>\n      <ContextMenu>\n        <ContextMenuTrigger>\n          <div\n            draggable\n            onDragStart={handleDragStart}\n            onDragOver={handleDragOver}\n            onDrop={handleDrop}\n            onDragLeave={handleDragLeave}\n          >\n            <XStack\n              hoverStyle={{\n                backgroundColor: '$gray7',\n              }}\n              backgroundColor={isSelected && !isDirectory ? '$gray7' : ''}\n              onPress={clickOnFileOrDirectory}\n              className={itemClasses}\n              overflow=\"hidden\"\n            >\n              {isDirectory && (\n                <span className=\"mr-2 mt-1\">\n                  {isExpanded ? (\n                    // <FaChevronDown title=\"Collapse Directory\" />\n                    <ChevronDown title=\"Collapse Directory\" size={14} color=\"$gray10\" />\n                  ) : (\n                    // <FaChevronRight title=\"Open Directory\" />\n                    <ChevronRight title=\"Open Directory\" size={14} color=\"$gray10\" />\n                  )}\n                </span>\n              )}\n              <Text color=\"$gray11\" numberOfLines={1}>\n                {isDirectory ? file.name : removeFileExtension(file.name)}\n              </Text>\n            </XStack>\n            <NewDirectoryComponent\n              isOpen={isNewDirectoryModalOpen}\n              onClose={() => setIsNewDirectoryModalOpen(false)}\n              parentDirectoryPath={parentDirectoryPathForNewDirectory}\n            />\n          </div>\n        </ContextMenuTrigger>\n        <ContextMenuContent>{renderContextMenuItems()}</ContextMenuContent>\n      </ContextMenu>\n    </div>\n  )\n}\n\nexport default FileItemRows\n"
  },
  {
    "path": "src/components/Sidebars/FileSideBar/FileSidebar.tsx",
    "content": "import React, { useEffect, useState } from 'react'\nimport { FileInfoNode, FileInfoTree } from 'electron/main/filesystem/types'\nimport { FixedSizeList } from 'react-window'\nimport { isFileNodeDirectory } from '@shared/utils'\nimport { YStack } from 'tamagui'\nimport { useFileContext } from '@/contexts/FileContext'\nimport FileItemRows from './FileItemRows'\n\nconst getFilesAndIndentationsForSidebar = (\n  files: FileInfoTree,\n  expandedDirectories: Map<string, boolean>,\n  indentation = 0,\n): { file: FileInfoNode; indentation: number }[] => {\n  let filesAndIndexes: { file: FileInfoNode; indentation: number }[] = []\n  files.forEach((file) => {\n    filesAndIndexes.push({ file, indentation })\n    if (isFileNodeDirectory(file) && expandedDirectories.has(file.path) && expandedDirectories.get(file.path)) {\n      if (file.children) {\n        filesAndIndexes = [\n          ...filesAndIndexes,\n          ...getFilesAndIndentationsForSidebar(file.children, expandedDirectories, indentation + 1),\n        ]\n      }\n    }\n  })\n  return filesAndIndexes\n}\n\ninterface FileExplorerProps {\n  lheight?: number\n}\n\nconst FileSidebar: React.FC<FileExplorerProps> = ({ lheight }) => {\n  // const { state, actions } = useThemeManager()\n  const [listHeight, setListHeight] = useState(lheight ?? window.innerHeight - 50)\n  const { vaultFilesTree, expandedDirectories, renameFile, setSelectedDirectory } = useFileContext()\n\n  const handleDrop = async (e: React.DragEvent) => {\n    e.preventDefault()\n    e.stopPropagation()\n    const sourcePath = e.dataTransfer.getData('text/plain')\n    const destinationDirectory = await window.electronStore.getVaultDirectoryForWindow()\n    const destinationPath = await window.path.join(destinationDirectory, await window.path.basename(sourcePath))\n    renameFile(sourcePath, destinationPath)\n  }\n\n  const handleDragOver = (e: React.DragEvent) => {\n    e.preventDefault()\n    e.stopPropagation()\n  }\n\n  const handleClick = () => {\n    setSelectedDirectory(null)\n  }\n\n  useEffect(() => {\n    const updateHeight = () => {\n      setListHeight(lheight ?? window.innerHeight - 50)\n    }\n    window.addEventListener('resize', updateHeight)\n    return () => {\n      window.removeEventListener('resize', updateHeight)\n    }\n  }, [lheight])\n\n  const filesAndIndentations = getFilesAndIndentationsForSidebar(vaultFilesTree, expandedDirectories)\n  const itemCount = filesAndIndentations.length\n  return (\n    <YStack className=\"h-full grow px-1 pt-2\" backgroundColor=\"$gray3\">\n      <div onDrop={handleDrop} onDragOver={handleDragOver} onClick={handleClick}>\n        <FixedSizeList\n          height={listHeight}\n          itemCount={itemCount}\n          itemSize={30}\n          width=\"100%\"\n          itemData={{\n            filesAndIndentations,\n          }}\n        >\n          {FileItemRows}\n        </FixedSizeList>\n      </div>\n    </YStack>\n  )\n}\n\nexport default FileSidebar\n"
  },
  {
    "path": "src/components/Sidebars/IconsSidebar.tsx",
    "content": "import React, { useState } from 'react'\n\nimport { GrNewWindow } from 'react-icons/gr'\nimport { MdSettings } from 'react-icons/md'\nimport { VscNewFolder } from 'react-icons/vsc'\nimport { HiOutlinePencilAlt } from 'react-icons/hi'\n\nimport { Files, MessageCircle, Search, Moon, SunMoon } from '@tamagui/lucide-icons'\nimport { YStack } from 'tamagui'\nimport { useModalOpeners } from '../../contexts/ModalContext'\nimport { useChatContext } from '@/contexts/ChatContext'\nimport { useContentContext } from '@/contexts/ContentContext'\nimport { useThemeManager } from '@/contexts/ThemeContext'\nimport InitialSetupSinglePage from '../Settings/InitialSettingsSinglePage'\n\nexport interface IconsSidebarProps {\n  getShortcutDescription: (action: string) => string\n}\n\nconst IconsSidebar: React.FC<IconsSidebarProps> = ({ getShortcutDescription }) => {\n  const { sidebarShowing, setSidebarShowing } = useChatContext()\n  const [showVaultSetup, setShowVaultSetup] = useState(false)\n\n  const { state, actions } = useThemeManager() // State => theme, actions => toggle, set, syncWithSystem\n  const { isSettingsModalOpen, setIsSettingsModalOpen, setIsNewDirectoryModalOpen } = useModalOpeners()\n  const { createUntitledNote } = useContentContext()\n\n  const handleAllInitialSettingsAreReady = () => {\n    setShowVaultSetup(false)\n    window.database.indexFilesInDirectory()\n  }\n\n  const determineColor = (sidebarName: string) => {\n    return sidebarShowing === sidebarName ? '$gray11' : '$gray9'\n  }\n\n  return (\n    <YStack\n      backgroundColor=\"$gray3\"\n      className=\"flex size-full w-[55px] flex-col items-center justify-between gap-1 bg-neutral-800 pt-2\"\n    >\n      <div\n        className=\" flex h-8 w-full cursor-pointer items-center justify-center\"\n        onClick={() => setSidebarShowing('files')}\n      >\n        <YStack\n          alignItems=\"center\"\n          hoverStyle={{\n            backgroundColor: '$gray7',\n          }}\n          backgroundColor={sidebarShowing === 'files' ? '$gray6' : ''}\n          className=\"flex size-4/5 items-center justify-center rounded\"\n        >\n          <Files size={20} color={determineColor('files')} title={getShortcutDescription('open-files') || 'Files'} />\n        </YStack>\n      </div>\n      <div\n        className=\" flex h-8 w-full cursor-pointer items-center justify-center\"\n        onClick={() => setSidebarShowing('chats')}\n      >\n        <YStack\n          alignItems=\"center\"\n          hoverStyle={{\n            backgroundColor: '$gray7',\n          }}\n          backgroundColor={sidebarShowing === 'chats' ? '$gray6' : ''}\n          className=\"flex size-4/5 items-center justify-center rounded\"\n        >\n          <MessageCircle\n            size={20}\n            color={determineColor('chats')}\n            title={getShortcutDescription('open-chat-bot') || 'Open Chatbot'}\n          />\n        </YStack>\n      </div>\n      <div\n        className=\"flex h-8 w-full cursor-pointer items-center justify-center\"\n        onClick={() => setSidebarShowing('search')}\n      >\n        <YStack\n          alignItems=\"center\"\n          hoverStyle={{\n            backgroundColor: '$gray7',\n          }}\n          backgroundColor={sidebarShowing === 'search' ? '$gray6' : ''}\n          className=\"flex size-4/5 items-center justify-center rounded\"\n        >\n          <Search\n            size={20}\n            color={determineColor('search')}\n            title={getShortcutDescription('open-search') || 'Semantic Search'}\n          />\n        </YStack>\n      </div>\n      <div\n        className=\"flex h-8 w-full cursor-pointer items-center justify-center border-none bg-transparent \"\n        onClick={() => createUntitledNote()}\n      >\n        <YStack\n          alignItems=\"center\"\n          hoverStyle={{\n            backgroundColor: '$gray7',\n          }}\n          className=\"flex size-4/5 items-center justify-center rounded\"\n        >\n          <HiOutlinePencilAlt\n            className=\"text-gray-200\"\n            color=\"gray\"\n            size={22}\n            title={getShortcutDescription('open-new-note') || 'New Note'}\n          />\n        </YStack>\n      </div>\n      <div\n        className=\"mt-[2px] flex h-8 w-full cursor-pointer items-center justify-center border-none bg-transparent \"\n        onClick={() => setIsNewDirectoryModalOpen(true)}\n      >\n        <YStack\n          alignItems=\"center\"\n          hoverStyle={{\n            backgroundColor: '$gray7',\n          }}\n          className=\"flex size-4/5 items-center justify-center rounded\"\n        >\n          <VscNewFolder\n            className=\"text-gray-200\"\n            color=\"gray\"\n            size={18}\n            title={getShortcutDescription('open-new-directory-modal') || 'New Directory'}\n          />\n        </YStack>\n      </div>\n\n      <div className=\"grow border-yellow-300\" />\n      <div className=\"flex h-8 w-full cursor-pointer items-center justify-center border-none bg-transparent\">\n        <YStack\n          alignItems=\"center\"\n          onPress={() => actions.toggle()}\n          hoverStyle={{\n            backgroundColor: '$gray7',\n          }}\n          className=\"flex size-4/5 items-center justify-center rounded\"\n        >\n          {state === 'dark' ? (\n            <SunMoon size={20} color=\"gray\" title={getShortcutDescription('toggle-theme') || 'Toggle Theme'} />\n          ) : (\n            <Moon size={20} color=\"gray\" title={getShortcutDescription('toggle-theme') || 'Toggle Theme'} />\n          )}\n        </YStack>\n      </div>\n      <div className=\"flex h-8 w-full cursor-pointer items-center justify-center border-none bg-transparent\">\n        <YStack\n          alignItems=\"center\"\n          hoverStyle={{\n            backgroundColor: '$gray7',\n          }}\n          className=\"flex size-4/5 items-center justify-center rounded\"\n          onPress={() => setShowVaultSetup(true)}\n        >\n          <GrNewWindow className=\"text-gray-100\" color=\"gray\" size={14} title=\"Open New Vault\" />\n        </YStack>\n      </div>\n\n      <div\n        className=\"mb-[8px] flex h-8 w-full cursor-pointer items-center justify-center border-none bg-transparent\"\n        onClick={() => setIsSettingsModalOpen(!isSettingsModalOpen)}\n      >\n        <YStack\n          alignItems=\"center\"\n          hoverStyle={{\n            backgroundColor: '$gray7',\n          }}\n          className=\"flex size-4/5 items-center justify-center rounded\"\n        >\n          <MdSettings color=\"gray\" size={18} title={getShortcutDescription('open-settings-modal') || 'Settings'} />\n        </YStack>\n      </div>\n\n      <div>\n        {showVaultSetup && (\n          <InitialSetupSinglePage\n            readyForIndexing={handleAllInitialSettingsAreReady}\n            onClose={() => setShowVaultSetup(false)}\n          />\n        )}\n      </div>\n    </YStack>\n  )\n}\n\nexport default IconsSidebar\n"
  },
  {
    "path": "src/components/Sidebars/MainSidebar.tsx",
    "content": "import React, { useState } from 'react'\n\nimport { DBQueryResult } from 'electron/main/vector-database/schema'\n\nimport { YStack } from 'tamagui'\nimport { ChatSidebar } from '../Chat/ChatSidebar'\n\nimport SearchComponent from './SearchComponent'\nimport { useChatContext } from '@/contexts/ChatContext'\nimport FileSidebar from './FileSideBar/FileSidebar'\n\nexport type SidebarAbleToShow = 'files' | 'search' | 'chats'\n\nconst SidebarManager: React.FC = () => {\n  const { sidebarShowing } = useChatContext()\n\n  const [searchQuery, setSearchQuery] = useState<string>('')\n  const [searchResults, setSearchResults] = useState<DBQueryResult[]>([])\n\n  return (\n    <YStack className=\"size-full overflow-y-hidden\">\n      {sidebarShowing === 'files' && <FileSidebar />}\n\n      {sidebarShowing === 'search' && (\n        <SearchComponent\n          searchQuery={searchQuery}\n          setSearchQuery={setSearchQuery}\n          searchResults={searchResults}\n          setSearchResults={setSearchResults}\n        />\n      )}\n\n      {sidebarShowing === 'chats' && <ChatSidebar />}\n    </YStack>\n  )\n}\n\nexport default SidebarManager\n"
  },
  {
    "path": "src/components/Sidebars/SearchComponent.tsx",
    "content": "/* eslint-disable react/no-array-index-key */\nimport React, { useEffect, useRef, useCallback, useState } from 'react'\nimport { DBQueryResult } from 'electron/main/vector-database/schema'\nimport posthog from 'posthog-js'\nimport { debounce } from 'lodash'\nimport { Input, XStack, YStack, ScrollView, Slider, Text } from 'tamagui'\nimport { TextInput } from 'react-native'\nimport { Search, Filter, FilterX } from '@tamagui/lucide-icons'\nimport { SearchProps as SearchParamsType } from 'electron/main/electron-store/types'\nimport { DBSearchPreview } from '../File/DBResultPreview'\nimport { useContentContext } from '@/contexts/ContentContext'\nimport { hybridSearch } from '@/lib/db'\nimport { ToggleButton, ToggleThumb } from '@/components/Editor/ui/src/toggle'\n\ninterface SearchComponentProps {\n  searchQuery: string\n  setSearchQuery: (query: string) => void\n  searchResults: DBQueryResult[]\n  setSearchResults: (results: DBQueryResult[]) => void\n}\n\nexport type SearchModeTypes = 'vector' | 'hybrid'\n\n// Custom toggle component\nconst ToggleSwitch: React.FC<{\n  isHybrid: boolean\n  onChange: (searchMode: SearchModeTypes) => void\n  className?: string\n  label: string\n}> = ({ isHybrid, onChange, className = '', label }) => (\n  <ToggleButton\n    hybrid={isHybrid}\n    className={className}\n    onPress={() => onChange(isHybrid ? 'vector' : 'hybrid')}\n    aria-checked={isHybrid}\n    role=\"switch\"\n    aria-label={label}\n  >\n    <ToggleThumb hybrid={isHybrid} />\n  </ToggleButton>\n)\n\nconst SearchComponent: React.FC<SearchComponentProps> = ({\n  searchQuery,\n  setSearchQuery,\n  searchResults,\n  setSearchResults,\n}) => {\n  const { openContent: openTabContent } = useContentContext()\n  const searchInputRef = useRef<TextInput>(null)\n  const [searchParams, setSearchParams] = useState<SearchParamsType>({\n    searchMode: 'vector',\n    vectorWeight: 0.7,\n  })\n  const [showSearchOptions, setShowSearchOptions] = useState(false)\n\n  useEffect(() => {\n    const fetchSearchMode = async () => {\n      const storedParams = await window.electronStore.getSearchParams()\n      if (storedParams) setSearchParams(storedParams)\n    }\n    fetchSearchMode()\n  }, [])\n\n  useEffect(() => {\n    window.electronStore.setSearchParams(searchParams)\n  }, [searchParams])\n\n  const handleSearch = useCallback(\n    async (query: string) => {\n      if (!query.trim()) {\n        setSearchResults([])\n        return\n      }\n\n      if (searchParams.searchMode === 'hybrid') {\n        const results = await hybridSearch(query, 50, undefined, searchParams.vectorWeight)\n        setSearchResults(results)\n      } else {\n        const results: DBQueryResult[] = await window.database.search(query, 50)\n        setSearchResults(results)\n      }\n    },\n    [setSearchResults, searchParams.searchMode, searchParams.vectorWeight],\n  )\n\n  const debouncedSearch = useCallback(\n    (query: string) => {\n      const debouncedFn = debounce(() => handleSearch(query), 300)\n      debouncedFn()\n    },\n    [handleSearch],\n  )\n\n  useEffect(() => {\n    searchInputRef.current?.focus()\n  }, [])\n\n  useEffect(() => {\n    if (searchQuery) {\n      debouncedSearch(searchQuery)\n    }\n  }, [searchParams.searchMode, searchParams.vectorWeight, debouncedSearch, searchQuery])\n\n  const openFileSelectSearch = useCallback(\n    (path: string) => {\n      openTabContent(path)\n      posthog.capture('open_file_from_search')\n    },\n    [openTabContent],\n  )\n\n  const handleVectorWeightChange = (value: number[]) => {\n    setSearchParams((prev) => ({\n      ...prev,\n      vectorWeight: value[0],\n    }))\n  }\n\n  return (\n    <ScrollView>\n      <YStack padding=\"$1\">\n        <XStack position=\"relative\" marginRight=\"$1\" borderRadius=\"$3\" padding=\"$2\">\n          <XStack position=\"absolute\" left={0} top={14} alignItems=\"center\" paddingLeft=\"$3\">\n            <Search size={14} color=\"$gray13\" />\n          </XStack>\n          <Input\n            ref={searchInputRef}\n            width=\"100%\"\n            height=\"$2\"\n            paddingLeft=\"$5\"\n            borderRadius=\"$2\"\n            backgroundColor=\"$gray1\"\n            color=\"$gray13\"\n            borderWidth={1}\n            borderColor=\"$gray13\"\n            focusStyle={{\n              borderColor: '$gray13',\n              outlineWidth: 0,\n            }}\n            value={searchQuery}\n            onChangeText={setSearchQuery}\n            placeholder={searchParams.searchMode === 'hybrid' ? 'Search Hybrid...' : 'Search Vector...'}\n            fontSize=\"$1\"\n          />\n          <XStack\n            position=\"absolute\"\n            right={16}\n            top={14}\n            alignItems=\"center\"\n            backgroundColor=\"transparent\"\n            focusStyle={{ outlineWidth: 0 }}\n            onPress={() => setShowSearchOptions(!showSearchOptions)}\n            aria-label=\"Search options\"\n            cursor=\"pointer\"\n          >\n            {showSearchOptions ? <FilterX color=\"$gray10\" size={14} /> : <Filter color=\"$gray10\" size={14} />}\n          </XStack>\n        </XStack>\n\n        {showSearchOptions && (\n          <YStack className=\"max-h-[100px] animate-slide-down\">\n            <YStack\n              marginTop=\"$2\"\n              borderRadius=\"$2\"\n              borderWidth={1}\n              borderColor=\"$gray6\"\n              padding=\"$3\"\n              mx={10}\n              shadowColor=\"$shadowColor\"\n              shadowRadius=\"$1\"\n              elevation=\"$1\"\n              backgroundColor=\"$gray2\"\n            >\n              <XStack alignItems=\"center\" justifyContent=\"space-between\">\n                <Text fontSize=\"$1\" fontWeight=\"500\">\n                  Hybrid Search\n                </Text>\n                <ToggleSwitch\n                  isHybrid={searchParams.searchMode === 'hybrid'}\n                  onChange={(mode) => setSearchParams((prev) => ({ ...prev, searchMode: mode }))}\n                  label=\"Hybrid Search\"\n                />\n              </XStack>\n\n              {searchParams.searchMode === 'hybrid' && (\n                <YStack marginTop=\"$3\" className=\"animate-slide-down overflow-hidden\">\n                  <XStack marginBottom=\"$2\" alignItems=\"center\" justifyContent=\"space-between\">\n                    <Text fontSize=\"$1\" fontWeight=\"500\">\n                      Search Balance\n                    </Text>\n                    <Text fontSize=\"$1\" paddingHorizontal=\"$2\" paddingVertical=\"$1\" borderRadius=\"$1\">\n                      {Math.round(searchParams.vectorWeight * 100)}% Semantic -{' '}\n                      {Math.round((1 - searchParams.vectorWeight) * 100)}% Keywords\n                    </Text>\n                  </XStack>\n                  <XStack position=\"relative\" px={5}>\n                    <Slider\n                      min={0}\n                      max={1}\n                      step={0.1}\n                      value={[searchParams.vectorWeight]}\n                      onValueChange={handleVectorWeightChange}\n                      height=\"$1\"\n                      width=\"100%\"\n                      borderRadius=\"$10\"\n                      aria-label=\"Search balance slider\"\n                    >\n                      {/* Track is the comoonent to the right of the button, \n                        TractActive is the component to the left of the button. */}\n                      <Slider.Track backgroundColor=\"$gray6\">\n                        <Slider.TrackActive backgroundColor=\"$blue9\" />\n                      </Slider.Track>\n                      <Slider.Thumb\n                        index={0}\n                        circular\n                        size={20}\n                        backgroundColor=\"white\"\n                        hoverStyle={{ backgroundColor: 'rgba(255, 255, 255, 86%)' }}\n                        focusStyle={{ backgroundColor: 'rgba(255, 255, 255, 86%)' }}\n                      />\n                    </Slider>\n                  </XStack>\n                  <XStack marginTop=\"$1.5\" justifyContent=\"space-between\">\n                    <Text fontSize=\"$1\" color=\"$gray10\">\n                      Keywords\n                    </Text>\n                    <Text fontSize=\"$1\" color=\"$gray10\">\n                      Balanced\n                    </Text>\n                    <Text fontSize=\"$1\" color=\"$gray10\">\n                      Semantic\n                    </Text>\n                  </XStack>\n                </YStack>\n              )}\n            </YStack>\n          </YStack>\n        )}\n\n        {/* Search Results */}\n        {searchResults.length > 0 && (\n          <YStack marginTop=\"$2\" width=\"100%\" px=\"$3\">\n            {searchResults.map((result, index) => (\n              <DBSearchPreview key={index} dbResult={result} onSelect={openFileSelectSearch} />\n            ))}\n          </YStack>\n        )}\n      </YStack>\n    </ScrollView>\n  )\n}\n\nexport default SearchComponent\n"
  },
  {
    "path": "src/components/Sidebars/SemanticSidebar/HighlightButton.tsx",
    "content": "import React, { useEffect, useState } from 'react'\n\nimport { FaArrowRight } from 'react-icons/fa'\nimport { PiGraph } from 'react-icons/pi'\n\nimport '../../../styles/global.css'\nimport { HighlightData } from '@/components/Editor/HighlightExtension'\n\ninterface HighlightButtonProps {\n  highlightData: HighlightData\n  onClick: () => void\n}\nconst HighlightButton: React.FC<HighlightButtonProps> = ({ highlightData, onClick }) => {\n  const [showArrow, setShowArrow] = useState<boolean>(false)\n\n  useEffect(() => {\n    // Reset to PiGraph icon when the position becomes undefined (unmounted)\n    if (!highlightData.position) {\n      setShowArrow(false)\n    }\n  }, [highlightData.position])\n\n  if (!highlightData.position) {\n    return null\n  }\n\n  const { top, left } = highlightData.position\n  // top -= 55;\n  // left -= 190;\n\n  const handleClick = () => {\n    onClick() // This calls the provided onClick handler\n    setShowArrow(true) // Show the arrow icon\n  }\n\n  return (\n    <button\n      onClick={handleClick}\n      style={{ top: `${top}px`, left: `${left}px` }}\n      className=\"absolute flex size-7 cursor-pointer items-center justify-center rounded-full border-none bg-gray-200 text-white shadow-md hover:bg-gray-300\"\n      aria-label=\"Highlight button\"\n      type=\"button\"\n    >\n      {showArrow ? <FaArrowRight className=\"text-gray-800\" /> : <PiGraph className=\"text-gray-800\" />}\n    </button>\n  )\n}\n\nexport default HighlightButton\n"
  },
  {
    "path": "src/components/Sidebars/SemanticSidebar/SimilarEntriesComponent.tsx",
    "content": "import React from 'react'\n\nimport { DBQueryResult } from 'electron/main/vector-database/schema'\nimport { RefreshCw } from '@tamagui/lucide-icons'\nimport { PiGraph } from 'react-icons/pi'\n\nimport '../../../styles/global.css'\n// import ResizableComponent from '@/components/Common/ResizableComponent'\nimport { ScrollView, Stack, YStack, XStack, Text, Button } from 'tamagui'\nimport { DBResultPreview } from '@/components/File/DBResultPreview'\nimport { useFileContext } from '@/contexts/FileContext'\nimport Spinner from '@/components/ui/Spinner'\n\ninterface SimilarEntriesComponentProps {\n  similarEntries: DBQueryResult[]\n  setSimilarEntries?: (entries: DBQueryResult[]) => void\n  onSelect: (path: string) => void\n  updateSimilarEntries?: (isRefined?: boolean) => Promise<void>\n  titleText: string\n  isLoadingSimilarEntries: boolean\n}\n\nconst SimilarEntriesComponent: React.FC<SimilarEntriesComponentProps> = ({\n  similarEntries,\n  setSimilarEntries,\n  onSelect,\n  updateSimilarEntries,\n  titleText,\n  isLoadingSimilarEntries,\n}) => {\n  let content\n  const { saveCurrentlyOpenedFile } = useFileContext()\n\n  if (similarEntries.length > 0) {\n    content = (\n      <Stack flex={1} width=\"100%\">\n        {similarEntries\n          .filter((dbResult) => dbResult)\n          .map((dbResult) => (\n            <Stack\n              key={`${dbResult.notepath}-${dbResult.subnoteindex}`}\n              paddingHorizontal=\"$2\"\n              paddingVertical=\"$1\"\n              width=\"100%\"\n            >\n              <DBResultPreview dbResult={dbResult} onSelect={onSelect} />\n            </Stack>\n          ))}\n      </Stack>\n    )\n  } else if (!isLoadingSimilarEntries) {\n    content = (\n      <Stack height=\"100%\" width=\"100%\">\n        <Text fontSize=\"$2\" fontFamily=\"$body\" margin={0} lineHeight=\"$1\" color=\"$gray11\" textAlign=\"center\">\n          No items found\n        </Text>\n      </Stack>\n    )\n  }\n\n  return (\n    <ScrollView maxHeight=\"100%\" backgroundColor=\"$gray3\">\n      <Stack flex={1}>\n        <YStack>\n          {/* Header */}\n          <XStack alignItems=\"center\" paddingHorizontal=\"$4\" paddingVertical=\"$2\" backgroundColor=\"$neutral800\">\n            <XStack flex={1} />\n            <XStack alignItems=\"center\" justifyContent=\"center\">\n              <PiGraph size={16} color=\"$gray300\" />\n              <Text marginLeft=\"$1\" fontSize=\"$2\" color=\"$gray300\">\n                {titleText}\n              </Text>\n            </XStack>\n            <XStack flex={1} justifyContent=\"flex-end\">\n              {updateSimilarEntries && setSimilarEntries && (\n                <Button\n                  onPress={async () => {\n                    setSimilarEntries([]) // simulate refresh\n                    await saveCurrentlyOpenedFile()\n                    updateSimilarEntries()\n                  }}\n                  size=\"$2\"\n                  backgroundColor=\"transparent\"\n                  borderWidth={0}\n                  padding={0}\n                >\n                  {isLoadingSimilarEntries ? <Spinner size=\"small\" /> : <RefreshCw size={16} />}\n                </Button>\n              )}\n            </XStack>\n          </XStack>\n\n          {/* Content */}\n          <YStack>{content}</YStack>\n        </YStack>\n      </Stack>\n    </ScrollView>\n  )\n}\n\nexport default SimilarEntriesComponent\n"
  },
  {
    "path": "src/components/Sidebars/SimilarFilesSidebar.tsx",
    "content": "import React, { useEffect, useState } from 'react'\n\nimport { DBQueryResult } from 'electron/main/vector-database/schema'\nimport { toast } from 'react-toastify'\nimport removeMd from 'remove-markdown'\n\nimport '../../styles/global.css'\n\nimport posthog from 'posthog-js'\nimport { Stack } from 'tamagui'\nimport errorToStringRendererProcess from '@/lib/error'\nimport SimilarEntriesComponent from './SemanticSidebar/SimilarEntriesComponent'\nimport { useFileContext } from '@/contexts/FileContext'\nimport { useContentContext } from '@/contexts/ContentContext'\n\nconst SimilarFilesSidebarComponent: React.FC = () => {\n  const [similarEntries, setSimilarEntries] = useState<DBQueryResult[]>([])\n  const [isLoadingSimilarEntries, setIsLoadingSimilarEntries] = useState(false)\n\n  const { currentlyOpenFilePath } = useFileContext()\n  const { openContent: openTabContent } = useContentContext()\n\n  const getChunkForInitialSearchFromFile = async (filePathForChunk: string | null) => {\n    // TODO: proper semantic chunking - current quick win is just to take top 500 characters\n    if (!filePathForChunk) {\n      return undefined\n    }\n    const fileContent: string = await window.fileSystem.readFile(filePathForChunk, 'utf-8')\n    if (!fileContent) {\n      return undefined\n    }\n    const sanitizedText = removeMd(fileContent.slice(0, 500))\n    return sanitizedText\n  }\n  const performSearchOnChunk = async (\n    sanitizedText: string,\n    fileToBeExcluded: string | null,\n  ): Promise<DBQueryResult[]> => {\n    try {\n      const databaseFields = await window.database.getDatabaseFields()\n      const filterString = `${databaseFields.NOTE_PATH} != '${fileToBeExcluded}'`\n\n      setIsLoadingSimilarEntries(true)\n      const searchResults: DBQueryResult[] = await window.database.search(sanitizedText, 20, filterString)\n\n      setIsLoadingSimilarEntries(false)\n      return searchResults\n    } catch (error) {\n      toast.error(errorToStringRendererProcess(error), {\n        className: 'mt-5',\n        autoClose: false,\n        closeOnClick: false,\n        draggable: false,\n      })\n      return []\n    }\n  }\n\n  useEffect(() => {\n    const handleNewFileOpen = async (path: string) => {\n      const sanitizedText = await getChunkForInitialSearchFromFile(path)\n      if (!sanitizedText) {\n        return\n      }\n      const searchResults = await performSearchOnChunk(sanitizedText, path)\n\n      if (searchResults.length > 0) {\n        setSimilarEntries(searchResults)\n      } else {\n        setSimilarEntries([])\n      }\n    }\n    if (currentlyOpenFilePath) {\n      handleNewFileOpen(currentlyOpenFilePath)\n    }\n  }, [currentlyOpenFilePath])\n\n  const updateSimilarEntries = async () => {\n    const sanitizedText = await getChunkForInitialSearchFromFile(currentlyOpenFilePath)\n\n    if (!sanitizedText) {\n      toast.error(`Error: Could not get chunk for search ${currentlyOpenFilePath}`)\n      return\n    }\n\n    const searchResults = await performSearchOnChunk(sanitizedText, currentlyOpenFilePath)\n    setSimilarEntries(searchResults)\n  }\n\n  return (\n    <Stack height=\"100%\">\n      {/* <HighlightButton\n        highlightData={highlightData}\n        onClick={async () => {\n          setSimilarEntries([])\n          const databaseFields = await window.database.getDatabaseFields()\n          const filterString = `${databaseFields.NOTE_PATH} != '${currentlyOpenFilePath}'`\n          const searchResults: DBQueryResult[] = await window.database.search(highlightData.text, 20, filterString)\n          setSimilarEntries(searchResults)\n        }}\n      />{' '} */}\n      <SimilarEntriesComponent\n        similarEntries={similarEntries}\n        setSimilarEntries={setSimilarEntries}\n        onSelect={(path) => {\n          openTabContent(path)\n          posthog.capture('open_file_from_related_notes')\n        }}\n        updateSimilarEntries={updateSimilarEntries}\n        isLoadingSimilarEntries={isLoadingSimilarEntries}\n        titleText=\"Related notes\"\n      />\n    </Stack>\n  )\n}\n\nexport default SimilarFilesSidebarComponent\n"
  },
  {
    "path": "src/components/TitleBar/NavigationButtons.tsx",
    "content": "import React, { useEffect, useRef, useState } from 'react'\n\nimport posthog from 'posthog-js'\nimport { IoMdArrowRoundBack, IoMdArrowRoundForward } from 'react-icons/io'\nimport { YStack, XStack, View, Text } from 'tamagui'\nimport { removeFileExtension } from '@/lib/file'\nimport '../../styles/history.scss'\nimport { useFileContext } from '@/contexts/FileContext'\nimport { useContentContext } from '@/contexts/ContentContext'\nimport { useThemeManager } from '@/contexts/ThemeContext'\n\nconst NavigationButtons: React.FC = () => {\n  const [showMenu, setShowMenu] = useState<string>('')\n  const { state } = useThemeManager()\n\n  const longPressTimer = useRef<NodeJS.Timeout | null>(null)\n  const buttonRefBack = useRef<HTMLButtonElement>(null)\n  const buttonRefForward = useRef<HTMLButtonElement>(null)\n\n  const { openContent, currentOpenFileOrChatID } = useContentContext()\n  const { navigationHistory } = useFileContext()\n\n  const ref = useRef<HTMLDivElement>(null)\n\n  useEffect(() => {\n    function handleClickOutside(event: MouseEvent): void {\n      if (ref.current && !ref.current.contains(event.target as Node)) {\n        setShowMenu('')\n      }\n    }\n    // Bind the event listener\n    document.addEventListener('mousedown', handleClickOutside)\n    return () => {\n      // Unbind the event listener\n      document.removeEventListener('mousedown', handleClickOutside)\n    }\n  })\n\n  if (!currentOpenFileOrChatID) {\n    return null\n  }\n\n  const canGoBack = navigationHistory.length > 1\n  const indexOfCurrentOpenFileOrChat = navigationHistory.indexOf(currentOpenFileOrChatID)\n  const canGoForward = indexOfCurrentOpenFileOrChat < navigationHistory.length - 1\n\n  const goBack = () => {\n    if (canGoBack && showMenu === '') {\n      const newIndex = indexOfCurrentOpenFileOrChat - 1\n      openContent(navigationHistory[newIndex], undefined, true)\n      posthog.capture('file_history_navigator_back')\n    }\n  }\n\n  const goForward = () => {\n    if (canGoForward && showMenu === '') {\n      const newIndex = indexOfCurrentOpenFileOrChat + 1\n      openContent(navigationHistory[newIndex], undefined, true)\n      posthog.capture('file_history_navigator_forward')\n    }\n  }\n\n  const goSelected = (pathOrChatID: string): void => {\n    if (pathOrChatID) {\n      openContent(pathOrChatID, undefined, true)\n      posthog.capture('file_history_navigator_go_to_selected_file')\n    }\n    setShowMenu('')\n  }\n\n  const handleLongPressStart = (direction: 'back' | 'forward') => {\n    longPressTimer.current = setTimeout(() => {\n      setShowMenu(direction)\n    }, 400)\n  }\n\n  const handleLongPressEnd = () => {\n    if (longPressTimer.current) {\n      clearTimeout(longPressTimer.current)\n      longPressTimer.current = null\n    }\n  }\n\n  const handleHistoryContext = (currentRef: React.RefObject<HTMLButtonElement>) => {\n    const offsetTop = currentRef.current?.offsetTop || 0\n    const offsetLeft = currentRef.current?.offsetLeft || 0\n    const offsetHeight = currentRef.current?.offsetHeight || 0\n\n    const menuChild =\n      currentRef.current?.id === 'back'\n        ? navigationHistory.slice(0, indexOfCurrentOpenFileOrChat)\n        : navigationHistory.slice(indexOfCurrentOpenFileOrChat + 1)\n\n    return (\n      showMenu !== '' &&\n      menuChild.length > 0 && (\n        <View ref={ref} tabIndex={0} position=\"absolute\" left={offsetLeft} top={offsetTop + offsetHeight}>\n          <YStack>\n            {menuChild.map((pathOrChatID) => (\n              <XStack\n                key={pathOrChatID}\n                padding=\"$3\"\n                cursor=\"pointer\"\n                hoverStyle={{ backgroundColor: '$backgroundHover' }}\n                onPress={() => goSelected(pathOrChatID)}\n              >\n                <Text>{removeFileExtension(pathOrChatID.replace(/\\\\/g, '/').split('/').pop() || '')}</Text>\n              </XStack>\n            ))}\n          </YStack>\n        </View>\n      )\n    )\n  }\n\n  const navigationColor = (canNavigate: boolean) => {\n    if (state === 'light') {\n      return canNavigate ? 'black' : '#e0e0e0' // Slightly less white when disabled\n    }\n    return canNavigate ? '#dedede' : '#727272' // Dark mode colors\n  }\n\n  return (\n    // eslint-disable-next-line tailwindcss/no-custom-classname\n    <div className=\"history-container flex\">\n      <button\n        id=\"back\"\n        ref={buttonRefBack}\n        onMouseDown={() => handleLongPressStart('back')}\n        onMouseUp={handleLongPressEnd}\n        onMouseLeave={handleLongPressEnd}\n        onClick={goBack}\n        disabled={!canGoBack}\n        style={{\n          color: navigationColor(canGoBack),\n          cursor: !canGoBack ? 'default' : 'pointer',\n        }}\n        title=\"Back\"\n        type=\"button\"\n        aria-label=\"Back\"\n      >\n        <IoMdArrowRoundBack title=\"Back\" />\n      </button>\n      <button\n        id=\"forward\"\n        ref={buttonRefForward}\n        onMouseDown={() => handleLongPressStart('forward')}\n        onMouseUp={handleLongPressEnd}\n        onMouseLeave={handleLongPressEnd}\n        onClick={goForward}\n        disabled={!canGoForward}\n        style={{\n          color: navigationColor(canGoForward),\n          cursor: !canGoForward ? 'default' : 'pointer',\n        }}\n        title=\"Forward\"\n        type=\"button\"\n        aria-label=\"Forward\"\n      >\n        <IoMdArrowRoundForward title=\"Forward\" />\n      </button>\n      {handleHistoryContext(showMenu === 'back' ? buttonRefBack : buttonRefForward)}\n    </div>\n  )\n}\n\nexport default NavigationButtons\n"
  },
  {
    "path": "src/components/TitleBar/TitleBar.tsx",
    "content": "import React, { useEffect, useState } from 'react'\nimport { XStack, SizableText } from 'tamagui'\nimport { MessageSquareMore, MessageSquareOff, PanelRightOpen, PanelRightClose } from '@tamagui/lucide-icons'\nimport NavigationButtons from './NavigationButtons'\nimport ExternalLink from '../Common/ExternalLink'\n\nexport const titleBarHeight = '30px'\n\ninterface TitleBarProps {\n  activePanel: 'chat' | 'similarFiles' | null\n  togglePanel: (show: 'chat' | 'similarFiles' | null) => void\n}\n\nconst TitleBar: React.FC<TitleBarProps> = ({ activePanel, togglePanel }) => {\n  const [platform, setPlatform] = useState('')\n\n  useEffect(() => {\n    const fetchPlatform = async () => {\n      const response = await window.electronUtils.getPlatform()\n      setPlatform(response)\n    }\n\n    fetchPlatform()\n  }, [])\n\n  return (\n    <XStack alignItems=\"center\" backgroundColor=\"$gray3\" className=\"electron-drag flex justify-between bg-[#303030]\">\n      <div className=\"mt-px flex\" style={platform === 'darwin' ? { marginLeft: '65px' } : { marginLeft: '2px' }}>\n        <NavigationButtons />\n      </div>\n\n      <XStack\n        className=\"electron-no-drag flex items-center justify-end\"\n        style={platform === 'win32' ? { marginRight: '8.5rem' } : { marginRight: '0.3rem' }}\n      >\n        <ExternalLink href=\"https://forms.gle/8H4GtEcE6MBnNAUa7\" className=\"mr-4 cursor-pointer\">\n          <SizableText color=\"$gray11\" fontSize={14} className=\"mr-4\">\n            Feedback\n          </SizableText>\n        </ExternalLink>\n        <XStack onPress={() => togglePanel('chat')}>\n          {activePanel !== 'chat' ? (\n            <MessageSquareMore size={22} title=\"Show Chatbot\" color=\"$gray11\" cursor=\"pointer\" />\n          ) : (\n            <MessageSquareOff size={22} title=\"Hide Similar Files\" color=\"$gray11\" cursor=\"pointer\" />\n          )}\n        </XStack>\n        <XStack marginLeft={3} onPress={() => togglePanel('similarFiles')}>\n          {activePanel !== 'similarFiles' ? (\n            <PanelRightOpen size={22} title=\"Show Similar Files\" color=\"$gray11\" cursor=\"pointer\" />\n          ) : (\n            <PanelRightClose size={22} title=\"Hide Similar Files\" color=\"$gray11\" cursor=\"pointer\" />\n          )}\n        </XStack>\n      </XStack>\n    </XStack>\n  )\n}\n\nexport default TitleBar\n"
  },
  {
    "path": "src/components/WritingAssistant/ConversationHistory.tsx",
    "content": "import React, { useEffect, useRef } from 'react'\nimport ReactMarkdown from 'react-markdown'\nimport rehypeRaw from 'rehype-raw'\nimport TextField from '@mui/material/TextField'\nimport { ReorChatMessage } from '../../lib/llm/types'\nimport { convertMessageToString } from '../../lib/llm/chat'\n\ninterface ConversationHistoryProps {\n  history: ReorChatMessage[]\n  streamingMessage: string\n  // markdownMaxHeight: string | number\n  customPrompt: string\n  setCustomPrompt: (value: string) => void\n  handleCustomPrompt: () => void\n  displayPrompt: string\n  currentIndex: number\n  onNavigate: (direction: 'prev' | 'next') => void\n  getLLMResponse: (prompt: string) => void\n  insertAfterHighlightedText: () => void\n  copyToClipboard: () => void\n  replaceHighlightedText: () => void\n  isNewConversation: boolean\n  // prompts: { option?: string; customPromptInput?: string }[]\n  loadingResponse: boolean\n}\n\nconst ConversationHistory: React.FC<ConversationHistoryProps> = ({\n  history,\n  streamingMessage,\n  // markdownMaxHeight,\n  customPrompt,\n  setCustomPrompt,\n  handleCustomPrompt,\n  displayPrompt,\n  currentIndex,\n  onNavigate,\n  getLLMResponse,\n  insertAfterHighlightedText,\n  copyToClipboard,\n  replaceHighlightedText,\n  isNewConversation,\n  // prompts,\n  loadingResponse,\n}) => {\n  const bottomRef = useRef<HTMLDivElement>(null)\n  // const [currentPrompt, setCurrentPrompt] = useState<{ option?: string; customPromptInput?: string }>({})\n\n  useEffect(() => {\n    bottomRef.current?.scrollIntoView({ behavior: 'smooth' })\n  }, [history, streamingMessage, currentIndex])\n\n  // useEffect(() => {\n  //   setCurrentPrompt(prompts[currentIndex / 2])\n  //   bottomRef.current?.scrollIntoView({ behavior: 'smooth' })\n  // }, [prompts, currentIndex])\n\n  const currentConversation = isNewConversation\n    ? [history[history.length - 1]]\n    : history.slice(currentIndex, currentIndex + 2)\n\n  return (\n    <div className=\"flex flex-col\" style={{ height: '400px' }}>\n      <div className=\"mb-2 flex justify-between\">\n        <button\n          onClick={() => onNavigate('prev')}\n          disabled={currentIndex === 0 || isNewConversation}\n          className=\"rounded bg-gray-200 px-2 py-1\"\n          type=\"button\"\n        >\n          Previous\n        </button>\n        <button\n          onClick={() => onNavigate('next')}\n          disabled={currentIndex >= history.length - 2 || isNewConversation}\n          className=\"rounded bg-gray-200 px-2 py-1\"\n          type=\"button\"\n        >\n          Next\n        </button>\n      </div>\n      <div className=\"grow overflow-y-auto pr-2 scrollbar-thin scrollbar-track-gray-200 scrollbar-thumb-gray-400\">\n        {currentConversation.map(\n          (message) =>\n            message.role === 'assistant' && (\n              <div className=\"mb-2 rounded-md bg-gray-500 p-2\">\n                <ReactMarkdown rehypePlugins={[rehypeRaw]} className=\"markdown-content break-words\">\n                  {convertMessageToString(message)}\n                </ReactMarkdown>\n              </div>\n            ),\n        )}\n        {streamingMessage && (\n          <div className=\"mb-2 rounded-md bg-gray-500 p-2\">\n            <ReactMarkdown rehypePlugins={[rehypeRaw]} className=\"markdown-content break-words\">\n              {streamingMessage}\n            </ReactMarkdown>\n          </div>\n        )}\n        {!streamingMessage && loadingResponse && (\n          <div className=\"mb-2 rounded-md bg-gray-300 p-2 italic text-gray-600\">Generating response...</div>\n        )}\n        <div ref={bottomRef} />\n      </div>\n      <TextField\n        type=\"text\"\n        variant=\"outlined\"\n        size=\"small\"\n        value={customPrompt}\n        onChange={(e) => setCustomPrompt(e.target.value)}\n        placeholder=\"Follow up...\"\n        className=\"mt-2 w-full p-1\"\n        onKeyDown={(e) => {\n          if (e.key === 'Enter') {\n            handleCustomPrompt()\n            setCustomPrompt('') // Clear the TextField after submitting\n          }\n        }}\n      />\n      <div className=\"mt-2 flex justify-between\">\n        <button\n          className=\"mr-1 flex cursor-pointer items-center rounded-md border-0 bg-blue-100 px-2.5 py-1\"\n          onClick={() => getLLMResponse(displayPrompt)}\n          type=\"button\"\n        >\n          Re-run\n        </button>\n        <button\n          className=\"mr-1 flex cursor-pointer items-center rounded-md border-0 bg-blue-100 px-2.5 py-1\"\n          onClick={insertAfterHighlightedText}\n          type=\"button\"\n        >\n          Insert\n        </button>\n        <button\n          className=\"mr-1 flex cursor-pointer items-center rounded-md border-0 bg-blue-100 px-2.5 py-1\"\n          onClick={copyToClipboard}\n          type=\"button\"\n        >\n          Copy\n        </button>\n        <button\n          className=\"flex cursor-pointer items-center rounded-md border-0 bg-indigo-700 px-2.5 py-1 text-white\"\n          onClick={replaceHighlightedText}\n          type=\"button\"\n        >\n          Replace\n        </button>\n      </div>\n    </div>\n  )\n}\n\nexport default ConversationHistory\n"
  },
  {
    "path": "src/components/WritingAssistant/WritingAssistant.tsx",
    "content": "// import React, { useState, useEffect, useLayoutEffect, useRef } from 'react'\n// import { FaMagic } from 'react-icons/fa'\n// import TextField from '@mui/material/TextField'\n// import Button from '@mui/material/Button'\n// import posthog from 'posthog-js'\n// import { streamText } from 'ai'\n// import useOutsideClick from '../../lib/hooks/use-outside-click'\n// import { generatePromptString, getLastMessage } from './utils'\n// import { ReorChatMessage } from '../../lib/llm/types'\n// import { useFileContext } from '@/contexts/FileContext'\n// import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover'\n// import resolveLLMClient from '@/lib/llm/client'\n// import ConversationHistory from './ConversationHistory'\n\n// const WritingAssistant: React.FC = () => {\n//   const [messages, setMessages] = useState<ReorChatMessage[]>([])\n//   const [loadingResponse, setLoadingResponse] = useState<boolean>(false)\n//   const [customPrompt, setCustomPrompt] = useState<string>('')\n//   const [isOptionsVisible, setIsOptionsVisible] = useState<boolean>(false)\n//   const [prevPrompt, setPrevPrompt] = useState<string>('')\n//   const [positionStyle, setPositionStyle] = useState({ top: 0, left: 0 })\n//   // const [markdownMaxHeight, setMarkdownMaxHeight] = useState('auto')\n//   const [isSpaceTrigger, setIsSpaceTrigger] = useState<boolean>(false)\n//   const [spacePosition, setSpacePosition] = useState<number | null>(null)\n//   const [cursorPosition, setCursorPosition] = useState<number | null>(null)\n//   const markdownContainerRef = useRef<HTMLDivElement>(null)\n//   const optionsContainerRef = useRef<HTMLDivElement>(null)\n//   const textFieldRef = useRef<HTMLInputElement>(null)\n//   const lastAssistantMessage = getLastMessage(messages, 'assistant')\n//   const hasValidMessages = !!lastAssistantMessage\n//   const [streamingMessage, setStreamingMessage] = useState<string>('')\n//   const [currentConversationIndex, setCurrentConversationIndex] = useState<number>(0)\n//   const [isNewConversation, setIsNewConversation] = useState<boolean>(false)\n//   // const [prompts, setPrompts] = useState<{ option?: string; customPromptInput?: string }[]>([])\n\n//   const { editor, highlightData } = useFileContext()\n//   const [autoContext, setAutoContext] = useState<boolean>(true)\n\n//   useOutsideClick(markdownContainerRef, () => {\n//     setMessages([])\n//     setIsSpaceTrigger(false)\n//     setCustomPrompt('')\n//   })\n//   useOutsideClick(optionsContainerRef, () => {\n//     setIsOptionsVisible(false)\n//     setIsSpaceTrigger(false)\n//     setCustomPrompt('')\n//   })\n\n//   useEffect(() => {\n//     if (hasValidMessages) {\n//       setIsOptionsVisible(false)\n//     }\n//   }, [hasValidMessages])\n\n//   useLayoutEffect(() => {\n//     if (!editor || (!isSpaceTrigger && !highlightData)) return\n//     const calculatePosition = () => {\n//       if (!optionsContainerRef.current) return\n//       const posData = getBlockInfoFromPos(\n//         editor._tiptapEditor.state.doc,\n//         posBeforeNode + 1,\n//       )\n//       const { startPos } = posData\n//       const coords = editor.view.coordsAtPos(from)\n//       const viewportHeight = window.innerHeight\n//       const optionsHeight = 200\n//       const spaceBelow = viewportHeight - coords.bottom\n\n//       let top = 0\n//       let left = 0\n//       if (spaceBelow >= optionsHeight) {\n//         // Enough space below, position under the cursor\n\n//         left = coords.left - 50\n//         top = coords.bottom - 50\n//       } else if (spaceBelow < optionsHeight) {\n//         // Not enough space below, position above the cursor\n\n//         left = coords.left - 100\n//         top = coords.top - optionsHeight\n//       }\n\n//       setPositionStyle({\n//         top,\n//         left,\n//       })\n//     }\n\n//     calculatePosition()\n//   }, [isSpaceTrigger, highlightData, editor, isOptionsVisible])\n\n//   // useLayoutEffect(() => {\n//   //   if (hasValidMessages) {\n//   //     const calculateMaxHeight = () => {\n//   //       if (!markdownContainerRef.current) return\n\n//   //       const screenHeight = window.innerHeight\n//   //       const containerTop = positionStyle.top\n//   //       const buttonHeight = 30\n//   //       const padding = 54\n//   //       const availableHeight = screenHeight - containerTop - buttonHeight - padding\n\n//   //       /setMarkdownMaxHeight(`${availableHeight}px`)\n//   //     }\n\n//   //     calculateMaxHeight()\n//   //     window.addEventListener('resize', calculateMaxHeight)\n\n//   //     return () => window.removeEventListener('resize', calculateMaxHeight)\n//   //   }\n//   //   return () => {}\n//   // }, [hasValidMessages, positionStyle.top])\n\n//   useEffect(() => {\n//     if (editor) {\n//       const handleKeyDown = (event: KeyboardEvent) => {\n//         if (event.key === ' ') {\n//           const { from } = editor.state.selection\n//           const $from = editor.state.doc.resolve(from)\n//           const start = $from.start()\n//           const lineText = editor.state.doc.textBetween(start, from, '\\n', '\\n')\n\n//           if (lineText.trim() === '' && from === start) {\n//             event.preventDefault()\n//             setCursorPosition(from)\n\n//             setIsSpaceTrigger(true)\n//             setIsOptionsVisible(true)\n//             setSpacePosition(from)\n//           }\n//         }\n//       }\n\n//       editor.view.dom.addEventListener('keydown', handleKeyDown)\n\n//       return () => {\n//         editor.view.dom.removeEventListener('keydown', handleKeyDown)\n//       }\n//     }\n\n//     return () => {}\n//   }, [editor])\n\n//   useEffect(() => {\n//     if (!editor || !isSpaceTrigger || spacePosition === null) {\n//       return undefined\n//     }\n\n//     const resetSpaceTrigger = () => {\n//       setIsOptionsVisible(false)\n//       setIsSpaceTrigger(false)\n//       setSpacePosition(null)\n//     }\n\n//     const checkSpacePresence = () => {\n//       try {\n//         if (!editor.state?.doc) {\n//           resetSpaceTrigger()\n//           return\n//         }\n\n//         const { from } = editor.state.selection\n\n//         if (from !== spacePosition) {\n//           resetSpaceTrigger()\n//           return\n//         }\n\n//         const $pos = editor.state.doc.resolve(from)\n//         if (!$pos?.parent?.textContent?.startsWith(' ')) {\n//           resetSpaceTrigger()\n//         }\n//       } catch (error) {\n//         resetSpaceTrigger()\n//       }\n//     }\n\n//     const handler = () => {\n//       requestAnimationFrame(checkSpacePresence)\n//     }\n\n//     editor.on('update', handler)\n\n//     return () => {\n//       editor.off('update', handler)\n//     }\n//   }, [editor, isSpaceTrigger, spacePosition])\n\n//   useEffect(() => {\n//     const handleEscKey = (event: KeyboardEvent) => {\n//       if (event.key === 'Escape') {\n//         setIsOptionsVisible(false)\n//         setIsSpaceTrigger(false)\n//         setCustomPrompt('')\n//         setMessages([])\n\n//         // Return focus to the editor and set cursor position\n//         if (editor && cursorPosition !== null) {\n//           editor.commands.focus()\n//           editor.commands.setTextSelection(cursorPosition)\n//         }\n//       }\n//     }\n\n//     document.addEventListener('keydown', handleEscKey)\n\n//     return () => {\n//       document.removeEventListener('keydown', handleEscKey)\n//     }\n//   }, [editor, cursorPosition])\n\n//   useEffect(() => {\n//     const loadAutoContext = async () => {\n//       const savedAutoContext = await window.electronStore.getAutoContext()\n//       setAutoContext(savedAutoContext)\n//     }\n//     loadAutoContext()\n//   }, [])\n\n//   const copyToClipboard = () => {\n//     const assistantMessage = messages[currentConversationIndex + 1]\n//     if (!assistantMessage || assistantMessage.role !== 'assistant') return\n\n//     const copiedText = assistantMessage.visibleContent || assistantMessage.content\n\n//     if (copiedText && typeof copiedText === 'string') {\n//       navigator.clipboard.writeText(copiedText)\n//     }\n//   }\n\n//   const insertAfterHighlightedText = () => {\n//     const assistantMessage = messages[currentConversationIndex + 1]\n//     if (!assistantMessage || assistantMessage.role !== 'assistant' || !editor) return\n\n//     const insertionText = assistantMessage.visibleContent || assistantMessage.content\n\n//     editor.view.focus()\n\n//     const { from, to } = editor.state.selection\n//     const endOfSelection = Math.max(from, to)\n\n//     editor.chain().focus().setTextSelection(endOfSelection).insertContent(`\\n${insertionText}`).run()\n\n//     setMessages([])\n//     setCustomPrompt('')\n//   }\n\n//   const replaceHighlightedText = () => {\n//     const assistantMessage = messages[currentConversationIndex + 1]\n//     if (!assistantMessage || assistantMessage.role !== 'assistant' || !editor) return\n\n//     const replacementText = assistantMessage.visibleContent || assistantMessage.content\n//     if (replacementText) {\n//       if (highlightData.text) {\n//         editor.chain().focus().deleteSelection().insertContent(replacementText).run()\n//       } else if (autoContext) {\n//         editor.chain().focus().selectAll().deleteSelection().insertContent(replacementText).run()\n//       }\n//     }\n\n//     setMessages([])\n//     setCustomPrompt('')\n//   }\n\n//   const getLLMResponse = async (prompt: string) => {\n//     const defaultLLMName = await window.llm.getDefaultLLMName()\n\n//     if (loadingResponse) return\n//     setLoadingResponse(true)\n//     posthog.capture('submitted_writing_assistant_message')\n\n//     const newMessage: ReorChatMessage = { role: 'user', content: prompt }\n//     const updatedMessages = [...messages, newMessage]\n//     setMessages(updatedMessages)\n\n//     setStreamingMessage('')\n\n//     const { textStream } = await streamText({\n//       model: await resolveLLMClient(defaultLLMName),\n//       messages: updatedMessages,\n//     })\n\n//     let fullResponse = ''\n//     // eslint-disable-next-line no-restricted-syntax\n//     for await (const textPart of textStream) {\n//       fullResponse += textPart\n//       setStreamingMessage(fullResponse)\n//     }\n\n//     const assistantMessage: ReorChatMessage = { role: 'assistant', content: fullResponse }\n//     setMessages((prev) => {\n//       const newMessages = [...prev, assistantMessage]\n//       setCurrentConversationIndex(newMessages.length - 2)\n//       return newMessages\n//     })\n//     setStreamingMessage('')\n//     setLoadingResponse(false)\n//     setIsNewConversation(false)\n//   }\n\n//   const handleOption = async (option: string, customPromptInput?: string) => {\n//     let selectedText = highlightData.text\n//     if (autoContext && !selectedText && editor) {\n//       selectedText = editor.state.doc.textBetween(0, editor.state.doc.content.size)\n//     }\n//     if (lastAssistantMessage) {\n//       selectedText =\n//         typeof lastAssistantMessage.content === 'string'\n//           ? lastAssistantMessage.content\n//           : JSON.stringify(lastAssistantMessage.content)\n//     }\n//     const prompt = generatePromptString(option, selectedText, isSpaceTrigger, customPromptInput)\n//     setPrevPrompt(prompt)\n//     setIsNewConversation(true)\n//     setIsOptionsVisible(false)\n//     await getLLMResponse(prompt)\n//   }\n//   const handleAutoContextChange = async (value: boolean) => {\n//     setAutoContext(value)\n//     await window.electronStore.setAutoContext(value)\n//   }\n\n//   if (!isSpaceTrigger && !highlightData.position) return null\n//   if (isSpaceTrigger && isOptionsVisible && !getLastMessage(messages, 'assistant'))\n//     return (\n//       <div\n//         ref={optionsContainerRef}\n//         style={{\n//           top: positionStyle.top,\n//           left: positionStyle.left,\n//         }}\n//         className=\"absolute z-50 w-96 rounded-md border border-gray-300 bg-white p-2.5\"\n//       >\n//         <TextField\n//           inputRef={textFieldRef}\n//           autoFocus\n//           type=\"text\"\n//           variant=\"outlined\"\n//           size=\"small\"\n//           value={customPrompt}\n//           onChange={(e) => setCustomPrompt(e.target.value)}\n//           placeholder=\"Ask AI anything...\"\n//           className=\"mb-2.5 w-full p-1\"\n//           onKeyDown={(e) => {\n//             if (e.key === 'Enter') {\n//               handleOption('custom', customPrompt)\n//               setCustomPrompt('')\n//             }\n//           }}\n//         />\n//         <div className=\"max-h-36 overflow-y-auto\">\n//           <Button\n//             onClick={() => handleOption('simplify')}\n//             className=\"mb-1 block w-full\"\n//             style={{ textTransform: 'none' }}\n//           >\n//             Simplify and condense the writing\n//           </Button>\n//           <Button\n//             onClick={() => handleOption('copy-editor')}\n//             className=\"mb-1 block w-full\"\n//             style={{ textTransform: 'none' }}\n//           >\n//             Fix spelling and grammar\n//           </Button>\n//           <Button\n//             onClick={() => handleOption('takeaways')}\n//             className=\"mb-1 block w-full\"\n//             style={{ textTransform: 'none' }}\n//           >\n//             List key Takeaways\n//           </Button>\n//         </div>\n//         <div className=\"mt-2 flex items-center\">\n//           <label htmlFor=\"autoContextCheckbox\" className=\"flex items-center\">\n//             <input\n//               type=\"checkbox\"\n//               id=\"autoContextCheckbox\"\n//               checked={autoContext}\n//               onChange={(e) => handleAutoContextChange(e.target.checked)}\n//               className=\"size-4 rounded border-gray-600 bg-gray-700 text-indigo-500 focus:ring-1 focus:ring-indigo-500/30\"\n//             />\n//             <span className=\"ml-2 select-none text-xs text-gray-400\">Use File Content (If no text selected)</span>\n//           </label>\n//         </div>\n//       </div>\n//     )\n//   return (\n//     <div>\n//       {!isSpaceTrigger && highlightData.position && (\n//         <Popover>\n//           <PopoverTrigger\n//             style={{\n//               top: `${Math.max(highlightData.position.top + 30, 10)}px`,\n//               left: `${Math.min(highlightData.position.left, window.innerWidth - 550)}px`,\n//               zIndex: 50,\n//             }}\n//             className=\"absolute flex size-7 cursor-pointer items-center justify-center rounded-full border-none bg-gray-200 text-gray-600 shadow-md hover:bg-gray-300\"\n//             aria-label=\"Writing Assistant button\"\n//             onClick={() => setIsOptionsVisible(true)}\n//             type=\"button\"\n//           >\n//             <FaMagic />\n//           </PopoverTrigger>\n//           {isOptionsVisible && !getLastMessage(messages, 'assistant') && (\n//             <PopoverContent\n//               ref={optionsContainerRef}\n//               style={{\n//                 position: 'absolute',\n//                 transform: 'translate(-50%, -40%)',\n//               }}\n//               className=\"absolute z-50 w-96 rounded-md border border-gray-300 bg-white p-2.5\"\n//             >\n//               <TextField\n//                 inputRef={textFieldRef}\n//                 autoFocus\n//                 type=\"text\"\n//                 variant=\"outlined\"\n//                 size=\"small\"\n//                 value={customPrompt}\n//                 onChange={(e) => setCustomPrompt(e.target.value)}\n//                 placeholder=\"Ask AI anything...\"\n//                 className=\"mb-2.5 w-full p-1\"\n//                 onKeyDown={(e) => {\n//                   if (e.key === 'Enter') {\n//                     handleOption('custom', customPrompt)\n//                     setCustomPrompt('')\n//                   }\n//                 }}\n//               />\n//               <div className=\"max-h-36 overflow-y-auto\">\n//                 <Button\n//                   onClick={() => handleOption('simplify')}\n//                   className=\"mb-1 block w-full\"\n//                   style={{ textTransform: 'none' }}\n//                 >\n//                   Simplify and condense the writing\n//                 </Button>\n//                 <Button\n//                   onClick={() => handleOption('copy-editor')}\n//                   className=\"mb-1 block w-full\"\n//                   style={{ textTransform: 'none' }}\n//                 >\n//                   Fix spelling and grammar\n//                 </Button>\n//                 <Button\n//                   onClick={() => handleOption('takeaways')}\n//                   className=\"mb-1 block w-full\"\n//                   style={{ textTransform: 'none' }}\n//                 >\n//                   List key Takeaways\n//                 </Button>\n//               </div>\n//             </PopoverContent>\n//           )}\n//         </Popover>\n//       )}\n\n//       {(messages.length > 0 || streamingMessage) && (\n//         <div\n//           ref={markdownContainerRef}\n//           className=\"absolute z-50 rounded-lg border border-gray-300 bg-white p-2.5 shadow-md\"\n//           style={{\n//             top: positionStyle.top,\n//             left: positionStyle.left,\n//             width: '385px',\n//             maxHeight: '500px',\n//             overflow: 'hidden',\n//             display: 'flex',\n//             flexDirection: 'column',\n//           }}\n//         >\n//           <ConversationHistory\n//             history={messages}\n//             streamingMessage={streamingMessage}\n//             // markdownMaxHeight={markdownMaxHeight}\n//             customPrompt={customPrompt}\n//             setCustomPrompt={setCustomPrompt}\n//             handleCustomPrompt={() => handleOption('custom', customPrompt)}\n//             displayPrompt={prevPrompt}\n//             currentIndex={currentConversationIndex}\n//             onNavigate={(direction) => {\n//               if (direction === 'prev' && currentConversationIndex > 0) {\n//                 setCurrentConversationIndex(currentConversationIndex - 2)\n//               } else if (direction === 'next' && currentConversationIndex < messages.length - 2) {\n//                 setCurrentConversationIndex(currentConversationIndex + 2)\n//               }\n//             }}\n//             getLLMResponse={getLLMResponse}\n//             insertAfterHighlightedText={insertAfterHighlightedText}\n//             copyToClipboard={copyToClipboard}\n//             replaceHighlightedText={replaceHighlightedText}\n//             isNewConversation={isNewConversation}\n//             loadingResponse={loadingResponse}\n//           />\n//         </div>\n//       )}\n//     </div>\n//   )\n// }\n\n// export default WritingAssistant\n"
  },
  {
    "path": "src/components/WritingAssistant/utils.ts",
    "content": "import { ReorChatMessage } from '../../lib/llm/types'\n\nfunction getClassNames(message: ReorChatMessage | undefined): string {\n  if (!message) {\n    return 'bg-blue-100 text-blue-800'\n  }\n  if (message.role === 'assistant') {\n    return 'bg-neutral-200 text-black'\n  }\n  return 'bg-blue-100 text-blue-800'\n}\n\nexport const generatePromptString = (\n  option: string,\n  contextText: string,\n  isSpaceTrigger: boolean,\n  customPromptInput?: string,\n): string => {\n  let processedText = contextText\n  if (!contextText.trim() && isSpaceTrigger) {\n    processedText = ''\n  }\n\n  switch (option) {\n    case 'simplify':\n      return `The following text in triple quotes is either the original text or the previous response:\n    \"\"\"\n    ${processedText}\n    \"\"\"\n    Simplify and condense this writing further. Do not return anything other than the simplified writing. Do not wrap responses in quotes.`\n    case 'copy-editor':\n      return `Act as a copy editor. Go through the text in triple quotes below, which is either the original text or the previous response. Edit it for spelling mistakes, grammar issues, punctuation, and generally for readability and flow. Format the text into appropriately sized paragraphs. Make your best effort.\n    \n    \"\"\" ${processedText} \"\"\"\n    Return only the edited text. Do not wrap your response in quotes. Do not offer anything else other than the edited text in the response. Do not translate the text. If in doubt, or you can't make edits, just return the original text.`\n    case 'takeaways':\n      return `The following text in triple quotes is either the original text or the previous response:\n    \"\"\" ${processedText} \"\"\"\n    Write a markdown list (using dashes) of key takeaways from this text. Write at least 3 items, but write more if the text requires it. Be very detailed and don't leave any information out. Do not wrap responses in quotes.`\n    default:\n      if (processedText.trim() === '') {\n        return `The user has given the following instructions (in triple #) for a new task: ### ${customPromptInput} ###`\n      }\n      return (\n        'The user has given the following instructions (in triple #) for processing the previous response or the original text (in triple quotes): ' +\n        `### ${customPromptInput} ###` +\n        '\\n' +\n        `  \"\"\" ${processedText} \"\"\"`\n      )\n  }\n}\n\nexport const getLastMessage = (messages: ReorChatMessage[], optionalRole?: string): ReorChatMessage | undefined => {\n  if (messages.length === 0) return undefined\n  if (!optionalRole) return messages[messages.length - 1]\n  const outputMessages = messages.filter((msg) => msg.role === optionalRole)\n  return outputMessages[outputMessages.length - 1]\n}\n\nexport default getClassNames\n"
  },
  {
    "path": "src/components/ui/Spinner.tsx",
    "content": "import React from 'react'\nimport { Spinner as TamaguiSpinner, SpinnerProps } from 'tamagui'\n\n/**\n * Spinner component that wraps the Tamagui Spinner for consistent usage across the app.\n *\n * @example\n * ```\n * <Spinner size=\"large\" color=\"$colorPrimary\" />\n * ```\n */\nconst Spinner: React.FC<SpinnerProps> = (props) => {\n  // @ts-ignore eslint-disable-next-line\n  return <TamaguiSpinner {...props} />\n}\n\nexport default Spinner\n"
  },
  {
    "path": "src/components/ui/ThemedMenu.tsx",
    "content": "import React, { ReactNode } from 'react'\nimport { Menu, MenuProps, MenuLabelProps } from '@mantine/core'\nimport { useTheme } from 'tamagui'\n\ninterface ThemedMenuProps {\n  children: ReactNode\n}\n\ntype ThemedMenuItemProps<C extends React.ElementType = 'button'> = {\n  style?: React.CSSProperties\n  icon?: React.ReactNode\n} & React.ComponentPropsWithoutRef<C>\n\nconst ThemedMenu: React.FC<ThemedMenuProps & MenuProps> = ({ children, ...restProps }) => {\n  const theme = useTheme()\n\n  return (\n    <Menu {...restProps} styles={{ dropdown: { backgroundColor: theme.background.val } }}>\n      {children}\n    </Menu>\n  )\n}\n\nexport const ThemedMenuItem: React.FC<ThemedMenuItemProps> = <C extends React.ElementType = 'button'>({\n  style,\n  ...props\n}: ThemedMenuItemProps<C>) => {\n  const theme = useTheme()\n\n  return (\n    <Menu.Item\n      {...props}\n      style={{\n        backgroundColor: theme.background.val,\n        color: theme.color.val,\n        ...style,\n      }}\n      onMouseEnter={(e: any) => {\n        // TODO: Temporary fix for hover background color. Original is too light.\n        e.currentTarget.style.backgroundColor =\n          theme.background.val === '#f9f9f9' ? 'hsl(0, 0%, 93.3%)' : theme.backgroundHover.val\n      }}\n      onMouseLeave={(e: any) => {\n        e.currentTarget.style.backgroundColor = theme.background.val\n      }}\n    />\n  )\n}\n\nexport const ThemedLabel: React.FC<ThemedMenuProps & MenuLabelProps> = ({ children, ...restProps }) => {\n  const theme = useTheme()\n\n  return (\n    <Menu.Label\n      {...restProps}\n      style={{\n        backgroundColor: theme.background.val,\n        color: theme.color.val,\n      }}\n    >\n      {children}\n    </Menu.Label>\n  )\n}\n\nexport default ThemedMenu\n"
  },
  {
    "path": "src/components/ui/ThemedSelect.tsx",
    "content": "/** For tamagui version 1.226, there is a bug on Select, however, we still want to maintain\n * a black or white theme depending on user preferences. */\nimport React from 'react'\nimport { Select, SelectProps } from '@mantine/core'\nimport { MantineStyleProps } from '@/contexts/ThemeContext'\n\nconst ThemedSelect: React.FC<SelectProps & { customStyles?: Record<string, React.CSSProperties> }> = ({\n  customStyles = {},\n  ...restProps\n}) => {\n  const defaultStyles = MantineStyleProps()\n  const mergedStyles = {\n    ...defaultStyles, // Apply default styles\n    ...Object.keys(customStyles).reduce(\n      // eslint-disable-next-line @typescript-eslint/no-shadow\n      (mergedStyles, key) => {\n        mergedStyles[key] = {\n          ...defaultStyles[key as keyof typeof defaultStyles],\n          ...customStyles[key],\n        }\n        return mergedStyles\n      },\n      {} as Record<string, React.CSSProperties>,\n    ),\n  }\n\n  return <Select zIndex={9999} {...restProps} styles={mergedStyles} />\n}\n\nexport default ThemedSelect\n"
  },
  {
    "path": "src/components/ui/badge.tsx",
    "content": "/* eslint-disable react/jsx-props-no-spreading */\nimport * as React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '@/lib/ui'\n\nconst badgeVariants = cva(\n  'inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',\n  {\n    variants: {\n      variant: {\n        default: 'border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80',\n        secondary: 'border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80',\n        destructive: 'border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80',\n        outline: 'text-foreground',\n      },\n    },\n    defaultVariants: {\n      variant: 'default',\n    },\n  },\n)\n\nexport interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {}\n\nconst Badge = ({ className, variant, ...props }: BadgeProps) => {\n  return <div className={cn(badgeVariants({ variant }), className)} {...props} />\n}\n\nexport { Badge, badgeVariants }\n"
  },
  {
    "path": "src/components/ui/button.tsx",
    "content": "import * as React from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '@/lib/ui'\n\nconst buttonVariants = cva(\n  'inline-flex cursor-pointer items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50',\n  {\n    variants: {\n      variant: {\n        default: 'border border-input bg-primary text-primary-foreground hover:bg-primary/90',\n        destructive: 'bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90',\n        outline: 'border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground',\n        secondary: 'bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80',\n        ghost: 'hover:bg-accent hover:text-accent-foreground',\n        link: 'text-primary underline-offset-4 hover:underline',\n      },\n      size: {\n        default: 'h-9 px-4 py-2',\n        sm: 'h-8 rounded-md px-3 text-xs',\n        lg: 'h-10 rounded-md px-8',\n        icon: 'size-9',\n      },\n    },\n    defaultVariants: {\n      variant: 'default',\n      size: 'default',\n    },\n  },\n)\n\nexport interface ButtonProps\n  extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n    VariantProps<typeof buttonVariants> {\n  asChild?: boolean\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n  ({ className, variant, size, asChild = false, ...props }, ref) => {\n    const Comp = asChild ? Slot : 'button'\n    // eslint-disable-next-line react/jsx-props-no-spreading\n    return <Comp className={cn(buttonVariants({ variant, size, className }))} ref={ref} {...props} />\n  },\n)\nButton.displayName = 'Button'\n\nexport { Button, buttonVariants }\n"
  },
  {
    "path": "src/components/ui/calendar.tsx",
    "content": "/* eslint-disable react/jsx-props-no-spreading */\n/* eslint-disable react/no-unstable-nested-components */\n/* eslint-disable react/prop-types */\nimport * as React from 'react'\nimport { ChevronLeftIcon, ChevronRightIcon } from '@radix-ui/react-icons'\nimport { DayPicker } from 'react-day-picker'\n\nimport { cn } from '@/lib/ui'\nimport { buttonVariants } from '@/components/ui/button'\n\nexport type CalendarProps = React.ComponentProps<typeof DayPicker>\n\nconst Calendar = ({ className, classNames, showOutsideDays = true, ...props }: CalendarProps) => {\n  return (\n    <DayPicker\n      showOutsideDays={showOutsideDays}\n      className={cn('p-3', className)}\n      classNames={{\n        months: 'flex flex-col sm:flex-row space-y-4 sm:space-x-4 sm:space-y-0',\n        month: 'space-y-4',\n        caption: 'flex justify-center pt-1 relative items-center',\n        caption_label: 'text-sm font-medium',\n        nav: 'space-x-1 flex items-center',\n        nav_button: cn(\n          buttonVariants({ variant: 'outline' }),\n          'h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100',\n        ),\n        nav_button_previous: 'absolute left-1',\n        nav_button_next: 'absolute right-1',\n        table: 'w-full border-collapse space-y-1',\n        head_row: 'flex',\n        head_cell: 'text-muted-foreground rounded-md w-8 font-normal text-[0.8rem]',\n        row: 'flex w-full mt-2',\n        cell: 'relative p-0 text-center text-sm focus-within:relative focus-within:z-20',\n        day: cn(buttonVariants({ variant: 'ghost' }), 'h-8 w-8 p-0 font-normal'),\n        day_selected: 'bg-background text-primary  hover:text-primary-foreground ',\n        // day_today:\n        //   'bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground',\n        day_outside: 'text-muted-foreground opacity-50',\n        // day_disabled: 'text-muted-foreground opacity-50',\n        // day_range_middle: 'aria-selected:bg-accent/50 aria-selected:text-accent-foreground',\n        day_hidden: 'invisible',\n        ...classNames,\n      }}\n      components={{\n        IconLeft: () => <ChevronLeftIcon className=\"size-4\" />,\n        IconRight: () => <ChevronRightIcon className=\"size-4\" />,\n      }}\n      {...props}\n    />\n  )\n}\nCalendar.displayName = 'Calendar'\n\nexport { Calendar }\n"
  },
  {
    "path": "src/components/ui/card.tsx",
    "content": "/* eslint-disable jsx-a11y/heading-has-content */\n/* eslint-disable react/jsx-props-no-spreading */\nimport * as React from 'react'\n\nimport { cn } from '@/lib/ui'\n\nconst Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(({ className, ...props }, ref) => (\n  <div ref={ref} className={cn('rounded-xl border bg-card text-card-foreground shadow', className)} {...props} />\n))\nCard.displayName = 'Card'\n\nconst CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n  ({ className, ...props }, ref) => (\n    <div ref={ref} className={cn('flex flex-col space-y-1.5 p-6', className)} {...props} />\n  ),\n)\nCardHeader.displayName = 'CardHeader'\n\nconst CardTitle = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLHeadingElement>>(\n  ({ className, ...props }, ref) => (\n    <h3 ref={ref} className={cn('font-semibold leading-none tracking-tight', className)} {...props} />\n  ),\n)\nCardTitle.displayName = 'CardTitle'\n\nconst CardDescription = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLParagraphElement>>(\n  ({ className, ...props }, ref) => (\n    <p ref={ref} className={cn('text-sm text-muted-foreground', className)} {...props} />\n  ),\n)\nCardDescription.displayName = 'CardDescription'\n\nconst CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n  ({ className, ...props }, ref) => <div ref={ref} className={cn('p-6 pt-0', className)} {...props} />,\n)\nCardContent.displayName = 'CardContent'\n\nconst CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n  ({ className, ...props }, ref) => (\n    <div ref={ref} className={cn('flex items-center p-6 pt-0', className)} {...props} />\n  ),\n)\nCardFooter.displayName = 'CardFooter'\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }\n"
  },
  {
    "path": "src/components/ui/checkbox.tsx",
    "content": "/* eslint-disable react/jsx-props-no-spreading */\n/* eslint-disable import/prefer-default-export */\nimport React from 'react'\nimport * as CheckboxPrimitive from '@radix-ui/react-checkbox'\nimport { CheckIcon } from '@radix-ui/react-icons'\nimport { cn } from '@/lib/ui'\n\ninterface CheckboxProps extends React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root> {\n  label?: string\n}\n\nconst Checkbox: React.FC<CheckboxProps> = ({ className, label, id, ...props }) => {\n  return (\n    <div className=\"flex items-center\">\n      <CheckboxPrimitive.Root\n        id={id}\n        className={cn(\n          'shadow-blackA4 hover:bg-violet3 flex h-[25px] w-[25px] appearance-none items-center justify-center rounded-[4px] bg-white shadow-[0_2px_10px] outline-none focus:shadow-[0_0_0_2px_black]',\n          className,\n        )}\n        {...props}\n      >\n        <CheckboxPrimitive.Indicator>\n          <CheckIcon />\n        </CheckboxPrimitive.Indicator>\n      </CheckboxPrimitive.Root>\n      {label && (\n        <label className=\"pl-[15px] text-[15px] leading-none text-white\" htmlFor={id}>\n          {label}\n        </label>\n      )}\n    </div>\n  )\n}\n\nexport { Checkbox }\n"
  },
  {
    "path": "src/components/ui/collapsible.tsx",
    "content": "import * as CollapsiblePrimitive from '@radix-ui/react-collapsible'\n\nconst Collapsible = CollapsiblePrimitive.Root\n\nconst { CollapsibleTrigger } = CollapsiblePrimitive\n\nconst { CollapsibleContent } = CollapsiblePrimitive\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n"
  },
  {
    "path": "src/components/ui/command.tsx",
    "content": "/* eslint-disable react/no-unknown-property */\n/* eslint-disable react/prop-types */\n/* eslint-disable react/jsx-props-no-spreading */\nimport * as React from 'react'\nimport { type DialogProps } from '@radix-ui/react-dialog'\nimport { MagnifyingGlassIcon } from '@radix-ui/react-icons'\nimport { Command as CommandPrimitive } from 'cmdk'\n\nimport { cn } from '@/lib/ui'\nimport { Dialog, DialogContent } from '@/components/ui/dialog'\n\nconst Command = React.forwardRef<\n  React.ElementRef<typeof CommandPrimitive>,\n  React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n  <CommandPrimitive\n    ref={ref}\n    className={cn(\n      'flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground',\n      className,\n    )}\n    {...props}\n  />\n))\nCommand.displayName = CommandPrimitive.displayName\n\ninterface CommandDialogProps extends DialogProps {}\n\nconst CommandDialog = ({ children, ...props }: CommandDialogProps) => {\n  return (\n    <Dialog {...props}>\n      <DialogContent className=\"overflow-hidden p-0\">\n        <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:size-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:size-5\">\n          {children}\n        </Command>\n      </DialogContent>\n    </Dialog>\n  )\n}\n\nconst CommandInput = React.forwardRef<\n  React.ElementRef<typeof CommandPrimitive.Input>,\n  React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n  <div className=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\n    <MagnifyingGlassIcon className=\"mr-2 size-4 shrink-0 opacity-50\" />\n    <CommandPrimitive.Input\n      ref={ref}\n      className={cn(\n        'flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50',\n        className,\n      )}\n      {...props}\n    />\n  </div>\n))\n\nCommandInput.displayName = CommandPrimitive.Input.displayName\n\nconst CommandList = React.forwardRef<\n  React.ElementRef<typeof CommandPrimitive.List>,\n  React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n  <CommandPrimitive.List\n    ref={ref}\n    className={cn('max-h-[300px] overflow-y-auto overflow-x-hidden', className)}\n    {...props}\n  />\n))\n\nCommandList.displayName = CommandPrimitive.List.displayName\n\nconst CommandEmpty = React.forwardRef<\n  React.ElementRef<typeof CommandPrimitive.Empty>,\n  React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => <CommandPrimitive.Empty ref={ref} className=\"py-6 text-center text-sm\" {...props} />)\n\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName\n\nconst CommandGroup = React.forwardRef<\n  React.ElementRef<typeof CommandPrimitive.Group>,\n  React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n  <CommandPrimitive.Group\n    ref={ref}\n    className={cn(\n      'overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground',\n      className,\n    )}\n    {...props}\n  />\n))\n\nCommandGroup.displayName = CommandPrimitive.Group.displayName\n\nconst CommandSeparator = React.forwardRef<\n  React.ElementRef<typeof CommandPrimitive.Separator>,\n  React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n  <CommandPrimitive.Separator ref={ref} className={cn('-mx-1 h-px bg-border', className)} {...props} />\n))\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName\n\nconst CommandItem = React.forwardRef<\n  React.ElementRef<typeof CommandPrimitive.Item>,\n  React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n  <CommandPrimitive.Item\n    ref={ref}\n    className={cn(\n      'relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50',\n      className,\n    )}\n    {...props}\n  />\n))\n\nCommandItem.displayName = CommandPrimitive.Item.displayName\n\nconst CommandShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {\n  return <span className={cn('ml-auto text-xs tracking-widest text-muted-foreground', className)} {...props} />\n}\nCommandShortcut.displayName = 'CommandShortcut'\n\nexport {\n  Command,\n  CommandDialog,\n  CommandInput,\n  CommandList,\n  CommandEmpty,\n  CommandGroup,\n  CommandItem,\n  CommandShortcut,\n  CommandSeparator,\n}\n"
  },
  {
    "path": "src/components/ui/context-menu.tsx",
    "content": "/* eslint-disable react/jsx-props-no-spreading */\n/* eslint-disable react/prop-types */\nimport * as React from 'react'\nimport * as ContextMenuPrimitive from '@radix-ui/react-context-menu'\nimport { CheckIcon, ChevronRightIcon, DotFilledIcon } from '@radix-ui/react-icons'\nimport { cn } from '@/lib/ui'\n\nconst ContextMenu = ContextMenuPrimitive.Root\n\nconst ContextMenuTrigger = ContextMenuPrimitive.Trigger\n\nconst ContextMenuGroup = ContextMenuPrimitive.Group\n\nconst ContextMenuPortal = ContextMenuPrimitive.Portal\n\nconst ContextMenuSub = ContextMenuPrimitive.Sub\n\nconst ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup\n\nconst ContextMenuSubTrigger = React.forwardRef<\n  React.ElementRef<typeof ContextMenuPrimitive.SubTrigger>,\n  React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubTrigger> & {\n    inset?: boolean\n  }\n>(({ className, inset, children, ...props }, ref) => (\n  <ContextMenuPrimitive.SubTrigger\n    ref={ref}\n    className={cn(\n      'flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground',\n      inset && 'pl-8',\n      className,\n    )}\n    {...props}\n  >\n    {children}\n    <ChevronRightIcon className=\"ml-auto size-4\" />\n  </ContextMenuPrimitive.SubTrigger>\n))\nContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName\n\nconst ContextMenuSubContent = React.forwardRef<\n  React.ElementRef<typeof ContextMenuPrimitive.SubContent>,\n  React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n  <ContextMenuPrimitive.SubContent\n    ref={ref}\n    className={cn(\n      'z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n      className,\n    )}\n    {...props}\n  />\n))\nContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName\n\nconst ContextMenuContent = React.forwardRef<\n  React.ElementRef<typeof ContextMenuPrimitive.Content>,\n  React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Content>\n>(({ className, ...props }, ref) => (\n  <ContextMenuPrimitive.Portal>\n    <ContextMenuPrimitive.Content\n      ref={ref}\n      className={cn(\n        'z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n        className,\n      )}\n      {...props}\n    />\n  </ContextMenuPrimitive.Portal>\n))\nContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName\n\nconst ContextMenuItem = React.forwardRef<\n  React.ElementRef<typeof ContextMenuPrimitive.Item>,\n  React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item> & {\n    inset?: boolean\n  }\n>(({ className, inset, ...props }, ref) => (\n  <ContextMenuPrimitive.Item\n    ref={ref}\n    className={cn(\n      'relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n      inset && 'pl-8',\n      className,\n    )}\n    {...props}\n  />\n))\nContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName\n\nconst ContextMenuCheckboxItem = React.forwardRef<\n  React.ElementRef<typeof ContextMenuPrimitive.CheckboxItem>,\n  React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n  <ContextMenuPrimitive.CheckboxItem\n    ref={ref}\n    className={cn(\n      'relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n      className,\n    )}\n    checked={checked}\n    {...props}\n  >\n    <span className=\"absolute left-2 flex size-3.5 items-center justify-center\">\n      <ContextMenuPrimitive.ItemIndicator>\n        <CheckIcon className=\"size-4\" />\n      </ContextMenuPrimitive.ItemIndicator>\n    </span>\n    {children}\n  </ContextMenuPrimitive.CheckboxItem>\n))\nContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName\n\nconst ContextMenuRadioItem = React.forwardRef<\n  React.ElementRef<typeof ContextMenuPrimitive.RadioItem>,\n  React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n  <ContextMenuPrimitive.RadioItem\n    ref={ref}\n    className={cn(\n      'relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n      className,\n    )}\n    {...props}\n  >\n    <span className=\"absolute left-2 flex size-3.5 items-center justify-center\">\n      <ContextMenuPrimitive.ItemIndicator>\n        <DotFilledIcon className=\"size-4 fill-current\" />\n      </ContextMenuPrimitive.ItemIndicator>\n    </span>\n    {children}\n  </ContextMenuPrimitive.RadioItem>\n))\nContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName\n\nconst ContextMenuLabel = React.forwardRef<\n  React.ElementRef<typeof ContextMenuPrimitive.Label>,\n  React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Label> & {\n    inset?: boolean\n  }\n>(({ className, inset, ...props }, ref) => (\n  <ContextMenuPrimitive.Label\n    ref={ref}\n    className={cn('px-2 py-1.5 text-sm font-semibold text-foreground', inset && 'pl-8', className)}\n    {...props}\n  />\n))\nContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName\n\nconst ContextMenuSeparator = React.forwardRef<\n  React.ElementRef<typeof ContextMenuPrimitive.Separator>,\n  React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n  <ContextMenuPrimitive.Separator ref={ref} className={cn('-mx-1 my-1 h-px bg-border', className)} {...props} />\n))\nContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName\n\nconst ContextMenuShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {\n  return <span className={cn('ml-auto text-xs tracking-widest text-muted-foreground', className)} {...props} />\n}\nContextMenuShortcut.displayName = 'ContextMenuShortcut'\n\nexport {\n  ContextMenu,\n  ContextMenuTrigger,\n  ContextMenuContent,\n  ContextMenuItem,\n  ContextMenuCheckboxItem,\n  ContextMenuRadioItem,\n  ContextMenuLabel,\n  ContextMenuSeparator,\n  ContextMenuShortcut,\n  ContextMenuGroup,\n  ContextMenuPortal,\n  ContextMenuSub,\n  ContextMenuSubContent,\n  ContextMenuSubTrigger,\n  ContextMenuRadioGroup,\n}\n"
  },
  {
    "path": "src/components/ui/date-picker.tsx",
    "content": "import React, { useState, useCallback } from 'react'\nimport { CalendarIcon, ChevronDownIcon, XIcon } from 'lucide-react'\nimport { subDays, subHours, subWeeks, subMonths } from 'date-fns'\nimport { Button } from '@/components/ui/button'\nimport { Calendar } from '@/components/ui/calendar'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover'\nimport { cn } from '@/lib/ui'\n\ninterface DateRangePickerProps {\n  from: Date | undefined\n  to: Date | undefined\n  onDateChange: (from: Date | undefined, to: Date | undefined) => void\n}\n\nconst quickSelectOptions = [\n  { label: 'Last hour', value: 'last-hour' },\n  { label: 'Today', value: 'today' },\n  { label: 'This week', value: 'this-week' },\n  { label: 'This month', value: 'this-month' },\n  { label: 'Custom', value: 'custom' },\n]\n\nconst DateRangePicker: React.FC<DateRangePickerProps> = ({ from, to, onDateChange }) => {\n  const [activeOption, setActiveOption] = useState<string | null>()\n  const [isDatePopoverOpen, setIsDatePopoverOpen] = useState(false)\n\n  const updateDateRange = useCallback(\n    (newFrom: Date | undefined, newTo: Date | undefined, option: string | null) => {\n      onDateChange(newFrom, newTo)\n      setActiveOption(option)\n      if (option !== 'custom') {\n        setIsDatePopoverOpen(false)\n      }\n    },\n    [onDateChange],\n  )\n\n  const handleOptionClick = (option: string) => {\n    setActiveOption(option)\n    if (option !== 'custom') {\n      const now = new Date()\n      let newFrom: Date\n      switch (option) {\n        case 'last-hour':\n          newFrom = subHours(now, 1)\n          break\n        case 'last-day':\n          newFrom = subDays(now, 1)\n          break\n        case 'last-week':\n          newFrom = subWeeks(now, 1)\n          break\n        case 'last-month':\n          newFrom = subMonths(now, 1)\n          break\n        default:\n          return\n      }\n      updateDateRange(newFrom, now, option)\n    } else {\n      setIsDatePopoverOpen(true)\n    }\n  }\n\n  const handleClear = () => {\n    updateDateRange(undefined, undefined, null)\n  }\n\n  const formatDateRange = () => {\n    if (!from && !to) return 'Select date range'\n    if (from && to) return `${from.toDateString()} - ${to.toDateString()}`\n    if (from) return `From ${from.toDateString()}`\n    if (to) return `To ${to.toDateString()}`\n    return '' // Default case\n  }\n\n  const handleFromDateSelect = (date: Date | undefined) => {\n    updateDateRange(date, to, 'custom')\n  }\n\n  const handleToDateSelect = (date: Date | undefined) => {\n    updateDateRange(from, date, 'custom')\n  }\n\n  return (\n    <div className=\"space-y-2\">\n      <div className=\"flex flex-wrap gap-1\">\n        {quickSelectOptions.map((option) => (\n          <Button\n            key={option.value}\n            variant={activeOption === option.value ? 'default' : 'outline'}\n            onClick={() => handleOptionClick(option.value)}\n            className={cn(\n              'grow px-2 py-1 text-sm sm:grow-0',\n              activeOption === option.value\n                ? 'bg-bg-primary/90 text-primary-foreground hover:bg-primary/90'\n                : 'bg-secondary text-foreground hover:bg-secondary',\n            )}\n          >\n            {option.label}\n          </Button>\n        ))}\n        <Button\n          variant=\"outline\"\n          onClick={handleClear}\n          className=\"grow bg-background px-2 py-1 text-xs text-foreground hover:bg-secondary sm:grow-0\"\n        >\n          <XIcon className=\"mr-1 size-3\" />\n          Clear\n        </Button>\n      </div>\n      {activeOption === 'custom' && (\n        <Popover open={isDatePopoverOpen} onOpenChange={setIsDatePopoverOpen}>\n          <PopoverTrigger asChild>\n            <Button\n              variant=\"outline\"\n              className=\"w-full justify-start bg-background px-2 py-1 text-left text-xs font-normal text-foreground hover:bg-secondary\"\n            >\n              <CalendarIcon className=\"mr-1 size-3\" />\n              {formatDateRange()}\n              <ChevronDownIcon className=\"ml-auto size-3 opacity-50\" />\n            </Button>\n          </PopoverTrigger>\n          <PopoverContent className=\"w-auto bg-background p-0\" align=\"start\">\n            <div className=\"flex flex-col sm:flex-row\">\n              <div className=\"border-b border-border p-4 sm:border-b-0 sm:border-r\">\n                <Calendar mode=\"single\" selected={from} onSelect={handleFromDateSelect} initialFocus />\n              </div>\n              <div className=\"p-4\">\n                <Calendar mode=\"single\" selected={to} onSelect={handleToDateSelect} initialFocus />\n              </div>\n            </div>\n          </PopoverContent>\n        </Popover>\n      )}\n    </div>\n  )\n}\n\nexport default DateRangePicker\n"
  },
  {
    "path": "src/components/ui/dialog.tsx",
    "content": "import * as DialogPrimitive from '@radix-ui/react-dialog'\nimport { styled, YStack, XStack, Text } from 'tamagui'\n\nconst Dialog = DialogPrimitive.Root\nconst DialogTrigger = DialogPrimitive.Trigger\nconst DialogPortal = DialogPrimitive.Portal\nconst DialogClose = DialogPrimitive.Close\n\nconst DialogOverlay = styled(DialogPrimitive.Overlay, {\n  name: 'DialogOverlay',\n  // @ts-ignore\n  position: 'fixed',\n  inset: 0,\n  zIndex: 50,\n  backgroundColor: 'rgba(0, 0, 0, 0.5)',\n  variants: {\n    open: {\n      true: {\n        animation: 'unset',\n      },\n      false: {\n        animation: 'unset',\n      },\n    },\n  },\n})\n\nconst DialogContent = styled(DialogPrimitive.Content, {\n  name: 'DialogContent',\n  backgroundColor: '$background',\n  borderRadius: '$3',\n  // @ts-ignore\n  position: 'fixed',\n  left: '50%',\n  top: '50%',\n  zIndex: 60,\n  width: '60vw',\n  // maxWidth: {\n  //   sm: '90%', // For small screens\n  //   md: '80%', // For medium screens\n  //   lg: '70%', // For large screens\n  //   xl: '60%', // For extra-large screens\n  // },\n  transform: 'translate(-50%, -50%)',\n  variants: {\n    open: {\n      true: {\n        animation: 'unset',\n      },\n      false: {\n        animation: 'unset',\n      },\n    },\n  },\n})\n\nconst DialogHeader = styled(YStack, {\n  name: 'DialogHeader',\n  space: '$1.5',\n  paddingBottom: '$2',\n})\n\nconst DialogFooter = styled(XStack, {\n  name: 'DialogFooter',\n  justifyContent: 'flex-end',\n  space: '$2',\n  paddingTop: '$2',\n})\n\nconst DialogTitle = styled(Text, {\n  name: 'DialogTitle',\n  fontSize: '$5',\n  fontWeight: 'bold',\n})\n\nconst DialogDescription = styled(Text, {\n  name: 'DialogDescription',\n  fontSize: '$2',\n  color: '$textSecondary',\n})\n\nexport {\n  Dialog,\n  DialogPortal,\n  DialogOverlay,\n  DialogTrigger,\n  DialogClose,\n  DialogContent,\n  DialogHeader,\n  DialogFooter,\n  DialogTitle,\n  DialogDescription,\n}\n"
  },
  {
    "path": "src/components/ui/drawer.tsx",
    "content": "/* eslint-disable react/prop-types */\n/* eslint-disable react/jsx-props-no-spreading */\nimport * as React from 'react'\nimport { Drawer as DrawerPrimitive } from 'vaul'\n\nimport { cn } from '@/lib/ui'\n\nconst Drawer = ({ shouldScaleBackground = true, ...props }: React.ComponentProps<typeof DrawerPrimitive.Root>) => (\n  <DrawerPrimitive.Root shouldScaleBackground={shouldScaleBackground} {...props} />\n)\nDrawer.displayName = 'Drawer'\n\nconst DrawerTrigger = DrawerPrimitive.Trigger\n\nconst DrawerPortal = DrawerPrimitive.Portal\n\nconst DrawerClose = DrawerPrimitive.Close\n\nconst DrawerOverlay = React.forwardRef<\n  React.ElementRef<typeof DrawerPrimitive.Overlay>,\n  React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n  <DrawerPrimitive.Overlay ref={ref} className={cn('fixed inset-0 z-50 bg-black/80', className)} {...props} />\n))\nDrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName\n\nconst DrawerContent = React.forwardRef<\n  React.ElementRef<typeof DrawerPrimitive.Content>,\n  React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n  <DrawerPortal>\n    <DrawerOverlay />\n    <DrawerPrimitive.Content\n      ref={ref}\n      className={cn(\n        'fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background',\n        className,\n      )}\n      {...props}\n    >\n      <div className=\"mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted\" />\n      {children}\n    </DrawerPrimitive.Content>\n  </DrawerPortal>\n))\nDrawerContent.displayName = 'DrawerContent'\n\nconst DrawerHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n  <div className={cn('grid gap-1.5 p-4 text-center sm:text-left', className)} {...props} />\n)\nDrawerHeader.displayName = 'DrawerHeader'\n\nconst DrawerFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n  <div className={cn('mt-auto flex flex-col gap-2 p-4', className)} {...props} />\n)\nDrawerFooter.displayName = 'DrawerFooter'\n\nconst DrawerTitle = React.forwardRef<\n  React.ElementRef<typeof DrawerPrimitive.Title>,\n  React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title>\n>(({ className, ...props }, ref) => (\n  <DrawerPrimitive.Title\n    ref={ref}\n    className={cn('text-lg font-semibold leading-none tracking-tight', className)}\n    {...props}\n  />\n))\nDrawerTitle.displayName = DrawerPrimitive.Title.displayName\n\nconst DrawerDescription = React.forwardRef<\n  React.ElementRef<typeof DrawerPrimitive.Description>,\n  React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description>\n>(({ className, ...props }, ref) => (\n  <DrawerPrimitive.Description ref={ref} className={cn('text-sm text-muted-foreground', className)} {...props} />\n))\nDrawerDescription.displayName = DrawerPrimitive.Description.displayName\n\nexport {\n  Drawer,\n  DrawerPortal,\n  DrawerOverlay,\n  DrawerTrigger,\n  DrawerClose,\n  DrawerContent,\n  DrawerHeader,\n  DrawerFooter,\n  DrawerTitle,\n  DrawerDescription,\n}\n"
  },
  {
    "path": "src/components/ui/dropdown-menu.tsx",
    "content": "/* eslint-disable react/jsx-props-no-spreading */\n/* eslint-disable react/prop-types */\nimport * as React from 'react'\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu'\nimport { CheckIcon, ChevronRightIcon, DotFilledIcon } from '@radix-ui/react-icons'\nimport { cn } from '@/lib/ui'\n\nconst DropdownMenu = DropdownMenuPrimitive.Root\n\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger\n\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group\n\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal\n\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub\n\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n  React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {\n    inset?: boolean\n  }\n>(({ className, inset, children, ...props }, ref) => (\n  <DropdownMenuPrimitive.SubTrigger\n    ref={ref}\n    className={cn(\n      'flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent',\n      inset && 'pl-8',\n      className,\n    )}\n    {...props}\n  >\n    {children}\n    <ChevronRightIcon className=\"ml-auto size-4\" />\n  </DropdownMenuPrimitive.SubTrigger>\n))\nDropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName\n\nconst DropdownMenuSubContent = React.forwardRef<\n  React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n  <DropdownMenuPrimitive.SubContent\n    ref={ref}\n    className={cn(\n      'z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n      className,\n    )}\n    {...props}\n  />\n))\nDropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName\n\nconst DropdownMenuContent = React.forwardRef<\n  React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n  <DropdownMenuPrimitive.Portal>\n    <DropdownMenuPrimitive.Content\n      ref={ref}\n      sideOffset={sideOffset}\n      className={cn(\n        'z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md',\n        'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n        className,\n      )}\n      {...props}\n    />\n  </DropdownMenuPrimitive.Portal>\n))\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName\n\nconst DropdownMenuItem = React.forwardRef<\n  React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\n    inset?: boolean\n  }\n>(({ className, inset, ...props }, ref) => (\n  <DropdownMenuPrimitive.Item\n    ref={ref}\n    className={cn(\n      'relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n      inset && 'pl-8',\n      className,\n    )}\n    {...props}\n  />\n))\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n  React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n  <DropdownMenuPrimitive.CheckboxItem\n    ref={ref}\n    className={cn(\n      'relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n      className,\n    )}\n    checked={checked}\n    {...props}\n  >\n    <span className=\"absolute left-2 flex size-3.5 items-center justify-center\">\n      <DropdownMenuPrimitive.ItemIndicator>\n        <CheckIcon className=\"size-4\" />\n      </DropdownMenuPrimitive.ItemIndicator>\n    </span>\n    {children}\n  </DropdownMenuPrimitive.CheckboxItem>\n))\nDropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName\n\nconst DropdownMenuRadioItem = React.forwardRef<\n  React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n  <DropdownMenuPrimitive.RadioItem\n    ref={ref}\n    className={cn(\n      'relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n      className,\n    )}\n    {...props}\n  >\n    <span className=\"absolute left-2 flex size-3.5 items-center justify-center\">\n      <DropdownMenuPrimitive.ItemIndicator>\n        <DotFilledIcon className=\"size-4 fill-current\" />\n      </DropdownMenuPrimitive.ItemIndicator>\n    </span>\n    {children}\n  </DropdownMenuPrimitive.RadioItem>\n))\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName\n\nconst DropdownMenuLabel = React.forwardRef<\n  React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\n    inset?: boolean\n  }\n>(({ className, inset, ...props }, ref) => (\n  <DropdownMenuPrimitive.Label\n    ref={ref}\n    className={cn('px-2 py-1.5 text-sm font-semibold', inset && 'pl-8', className)}\n    {...props}\n  />\n))\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName\n\nconst DropdownMenuSeparator = React.forwardRef<\n  React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n  <DropdownMenuPrimitive.Separator ref={ref} className={cn('-mx-1 my-1 h-px bg-muted', className)} {...props} />\n))\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName\n\nconst DropdownMenuShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {\n  return <span className={cn('ml-auto text-xs tracking-widest opacity-60', className)} {...props} />\n}\nDropdownMenuShortcut.displayName = 'DropdownMenuShortcut'\n\nexport {\n  DropdownMenu,\n  DropdownMenuTrigger,\n  DropdownMenuContent,\n  DropdownMenuItem,\n  DropdownMenuCheckboxItem,\n  DropdownMenuRadioItem,\n  DropdownMenuLabel,\n  DropdownMenuSeparator,\n  DropdownMenuShortcut,\n  DropdownMenuGroup,\n  DropdownMenuPortal,\n  DropdownMenuSub,\n  DropdownMenuSubContent,\n  DropdownMenuSubTrigger,\n  DropdownMenuRadioGroup,\n}\n"
  },
  {
    "path": "src/components/ui/hover-card.tsx",
    "content": "/* eslint-disable react/prop-types */\n/* eslint-disable react/jsx-props-no-spreading */\nimport * as React from 'react'\nimport * as HoverCardPrimitive from '@radix-ui/react-hover-card'\n\nimport { cn } from '@/lib/ui'\n\nconst HoverCard = HoverCardPrimitive.Root\n\nconst HoverCardTrigger = HoverCardPrimitive.Trigger\n\nconst HoverCardStyles =\n  'z-50 w-64 rounded-md border bg-popover p-4 overflow-y-auto text-popover-foreground shadow-md ' +\n  'outline-none data-[state=open]:animate-in data-[state=closed]:animate-out ' +\n  'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 ' +\n  'data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 ' +\n  'data-[side=left]:slide-in-from-right-2 data-[side=right:slide-in-from-left-2 ' +\n  'data-[side=top]:slide-in-from-bottom-2 overflow-y-auto'\n\nconst HoverCardContent = React.forwardRef<\n  React.ElementRef<typeof HoverCardPrimitive.Content>,\n  React.ComponentPropsWithoutRef<typeof HoverCardPrimitive.Content>\n>(({ className, align = 'center', sideOffset = 4, ...props }, ref) => (\n  <HoverCardPrimitive.Content\n    ref={ref}\n    align={align}\n    sideOffset={sideOffset}\n    className={cn(HoverCardStyles, className)}\n    {...props}\n  />\n))\nHoverCardContent.displayName = HoverCardPrimitive.Content.displayName\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent }\n"
  },
  {
    "path": "src/components/ui/input.tsx",
    "content": "/* eslint-disable react/jsx-props-no-spreading */\nimport * as React from 'react'\nimport { cn } from '@/lib/ui'\n\nexport interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(({ className, type, ...props }, ref) => {\n  return (\n    <input\n      type={type}\n      className={cn(\n        'flex h-9 w-full rounded-md border border-solid border-input bg-transparent px-3 py-1 text-foreground text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50',\n        className,\n      )}\n      ref={ref}\n      {...props}\n    />\n  )\n})\nInput.displayName = 'Input'\n\nexport { Input }\n"
  },
  {
    "path": "src/components/ui/label.tsx",
    "content": "/* eslint-disable react/jsx-props-no-spreading */\n/* eslint-disable import/prefer-default-export */\nimport * as React from 'react'\nimport * as LabelPrimitive from '@radix-ui/react-label'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '@/lib/ui'\n\nconst labelVariants = cva('text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70')\n\nconst Label = React.forwardRef<\n  React.ElementRef<typeof LabelPrimitive.Root>,\n  React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> & VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n  <LabelPrimitive.Root ref={ref} className={cn(labelVariants(), className)} {...props} />\n))\nLabel.displayName = LabelPrimitive.Root.displayName\n\nexport { Label }\n"
  },
  {
    "path": "src/components/ui/popover.tsx",
    "content": "/* eslint-disable react/jsx-props-no-spreading */\n/* eslint-disable react/prop-types */\n\nimport * as React from 'react'\nimport * as PopoverPrimitive from '@radix-ui/react-popover'\nimport { cn } from '@/lib/ui'\n\nconst Popover = PopoverPrimitive.Root\n\nconst PopoverTrigger = PopoverPrimitive.Trigger\n\nconst PopoverAnchor = PopoverPrimitive.Anchor\n\nconst PopoverContent = React.forwardRef<\n  React.ElementRef<typeof PopoverPrimitive.Content>,\n  React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = 'center', sideOffset = 4, ...props }, ref) => (\n  <PopoverPrimitive.Portal>\n    <PopoverPrimitive.Content\n      ref={ref}\n      align={align}\n      sideOffset={sideOffset}\n      className={cn(\n        'z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n        className,\n      )}\n      {...props}\n    />\n  </PopoverPrimitive.Portal>\n))\nPopoverContent.displayName = PopoverPrimitive.Content.displayName\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor }\n"
  },
  {
    "path": "src/components/ui/progress.tsx",
    "content": "/* eslint-disable import/prefer-default-export */\n/* eslint-disable react/jsx-props-no-spreading */\n/* eslint-disable react/prop-types */\nimport * as React from 'react'\nimport * as ProgressPrimitive from '@radix-ui/react-progress'\nimport { cn } from '@/lib/ui'\n\nconst Progress = React.forwardRef<\n  React.ElementRef<typeof ProgressPrimitive.Root>,\n  React.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root>\n>(({ className, value, ...props }, ref) => (\n  <ProgressPrimitive.Root\n    ref={ref}\n    className={cn('relative h-2 w-full overflow-hidden rounded-full bg-primary/20', className)}\n    {...props}\n  >\n    <ProgressPrimitive.Indicator\n      className=\"size-full flex-1 bg-primary transition-all\"\n      style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n    />\n  </ProgressPrimitive.Root>\n))\nProgress.displayName = ProgressPrimitive.Root.displayName\n\nexport { Progress }\n"
  },
  {
    "path": "src/components/ui/resizable.tsx",
    "content": "/* eslint-disable react/jsx-props-no-spreading */\n/* eslint-disable react/react-in-jsx-scope */\nimport { DragHandleDots2Icon } from '@radix-ui/react-icons'\nimport * as ResizablePrimitive from 'react-resizable-panels'\nimport { cn } from '@/lib/ui'\n\nconst ResizablePanelGroup = ({ className, ...props }: React.ComponentProps<typeof ResizablePrimitive.PanelGroup>) => (\n  <ResizablePrimitive.PanelGroup\n    className={cn('flex h-full w-full data-[panel-group-direction=vertical]:flex-col', className)}\n    {...props}\n  />\n)\n\nconst ResizablePanel = ResizablePrimitive.Panel\n\nconst ResizableHandle = ({\n  withHandle,\n  className,\n  ...props\n}: React.ComponentProps<typeof ResizablePrimitive.PanelResizeHandle> & {\n  withHandle?: boolean\n}) => (\n  <ResizablePrimitive.PanelResizeHandle\n    className={cn(\n      'relative flex items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90',\n      className,\n    )}\n    {...props}\n  >\n    {withHandle && (\n      <div className=\"z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border\">\n        <DragHandleDots2Icon className=\"size-2.5\" />\n      </div>\n    )}\n  </ResizablePrimitive.PanelResizeHandle>\n)\n\nexport { ResizablePanelGroup, ResizablePanel, ResizableHandle }\n"
  },
  {
    "path": "src/components/ui/scroll-area.tsx",
    "content": "/* eslint-disable react/jsx-props-no-spreading */\n/* eslint-disable @typescript-eslint/no-use-before-define */\n/* eslint-disable react/prop-types */\nimport * as React from 'react'\nimport * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area'\n\nimport { cn } from '@/lib/ui'\n\nconst ScrollArea = React.forwardRef<\n  React.ElementRef<typeof ScrollAreaPrimitive.Root>,\n  React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n  <ScrollAreaPrimitive.Root ref={ref} className={cn('relative overflow-hidden', className)} {...props}>\n    <ScrollAreaPrimitive.Viewport className=\"size-full rounded-[inherit]\">{children}</ScrollAreaPrimitive.Viewport>\n    <ScrollBar />\n    <ScrollAreaPrimitive.Corner />\n  </ScrollAreaPrimitive.Root>\n))\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName\n\nconst ScrollBar = React.forwardRef<\n  React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n  React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = 'vertical', ...props }, ref) => (\n  <ScrollAreaPrimitive.ScrollAreaScrollbar\n    ref={ref}\n    orientation={orientation}\n    className={cn(\n      'flex touch-none select-none transition-colors',\n      orientation === 'vertical' && 'h-full w-2.5 border-l border-l-transparent p-[1px]',\n      orientation === 'horizontal' && 'h-2.5 flex-col border-t border-t-transparent p-[1px]',\n      className,\n    )}\n    {...props}\n  >\n    <ScrollAreaPrimitive.ScrollAreaThumb className=\"relative flex-1 rounded-full bg-border\" />\n  </ScrollAreaPrimitive.ScrollAreaScrollbar>\n))\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName\n\nexport { ScrollArea, ScrollBar }\n"
  },
  {
    "path": "src/components/ui/select.tsx",
    "content": "/* eslint-disable react/jsx-props-no-spreading */\n/* eslint-disable react/prop-types */\nimport * as React from 'react'\nimport { CaretSortIcon, CheckIcon, ChevronDownIcon, ChevronUpIcon } from '@radix-ui/react-icons'\nimport * as SelectPrimitive from '@radix-ui/react-select'\nimport { useThemeManager } from '@/contexts/ThemeContext'\n\nimport { cn } from '@/lib/ui'\n\nconst Select = SelectPrimitive.Root\n\nconst SelectGroup = SelectPrimitive.Group\n\nconst SelectValue = SelectPrimitive.Value\n\nconst SelectTrigger = React.forwardRef<\n  React.ElementRef<typeof SelectPrimitive.Trigger>,\n  React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => {\n  const { state } = useThemeManager()\n  const textColor = state === 'dark' ? 'text-white' : 'text-black' // Temporary fix: should change this to a tamagui component!\n  return (\n    <SelectPrimitive.Trigger\n      ref={ref}\n      className={cn(\n        `flex h-9 w-full items-center border border-solid border-muted-foreground ${textColor} cursor-pointer justify-between whitespace-nowrap rounded-md  bg-transparent px-3 py-2 text-xs shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1`,\n        className,\n      )}\n      {...props}\n    >\n      {children}\n      <SelectPrimitive.Icon asChild>\n        <CaretSortIcon className=\"size-4 opacity-50\" />\n      </SelectPrimitive.Icon>\n    </SelectPrimitive.Trigger>\n  )\n})\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName\n\nconst SelectScrollUpButton = React.forwardRef<\n  React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n  React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n  <SelectPrimitive.ScrollUpButton\n    ref={ref}\n    className={cn('flex cursor-default items-center justify-center py-1', className)}\n    {...props}\n  >\n    <ChevronUpIcon />\n  </SelectPrimitive.ScrollUpButton>\n))\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName\n\nconst SelectScrollDownButton = React.forwardRef<\n  React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n  React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n  <SelectPrimitive.ScrollDownButton\n    ref={ref}\n    className={cn('flex cursor-default items-center justify-center py-1', className)}\n    {...props}\n  >\n    <ChevronDownIcon />\n  </SelectPrimitive.ScrollDownButton>\n))\nSelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName\n\nconst SelectContent = React.forwardRef<\n  React.ElementRef<typeof SelectPrimitive.Content>,\n  React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = 'popper', ...props }, ref) => (\n  <SelectPrimitive.Portal>\n    <SelectPrimitive.Content\n      ref={ref}\n      className={cn(\n        'relative z-50 h-[15rem] min-h-[5rem] max-h-[calc(100vh-10rem)] min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n        position === 'popper' &&\n          'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',\n        className,\n      )}\n      position={position}\n      {...props}\n    >\n      <SelectScrollUpButton />\n      <SelectPrimitive.Viewport\n        className={cn(\n          'p-1',\n          position === 'popper' &&\n            'h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]',\n        )}\n      >\n        {children}\n      </SelectPrimitive.Viewport>\n      <SelectScrollDownButton />\n    </SelectPrimitive.Content>\n  </SelectPrimitive.Portal>\n))\nSelectContent.displayName = SelectPrimitive.Content.displayName\n\nconst SelectLabel = React.forwardRef<\n  React.ElementRef<typeof SelectPrimitive.Label>,\n  React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n  <SelectPrimitive.Label ref={ref} className={cn('px-2 py-1.5 text-sm font-semibold', className)} {...props} />\n))\nSelectLabel.displayName = SelectPrimitive.Label.displayName\n\nconst SelectItem = React.forwardRef<\n  React.ElementRef<typeof SelectPrimitive.Item>,\n  React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n  <SelectPrimitive.Item\n    ref={ref}\n    className={cn(\n      'relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n      className,\n    )}\n    {...props}\n  >\n    <span className=\"absolute right-2 flex size-3.5 items-center justify-center\">\n      <SelectPrimitive.ItemIndicator>\n        <CheckIcon className=\"size-4\" />\n      </SelectPrimitive.ItemIndicator>\n    </span>\n    <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n  </SelectPrimitive.Item>\n))\nSelectItem.displayName = SelectPrimitive.Item.displayName\n\nconst SelectSeparator = React.forwardRef<\n  React.ElementRef<typeof SelectPrimitive.Separator>,\n  React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n  <SelectPrimitive.Separator ref={ref} className={cn('-mx-1 my-1 h-px bg-muted', className)} {...props} />\n))\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName\n\nexport {\n  Select,\n  SelectGroup,\n  SelectValue,\n  SelectTrigger,\n  SelectContent,\n  SelectLabel,\n  SelectItem,\n  SelectSeparator,\n  SelectScrollUpButton,\n  SelectScrollDownButton,\n}\n"
  },
  {
    "path": "src/components/ui/slider.tsx",
    "content": "/* eslint-disable import/prefer-default-export */\n/* eslint-disable react/jsx-props-no-spreading */\n/* eslint-disable react/prop-types */\nimport * as React from 'react'\nimport * as SliderPrimitive from '@radix-ui/react-slider'\n\nimport { cn } from '@/lib/ui'\n\nconst Slider = React.forwardRef<\n  React.ElementRef<typeof SliderPrimitive.Root>,\n  React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>\n>(({ className, ...props }, ref) => (\n  <SliderPrimitive.Root\n    ref={ref}\n    className={cn('relative flex w-full touch-none select-none items-center', className)}\n    {...props}\n  >\n    <SliderPrimitive.Track className=\"relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20\">\n      <SliderPrimitive.Range className=\"absolute h-full bg-primary\" />\n    </SliderPrimitive.Track>\n    <SliderPrimitive.Thumb className=\"block size-4 rounded-full border border-primary/50 bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\" />\n  </SliderPrimitive.Root>\n))\nSlider.displayName = SliderPrimitive.Root.displayName\n\nexport { Slider }\n"
  },
  {
    "path": "src/components/ui/suggestion-card.tsx",
    "content": "import React from 'react'\nimport { Card, CardContent } from '@/components/ui/card'\n\ninterface SuggestionCardProps {\n  suggestion: string\n  onClick: () => void\n}\n\nconst SuggestionCard: React.FC<SuggestionCardProps> = ({ suggestion, onClick }) => (\n  <Card\n    className=\"cursor-pointer border border-solid border-border transition-colors duration-200 hover:bg-accent\"\n    onClick={onClick}\n  >\n    <CardContent className=\"p-4\">\n      <p className=\"text-xs text-muted-foreground\">{suggestion}</p>\n    </CardContent>\n  </Card>\n)\n\nexport default SuggestionCard\n"
  },
  {
    "path": "src/components/ui/switch.tsx",
    "content": "/* eslint-disable import/prefer-default-export */\n/* eslint-disable react/prop-types */\n/* eslint-disable react/jsx-props-no-spreading */\nimport * as React from 'react'\nimport * as SwitchPrimitives from '@radix-ui/react-switch'\n\nimport { cn } from '@/lib/ui'\n\nconst Switch = React.forwardRef<\n  React.ElementRef<typeof SwitchPrimitives.Root>,\n  React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>\n>(({ className, ...props }, ref) => (\n  <SwitchPrimitives.Root\n    className={cn(\n      'peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input',\n      className,\n    )}\n    {...props}\n    ref={ref}\n  >\n    <SwitchPrimitives.Thumb\n      className={cn(\n        'pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0',\n      )}\n    />\n  </SwitchPrimitives.Root>\n))\nSwitch.displayName = SwitchPrimitives.Root.displayName\n\nexport { Switch }\n"
  },
  {
    "path": "src/components/ui/textarea.tsx",
    "content": "/* eslint-disable react/jsx-props-no-spreading */\nimport * as React from 'react'\n\nimport { cn } from '@/lib/ui'\n\nexport interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(({ className, ...props }, ref) => {\n  return (\n    <textarea\n      className={cn(\n        'flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50',\n        className,\n      )}\n      ref={ref}\n      {...props}\n    />\n  )\n})\nTextarea.displayName = 'Textarea'\n\nexport { Textarea }\n"
  },
  {
    "path": "src/components/ui/tooltip.tsx",
    "content": "/* eslint-disable react/jsx-props-no-spreading */\n/* eslint-disable react/prop-types */\nimport * as React from 'react'\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip'\n\nimport { cn } from '@/lib/ui'\n\nconst TooltipProvider = TooltipPrimitive.Provider\n\nconst Tooltip = TooltipPrimitive.Root\n\nconst TooltipTrigger = TooltipPrimitive.Trigger\n\nconst TooltipContent = React.forwardRef<\n  React.ElementRef<typeof TooltipPrimitive.Content>,\n  React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n  <TooltipPrimitive.Content\n    ref={ref}\n    sideOffset={sideOffset}\n    className={cn(\n      'z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n      className,\n    )}\n    {...props}\n  />\n))\nTooltipContent.displayName = TooltipPrimitive.Content.displayName\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n"
  },
  {
    "path": "src/components/ui/window-controls.tsx",
    "content": "/* eslint-disable jsx-a11y/control-has-associated-label */\nimport React from 'react'\nimport { X, Maximize2, Plus } from 'lucide-react'\n\ninterface WindowControlsProps {\n  onClose: () => void\n  onMaximize: () => void\n  onNewChat?: () => void\n}\n\nconst WindowControls = ({ onClose, onMaximize, onNewChat }: WindowControlsProps) => (\n  <div className=\"group absolute right-2 top-2 z-10 transition-opacity hover:opacity-100\">\n    <div className=\"flex\">\n      {onNewChat && (\n        <button\n          type=\"button\"\n          onClick={onNewChat}\n          className=\"cursor-pointer bg-transparent p-1.5 transition-colors\"\n          title=\"New Chat\"\n        >\n          <Plus className=\"size-3 text-neutral-400 hover:text-neutral-300\" />\n        </button>\n      )}\n      <button\n        type=\"button\"\n        onClick={onMaximize}\n        className=\"cursor-pointer bg-transparent p-1.5 transition-colors\"\n        title=\"Maximize\"\n      >\n        <Maximize2 className=\"size-3 text-neutral-400 hover:text-neutral-300\" />\n      </button>\n      <button\n        type=\"button\"\n        onClick={onClose}\n        className=\"cursor-pointer bg-transparent p-1.5 transition-colors\"\n        title=\"Close\"\n      >\n        <X className=\"size-3 text-neutral-400 hover:text-neutral-300\" />\n      </button>\n    </div>\n  </div>\n)\n\nexport default WindowControls\n"
  },
  {
    "path": "src/contexts/AdaptContext.tsx",
    "content": "import React, { useMemo } from 'react'\n\ntype AdaptContextType = {\n  when: boolean\n  AdaptProvider: React.FC<{ children: React.ReactNode }>\n}\n\nconst AdaptContext = React.createContext<AdaptContextType | null>(null)\n\nexport const useAdapt = () => {\n  const context = React.useContext(AdaptContext)\n  if (!context) {\n    throw new Error('useAdapt must be used within an AdaptProvider')\n  }\n  return context\n}\n\nexport const useAdaptParent = (contents: React.ReactNode) => {\n  const [when] = React.useState(false)\n\n  const AdaptProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n    const adaptMemo = useMemo(() => ({ when, AdaptProvider }), [])\n\n    return (\n      <AdaptContext.Provider value={adaptMemo}>\n        {children}\n        {when && contents}\n      </AdaptContext.Provider>\n    )\n  }\n\n  return { when, AdaptProvider }\n}\n"
  },
  {
    "path": "src/contexts/ChatContext.tsx",
    "content": "import React, { createContext, useContext, useState, useCallback, useEffect } from 'react'\nimport { SidebarAbleToShow } from '@/components/Sidebars/MainSidebar'\nimport { Chat, ChatMetadata } from '@/lib/llm/types'\n\ninterface ChatContextType {\n  currentChat: Chat | undefined\n  setCurrentChat: React.Dispatch<React.SetStateAction<Chat | undefined>>\n  sidebarShowing: SidebarAbleToShow\n  setSidebarShowing: (option: SidebarAbleToShow) => void\n  activePanel: 'chat' | 'similarFiles' | null\n  setActivePanel: React.Dispatch<React.SetStateAction<'chat' | 'similarFiles' | null>>\n  allChatsMetadata: ChatMetadata[]\n  deleteChat: (chatID: string | undefined) => Promise<void>\n  saveChat: (updatedChat: Chat) => Promise<void>\n  openNewChat: (chatID?: string) => Promise<void>\n}\n\nconst ChatContext = createContext<ChatContextType | undefined>(undefined)\n\nexport const ChatProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n  const [currentChat, setCurrentChat] = useState<Chat | undefined>(undefined)\n  const [sidebarShowing, setSidebarShowing] = useState<SidebarAbleToShow>('files')\n  const [activePanel, setActivePanel] = useState<'chat' | 'similarFiles' | null>(null)\n  const [allChatsMetadata, setAllChatsMetadata] = useState<ChatMetadata[]>([])\n\n  useEffect(() => {\n    const fetchChatHistories = async () => {\n      const allChatsMetadataResponse = await window.electronStore.getAllChatsMetadata()\n      setAllChatsMetadata(allChatsMetadataResponse)\n    }\n    fetchChatHistories()\n  }, [])\n\n  const saveChat = useCallback(async (updatedChat: Chat) => {\n    await window.electronStore.saveChat(updatedChat)\n\n    const retrievedChatsMetadata = await window.electronStore.getAllChatsMetadata()\n    setAllChatsMetadata(retrievedChatsMetadata)\n  }, [])\n\n  const deleteChat = useCallback(async (chatID: string | undefined) => {\n    if (!chatID) return\n    await window.electronStore.deleteChat(chatID)\n    const retrievedChatsMetadata = await window.electronStore.getAllChatsMetadata()\n    setAllChatsMetadata(retrievedChatsMetadata)\n    setCurrentChat(undefined)\n  }, [])\n\n  const openNewChat = useCallback(\n    async (chatID?: string) => {\n      const chat = await window.electronStore.getChat(chatID)\n      setCurrentChat((oldChat) => {\n        if (oldChat && oldChat.id !== chatID) {\n          saveChat(oldChat)\n        }\n        return chat\n      })\n      setActivePanel((prev) => (prev === 'chat' ? null : 'chat'))\n    },\n    [saveChat],\n  )\n\n  const value = React.useMemo(\n    () => ({\n      currentChat,\n      setCurrentChat,\n      allChatsMetadata,\n      sidebarShowing,\n      setSidebarShowing,\n      activePanel,\n      setActivePanel,\n      deleteChat,\n      saveChat,\n      openNewChat,\n    }),\n    [\n      currentChat,\n      setCurrentChat,\n      allChatsMetadata,\n      sidebarShowing,\n      setSidebarShowing,\n      activePanel,\n      setActivePanel,\n      deleteChat,\n      saveChat,\n      openNewChat,\n    ],\n  )\n\n  return <ChatContext.Provider value={value}>{children}</ChatContext.Provider>\n}\n\nexport const useChatContext = () => {\n  const context = useContext(ChatContext)\n  if (context === undefined) {\n    throw new Error('useChatContext must be used within a ChatProvider')\n  }\n  return context\n}\n"
  },
  {
    "path": "src/contexts/ContentContext.tsx",
    "content": "import React, { createContext, useContext, useMemo, ReactNode, useState, useCallback } from 'react'\n\nimport posthog from 'posthog-js'\nimport { useChatContext } from './ChatContext'\nimport { useFileContext } from './FileContext'\nimport { getFilesInDirectory, getNextAvailableFileNameGivenBaseName } from '@/lib/file'\n\ninterface ContentContextType {\n  showEditor: boolean\n  setShowEditor: (showEditor: boolean) => void\n  openContent: (pathOrChatID: string, optionalContentToWriteOnCreate?: string, dontUpdateChatHistory?: boolean) => void\n  currentOpenFileOrChatID: string | null\n  createUntitledNote: (parentFileOrDirectory?: string) => void\n}\n\nconst ContentContext = createContext<ContentContextType | undefined>(undefined)\n\nexport const useContentContext = (): ContentContextType => {\n  const context = useContext(ContentContext)\n  if (context === undefined) {\n    throw new Error('useContentContext must be used within a ContentProvider')\n  }\n  return context\n}\n\ninterface ContentProviderProps {\n  children: ReactNode\n}\n\nexport const ContentProvider: React.FC<ContentProviderProps> = ({ children }) => {\n  const [showEditor, setShowEditor] = useState(false)\n  const [currentOpenFileOrChatID, setCurrentOpenFileOrChatID] = useState<string | null>(null)\n\n  const { allChatsMetadata, openNewChat } = useChatContext()\n  const {\n    vaultFilesFlattened: flattenedFiles,\n    openOrCreateFile,\n    addToNavigationHistory,\n    selectedDirectory,\n  } = useFileContext()\n\n  const openContent = React.useCallback(\n    async (pathOrChatID: string, optionalContentToWriteOnCreate?: string, dontUpdateChatHistory?: boolean) => {\n      if (!pathOrChatID) return\n      const chatMetadata = allChatsMetadata.find((chat) => chat.id === pathOrChatID)\n      if (chatMetadata) {\n        openNewChat(pathOrChatID)\n      } else {\n        setShowEditor(true)\n        openOrCreateFile(pathOrChatID, optionalContentToWriteOnCreate)\n      }\n      setCurrentOpenFileOrChatID(pathOrChatID)\n      if (!dontUpdateChatHistory) {\n        addToNavigationHistory(pathOrChatID)\n      }\n    },\n    [allChatsMetadata, openNewChat, openOrCreateFile, addToNavigationHistory],\n  )\n\n  const createUntitledNote = useCallback(\n    async (parentDirectory?: string) => {\n      const directoryToMakeFileIn =\n        parentDirectory || selectedDirectory || (await window.electronStore.getVaultDirectoryForWindow())\n\n      const filesInDirectory = await getFilesInDirectory(directoryToMakeFileIn, flattenedFiles)\n      const fileName = getNextAvailableFileNameGivenBaseName(\n        filesInDirectory.map((file) => file.name),\n        'Untitled',\n      )\n      const finalPath = await window.path.join(directoryToMakeFileIn, fileName)\n      openContent(finalPath, `## `)\n      posthog.capture('created_new_note_from_new_note_modal')\n    },\n    [selectedDirectory, flattenedFiles, openContent],\n  )\n\n  const ContentContextMemo = useMemo(\n    () => ({\n      showEditor,\n      setShowEditor,\n      openContent,\n      currentOpenFileOrChatID,\n      createUntitledNote,\n    }),\n    [showEditor, openContent, currentOpenFileOrChatID, createUntitledNote],\n  )\n\n  return <ContentContext.Provider value={ContentContextMemo}>{children}</ContentContext.Provider>\n}\n"
  },
  {
    "path": "src/contexts/FileContext.tsx",
    "content": "/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable @typescript-eslint/no-use-before-define */\nimport React, { createContext, useContext, ReactNode, useEffect, useState } from 'react'\nimport { toast } from 'react-toastify'\nimport { useDebounce } from 'use-debounce'\nimport { FileInfo, FileInfoTree } from 'electron/main/filesystem/types'\nimport {\n  findRelevantDirectoriesToBeExpanded,\n  flattenFileInfoTree,\n  generateFileNameFromFileContent,\n  getFilesInDirectory,\n  getInvalidCharacterInFilePath,\n  getNextAvailableFileNameGivenBaseName,\n  sortFilesAndDirectories,\n} from '@/lib/file'\nimport { SuggestionsState } from '@/components/Editor/BacklinkSuggestionsDisplay'\nimport { HighlightData } from '@/components/Editor/HighlightExtension'\nimport '@/styles/tiptap.scss'\nimport useOrderedSet from '../lib/hooks/use-ordered-set'\nimport welcomeNote from '@/lib/welcome-note'\nimport { useBlockNote, BlockNoteEditor } from '@/lib/blocknote'\nimport { hmBlockSchema } from '@/components/Editor/schema'\nimport { setGroupTypes } from '@/lib/utils'\nimport slashMenuItems from '../components/Editor/slash-menu-items'\n\ntype FileContextType = {\n  vaultFilesTree: FileInfoTree\n  vaultFilesFlattened: FileInfo[]\n  expandedDirectories: Map<string, boolean>\n  handleDirectoryToggle: (path: string) => void\n  currentlyOpenFilePath: string | null\n  setCurrentlyOpenFilePath: React.Dispatch<React.SetStateAction<string | null>>\n  saveCurrentlyOpenedFile: () => Promise<void>\n  editor: BlockNoteEditor | null\n  navigationHistory: string[]\n  addToNavigationHistory: (value: string) => void\n  openOrCreateFile: (filePath: string, optionalContentToWriteOnCreate?: string) => Promise<void>\n  suggestionsState: SuggestionsState | null | undefined\n  spellCheckEnabled: boolean\n  highlightData: HighlightData\n  noteToBeRenamed: string\n  setNoteToBeRenamed: React.Dispatch<React.SetStateAction<string>>\n  fileDirToBeRenamed: string\n  setFileDirToBeRenamed: React.Dispatch<React.SetStateAction<string>>\n  renameFile: (oldFilePath: string, newFilePath: string) => Promise<void>\n  setSuggestionsState: React.Dispatch<React.SetStateAction<SuggestionsState | null | undefined>>\n  setSpellCheckEnabled: React.Dispatch<React.SetStateAction<boolean>>\n  deleteFile: (path: string | undefined) => Promise<boolean>\n  selectedDirectory: string | null\n  setSelectedDirectory: React.Dispatch<React.SetStateAction<string | null>>\n}\n\nexport const FileContext = createContext<FileContextType | undefined>(undefined)\n\nexport const useFileContext = () => {\n  const context = useContext(FileContext)\n  if (context === undefined) {\n    throw new Error('useFileContext must be used within a FileProvider')\n  }\n  return context\n}\n\nexport const FileProvider: React.FC<{ children: ReactNode }> = ({ children }) => {\n  const [vaultFilesTree, setVaultFilesTree] = useState<FileInfoTree>([])\n  const [vaultFilesFlattened, setVaultFilesFlattened] = useState<FileInfo[]>([])\n  const [expandedDirectories, setExpandedDirectories] = useState<Map<string, boolean>>(new Map())\n  const [selectedDirectory, setSelectedDirectory] = useState<string | null>(null)\n  const [currentlyOpenFilePath, setCurrentlyOpenFilePath] = useState<string | null>(null)\n  const [suggestionsState, setSuggestionsState] = useState<SuggestionsState | null>()\n  const [needToWriteEditorContentToDisk, setNeedToWriteEditorContentToDisk] = useState<boolean>(false)\n  const [needToIndexEditorContent, setNeedToIndexEditorContent] = useState<boolean>(false)\n  const [spellCheckEnabled, setSpellCheckEnabled] = useState<boolean>(false)\n  const [noteToBeRenamed, setNoteToBeRenamed] = useState<string>('')\n  const [fileDirToBeRenamed, setFileDirToBeRenamed] = useState<string>('')\n  const [currentlyChangingFilePath, setCurrentlyChangingFilePath] = useState(false)\n  // TODO: Add highlighting data on search\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  const [highlightData, setHighlightData] = useState<HighlightData>({\n    text: '',\n    position: null,\n  })\n\n  const {\n    add: addToNavigationHistory,\n    remove: removeFromNavigationHistory,\n    values: navigationHistory,\n  } = useOrderedSet()\n\n  useEffect(() => {\n    const fetchSpellCheckMode = async () => {\n      const storedSpellCheckEnabled = await window.electronStore.getSpellCheckMode()\n      setSpellCheckEnabled(storedSpellCheckEnabled)\n    }\n    fetchSpellCheckMode()\n  }, [spellCheckEnabled])\n\n  const createFileIfNotExists = async (filePath: string, optionalContent?: string): Promise<string> => {\n    const invalidChars = await getInvalidCharacterInFilePath(filePath)\n    if (invalidChars) {\n      const errorMessage = `Could not create note ${filePath}. Character ${invalidChars} cannot be included in note name.`\n      toast.error(errorMessage)\n      throw new Error(errorMessage)\n    }\n    const filePathWithExtension = await window.path.addExtensionIfNoExtensionPresent(filePath)\n    const isAbsolutePath = await window.path.isAbsolute(filePathWithExtension)\n    const absolutePath = isAbsolutePath\n      ? filePathWithExtension\n      : await window.path.join(await window.electronStore.getVaultDirectoryForWindow(), filePathWithExtension)\n\n    const fileExists = await window.fileSystem.checkFileExists(absolutePath)\n    if (!fileExists) {\n      await window.fileSystem.createFile(absolutePath, optionalContent || ``)\n      setNeedToIndexEditorContent(true)\n    }\n\n    return absolutePath\n  }\n\n  const loadFileIntoEditor = async (filePath: string) => {\n    setCurrentlyChangingFilePath(true)\n    await writeEditorContentToDisk(editor, currentlyOpenFilePath)\n    if (currentlyOpenFilePath && needToIndexEditorContent) {\n      window.database.indexFileInDatabase(currentlyOpenFilePath)\n      setNeedToIndexEditorContent(false)\n    }\n    const fileContent = (await window.fileSystem.readFile(filePath, 'utf-8')) ?? ''\n    // editor?.commands.setContent(fileContent)\n    const blocks = await editor.markdownToBlocks(fileContent)\n    // @ts-expect-error\n    editor.replaceBlocks(editor.topLevelBlocks, blocks)\n    setGroupTypes(editor?._tiptapEditor, blocks)\n\n    setCurrentlyOpenFilePath(filePath)\n    setCurrentlyChangingFilePath(false)\n    const parentDirectory = await window.path.dirname(filePath)\n    setSelectedDirectory(parentDirectory)\n  }\n\n  const openOrCreateFile = async (filePath: string, optionalContentToWriteOnCreate?: string): Promise<void> => {\n    const absolutePath = await createFileIfNotExists(filePath, optionalContentToWriteOnCreate)\n    await loadFileIntoEditor(absolutePath)\n  }\n\n  const editor = useBlockNote<typeof hmBlockSchema>({\n    onEditorContentChange() {\n      setNeedToWriteEditorContentToDisk(true)\n      setNeedToIndexEditorContent(true)\n    },\n    blockSchema: hmBlockSchema,\n    slashMenuItems,\n  })\n\n  const [debouncedEditor] = useDebounce(editor?.topLevelBlocks, 3000)\n\n  useEffect(() => {\n    if (debouncedEditor && !currentlyChangingFilePath) {\n      writeEditorContentToDisk(editor, currentlyOpenFilePath)\n      if (editor && currentlyOpenFilePath) {\n        handleNewFileRenaming(editor, currentlyOpenFilePath)\n      }\n    }\n  }, [debouncedEditor, currentlyOpenFilePath, editor, currentlyChangingFilePath])\n\n  const saveCurrentlyOpenedFile = async () => {\n    await writeEditorContentToDisk(editor, currentlyOpenFilePath)\n  }\n\n  const writeEditorContentToDisk = async (_editor: BlockNoteEditor | null, filePath: string | null) => {\n    if (filePath !== null && needToWriteEditorContentToDisk && _editor) {\n      const blocks = editor.topLevelBlocks\n      const markdownContent = await editor.blocksToMarkdown(blocks)\n      if (markdownContent !== null) {\n        await window.fileSystem.writeFile({\n          filePath,\n          content: markdownContent,\n        })\n        setNeedToWriteEditorContentToDisk(false)\n      }\n    }\n  }\n\n  const handleNewFileRenaming = async (_editor: BlockNoteEditor, filePath: string) => {\n    const fileInfo = vaultFilesFlattened.find((f) => f.path === filePath)\n    if (\n      fileInfo &&\n      fileInfo.name.startsWith('Untitled') &&\n      new Date().getTime() - fileInfo.dateCreated.getTime() < 60000\n    ) {\n      // const editorText = _editor.getText()\n      const editorText = await _editor.blocksToMarkdown(_editor.topLevelBlocks)\n      if (editorText) {\n        const newProposedFileName = generateFileNameFromFileContent(editorText)\n        if (newProposedFileName) {\n          const directoryToMakeFileIn = await window.path.dirname(filePath)\n          const filesInDirectory = await getFilesInDirectory(directoryToMakeFileIn, vaultFilesFlattened)\n          const fileName = getNextAvailableFileNameGivenBaseName(\n            filesInDirectory.map((file) => file.name),\n            newProposedFileName,\n          )\n          const newFilePath = await window.path.join(directoryToMakeFileIn, fileName)\n          await renameFile(filePath, newFilePath)\n          // setCurrentlyOpenFilePath(newFilePath)\n        }\n      }\n    }\n  }\n\n  useEffect(() => {\n    async function checkAppUsage() {\n      if (!editor || currentlyOpenFilePath) return\n      const hasOpened = await window.electronStore.getHasUserOpenedAppBefore()\n\n      if (!hasOpened) {\n        await window.electronStore.setHasUserOpenedAppBefore()\n        openOrCreateFile('Welcome to Reor', welcomeNote)\n      }\n    }\n\n    checkAppUsage()\n  }, [editor, currentlyOpenFilePath])\n\n  const renameFile = async (oldFilePath: string, newFilePath: string) => {\n    await window.fileSystem.renameFile({\n      oldFilePath,\n      newFilePath,\n    })\n    removeFromNavigationHistory(oldFilePath)\n    addToNavigationHistory(newFilePath)\n\n    if (currentlyOpenFilePath === oldFilePath) {\n      setCurrentlyOpenFilePath(newFilePath)\n    }\n  }\n\n  useEffect(() => {\n    const handleWindowClose = async () => {\n      if (currentlyOpenFilePath !== null && editor && editor.topLevelBlocks !== null) {\n        const blocks = editor.topLevelBlocks\n        const markdownContent = await editor.blocksToMarkdown(blocks)\n        await window.fileSystem.writeFile({\n          filePath: currentlyOpenFilePath,\n          content: markdownContent,\n        })\n        await window.database.indexFileInDatabase(currentlyOpenFilePath)\n      }\n    }\n\n    const removeWindowCloseListener = window.ipcRenderer.receive('prepare-for-window-close', handleWindowClose)\n\n    return () => {\n      removeWindowCloseListener()\n    }\n  }, [currentlyOpenFilePath, editor])\n\n  const deleteFile = async (path: string | undefined) => {\n    if (!path) return false\n    await window.fileSystem.deleteFile(path)\n    if (currentlyOpenFilePath === path) {\n      editor?.replaceBlocks(editor.topLevelBlocks, [])\n      setCurrentlyOpenFilePath(null)\n    }\n    return true\n  }\n\n  const handleDirectoryToggle = (path: string) => {\n    const isExpanded = expandedDirectories.get(path)\n    const newExpandedDirectories = new Map(expandedDirectories)\n    newExpandedDirectories.set(path, !isExpanded)\n    setExpandedDirectories(newExpandedDirectories)\n  }\n\n  useEffect(() => {\n    const handleFilesListUpdateFromMainProcess = async (updatedFiles: FileInfoTree) => {\n      const sortedFiles = sortFilesAndDirectories(updatedFiles, null)\n      setVaultFilesTree(sortedFiles)\n      const updatedFlattenedFiles = flattenFileInfoTree(sortedFiles)\n      setVaultFilesFlattened(updatedFlattenedFiles)\n      const directoriesToBeExpanded = await findRelevantDirectoriesToBeExpanded(\n        currentlyOpenFilePath,\n        expandedDirectories,\n      )\n      setExpandedDirectories(directoriesToBeExpanded)\n    }\n\n    const removeFilesListListener = window.ipcRenderer.receive('files-list', handleFilesListUpdateFromMainProcess)\n\n    return () => {\n      removeFilesListListener()\n    }\n  }, [currentlyOpenFilePath, expandedDirectories])\n\n  useEffect(() => {\n    const fetchAndSetFiles = async () => {\n      const fetchedFiles = await window.fileSystem.getFilesTreeForWindow()\n      const sortedFiles = sortFilesAndDirectories(fetchedFiles, null)\n      setVaultFilesTree(sortedFiles)\n      const updatedFlattenedFiles = flattenFileInfoTree(sortedFiles)\n      setVaultFilesFlattened(updatedFlattenedFiles)\n    }\n\n    fetchAndSetFiles()\n  }, [])\n\n  const contextValues = {\n    vaultFilesTree,\n    vaultFilesFlattened,\n    expandedDirectories,\n    handleDirectoryToggle,\n    currentlyOpenFilePath,\n    setCurrentlyOpenFilePath,\n    saveCurrentlyOpenedFile,\n    editor,\n    navigationHistory,\n    addToNavigationHistory,\n    openOrCreateFile,\n    suggestionsState,\n    spellCheckEnabled,\n    highlightData,\n    noteToBeRenamed,\n    setNoteToBeRenamed,\n    fileDirToBeRenamed,\n    setFileDirToBeRenamed,\n    renameFile,\n    setSuggestionsState,\n    setSpellCheckEnabled,\n    deleteFile,\n    selectedDirectory,\n    setSelectedDirectory,\n  }\n\n  const contextValuesMemo: FileContextType = React.useMemo(\n    () => ({\n      ...contextValues,\n    }),\n    [contextValues],\n  )\n\n  return <FileContext.Provider value={contextValuesMemo}>{children}</FileContext.Provider>\n}\n"
  },
  {
    "path": "src/contexts/ModalContext.tsx",
    "content": "import React, { createContext, useContext, useState, ReactNode, useMemo } from 'react'\n\ninterface ModalProviderProps {\n  children: ReactNode\n}\n\ninterface ModalOpenContextType {\n  isNewDirectoryModalOpen: boolean\n  setIsNewDirectoryModalOpen: (newDirectoryOpen: boolean) => void\n  isSettingsModalOpen: boolean\n  setIsSettingsModalOpen: (settingsOpen: boolean) => void\n}\n\nconst ModalContext = createContext<ModalOpenContextType | undefined>(undefined)\n\nexport const useModalOpeners = (): ModalOpenContextType => {\n  const context = useContext(ModalContext)\n  if (context === undefined) {\n    throw new Error('useModalOpeners must be used within a ModalProvider')\n  }\n  return context\n}\n\nexport const ModalProvider: React.FC<ModalProviderProps> = ({ children }) => {\n  const [isNewDirectoryModalOpen, setIsNewDirectoryModalOpen] = useState(false)\n  const [isSettingsModalOpen, setIsSettingsModalOpen] = useState(false)\n\n  const modalOpenContextValue = useMemo(\n    () => ({\n      isNewDirectoryModalOpen,\n      setIsNewDirectoryModalOpen,\n      isSettingsModalOpen,\n      setIsSettingsModalOpen,\n    }),\n    [isNewDirectoryModalOpen, isSettingsModalOpen],\n  )\n\n  return <ModalContext.Provider value={modalOpenContextValue}>{children}</ModalContext.Provider>\n}\n\nexport default ModalProvider\n"
  },
  {
    "path": "src/contexts/ThemeContext.tsx",
    "content": "import React, { createContext, useContext, useEffect, useState, PropsWithChildren, FC } from 'react'\nimport type { TamaguiThemeTypes } from 'electron/main/electron-store/storeConfig'\nimport { TamaguiProvider, useTheme } from 'tamagui'\nimport config from '../../tamagui.config'\n\ninterface ThemeActions {\n  toggle: () => void\n  set: (theme: TamaguiThemeTypes) => void\n  syncWithSystem: () => void\n}\n\nexport interface ThemeContextValue {\n  state: TamaguiThemeTypes\n  actions: ThemeActions\n}\n\n// Basic colors for manual Mantine Component\nconst styles = {\n  '#f9f9f9': {\n    mainColor: 'rgba(255, 255, 255, 1)',\n    offsetMainColor: 'rgba(255, 255, 255, 0.6)',\n    textColor: 'rgba(0, 0, 0, 1)',\n    systemGray1: 'rgb(142, 142, 147)',\n    systemGray2: 'rgb(174, 174, 178)',\n    systemGray3: 'rgb(199, 199, 204)',\n    systemGray4: 'rgb(209, 209, 214)',\n    systemGray5: 'rgb(229, 229, 234)',\n    systemGray6: 'rgb(242, 242, 247)',\n    systemBlue: 'rgb(0, 122, 255)',\n    systemBlueHover: 'rgba(10, 132, 255, 1)',\n  },\n  '#151515': {\n    mainColor: 'rgba(0, 0, 0, 1)',\n    offsetMainColor: 'rgba(0, 0, 0, 0.6)',\n    textColor: 'rgba(255, 255, 255, 1)',\n    systemGray1: 'rgb(142, 142, 147)',\n    systemGray2: 'rgb(99, 99, 102)',\n    systemGray3: 'rgb(72, 72, 74)',\n    systemGray4: 'rgb(58, 58, 60)',\n    systemGray5: 'rgb(44, 44, 46)',\n    systemGray6: 'rgb(28, 28, 30)',\n    systemBlue: 'rgb(10, 132, 255)',\n    systemBlueHover: 'rgba(0, 122, 255, 1)',\n  },\n}\n\n/**\n * Some mantine components look / act better then tamagui. This converts\n * tamagui styles to mantine styles.\n */\nexport const MantineStyleProps = () => {\n  const theme = useTheme()\n\n  const colors = styles[theme.background.val as keyof typeof styles]\n\n  return {\n    input: {\n      backgroundColor: colors.mainColor,\n      color: colors.textColor,\n      '&:hover': {\n        backgroundColor: colors.offsetMainColor,\n      },\n    },\n    dropdown: {\n      backgroundColor: colors.mainColor,\n    },\n    item: {\n      color: colors.textColor,\n      '&:hover': {\n        backgroundColor: colors.systemBlueHover,\n      },\n    },\n  }\n}\n\nconst ThemeContext = createContext<ThemeContextValue | null>(null)\n\nexport class ThemeManager {\n  private state: TamaguiThemeTypes\n\n  private setState: (theme: TamaguiThemeTypes) => void\n\n  constructor(initialTheme: TamaguiThemeTypes, setState: (theme: TamaguiThemeTypes) => void) {\n    this.state = initialTheme\n    this.setState = setState\n  }\n\n  private async updateTheme(newTheme: TamaguiThemeTypes) {\n    this.state = newTheme\n    this.setState(newTheme)\n    await window.electronStore.setTamaguiTheme(newTheme)\n  }\n\n  getContextValue(): ThemeContextValue {\n    return {\n      state: this.state,\n      actions: {\n        toggle: () => {\n          const newTheme = this.state === 'light' ? 'dark' : 'light'\n          this.updateTheme(newTheme)\n        },\n        set: (theme: TamaguiThemeTypes) => {\n          this.updateTheme(theme)\n        },\n        syncWithSystem: () => {\n          const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches\n          this.updateTheme(prefersDark ? 'dark' : 'light')\n        },\n      },\n    }\n  }\n}\n\n/**\n * Stores, gets, and updates the theme\n */\nexport const ThemeProvider: FC<PropsWithChildren> = ({ children }) => {\n  const [theme, setTheme] = useState<TamaguiThemeTypes>('light')\n  const [manager, setManager] = useState<ThemeManager | null>(null)\n\n  useEffect(() => {\n    const initTheme = async () => {\n      const savedTheme = await window.electronStore.getTamaguiTheme()\n      setTheme(savedTheme || 'light')\n      setManager(new ThemeManager(savedTheme || 'light', setTheme))\n    }\n\n    initTheme()\n  }, [])\n\n  if (!manager) return null // Prevent rendering before the theme is set\n  return (\n    <ThemeContext.Provider value={manager.getContextValue()}>\n      <TamaguiProvider config={config} defaultTheme={theme}>\n        {children}\n      </TamaguiProvider>\n    </ThemeContext.Provider>\n  )\n}\n\n// Custom hook for components to use\nexport const useThemeManager = () => {\n  const context = useContext(ThemeContext)\n  if (!context) throw new Error('useThemeManager must be used within ThemeProvider')\n  return context\n}\n"
  },
  {
    "path": "src/lib/animations.tsx",
    "content": "import React from 'react'\n\nconst LoadingDots = () => {\n  return (\n    <div className=\"flex space-x-1 text-lg text-white\">\n      <span className=\"animate-bounce\">.</span>\n      <span className=\"animate-bounce delay-200\">.</span>\n      <span className=\"animate-bounce\">.</span>\n    </div>\n  )\n}\n\nexport default LoadingDots\n"
  },
  {
    "path": "src/lib/blocknote/core/BlockNoteEditor.ts",
    "content": "/* eslint-disable import/no-cycle */\n/* eslint no-param-reassign: [\"error\", { \"props\": false }] */\nimport { Editor as TiptapEditor, EditorOptions, Extension } from '@tiptap/core'\nimport { Node } from 'prosemirror-model'\nimport * as Y from 'yjs'\nimport getBlockNoteExtensions from './BlockNoteExtensions'\nimport { insertBlocks, removeBlocks, replaceBlocks, updateBlock } from './api/blockManipulation/blockManipulation'\nimport {\n  HTMLToBlocks,\n  blocksToHTML,\n  blocksToMarkdown,\n  markdownToBlocks,\n} from './api/formatConversions/formatConversions'\nimport { blockToNode, nodeToBlock } from './api/nodeConversions/nodeConversions'\nimport getNodeById from './api/util/nodeUtil'\nimport styles from './editor.module.css'\nimport {\n  Block,\n  BlockIdentifier,\n  BlockNoteDOMAttributes,\n  BlockSchema,\n  PartialBlock,\n} from './extensions/Blocks/api/blockTypes'\nimport { TextCursorPosition } from './extensions/Blocks/api/cursorPositionTypes'\nimport { ColorStyle, Styles, ToggledStyle } from './extensions/Blocks/api/inlineContentTypes'\nimport { Selection } from './extensions/Blocks/api/selectionTypes'\nimport { getBlockInfoFromPos } from './extensions/Blocks/helpers/getBlockInfoFromPos'\n\nimport { FormattingToolbarProsemirrorPlugin } from './extensions/FormattingToolbar/FormattingToolbarPlugin'\nimport { HyperlinkToolbarProsemirrorPlugin } from './extensions/HyperlinkToolbar/HyperlinkToolbarPlugin'\nimport { SideMenuProsemirrorPlugin } from './extensions/SideMenu/SideMenuPlugin'\nimport { BaseSlashMenuItem } from './extensions/SlashMenu/BaseSlashMenuItem'\nimport { SlashMenuProsemirrorPlugin } from './extensions/SlashMenu/SlashMenuPlugin'\nimport { getDefaultSlashMenuItems } from './extensions/SlashMenu/defaultSlashMenuItems'\nimport UniqueID from './extensions/UniqueID/UniqueID'\nimport { mergeCSSClasses } from './shared/utils'\nimport { HMBlockSchema, hmBlockSchema } from '@/components/Editor/schema'\nimport '@/components/Editor/editor.css'\n\nexport type BlockNoteEditorOptions<BSchema extends BlockSchema> = {\n  // TODO: Figure out if enableBlockNoteExtensions/disableHistoryExtension are needed and document them.\n  enableBlockNoteExtensions: boolean\n  /**\n   *\n   * (couldn't fix any type, see https://github.com/TypeCellOS/BlockNote/pull/191#discussion_r1210708771)\n   *\n   * @default defaultSlashMenuItems from `./extensions/SlashMenu`\n   */\n  slashMenuItems: BaseSlashMenuItem<any>[]\n\n  /**\n   * The HTML element that should be used as the parent element for the editor.\n   *\n   * @default: undefined, the editor is not attached to the DOM\n   */\n  parentElement: HTMLElement\n  /**\n   * An object containing attributes that should be added to HTML elements of the editor.\n   *\n   * @example { editor: { class: \"my-editor-class\" } }\n   */\n  domAttributes: Partial<BlockNoteDOMAttributes>\n  /**\n   *  A callback function that runs when the editor is ready to be used.\n   */\n  onEditorReady: (editor: BlockNoteEditor<BSchema>) => void\n  /**\n   * A callback function that runs whenever the editor's contents change.\n   */\n  onEditorContentChange: (editor: BlockNoteEditor<BSchema>) => void\n  /**\n   * A callback function that runs whenever the text cursor position changes.\n   */\n  onTextCursorPositionChange: (editor: BlockNoteEditor<BSchema>) => void\n  /**\n   * Locks the editor from being editable by the user if set to `false`.\n   */\n  editable: boolean\n  /**\n   * The content that should be in the editor when it's created, represented as an array of partial block objects.\n   */\n  initialContent: PartialBlock<BSchema>[]\n  /**\n   * Use default BlockNote font and reset the styles of <p> <li> <h1> elements etc., that are used in BlockNote.\n   *\n   * @default true\n   */\n  defaultStyles: boolean\n\n  /**\n   * A list of block types that should be available in the editor.\n   */\n  blockSchema: BSchema\n\n  /**\n   * When enabled, allows for collaboration between multiple users.\n   */\n  collaboration: {\n    /**\n     * The Yjs XML fragment that's used for collaboration.\n     */\n    fragment: Y.XmlFragment\n    /**\n     * The user info for the current user that's shown to other collaborators.\n     */\n    user: {\n      name: string\n      color: string\n    }\n    /**\n     * A Yjs provider (used for awareness / cursor information)\n     */\n    provider: any\n    /**\n     * Optional function to customize how cursors of users are rendered\n     */\n    renderCursor?: (user: any) => HTMLElement\n  }\n\n  // tiptap options, undocumented\n  _tiptapOptions: any\n\n  // isEditable\n  isEditable: boolean\n  linkExtensionOptions?: any\n}\n\nconst blockNoteTipTapOptions = {\n  enableInputRules: true,\n  enablePasteRules: true,\n  enableCoreExtensions: false,\n}\n\nexport class BlockNoteEditor<BSchema extends BlockSchema = HMBlockSchema> {\n  public readonly _tiptapEditor: TiptapEditor & { contentComponent: any }\n\n  public blockCache = new WeakMap<Node, Block<BSchema>>()\n\n  public readonly schema: BSchema\n\n  public ready = false\n\n  public inlineEmbedOptions = []\n\n  public readonly sideMenu: SideMenuProsemirrorPlugin<BSchema>\n\n  public readonly formattingToolbar: FormattingToolbarProsemirrorPlugin<BSchema>\n\n  public readonly slashMenu: SlashMenuProsemirrorPlugin<BSchema, any>\n\n  public readonly hyperlinkToolbar: HyperlinkToolbarProsemirrorPlugin<BSchema>\n\n  constructor(private readonly options: Partial<BlockNoteEditorOptions<BSchema>> = {}) {\n    // apply defaults\n    const newOptions: Omit<typeof options, 'defaultStyles' | 'blockSchema'> & {\n      defaultStyles: boolean\n      blockSchema: BSchema\n      linkExtensionOptions?: any\n      inlineEmbedOptions?: any\n    } = {\n      defaultStyles: true,\n      blockSchema: options.blockSchema || (hmBlockSchema as any),\n      editable: options.editable || true,\n      ...options,\n    }\n\n    this.sideMenu = new SideMenuProsemirrorPlugin(this)\n    this.formattingToolbar = new FormattingToolbarProsemirrorPlugin(this)\n    this.slashMenu = new SlashMenuProsemirrorPlugin(\n      this,\n      newOptions.slashMenuItems || getDefaultSlashMenuItems(newOptions.blockSchema),\n    )\n    this.hyperlinkToolbar = new HyperlinkToolbarProsemirrorPlugin(this)\n\n    const extensions = getBlockNoteExtensions<BSchema>({\n      editor: this,\n      domAttributes: newOptions.domAttributes || {},\n      blockSchema: newOptions.blockSchema,\n      editable: newOptions.editable,\n      linkExtensionOptions: newOptions.linkExtensionOptions,\n      inlineEmbedOptions: newOptions.inlineEmbedOptions,\n    })\n\n    const blockNoteUIExtension = Extension.create({\n      name: 'BlockNoteUIExtension',\n\n      addProseMirrorPlugins: () => {\n        return [\n          this.sideMenu.plugin,\n          this.formattingToolbar.plugin,\n          this.slashMenu.plugin,\n          this.hyperlinkToolbar.plugin,\n        ]\n      },\n    })\n    extensions.push(blockNoteUIExtension)\n\n    this.schema = newOptions.blockSchema\n\n    if (newOptions.collaboration && newOptions.initialContent) {\n      // eslint-disable-next-line no-console\n      console.warn(\n        'When using Collaboration, initialContent might cause conflicts, because changes should come from the collaboration provider',\n      )\n    }\n\n    const initialContent =\n      newOptions.initialContent ||\n      (options.collaboration\n        ? [\n            {\n              type: 'paragraph',\n              id: 'initialBlockId',\n            },\n          ]\n        : [\n            {\n              type: 'paragraph',\n              id: UniqueID.options.generateID(),\n            },\n          ])\n\n    const tiptapOptions: EditorOptions = {\n      ...blockNoteTipTapOptions,\n      ...newOptions._tiptapOptions,\n      onCreate: () => {\n        newOptions.onEditorReady?.(this)\n        this.ready = true\n      },\n      onBeforeCreate(editor) {\n        if (!initialContent) {\n          // when using collaboration\n          return\n        }\n        // we have to set the initial content here, because now we can use the editor schema\n        // which has been created at this point\n        const { schema } = editor.editor\n\n        const ic = initialContent.map((block) => blockToNode(block, schema))\n        const root = schema.node('doc', undefined, schema.node('blockGroup', undefined, ic))\n        // override the initialcontent\n        editor.editor.options.content = root.toJSON()\n      },\n      onUpdate: () => {\n        // This seems to be necessary due to a bug in TipTap:\n        // https://github.com/ueberdosis/tiptap/issues/2583\n        if (!this.ready) {\n          return\n        }\n\n        newOptions.onEditorContentChange?.(this)\n      },\n      onSelectionUpdate: () => {\n        // This seems to be necessary due to a bug in TipTap:\n        // https://github.com/ueberdosis/tiptap/issues/2583\n        if (!this.ready) {\n          return\n        }\n\n        newOptions.onTextCursorPositionChange?.(this)\n      },\n      editable: options.editable === undefined ? true : options.editable,\n      extensions:\n        newOptions.enableBlockNoteExtensions === false\n          ? newOptions._tiptapOptions?.extensions\n          : [...(newOptions._tiptapOptions?.extensions || []), ...extensions],\n      editorProps: {\n        attributes: {\n          ...newOptions.domAttributes?.editor,\n          class: mergeCSSClasses(\n            styles.bnEditor,\n            styles.bnRoot,\n            newOptions.defaultStyles ? styles.defaultStyles : '',\n            newOptions.domAttributes?.editor?.class || '',\n          ),\n        },\n      },\n    }\n\n    if (newOptions.parentElement) {\n      tiptapOptions.element = newOptions.parentElement\n    }\n\n    this._tiptapEditor = new TiptapEditor({\n      ...tiptapOptions,\n    }) as TiptapEditor & {\n      contentComponent: any\n    }\n  }\n\n  public get prosemirrorView() {\n    return this._tiptapEditor.view\n  }\n\n  public get domElement() {\n    return this._tiptapEditor.view.dom as HTMLDivElement\n  }\n\n  public isFocused() {\n    return this._tiptapEditor.view.hasFocus()\n  }\n\n  public focus() {\n    this._tiptapEditor.view.focus()\n  }\n\n  public setInlineEmbedOptions(newOpts: any) {\n    this.inlineEmbedOptions = newOpts\n  }\n\n  public get mentionOptions() {\n    return this.inlineEmbedOptions\n  }\n\n  /**\n   * Gets a snapshot of all top-level (non-nested) blocks in the editor.\n   * @returns A snapshot of all top-level (non-nested) blocks in the editor.\n   */\n  public get topLevelBlocks(): Block<BSchema>[] {\n    const blocks: Block<BSchema>[] = []\n\n    this._tiptapEditor.state.doc.firstChild!.descendants((node) => {\n      if (blocks.some((block) => block.id === node.attrs.id)) {\n        return false\n      }\n      blocks.push(nodeToBlock(node, this.schema, this.blockCache))\n\n      return false\n    })\n\n    return blocks\n  }\n\n  /**\n   * Gets a snapshot of an existing block from the editor.\n   * @param blockIdentifier The identifier of an existing block that should be retrieved.\n   * @returns The block that matches the identifier, or `undefined` if no matching block was found.\n   */\n  public getBlock(blockIdentifier: BlockIdentifier): Block<BSchema> | undefined {\n    if (!blockIdentifier) return undefined\n    const id = typeof blockIdentifier === 'string' ? blockIdentifier : blockIdentifier.id\n    let newBlock: Block<BSchema> | undefined\n\n    this._tiptapEditor.state.doc.firstChild!.descendants((node) => {\n      if (typeof newBlock !== 'undefined') {\n        return false\n      }\n\n      if (node.type.name !== 'blockContainer' || node.attrs.id !== id) {\n        return true\n      }\n\n      newBlock = nodeToBlock(node, this.schema, this.blockCache)\n\n      return false\n    })\n\n    return newBlock\n  }\n\n  /**\n   * Traverses all blocks in the editor depth-first, and executes a callback for each.\n   * @param callback The callback to execute for each block. Returning `false` stops the traversal.\n   * @param reverse Whether the blocks should be traversed in reverse order.\n   */\n  public forEachBlock(callback: (block: Block<BSchema>) => boolean, reverse = false): void {\n    const blocks = this.topLevelBlocks.slice()\n\n    if (reverse) {\n      blocks.reverse()\n    }\n\n    function traverseBlockArray(blockArray: Block<BSchema>[]): boolean {\n      for (const block of blockArray) {\n        if (!callback(block)) {\n          return false\n        }\n\n        const children = reverse ? block.children.slice().reverse() : block.children\n\n        if (!traverseBlockArray(children)) {\n          return false\n        }\n      }\n\n      return true\n    }\n\n    traverseBlockArray(blocks)\n  }\n\n  /**\n   * Executes a callback whenever the editor's contents change.\n   * @param callback The callback to execute.\n   */\n  public onEditorContentChange(callback: () => void) {\n    this._tiptapEditor.on('update', callback)\n  }\n\n  /**\n   * Executes a callback whenever the editor's selection changes.\n   * @param callback The callback to execute.\n   */\n  public onEditorSelectionChange(callback: () => void) {\n    this._tiptapEditor.on('selectionUpdate', callback)\n  }\n\n  /**\n   * Gets a snapshot of the current text cursor position.\n   * @returns A snapshot of the current text cursor position.\n   */\n  public getTextCursorPosition(): TextCursorPosition<BSchema> {\n    const { node, depth, startPos, endPos } = getBlockInfoFromPos(\n      this._tiptapEditor.state.doc,\n      this._tiptapEditor.state.selection.from,\n    )!\n\n    // Index of the current blockContainer node relative to its parent blockGroup.\n    const nodeIndex = this._tiptapEditor.state.doc.resolve(endPos).index(depth - 1)\n    // Number of the parent blockGroup's child blockContainer nodes.\n    const numNodes = this._tiptapEditor.state.doc.resolve(endPos + 1).node().childCount\n\n    // Gets previous blockContainer node at the same nesting level, if the current node isn't the first child.\n    let prevNode: Node | undefined\n    if (nodeIndex > 0) {\n      prevNode = this._tiptapEditor.state.doc.resolve(startPos - 2).node()\n    }\n\n    // Gets next blockContainer node at the same nesting level, if the current node isn't the last child.\n    let nextNode: Node | undefined\n    if (nodeIndex < numNodes - 1) {\n      nextNode = this._tiptapEditor.state.doc.resolve(endPos + 2).node()\n    }\n\n    return {\n      block: nodeToBlock(node, this.schema, this.blockCache),\n      prevBlock: prevNode === undefined ? undefined : nodeToBlock(prevNode, this.schema, this.blockCache),\n      nextBlock: nextNode === undefined ? undefined : nodeToBlock(nextNode, this.schema, this.blockCache),\n    }\n  }\n\n  /**\n   * Sets the text cursor position to the start or end of an existing block. Throws an error if the target block could\n   * not be found.\n   * @param targetBlock The identifier of an existing block that the text cursor should be moved to.\n   * @param placement Whether the text cursor should be placed at the start or end of the block.\n   */\n  public setTextCursorPosition(targetBlock: BlockIdentifier, placement: 'start' | 'end' = 'start') {\n    const id = typeof targetBlock === 'string' ? targetBlock : targetBlock.id\n\n    const { posBeforeNode } = getNodeById(id, this._tiptapEditor.state.doc)\n    const { startPos, contentNode } = getBlockInfoFromPos(this._tiptapEditor.state.doc, posBeforeNode + 2)!\n\n    if (placement === 'start') {\n      this._tiptapEditor.commands.setTextSelection(startPos + 1)\n    } else {\n      this._tiptapEditor.commands.setTextSelection(startPos + contentNode.nodeSize - 1)\n    }\n  }\n\n  /**\n   * Gets a snapshot of the current selection.\n   */\n  public getSelection(): Selection<BSchema> | undefined {\n    if (this._tiptapEditor.state.selection.from === this._tiptapEditor.state.selection.to) {\n      return undefined\n    }\n\n    const blocks: Block<BSchema>[] = []\n\n    this._tiptapEditor.state.doc.descendants((node, pos) => {\n      if (node.type.spec.group !== 'blockContent') {\n        return true\n      }\n\n      if (\n        pos + node.nodeSize < this._tiptapEditor.state.selection.from ||\n        pos > this._tiptapEditor.state.selection.to\n      ) {\n        return true\n      }\n\n      blocks.push(nodeToBlock(this._tiptapEditor.state.doc.resolve(pos).node(), this.schema, this.blockCache))\n\n      return false\n    })\n\n    return { blocks: blocks }\n  }\n\n  /**\n   * Checks if the editor is currently editable, or if it's locked.\n   * @returns True if the editor is editable, false otherwise.\n   */\n  public get isEditable(): boolean {\n    return this._tiptapEditor.isEditable\n  }\n\n  /**\n   * Makes the editor editable or locks it, depending on the argument passed.\n   * @param editable True to make the editor editable, or false to lock it.\n   */\n  public set isEditable(editable: boolean) {\n    this._tiptapEditor.setEditable(editable)\n  }\n\n  /**\n   * Inserts new blocks into the editor. If a block's `id` is undefined, BlockNote generates one automatically. Throws an\n   * error if the reference block could not be found.\n   * @param blocksToInsert An array of partial blocks that should be inserted.\n   * @param referenceBlock An identifier for an existing block, at which the new blocks should be inserted.\n   * @param placement Whether the blocks should be inserted just before, just after, or nested inside the\n   * `referenceBlock`. Inserts the blocks at the start of the existing block's children if \"nested\" is used.\n   */\n  public insertBlocks(\n    blocksToInsert: PartialBlock<BSchema>[],\n    referenceBlock: BlockIdentifier,\n    placement: 'before' | 'after' | 'nested' = 'before',\n  ): void {\n    insertBlocks(blocksToInsert, referenceBlock, this._tiptapEditor, placement)\n  }\n\n  /**\n   * Updates an existing block in the editor. Since updatedBlock is a PartialBlock object, some fields might not be\n   * defined. These undefined fields are kept as-is from the existing block. Throws an error if the block to update could\n   * not be found.\n   * @param blockToUpdate The block that should be updated.\n   * @param update A partial block which defines how the existing block should be changed.\n   */\n  public updateBlock(blockToUpdate: BlockIdentifier, update: PartialBlock<BSchema>) {\n    updateBlock(blockToUpdate, update, this._tiptapEditor)\n  }\n\n  /**\n   * Removes existing blocks from the editor. Throws an error if any of the blocks could not be found.\n   * @param blocksToRemove An array of identifiers for existing blocks that should be removed.\n   */\n  public removeBlocks(blocksToRemove: BlockIdentifier[]) {\n    removeBlocks(blocksToRemove, this._tiptapEditor)\n  }\n\n  /**\n   * Replaces existing blocks in the editor with new blocks. If the blocks that should be removed are not adjacent or\n   * are at different nesting levels, `blocksToInsert` will be inserted at the position of the first block in\n   * `blocksToRemove`. Throws an error if any of the blocks to remove could not be found.\n   * @param blocksToRemove An array of blocks that should be replaced.\n   * @param blocksToInsert An array of partial blocks to replace the old ones with.\n   */\n  public replaceBlocks(blocksToRemove: BlockIdentifier[], blocksToInsert: PartialBlock<BSchema>[]) {\n    replaceBlocks(blocksToRemove, blocksToInsert, this._tiptapEditor)\n  }\n\n  /**\n   * Gets the active text styles at the text cursor position or at the end of the current selection if it's active.\n   */\n  public getActiveStyles() {\n    const tempStyles: Styles = {}\n    const marks = this._tiptapEditor.state.selection.$to.marks()\n\n    const toggleStyles = new Set<ToggledStyle>(['bold', 'italic', 'underline', 'strike', 'code'])\n    const colorStyles = new Set<ColorStyle>(['textColor', 'backgroundColor'])\n\n    for (const mark of marks) {\n      if (toggleStyles.has(mark.type.name as ToggledStyle)) {\n        tempStyles[mark.type.name as ToggledStyle] = true\n      } else if (colorStyles.has(mark.type.name as ColorStyle)) {\n        tempStyles[mark.type.name as ColorStyle] = mark.attrs.color\n      }\n    }\n\n    return tempStyles\n  }\n\n  /**\n   * Adds styles to the currently selected content.\n   * @param styles The styles to add.\n   */\n  public addStyles(tempStyles: Styles) {\n    const toggleStyles = new Set<ToggledStyle>(['bold', 'italic', 'underline', 'strike', 'code'])\n    const colorStyles = new Set<ColorStyle>(['textColor', 'backgroundColor'])\n\n    this._tiptapEditor.view.focus()\n\n    for (const [style, value] of Object.entries(tempStyles)) {\n      if (toggleStyles.has(style as ToggledStyle)) {\n        this._tiptapEditor.commands.setMark(style)\n      } else if (colorStyles.has(style as ColorStyle)) {\n        this._tiptapEditor.commands.setMark(style, { color: value })\n      }\n    }\n  }\n\n  /**\n   * Removes styles from the currently selected content.\n   * @param styles The styles to remove.\n   */\n  public removeStyles(tempStyles: Styles) {\n    this._tiptapEditor.view.focus()\n\n    for (const style of Object.keys(tempStyles)) {\n      this._tiptapEditor.commands.unsetMark(style)\n    }\n  }\n\n  /**\n   * Toggles styles on the currently selected content.\n   * @param styles The styles to toggle.\n   */\n  public toggleStyles(tempStyles: Styles) {\n    const toggleStyles = new Set<ToggledStyle>(['bold', 'italic', 'underline', 'strike', 'code'])\n    const colorStyles = new Set<ColorStyle>(['textColor', 'backgroundColor'])\n\n    this._tiptapEditor.view.focus()\n\n    for (const [style, value] of Object.entries(tempStyles)) {\n      if (toggleStyles.has(style as ToggledStyle)) {\n        this._tiptapEditor.commands.toggleMark(style)\n      } else if (colorStyles.has(style as ColorStyle)) {\n        this._tiptapEditor.commands.toggleMark(style, { color: value })\n      }\n    }\n  }\n\n  /**\n   * Gets the currently selected text.\n   */\n  public getSelectedText() {\n    return this._tiptapEditor.state.doc.textBetween(\n      this._tiptapEditor.state.selection.from,\n      this._tiptapEditor.state.selection.to,\n    )\n  }\n\n  /**\n   * Gets the URL of the last link in the current selection, or `undefined` if there are no links in the selection.\n   */\n  public getSelectedLinkUrl() {\n    return this._tiptapEditor.getAttributes('link').href as string | undefined\n  }\n\n  /**\n   * Creates a new link to replace the selected content.\n   * @param url The link URL.\n   * @param text The text to display the link with.\n   */\n  public createLink(url: string, text?: string) {\n    if (url === '' || !text) {\n      return\n    }\n\n    const { from, to } = this._tiptapEditor.state.selection\n\n    const tempText = this._tiptapEditor.state.doc.textBetween(from, to)\n\n    const mark = this._tiptapEditor.schema.mark('link', { href: url })\n\n    this._tiptapEditor.view.dispatch(\n      this._tiptapEditor.view.state.tr.insertText(tempText, from, to).addMark(from, from + tempText.length, mark),\n    )\n  }\n\n  /**\n   * Checks if the block containing the text cursor can be nested.\n   */\n  public canNestBlock() {\n    const { startPos, depth } = getBlockInfoFromPos(\n      this._tiptapEditor.state.doc,\n      this._tiptapEditor.state.selection.from,\n    )!\n\n    return this._tiptapEditor.state.doc.resolve(startPos).index(depth - 1) > 0\n  }\n\n  /**\n   * Nests the block containing the text cursor into the block above it.\n   */\n  public nestBlock() {\n    this._tiptapEditor.commands.sinkListItem('blockContainer')\n  }\n\n  /**\n   * Checks if the block containing the text cursor is nested.\n   */\n  public canUnnestBlock() {\n    const { depth } = getBlockInfoFromPos(this._tiptapEditor.state.doc, this._tiptapEditor.state.selection.from)!\n\n    return depth > 2\n  }\n\n  /**\n   * Lifts the block containing the text cursor out of its parent.\n   */\n  public unnestBlock() {\n    this._tiptapEditor.commands.liftListItem('blockContainer')\n  }\n\n  /**\n   * Serializes blocks into an HTML string. To better conform to HTML standards, children of blocks which aren't list\n   * items are un-nested in the output HTML.\n   * @param blocks An array of blocks that should be serialized into HTML.\n   * @returns The blocks, serialized as an HTML string.\n   */\n  public async blocksToHTML(blocks: Block<BSchema>[]): Promise<string> {\n    return blocksToHTML(blocks, this._tiptapEditor.schema)\n  }\n\n  /**\n   * Parses blocks from an HTML string. Tries to create `Block` objects out of any HTML block-level elements, and\n   * `InlineNode` objects from any HTML inline elements, though not all element types are recognized. If BlockNote\n   * doesn't recognize an HTML element's tag, it will parse it as a paragraph or plain text.\n   * @param html The HTML string to parse blocks from.\n   * @returns The blocks parsed from the HTML string.\n   */\n  public async HTMLToBlocks(html: string): Promise<Block<BSchema>[]> {\n    return HTMLToBlocks(html, this.schema, this._tiptapEditor.schema)\n  }\n\n  /**\n   * Serializes blocks into a Markdown string. The output is simplified as Markdown does not support all features of\n   * BlockNote - children of blocks which aren't list items are un-nested and certain styles are removed.\n   * @param blocks An array of blocks that should be serialized into Markdown.\n   * @returns The blocks, serialized as a Markdown string.\n   */\n  // eslint-disable-next-line class-methods-use-this\n  public async blocksToMarkdown(blocks: Block<BSchema>[]): Promise<string> {\n    return blocksToMarkdown(blocks)\n  }\n\n  /**\n   * Creates a list of blocks from a Markdown string. Tries to create `Block` and `InlineNode` objects based on\n   * Markdown syntax, though not all symbols are recognized. If BlockNote doesn't recognize a symbol, it will parse it\n   * as text.\n   * @param markdown The Markdown string to parse blocks from.\n   * @returns The blocks parsed from the Markdown string.\n   */\n  public async markdownToBlocks(markdown: string): Promise<Block<BSchema>[]> {\n    return markdownToBlocks(markdown, this.schema, this._tiptapEditor.schema)\n  }\n}\n"
  },
  {
    "path": "src/lib/blocknote/core/BlockNoteExtensions.ts",
    "content": "import { Extensions, extensions } from '@tiptap/core'\n\n// import {debugPlugin} from '@/editor/prosemirror-debugger'\nimport { Bold } from '@tiptap/extension-bold'\nimport { Code } from '@tiptap/extension-code'\nimport { Dropcursor } from '@tiptap/extension-dropcursor'\nimport { Gapcursor } from '@tiptap/extension-gapcursor'\nimport { HardBreak } from '@tiptap/extension-hard-break'\nimport { History } from '@tiptap/extension-history'\nimport { Italic } from '@tiptap/extension-italic'\nimport { Strike } from '@tiptap/extension-strike'\nimport { Text } from '@tiptap/extension-text'\nimport { Underline } from '@tiptap/extension-underline'\n// import {createInlineEmbedNode} from '../../mentions-plugin'\nimport { Link } from '../../tiptap-extension-link'\nimport BlockManipulationExtension from './extensions/BlockManipulation/BlockManipulationExtension'\nimport { BlockContainer, BlockGroup, Doc } from './extensions/Blocks'\nimport { BlockNoteDOMAttributes } from './extensions/Blocks/api/blockTypes'\nimport CustomBlockSerializerExtension from './extensions/Blocks/api/serialization'\nimport blockStyles from './extensions/Blocks/nodes/Block.module.css'\nimport createMarkdownExtension from './extensions/Markdown/MarkdownExtension'\nimport { Placeholder } from './extensions/Placeholder/PlaceholderExtension'\nimport { TrailingNode } from './extensions/TrailingNode/TrailingNodeExtension'\nimport UniqueID from './extensions/UniqueID/UniqueID'\nimport { HMBlockSchema } from '@/components/Editor/schema'\nimport SearchAndReplace from '@/components/Editor/Search/SearchAndReplaceExtension'\nimport TextAlignmentExtension from './extensions/TextAlignment/TextAlignmentExtension'\nimport { BlockNoteEditor } from './BlockNoteEditor'\nimport LocalMediaPastePlugin from './extensions/Pasting/local-media-paste-plugin'\n\n/**\n * Get all the Tiptap extensions BlockNote is configured with by default\n */\nconst getBlockNoteExtensions = <BSchema extends HMBlockSchema>(opts: {\n  editable?: boolean\n  editor: BlockNoteEditor<BSchema>\n  domAttributes: Partial<BlockNoteDOMAttributes>\n  blockSchema: BSchema\n  linkExtensionOptions: any\n  inlineEmbedOptions: any\n}) => {\n  const ret: Extensions = [\n    // createInlineEmbedNode(opts.editor),\n    extensions.ClipboardTextSerializer,\n    extensions.Commands,\n    extensions.Editable,\n    extensions.FocusEvents,\n    extensions.Tabindex,\n\n    // DevTools,\n    Gapcursor,\n\n    // DropCursor,\n    Placeholder.configure({\n      emptyNodeClass: blockStyles.isEmpty,\n      hasAnchorClass: blockStyles.hasAnchor,\n      isFilterClass: blockStyles.isFilter,\n      includeChildren: true,\n      showOnlyCurrent: false,\n    }),\n    UniqueID.configure({\n      types: ['blockContainer'],\n    }),\n    // Comments,\n\n    // basics:\n    Text,\n\n    // copy paste:\n    // @ts-ignore\n    createMarkdownExtension(opts.editor),\n\n    // block manupulations:\n    BlockManipulationExtension,\n\n    // marks:\n    Bold,\n    Code,\n    Italic,\n    Strike,\n    Underline,\n    Link.configure(opts.linkExtensionOptions),\n    // TextColorMark,\n    // TextColorExtension,\n    TextAlignmentExtension,\n    LocalMediaPastePlugin,\n    // nodes\n    Doc,\n    BlockGroup.configure({\n      domAttributes: opts.domAttributes,\n    }),\n    ...Object.values(opts.blockSchema).map((blockSpec) => {\n      return blockSpec.node.configure({\n        editor: opts.editor,\n        domAttributes: opts.domAttributes,\n      })\n    }),\n    CustomBlockSerializerExtension,\n    Dropcursor.configure({ width: 5, color: '#ddeeff' }),\n    HardBreak,\n    // This needs to be at the bottom of this list, because Key events (such as enter, when selecting a /command),\n    // should be handled before Enter handlers in other components like splitListItem\n    TrailingNode,\n    BlockContainer.configure({\n      domAttributes: opts.domAttributes,\n    }),\n    SearchAndReplace,\n    // debugPlugin,\n  ]\n\n  ret.push(History)\n  return ret\n}\n\nexport default getBlockNoteExtensions\n"
  },
  {
    "path": "src/lib/blocknote/core/api/blockManipulation/blockManipulation.ts",
    "content": "import { Editor } from '@tiptap/core'\nimport { Node } from 'prosemirror-model'\nimport { BlockIdentifier, BlockSchema, PartialBlock } from '../../extensions/Blocks/api/blockTypes'\nimport { blockToNode } from '../nodeConversions/nodeConversions'\nimport getNodeById from '../util/nodeUtil'\n\nexport function insertBlocks<BSchema extends BlockSchema>(\n  blocksToInsert: PartialBlock<BSchema>[],\n  referenceBlock: BlockIdentifier,\n  editor: Editor,\n  placement: 'before' | 'after' | 'nested' = 'before',\n): void {\n  const id = typeof referenceBlock === 'string' ? referenceBlock : referenceBlock.id\n\n  const nodesToInsert: Node[] = []\n  for (const blockSpec of blocksToInsert) {\n    nodesToInsert.push(blockToNode(blockSpec, editor.schema))\n  }\n\n  let insertionPos = -1\n\n  const { node, posBeforeNode } = getNodeById(id, editor.state.doc)\n\n  if (placement === 'before') {\n    insertionPos = posBeforeNode\n  }\n\n  if (placement === 'after') {\n    insertionPos = posBeforeNode + node.nodeSize\n  }\n\n  if (placement === 'nested') {\n    // Case if block doesn't already have children.\n    if (node.childCount < 2) {\n      insertionPos = posBeforeNode + node.firstChild!.nodeSize + 1\n\n      const blockGroupNode = editor.state.schema.nodes.blockGroup.create({}, nodesToInsert)\n\n      editor.view.dispatch(editor.state.tr.insert(insertionPos, blockGroupNode))\n\n      return\n    }\n\n    insertionPos = posBeforeNode + node.firstChild!.nodeSize + 2\n  }\n\n  editor.view.dispatch(editor.state.tr.insert(insertionPos, nodesToInsert))\n}\n\nexport function updateBlock<BSchema extends BlockSchema>(\n  blockToUpdate: BlockIdentifier,\n  update: PartialBlock<BSchema>,\n  editor: Editor,\n) {\n  const id = typeof blockToUpdate === 'string' ? blockToUpdate : blockToUpdate.id\n  const { posBeforeNode } = getNodeById(id, editor.state.doc)\n\n  editor.commands.BNUpdateBlock(posBeforeNode + 1, update)\n}\n\nexport function removeBlocks(blocksToRemove: BlockIdentifier[], editor: Editor) {\n  const idsOfBlocksToRemove = new Set<string>(\n    blocksToRemove.map((block) => (typeof block === 'string' ? block : block.id)),\n  )\n\n  let removedSize = 0\n\n  editor.state.doc.descendants((node, pos) => {\n    // Skips traversing nodes after all target blocks have been removed.\n    if (idsOfBlocksToRemove.size === 0) {\n      return false\n    }\n\n    // Keeps traversing nodes if block with target ID has not been found.\n    if (node.type.name !== 'blockContainer' || !idsOfBlocksToRemove.has(node.attrs.id)) {\n      return true\n    }\n\n    idsOfBlocksToRemove.delete(node.attrs.id)\n    const oldDocSize = editor.state.doc.nodeSize\n\n    editor.commands.BNDeleteBlock(pos - removedSize + 1)\n\n    const newDocSize = editor.state.doc.nodeSize\n    removedSize += oldDocSize - newDocSize\n\n    return false\n  })\n\n  if (idsOfBlocksToRemove.size > 0) {\n    const notFoundIds = [...idsOfBlocksToRemove].join('\\n')\n\n    throw Error(`Blocks with the following IDs could not be found in the editor: ${notFoundIds}`)\n  }\n}\n\nexport function replaceBlocks<BSchema extends BlockSchema>(\n  blocksToRemove: BlockIdentifier[],\n  blocksToInsert: PartialBlock<BSchema>[],\n  editor: Editor,\n) {\n  insertBlocks(blocksToInsert, blocksToRemove[0], editor, 'before')\n  removeBlocks(blocksToRemove, editor)\n}\n"
  },
  {
    "path": "src/lib/blocknote/core/api/formatConversions/customRehypePlugins.ts",
    "content": "import { visit } from 'unist-util-visit'\nimport { defaultHandlers } from 'remark-rehype'\n\nexport function removeSingleSpace() {\n  // TODO: Give a specific type\n  return (tree: any) => {\n    visit(tree, 'text', (node) => {\n      node.value = node.value.replace(/\\u00A0/g, '')\n    })\n  }\n}\n\n// Custom plugin that converts empty lines to a single space.\nexport function preserveEmptyParagraphs() {\n  return (tree: any) => {\n    visit(tree, 'element', (node) => {\n      if (node.tagName === 'p' && (!node.children || node.children.length === 0)) {\n        node.children = [{ type: 'text', value: '\\u00A0' }] // Add a non-breaking space\n      }\n    })\n  }\n}\n\n// modefied version of https://github.com/syntax-tree/mdast-util-to-hast/blob/main/lib/handlers/code.js\n// that outputs a data-language attribute instead of a CSS class (e.g.: language-typescript)\nexport function code(state: any, node: any) {\n  const value = node.value ? `${node.value}\\n` : ''\n  /** @type {Properties} */\n  const properties: any = {}\n\n  if (node.lang) {\n    // changed line\n    properties['data-language'] = node.lang\n  }\n\n  // Create `<code>`.\n  /** @type {Element} */\n  let result: any = {\n    type: 'element',\n    tagName: 'code',\n    properties,\n    children: [{ type: 'text', value }],\n  }\n\n  if (node.meta) {\n    result.data = { meta: node.meta }\n  }\n\n  state.patch(node, result)\n  result = state.applyData(node, result)\n\n  // Create `<pre>`.\n  result = {\n    type: 'element',\n    tagName: 'pre',\n    properties: {},\n    children: [result],\n  }\n  state.patch(node, result)\n  return result\n}\n\n/**\n * Matches any video markdown and converst them to nodes.\n */\nexport function handleMedia(state: any, node: any) {\n  if (node.type !== 'paragraph' || !node.children?.[0]?.value) {\n    return defaultHandlers.paragraph(state, node)\n  }\n\n  const textValue = node.children[0].value.trim()\n\n  if (textValue.startsWith('![')) {\n    // Check if video\n    if (node.children.length === 3) {\n      // Found video\n      const url = node.children[1].url\n      const width = node.children[2].value.match(/width=(\\d+)/)\n\n      const result = {\n        type: 'element',\n        tagName: 'iframe',\n        properties: {\n          src: url,\n          title: 'youtube',\n          width: width ? width[1] : '',\n        },\n        children: [],\n      }\n\n      state.patch(node, result)\n      return state.applyData(node, result)\n    }\n  } else if (textValue.startsWith('[')) {\n    // Check if image\n    const match = textValue.match(/\\[(.*?)\\]\\((.*?)\\s*\"width=(.*?)\"\\)/)\n\n    if (match) {\n      const [, alt, url, width] = match\n\n      const result = {\n        type: 'element',\n        tagName: 'img',\n        properties: {\n          src: url,\n          alt: alt || '',\n          width: width || '',\n        },\n        children: [],\n      }\n\n      state.patch(node, result)\n      return state.applyData(node, result)\n    }\n  }\n\n  return defaultHandlers.paragraph(state, node)\n}\n"
  },
  {
    "path": "src/lib/blocknote/core/api/formatConversions/formatConversions.ts",
    "content": "import { DOMParser, DOMSerializer, Schema } from 'prosemirror-model'\nimport rehypeParse from 'rehype-parse'\nimport rehypeRemark from 'rehype-remark'\nimport rehypeStringify from 'rehype-stringify'\nimport remarkGfm from 'remark-gfm'\nimport remarkParse from 'remark-parse'\nimport remarkRehype, { defaultHandlers } from 'remark-rehype'\nimport remarkStringify from 'remark-stringify'\nimport { unified } from 'unified'\nimport { Styles } from '@/lib/blocknote'\nimport { Block, BlockSchema } from '../../extensions/Blocks/api/blockTypes'\n\nimport { blockToNode, nodeToBlock } from '../nodeConversions/nodeConversions'\nimport simplifyBlocks from './simplifyBlocksRehypePlugin'\nimport { removeSingleSpace, preserveEmptyParagraphs, code, handleMedia } from './customRehypePlugins'\n\n/**\n * Converts our blocks to HTML:\n *\n *  ImageBlock -> <img src=\"..\" alt=\"..\" />\n *\n * @param blocks Blocks created and stored by our editor\n * @param schema  The schema of the editor\n * @returns Returns the blocks in HTML format\n */\nexport async function blocksToHTML<BSchema extends BlockSchema>(\n  blocks: Block<BSchema>[],\n  schema: Schema,\n): Promise<string> {\n  const htmlParentElement = document.createElement('div')\n  const serializer = DOMSerializer.fromSchema(schema)\n\n  for (const block of blocks) {\n    const node = blockToNode(block, schema)\n    const htmlNode = serializer.serializeNode(node)\n    htmlParentElement.appendChild(htmlNode)\n  }\n\n  const htmlString = await unified()\n    // @ts-expect-error\n    .use(rehypeParse, { fragment: true })\n    .use(simplifyBlocks, {\n      orderedListItemBlockTypes: new Set<string>(['numberedListItem']),\n      unorderedListItemBlockTypes: new Set<string>(['bulletListItem']),\n    })\n    // @ts-expect-error\n    .use(rehypeStringify)\n    .process(htmlParentElement.innerHTML)\n  return htmlString.value as string\n}\n\n/**\n * Converts an HTML element to our custom block\n *\n * <img src=\"..\" alt=\"..\" /> -> ImageBlock\n *\n * @param html The HTML string that we want to convert to our custom blocks\n * @param blockSchema The schema of the block\n * @param schema Schema of the tiptap editor\n * @returns\n */\nexport async function HTMLToBlocks<BSchema extends BlockSchema>(\n  html: string,\n  blockSchema: BSchema,\n  schema: Schema,\n): Promise<Block<BSchema>[]> {\n  const htmlNode = document.createElement('div')\n  htmlNode.innerHTML = html.trim()\n\n  const parser = DOMParser.fromSchema(schema)\n  const parentNode = parser.parse(htmlNode) // , { preserveWhitespace: \"full\" });\n  const blocks: Block<BSchema>[] = []\n\n  for (let i = 0; i < parentNode.firstChild!.childCount; i++) {\n    blocks.push(nodeToBlock(parentNode.firstChild!.child(i), blockSchema))\n  }\n\n  return blocks\n}\n\n/**\n *\n * **Hello** -> <b>Hello</b>\n *\n * @param text The text to apply the style to\n * @param styles The styles to apply to the text\n * @returns\n */\nconst applyStyles = (text: string, styles: Styles) => {\n  if (styles.bold) text = `<b>${text}</b>`\n  if (styles.italic) text = `<i>${text}</i>`\n  if (styles.strike) text = `<del>${text}</del>`\n  if (styles.underline) text = `<u>${text}</u>`\n  if (styles.code) text = `<code>${text}</code>`\n  return text\n}\n\n/**\n * Converts link to HTML with css properties.\n *\n * @param contentItem The content item to convert to HTML\n * @returns\n */\nconst convertContentItemToHtml = (contentItem: any) => {\n  let text = contentItem.text || ''\n  const { styles = {} } = contentItem\n\n  text = applyStyles(text, styles)\n\n  if (contentItem.type === 'link') {\n    const linkText = applyStyles(contentItem.content[0].text, contentItem.content[0].styles || {})\n    const docPath = contentItem.href\n    return `<a href=\"${docPath}\">${linkText}</a>`\n  }\n  return text\n}\n\n/**\n * Converts a block to HTML\n *\n * @param block The block to convert to HTML\n * @param isListItem True if this is a list item (needs a <li> tag)\n * @returns\n */\nfunction convertBlockToHtml<BSchema extends BlockSchema>(block: Block<BSchema>, isListItem = false) {\n  let childrenHtml = ''\n  if (block.children) {\n    const childrenContent = block.children\n      .map((child) => convertBlockToHtml(child, block.props.childrenType === 'ul' || block.props.childrenType === 'ol'))\n      .join('\\n')\n    if (block.props.childrenType === 'ul') {\n      childrenHtml = `<ul>${childrenContent}</ul>`\n    } else if (block.props.childrenType === 'ol') {\n      childrenHtml = `<ol start=\"${block.props.start || 1}\">${childrenContent}</ol>`\n    } else {\n      childrenHtml = childrenContent\n    }\n  }\n\n  const contentHtml = block.content\n    ? block.content.map((contentItem) => convertContentItemToHtml(contentItem)).join('')\n    : ''\n\n  const blockHtml = (() => {\n    switch (block.type) {\n      case 'heading':\n        return `<h${block.props.level}>${contentHtml}</h${block.props.level}>`\n      case 'paragraph':\n        return `<p>${contentHtml}</p>`\n      case 'image':\n        return `[${block.props.alt}](${block.props.url} \"width=${block.props.width}\")`\n      case 'code-block':\n        return `<pre><code class=\"language-${block.props.language || 'plaintext'}\">${contentHtml}</code></pre>`\n      case 'video':\n        return `![${block.props.name}](${block.props.url} \"width=${block.props.width}\")`\n      default:\n        return contentHtml\n    }\n  })()\n\n  if (isListItem) {\n    // Wrap the block content in <li> if it's a list item\n    return `<li>${blockHtml}${childrenHtml}</li>`\n  }\n  // Return the block content and any children it may have\n  return `${blockHtml}\\n${childrenHtml}`\n}\n\n/**\n * Converts a series of blocks to HTML\n *\n * @param blocks The blocks to convert to HTML\n * @returns\n */\nfunction convertBlocksToHtml<BSchema extends BlockSchema>(blocks: Block<BSchema>[]) {\n  const htmlContent: string = blocks.map((block) => convertBlockToHtml(block, undefined)).join('\\n\\n')\n  return htmlContent\n}\n\n/**\n * Converts a series of blocks into markdown\n *\n * @param blocks Blocks that we want to convert to markdown\n * @param schema the schema of our editor\n * @returns\n */\nexport async function blocksToMarkdown<BSchema extends BlockSchema>(blocks: Block<BSchema>[]): Promise<string> {\n  const tmpMarkdownString = await unified()\n    // @ts-expect-error\n    .use(rehypeParse, { fragment: true })\n    .use(preserveEmptyParagraphs)\n    // @ts-expect-error\n    .use(rehypeRemark)\n    // @ts-expect-error\n    .use(remarkGfm)\n    // @ts-expect-error\n    .use(remarkStringify)\n    .process(convertBlocksToHtml(blocks))\n  return tmpMarkdownString.value as string\n}\n\n/**\n * Converts markdown to blocks\n *\n * @param markdown markdown we stored\n * @param blockSchema the schema of our editor\n * @param schema tiptap's schema\n * @returns\n */\nexport async function markdownToBlocks<BSchema extends BlockSchema>(\n  markdown: string,\n  blockSchema: BSchema,\n  schema: Schema,\n): Promise<Block<BSchema>[]> {\n  const htmlString = await unified()\n    // @ts-expect-error\n    .use(remarkParse)\n    .use(removeSingleSpace)\n    // @ts-expect-error\n    .use(remarkGfm)\n    // @ts-expect-error\n    .use(remarkRehype, {\n      handlers: {\n        ...(defaultHandlers as any),\n        code,\n        paragraph: handleMedia,\n      },\n    })\n    // @ts-expect-error\n    .use(rehypeStringify)\n    .process(markdown)\n\n  return HTMLToBlocks(htmlString.value as string, blockSchema, schema)\n}\n"
  },
  {
    "path": "src/lib/blocknote/core/api/formatConversions/simplifyBlocksRehypePlugin.ts",
    "content": "import { Element as HASTElement, Parent as HASTParent } from 'hast'\nimport { fromDom } from 'hast-util-from-dom'\n\ntype SimplifyBlocksOptions = {\n  orderedListItemBlockTypes: Set<string>\n  unorderedListItemBlockTypes: Set<string>\n}\n\n/**\n * Rehype plugin which converts the HTML output string rendered by BlockNote into a simplified structure which better\n * follows HTML standards. It does several things:\n * - Removes all block related div elements, leaving only the actual content inside the block.\n * - Lifts nested blocks to a higher level for all block types that don't represent list items.\n * - Wraps blocks which represent list items in corresponding ul/ol HTML elements and restructures them to comply\n * with HTML list structure.\n * @param options Options for specifying which block types represent ordered and unordered list items.\n */\nconst simplifyBlocks = (options: SimplifyBlocksOptions) => {\n  const listItemBlockTypes = new Set<string>([\n    ...options.orderedListItemBlockTypes,\n    ...options.unorderedListItemBlockTypes,\n  ])\n\n  const simplifyBlocksHelper = (tree: HASTParent) => {\n    let numChildElements = tree.children.length\n    let activeList: HASTElement | undefined\n\n    for (let i = 0; i < numChildElements; i++) {\n      const blockOuter = tree.children[i] as HASTElement\n      const blockContainer = blockOuter.children[0] as HASTElement\n      const blockContent = blockContainer.children[0] as HASTElement\n      const blockGroup = blockContainer.children.length === 2 ? (blockContainer.children[1] as HASTElement) : null\n\n      const isListItemBlock = listItemBlockTypes.has(blockContent.properties!.dataContentType as string)\n      let listItemBlockType = null\n      if (isListItemBlock) {\n        listItemBlockType = options.orderedListItemBlockTypes.has(blockContent.properties!.dataContentType as string)\n          ? 'ol'\n          : 'ul'\n      }\n\n      // Plugin runs recursively to process nested blocks.\n      if (blockGroup !== null) {\n        simplifyBlocksHelper(blockGroup)\n      }\n\n      // Checks that there is an active list, but the block can't be added to it as it's of a different type.\n      if (activeList && activeList.tagName !== listItemBlockType) {\n        // Blocks that were copied into the list are removed and the list is inserted in their place.\n        tree.children.splice(i - activeList.children.length, activeList.children.length, activeList)\n\n        // Updates the current index and number of child elements.\n        const numElementsRemoved = activeList.children.length - 1\n        i -= numElementsRemoved\n        numChildElements -= numElementsRemoved\n\n        activeList = undefined\n      }\n\n      // Checks if the block represents a list item.\n      if (isListItemBlock) {\n        // Checks if a list isn't already active. We don't have to check if the block and the list are of the same\n        // type as this was already done earlier.\n        if (!activeList) {\n          // Creates a new list element to represent an active list.\n          activeList = fromDom(document.createElement(listItemBlockType!)) as HASTElement\n        }\n\n        // Creates a new list item element to represent the block.\n        const listItemElement = fromDom(document.createElement('li')) as HASTElement\n\n        // Adds only the content inside the block to the active list.\n        listItemElement.children.push(blockContent.children[0])\n        // Nested blocks have already been processed in the recursive function call, so the resulting elements are\n        // also added to the active list.\n        if (blockGroup !== null) {\n          listItemElement.children.push(...blockGroup.children)\n        }\n\n        // Adds the list item representing the block to the active list.\n        activeList.children.push(listItemElement)\n      } else if (blockGroup !== null) {\n        // Lifts all children out of the current block, as only list items should allow nesting.\n        tree.children.splice(i + 1, 0, ...blockGroup.children)\n        // Replaces the block with only the content inside it.\n        tree.children[i] = blockContent.children[0]\n\n        // Updates the current index and number of child elements.\n        const numElementsAdded = blockGroup.children.length\n        i += numElementsAdded\n        numChildElements += numElementsAdded\n      } else {\n        // Replaces the block with only the content inside it.\n        tree.children[i] = blockContent.children[0]\n      }\n    }\n\n    // Since the active list is only inserted after encountering a block which can't be added to it, there are cases\n    // where it remains un-inserted after processing all blocks, which are handled here.\n    if (activeList) {\n      tree.children.splice(numChildElements - activeList.children.length, activeList.children.length, activeList)\n    }\n  }\n\n  return simplifyBlocksHelper\n}\n\nexport default simplifyBlocks\n"
  },
  {
    "path": "src/lib/blocknote/core/api/nodeConversions/nodeConversions.ts",
    "content": "import { Mark } from '@tiptap/pm/model'\nimport { Node, Schema } from 'prosemirror-model'\nimport { Block, BlockSchema, PartialBlock } from '../../extensions/Blocks/api/blockTypes'\n\nimport { defaultProps } from '../../extensions/Blocks/api/defaultBlocks'\nimport {\n  ColorStyle,\n  InlineContent,\n  PartialInlineContent,\n  PartialLink,\n  StyledText,\n  Styles,\n  ToggledStyle,\n} from '../../extensions/Blocks/api/inlineContentTypes'\nimport { getBlockInfo } from '../../extensions/Blocks/helpers/getBlockInfoFromPos'\nimport UniqueID from '../../extensions/UniqueID/UniqueID'\nimport { UnreachableCaseError } from '../../shared/utils'\n\nconst toggleStyles = new Set<ToggledStyle>(['bold', 'italic', 'underline', 'strike', 'code'])\nconst colorStyles = new Set<ColorStyle>(['textColor', 'backgroundColor'])\n\n/**\n * Convert a StyledText inline element to a\n * prosemirror text node with the appropriate marks\n */\nfunction styledTextToNodes(styledText: StyledText, schema: Schema): Node[] {\n  const marks: Mark[] = []\n\n  for (const [style, value] of Object.entries(styledText.styles)) {\n    if (toggleStyles.has(style as ToggledStyle)) {\n      marks.push(schema.mark(style))\n    } else if (colorStyles.has(style as ColorStyle)) {\n      marks.push(schema.mark(style, { color: value }))\n    }\n  }\n\n  return (\n    styledText.text\n      // Splits text & line breaks.\n      .split(/(\\n)/g)\n      // If the content ends with a line break, an empty string is added to the\n      // end, which this removes.\n      .filter((text) => text.length > 0)\n      // Converts text & line breaks to nodes.\n      .map((text) => {\n        if (text === '\\n') {\n          return schema.nodes.hardBreak.create()\n        }\n        return schema.text(text, marks)\n      })\n  )\n}\n\n/**\n * Converts an array of StyledText inline content elements to\n * prosemirror text nodes with the appropriate marks\n */\nfunction styledTextArrayToNodes(content: string | StyledText[], schema: Schema): Node[] {\n  const nodes: Node[] = []\n\n  if (typeof content === 'string') {\n    nodes.push(...styledTextToNodes({ type: 'text', text: content, styles: {} }, schema))\n    return nodes\n  }\n\n  for (const styledText of content) {\n    nodes.push(...styledTextToNodes(styledText, schema))\n  }\n  return nodes\n}\n\n/**\n * Converts a Link inline content element to\n * prosemirror text nodes with the appropriate marks\n */\nfunction linkToNodes(link: PartialLink, schema: Schema): Node[] {\n  const linkMark = schema.marks.link.create({\n    href: link.href,\n  })\n\n  return styledTextArrayToNodes(link.content, schema).map((node) => {\n    if (node.type.name === 'text') {\n      return node.mark([...node.marks, linkMark])\n    }\n\n    if (node.type.name === 'hardBreak') {\n      return node\n    }\n    throw new Error('unexpected node type')\n  })\n}\n\n/**\n * converts an array of inline content elements to prosemirror nodes\n */\nexport function inlineContentToNodes(blockContent: PartialInlineContent[] | InlineContent[], schema: Schema): Node[] {\n  const nodes: Node[] = []\n\n  for (const content of blockContent) {\n    if (content.type === 'link') {\n      nodes.push(...linkToNodes(content, schema))\n    } else if (content.type === 'text') {\n      nodes.push(...styledTextArrayToNodes([content], schema))\n    } else if (content.type === 'inline-embed') {\n      nodes.push(\n        schema.nodes['inline-embed'].create({\n          link: content.link,\n        }),\n      )\n    } else {\n      throw new UnreachableCaseError(content)\n    }\n  }\n  return nodes\n}\n\n/**\n * Converts a BlockNote block to a TipTap node.\n */\nexport function blockToNode<BSchema extends BlockSchema>(\n  block: PartialBlock<BSchema> | Block<BSchema>,\n  schema: Schema,\n) {\n  let { id } = block\n\n  if (id === undefined) {\n    id = UniqueID.options.generateID()\n  }\n\n  let { type } = block\n\n  if (type === undefined) {\n    type = 'paragraph'\n  }\n\n  let contentNode: Node\n\n  if (!block.content) {\n    contentNode = schema.nodes[type].create(block.props)\n  } else if (typeof block.content === 'string') {\n    contentNode = schema.nodes[type].create(block.props, schema.text(block.content))\n  } else {\n    let nodes: Node[] = []\n    // Don't want hard breaks inserted as nodes in codeblock\n    if (block.type === 'code-block' && block.content.length) {\n      // @ts-ignore\n      const textNode = schema.text(block.content[0].text || '')\n      nodes.push(textNode)\n    } else nodes = inlineContentToNodes(block.content, schema)\n    contentNode = schema.nodes[type].create(block.props, nodes)\n  }\n\n  const children: Node[] = []\n\n  if (block.children) {\n    for (const child of block.children) {\n      children.push(blockToNode(child, schema))\n    }\n  }\n\n  const groupNode = schema.nodes.blockGroup.create({}, children)\n\n  return schema.nodes.blockContainer.create(\n    {\n      id: id,\n      ...block.props,\n    },\n    children.length > 0 ? [contentNode, groupNode] : contentNode,\n  )\n}\n\n/**\n * Converts an internal (prosemirror) content node to a BlockNote InlineContent array.\n */\nfunction contentNodeToInlineContent(contentNode: Node) {\n  const content: InlineContent[] = []\n  let currentContent: InlineContent | undefined\n\n  // Most of the logic below is for handling links because in ProseMirror links are marks\n  // while in BlockNote links are a type of inline content\n  contentNode.content.forEach((node) => {\n    // hardBreak nodes do not have an InlineContent equivalent, instead we\n    // add a newline to the previous node.\n    if (node.type.name === 'hardBreak') {\n      if (currentContent) {\n        // Current content exists.\n        if (currentContent.type === 'text') {\n          // Current content is text.\n          currentContent.text += '\\n'\n        } else if (currentContent.type === 'link') {\n          // Current content is a link.\n          currentContent.content[currentContent.content.length - 1].text += '\\n'\n        }\n      } else {\n        // Current content does not exist.\n        currentContent = {\n          type: 'text',\n          text: '\\n',\n          styles: {},\n        }\n      }\n\n      return\n    }\n\n    if (node.type.name === 'inline-embed') {\n      if (currentContent) {\n        content.push(currentContent)\n      }\n\n      content.push({\n        type: node.type.name,\n        link: node.attrs.link,\n      })\n\n      currentContent = undefined\n    }\n\n    const styles: Styles = {}\n    let linkMark: Mark | undefined\n\n    for (const mark of node.marks) {\n      if (mark.type.name === 'link') {\n        linkMark = mark\n      } else if (toggleStyles.has(mark.type.name as ToggledStyle)) {\n        styles[mark.type.name as ToggledStyle] = true\n      } else if (colorStyles.has(mark.type.name as ColorStyle)) {\n        styles[mark.type.name as ColorStyle] = mark.attrs.color\n      } else {\n        throw Error(`Mark is of an unrecognized type: ${mark.type.name}`)\n      }\n    }\n\n    // Parsing links and text.\n    // Current content exists.\n    if (currentContent) {\n      // Current content is text.\n      if (currentContent.type === 'text') {\n        if (!linkMark) {\n          // Node is text (same type as current content).\n          if (JSON.stringify(currentContent.styles) === JSON.stringify(styles)) {\n            // Styles are the same.\n            currentContent.text += node.textContent\n          } else {\n            // Styles are different.\n            content.push(currentContent)\n            currentContent = {\n              type: 'text',\n              text: node.textContent,\n              styles,\n            }\n          }\n        } else {\n          // Node is a link (different type to current content).\n          content.push(currentContent)\n          currentContent = {\n            type: 'link',\n            href: linkMark.attrs.href,\n            content: [\n              {\n                type: 'text',\n                text: node.textContent,\n                styles,\n              },\n            ],\n          }\n        }\n      } else if (currentContent.type === 'link') {\n        // Current content is a link.\n        if (linkMark) {\n          // Node is a link (same type as current content).\n          // Link URLs are the same.\n          if (currentContent.href === linkMark.attrs.href) {\n            // Styles are the same.\n            if (\n              JSON.stringify(currentContent.content[currentContent.content.length - 1].styles) ===\n              JSON.stringify(styles)\n            ) {\n              currentContent.content[currentContent.content.length - 1].text += node.textContent\n            } else {\n              // Styles are different.\n              currentContent.content.push({\n                type: 'text',\n                text: node.textContent,\n                styles,\n              })\n            }\n          } else {\n            // Link URLs are different.\n            content.push(currentContent)\n            currentContent = {\n              type: 'link',\n              href: linkMark.attrs.href,\n              content: [\n                {\n                  type: 'text',\n                  text: node.textContent,\n                  styles,\n                },\n              ],\n            }\n          }\n        } else {\n          // Node is text (different type to current content).\n          content.push(currentContent)\n          currentContent = {\n            type: 'text',\n            text: node.textContent,\n            styles,\n          }\n        }\n      }\n    }\n    // Current content does not exist.\n    else if (!linkMark) {\n      // Node is text.\n      currentContent = {\n        type: 'text',\n        text: node.textContent,\n        styles,\n      }\n    } else {\n      currentContent = {\n        type: 'link',\n        href: linkMark.attrs.href,\n        content: [\n          {\n            type: 'text',\n            text: node.textContent,\n            styles,\n          },\n        ],\n      }\n    }\n  })\n\n  if (currentContent) {\n    content.push(currentContent)\n  }\n\n  return content\n}\n\n/**\n * Convert a TipTap node to a BlockNote block.\n */\nexport function nodeToBlock<BSchema extends BlockSchema>(\n  node: Node,\n  blockSchema: BSchema,\n  blockCache?: WeakMap<Node, Block<BSchema>>,\n): Block<BSchema> {\n  if (node.type.name !== 'blockContainer') {\n    throw Error(`Node must be of type blockContainer, but is of type${node.type.name}.`)\n  }\n\n  const cachedBlock = blockCache?.get(node)\n\n  if (cachedBlock) {\n    return cachedBlock\n  }\n\n  const blockInfo = getBlockInfo(node)\n  let { id } = blockInfo\n\n  // Only used for blocks converted from other formats.\n  if (id === null) {\n    id = UniqueID.options.generateID()\n  }\n\n  const props: any = {}\n  for (const [attr, value] of Object.entries({\n    ...node.attrs,\n    ...blockInfo.contentNode.attrs,\n  })) {\n    const blockSpec = blockSchema[blockInfo.contentType.name]\n    if (!blockSpec) {\n      if (blockInfo.contentType.name === 'code-block' || blockInfo.contentType.name === 'inline-embed') {\n        break\n      } else throw Error(`Block is of an unrecognized type: ${blockInfo.contentType.name}`)\n    }\n\n    const { propSchema } = blockSpec\n\n    if (attr in propSchema) {\n      props[attr] = value\n    }\n    // Block ids are stored as node attributes the same way props are, so we\n    // need to ensure we don't attempt to read block ids as props.\n\n    // the second check is for the backgroundColor & textColor props.\n    // Since we want them to be inherited by child blocks, we can't put them on the blockContent node,\n    // and instead have to put them on the blockContainer node.\n    // The blockContainer node is the same for all block types, but some custom blocks might not use backgroundColor & textColor,\n    // so these 2 props are technically unexpected but we shouldn't log a warning.\n    // (this is a bit hacky)\n    else if (attr !== 'id' && !(attr in defaultProps)) {\n      // console.warn('Block has an unrecognized attribute: ' + attr)\n    }\n  }\n\n  if (node.lastChild!.attrs.listType) {\n    const { listType, listLevel, start } = node.lastChild!.attrs\n    props.childrenType = listType\n    props.listLevel = listLevel\n    props.start = start\n  }\n\n  const content = contentNodeToInlineContent(blockInfo.contentNode)\n\n  const children: Block<BSchema>[] = []\n  for (let i = 0; i < blockInfo.numChildBlocks; i++) {\n    children.push(nodeToBlock(node.lastChild!.child(i), blockSchema, blockCache))\n  }\n\n  const block: Block<BSchema> = {\n    id,\n    type: blockInfo.contentType.name,\n    props: props,\n    content,\n    children,\n  }\n\n  blockCache?.set(node, block)\n  return block\n}\n"
  },
  {
    "path": "src/lib/blocknote/core/api/util/nodeUtil.ts",
    "content": "import { Node } from 'prosemirror-model'\n\n/**\n * Get a TipTap node by id\n */\nfunction getNodeById(id: string, doc: Node): { node: Node; posBeforeNode: number } {\n  let targetNode: Node | undefined\n  let posBeforeNode: number | undefined\n\n  doc.firstChild!.descendants((node, pos) => {\n    // Skips traversing nodes after node with target ID has been found.\n    if (targetNode) {\n      return false\n    }\n\n    // Keeps traversing nodes if block with target ID has not been found.\n    if (node.type.name !== 'blockContainer' || node.attrs.id !== id) {\n      return true\n    }\n\n    targetNode = node\n    posBeforeNode = pos + 1\n\n    return false\n  })\n\n  if (targetNode === undefined || posBeforeNode === undefined) {\n    throw Error('Could not find block in the editor with matching ID.')\n  }\n\n  return {\n    node: targetNode,\n    posBeforeNode: posBeforeNode,\n  }\n}\n\nexport default getNodeById\n"
  },
  {
    "path": "src/lib/blocknote/core/assets/fonts-inter.css",
    "content": "/* Generated using https://google-webfonts-helper.herokuapp.com/fonts/inter?subsets=latin */\n\n/* inter-100 - latin */\n@font-face {\n  font-family: 'Inter';\n  font-style: normal;\n  font-weight: 100;\n  src:\n    local(''),\n    url('./inter-v12-latin/inter-v12-latin-100.woff2') format('woff2'),\n    /* Chrome 26+, Opera 23+, Firefox 39+ */ url('./inter-v12-latin/inter-v12-latin-100.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */\n}\n/* inter-200 - latin */\n@font-face {\n  font-family: 'Inter';\n  font-style: normal;\n  font-weight: 200;\n  src:\n    local(''),\n    url('./inter-v12-latin/inter-v12-latin-200.woff2') format('woff2'),\n    /* Chrome 26+, Opera 23+, Firefox 39+ */ url('./inter-v12-latin/inter-v12-latin-200.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */\n}\n/* inter-300 - latin */\n@font-face {\n  font-family: 'Inter';\n  font-style: normal;\n  font-weight: 300;\n  src:\n    local(''),\n    url('./inter-v12-latin/inter-v12-latin-300.woff2') format('woff2'),\n    /* Chrome 26+, Opera 23+, Firefox 39+ */ url('./inter-v12-latin/inter-v12-latin-300.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */\n}\n/* inter-regular - latin */\n@font-face {\n  font-family: 'Inter';\n  font-style: normal;\n  font-weight: 400;\n  src:\n    local(''),\n    url('./inter-v12-latin/inter-v12-latin-regular.woff2') format('woff2'),\n    /* Chrome 26+, Opera 23+, Firefox 39+ */ url('./inter-v12-latin/inter-v12-latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */\n}\n/* inter-500 - latin */\n@font-face {\n  font-family: 'Inter';\n  font-style: normal;\n  font-weight: 500;\n  src:\n    local(''),\n    url('./inter-v12-latin/inter-v12-latin-500.woff2') format('woff2'),\n    /* Chrome 26+, Opera 23+, Firefox 39+ */ url('./inter-v12-latin/inter-v12-latin-500.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */\n}\n/* inter-600 - latin */\n@font-face {\n  font-family: 'Inter';\n  font-style: normal;\n  font-weight: 600;\n  src:\n    local(''),\n    url('./inter-v12-latin/inter-v12-latin-600.woff2') format('woff2'),\n    /* Chrome 26+, Opera 23+, Firefox 39+ */ url('./inter-v12-latin/inter-v12-latin-600.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */\n}\n/* inter-700 - latin */\n@font-face {\n  font-family: 'Inter';\n  font-style: normal;\n  font-weight: 700;\n  src:\n    local(''),\n    url('./inter-v12-latin/inter-v12-latin-700.woff2') format('woff2'),\n    /* Chrome 26+, Opera 23+, Firefox 39+ */ url('./inter-v12-latin/inter-v12-latin-700.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */\n}\n/* inter-800 - latin */\n@font-face {\n  font-family: 'Inter';\n  font-style: normal;\n  font-weight: 800;\n  src:\n    local(''),\n    url('./inter-v12-latin/inter-v12-latin-800.woff2') format('woff2'),\n    /* Chrome 26+, Opera 23+, Firefox 39+ */ url('./inter-v12-latin/inter-v12-latin-800.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */\n}\n/* inter-900 - latin */\n@font-face {\n  font-family: 'Inter';\n  font-style: normal;\n  font-weight: 900;\n  src:\n    local(''),\n    url('./inter-v12-latin/inter-v12-latin-900.woff2') format('woff2'),\n    /* Chrome 26+, Opera 23+, Firefox 39+ */ url('./inter-v12-latin/inter-v12-latin-900.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */\n}\n"
  },
  {
    "path": "src/lib/blocknote/core/editor.module.css",
    "content": "@import url('./assets/fonts-inter.css');\n\n.bnEditor {\n  outline: none;\n  /* padding-inline: 54px; */\n\n  /* Define a set of colors to be used throughout the app for consistency\n  see https://atlassian.design/foundations/color for more info */\n  --N800: #172b4d; /* Dark neutral used for tooltips and text on light background */\n  --N40: #dfe1e6; /* Light neutral used for subtle borders and text on dark background */\n}\n\n/*\nbnRoot should be applied to all top-level elements\n\nThis includes the Prosemirror editor, but also <div> element such as \nTippy popups that are appended to document.body directly\n*/\n.bnRoot {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n\n.bnRoot *,\n.bnRoot *::before,\n.bnRoot *::after {\n  -webkit-box-sizing: inherit;\n  -moz-box-sizing: inherit;\n  box-sizing: inherit;\n}\n\n/* reset styles, they will be set on blockContent */\n.defaultStyles p,\n.defaultStyles h1,\n.defaultStyles h2,\n.defaultStyles h3,\n.defaultStyles li {\n  all: unset !important;\n  margin: 0;\n  padding: 0;\n  font-size: inherit;\n  /* min width to make sure cursor is always visible */\n  min-width: 2px !important;\n}\n\n.defaultStyles {\n  font-size: 18px;\n  font-weight: normal;\n  font-family: Georgia, 'Times New Roman', Times, serif !important;\n  font-size: 1.2em;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n\n.dragPreview {\n  position: absolute;\n  top: -1000px;\n}\n\n/* Give a remote user a caret */\n.collaboration-cursor__caret {\n  border-left: 1px solid #0d0d0d;\n  border-right: 1px solid #0d0d0d;\n  margin-left: -1px;\n  margin-right: -1px;\n  pointer-events: none;\n  position: relative;\n  word-break: normal;\n}\n\n/* Render the username above the caret */\n.collaboration-cursor__label {\n  border-radius: 3px 3px 3px 0;\n  color: #0d0d0d;\n  font-size: 12px;\n  font-style: normal;\n  font-weight: 600;\n  left: -1px;\n  line-height: normal;\n  padding: 0.1rem 0.3rem;\n  position: absolute;\n  top: -1.4em;\n  user-select: none;\n  white-space: nowrap;\n}\n\n.ProseMirror.virtual-cursor-enabled {\n  /* Hide the native cursor */\n  caret-color: transparent;\n}\n\n.ProseMirror-focused {\n  /* Color of the virtual cursor */\n  --prosemirror-virtual-cursor-color: #406b84;\n}\n\n.ProseMirror .prosemirror-virtual-cursor {\n  position: absolute;\n  cursor: text;\n  pointer-events: none;\n  transform: translate(-1px);\n  user-select: none;\n  -webkit-user-select: none;\n  border-left: 2px solid var(--prosemirror-virtual-cursor-color);\n}\n\n.ProseMirror .prosemirror-virtual-cursor-left {\n  width: 1ch;\n  transform: translate(calc(-1ch + -1px));\n  border-bottom: 2px solid var(--prosemirror-virtual-cursor-color);\n  border-right: 2px solid var(--prosemirror-virtual-cursor-color);\n  border-left: none;\n}\n\n.ProseMirror .prosemirror-virtual-cursor-right {\n  width: 1ch;\n  border-bottom: 2px solid var(--prosemirror-virtual-cursor-color);\n  border-left: 2px solid var(--prosemirror-virtual-cursor-color);\n  border-right: none;\n}\n\n.ProseMirror-focused .prosemirror-virtual-cursor-animation {\n  animation: prosemirror-virtual-cursor-blink 1s linear infinite;\n  animation-delay: 0.5s;\n}\n\n@keyframes prosemirror-virtual-cursor-blink {\n  0% {\n    opacity: 1;\n  }\n  50% {\n    opacity: 0;\n  }\n  100% {\n    opacity: 1;\n  }\n}\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/BlockManipulation/BlockManipulationExtension.ts",
    "content": "import { Extension } from '@tiptap/core'\nimport { ResolvedPos } from '@tiptap/pm/model'\nimport { EditorView } from '@tiptap/pm/view'\nimport { Node } from 'prosemirror-model'\nimport { NodeSelection, Plugin, PluginKey, TextSelection } from 'prosemirror-state'\nimport { findNextBlock, findPreviousBlock } from '../../../../utils/block-utils'\nimport { BlockInfo, getBlockInfoFromPos } from '../Blocks/helpers/getBlockInfoFromPos'\n\nconst selectableNodeTypes = ['image', 'file', 'embed', 'video', 'web-embed', 'math', 'button', 'query']\n\nconst BlockManipulationExtension = Extension.create({\n  name: 'BlockManupulation',\n\n  addKeyboardShortcuts() {\n    return {\n      // 'Shift-Enter': () => {\n      //   const {view, state} = this.editor\n      //   const {selection} = state\n      //   if (selection instanceof NodeSelection) {\n      //     const prevBlockInfo = findPreviousBlock(view, selection.from)\n      //     if (prevBlockInfo) {\n      //       const $pos = state.doc.resolve(prevBlockInfo.prevBlockPos)\n      //       this.editor\n      //         .chain()\n      //         .BNCreateBlock($pos.end() + 1)\n      //         .setTextSelection($pos.end() + 3)\n      //         .run()\n      //       return true\n      //     }\n      //   }\n      //   return false\n      // },\n      Enter: () => {\n        const { state } = this.editor\n        const { selection } = state\n        if (selection instanceof NodeSelection) {\n          const $pos = state.doc.resolve(selection.from + 1)\n          this.editor\n            .chain()\n            .BNCreateBlock($pos.end() + 2)\n            .setTextSelection($pos.end() + 3)\n            .run()\n          return true\n        }\n        return false\n      },\n    }\n  },\n\n  addProseMirrorPlugins() {\n    return [\n      new Plugin({\n        key: new PluginKey('CursorSelectPlugin'),\n        props: {\n          handleClickOn: (view: EditorView, _, node: Node, nodePos: number, event: MouseEvent) => {\n            if (!view.editable) return false\n            if (\n              (node.type.name === 'image' &&\n                // @ts-ignore\n                event.target?.nodeName === 'IMG') ||\n              ['file', 'embed', 'video', 'web-embed', 'math', 'button', 'query'].includes(node.type.name)\n            ) {\n              let tr = view.state.tr\n              const selection = NodeSelection.create(view.state.doc, nodePos)\n              tr = tr.setSelection(selection)\n              view.dispatch(tr)\n              view.focus()\n              return true\n            }\n            return false\n          },\n        },\n      }),\n      new Plugin({\n        key: new PluginKey('KeyboardShortcutsSelectPlugin'),\n        props: {\n          handleKeyDown(view, event) {\n            const { state } = view\n            let blockInfo: BlockInfo | undefined\n            if (event.key === 'Delete') {\n              const { doc, selection, tr } = state\n              if (selection.empty) {\n                const $pos = selection.$anchor\n                const isEnd = $pos.pos === $pos.end()\n                if (isEnd) {\n                  const node = getBlockInfoFromPos(doc, $pos.pos)\n                  if (node.contentNode.textContent.length === 0) {\n                    tr.deleteRange($pos.start() - 1, $pos.end() + 1)\n                    view.dispatch(tr)\n                    return true\n                  }\n                  let $nextPos: ResolvedPos | undefined\n                  let nextNode\n                  if (node.numChildBlocks > 0) {\n                    $nextPos = doc.resolve($pos.after() + 3)\n                    nextNode = $nextPos.parent\n                  } else {\n                    doc.descendants((testNode, testPos) => {\n                      if (testNode.type.name === 'blockContainer' && testPos > $pos.pos)\n                        if (!$nextPos || $nextPos.pos < $pos.pos) {\n                          $nextPos = doc.firstChild!.resolve(testPos)\n                          nextNode = testNode.firstChild\n                        }\n                    })\n                  }\n                  if ($nextPos && nextNode) {\n                    if (selectableNodeTypes.includes(nextNode.type.name)) {\n                      return false\n                    }\n                    const mergedTextContent = node.contentNode.textContent + nextNode.textContent\n                    const newNode = view.state.schema.node(\n                      node.contentType.name,\n                      node.contentNode.attrs,\n                      view.state.schema.text(mergedTextContent, node.contentNode.lastChild?.marks),\n                      node.contentNode.marks,\n                    )\n                    tr.deleteRange(\n                      $nextPos.start() - 1,\n                      $nextPos.end() < $nextPos.start() + nextNode.nodeSize\n                        ? $nextPos.end() + 1\n                        : $nextPos.start() + nextNode.nodeSize + 1,\n                    )\n                    tr.replaceWith($pos.start() - 1, $pos.end() + 1, newNode)\n                    view.dispatch(tr)\n                    return true\n                  }\n                  return false\n                }\n              }\n            } else if (event.key === 'ArrowUp' || event.key === 'ArrowLeft') {\n              let hasHardBreak = false\n              blockInfo = getBlockInfoFromPos(state.doc, state.selection.from)!\n              // Find if the selected node has break line and check if the selection's from position is before or after the hard break\n              blockInfo.contentNode.content.descendants((node, pos) => {\n                if (node.type.name === 'hardBreak') {\n                  if (blockInfo && blockInfo.startPos + pos + 1 < state.selection.from) {\n                    hasHardBreak = true\n                  }\n                }\n              })\n              // Stop execution and let other handlers be called if the selection if after the hard break\n              if (hasHardBreak) return false\n              const prevBlockInfo = findPreviousBlock(view, state.selection.from)\n              if (prevBlockInfo) {\n                const { prevBlock, prevBlockPos } = prevBlockInfo\n                const prevNode = prevBlock.firstChild!\n                const prevNodePos = prevBlockPos + 1\n                if (event.shiftKey) {\n                  const blockInfoAtSelectionStart = getBlockInfoFromPos(state.doc, state.selection.from)\n                  if (event.key === 'ArrowLeft') {\n                    if (\n                      (state.selection.from - 1 !== blockInfoAtSelectionStart.startPos &&\n                        !selectableNodeTypes.includes(blockInfoAtSelectionStart.contentType.name)) ||\n                      !selectableNodeTypes.includes(prevBlock.firstChild!.type.name)\n                    )\n                      return false\n                  }\n\n                  const selection = TextSelection.create(state.doc, state.selection.to, prevNodePos)\n                  let tr = state.tr.setSelection(selection)\n                  tr = tr.scrollIntoView()\n                  view.dispatch(tr)\n                  return true\n                }\n                if (event.key === 'ArrowLeft') {\n                  blockInfo = getBlockInfoFromPos(state.doc, state.selection.from)!\n                  if (\n                    state.selection.$anchor.parentOffset !== 0 &&\n                    !selectableNodeTypes.includes(blockInfo.contentType.name)\n                  ) {\n                    return false\n                  }\n                }\n                if (selectableNodeTypes.includes(prevNode.type.name)) {\n                  const selection = NodeSelection.create(state.doc, prevNodePos)\n                  let tr = state.tr.setSelection(selection)\n                  tr = tr.scrollIntoView()\n                  view.dispatch(tr)\n                  return true\n                }\n              } else {\n                if (event.shiftKey) return false\n                blockInfo = getBlockInfoFromPos(state.doc, state.selection.from)!\n                if (selectableNodeTypes.includes(blockInfo.contentType.name)) {\n                  const newBlock = state.schema.nodes.blockContainer.createAndFill()!\n                  let tr = state.tr.insert(1, newBlock)\n                  view.dispatch(tr)\n\n                  tr = view.state.tr.setSelection(TextSelection.create(view.state.doc, 1))\n                  tr = tr.scrollIntoView()\n                  view.dispatch(tr)\n                  return true\n                }\n              }\n              return false\n            } else if (event.key === 'ArrowDown' || event.key === 'ArrowRight') {\n              let lastHardBreakPos: number | null = null\n              blockInfo = getBlockInfoFromPos(state.doc, state.selection.from)!\n              // Find the position of last hard break in node content, if any\n              blockInfo.contentNode.content.descendants((node, pos) => {\n                if (blockInfo && node.type.name === 'hardBreak') {\n                  lastHardBreakPos = blockInfo.startPos + pos + 1\n                }\n              })\n              // Stop execution and let other handlers be called if selection's to position is before the last hard break pos\n              if (lastHardBreakPos && state.selection.to <= lastHardBreakPos) return false\n              const nextBlockInfo = findNextBlock(view, state.selection.from)\n              if (nextBlockInfo) {\n                blockInfo = getBlockInfoFromPos(state.doc, state.selection.from)!\n                if (event.shiftKey) {\n                  const blockInfoAfterSelection = findNextBlock(view, state.selection.to)\n                  if (event.key === 'ArrowRight') {\n                    const lastBlockInSelection = getBlockInfoFromPos(state.doc, state.selection.to)\n                    if (\n                      state.selection.to + 1 !==\n                        lastBlockInSelection.startPos + lastBlockInSelection.contentNode.nodeSize &&\n                      !selectableNodeTypes.includes(lastBlockInSelection.contentType.name)\n                    ) {\n                      return false\n                    }\n                  }\n                  if (blockInfoAfterSelection) {\n                    const { nextBlock, nextBlockPos } = blockInfoAfterSelection\n                    if (selectableNodeTypes.includes(nextBlock.firstChild!.type.name)) {\n                      const selection = TextSelection.create(state.doc, state.selection.anchor, nextBlockPos + 2)\n                      let tr = state.tr.setSelection(selection)\n                      tr = tr.scrollIntoView()\n                      view.dispatch(tr)\n                      return true\n                    }\n                    return false\n                  }\n                  return false\n                }\n                const { nextBlock, nextBlockPos } = nextBlockInfo\n                const nextNode = nextBlock.firstChild!\n                const nextNodePos = nextBlockPos + 1\n                if (event.key === 'ArrowRight') {\n                  if (\n                    state.selection.$anchor.pos + 1 !== blockInfo.startPos + blockInfo.contentNode.nodeSize &&\n                    !selectableNodeTypes.includes(blockInfo.contentType.name)\n                  ) {\n                    return false\n                  }\n                }\n                if (selectableNodeTypes.includes(nextNode.type.name)) {\n                  const selection = NodeSelection.create(state.doc, nextNodePos)\n                  let tr = state.tr.setSelection(selection)\n                  tr = tr.scrollIntoView()\n                  view.dispatch(tr)\n                  return true\n                }\n              }\n            }\n            return false\n          },\n        },\n      }),\n    ]\n  },\n})\n\nexport default BlockManipulationExtension\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/Blocks/PreviousBlockTypePlugin.ts",
    "content": "import { findChildren } from '@tiptap/core'\nimport { Plugin, PluginKey } from 'prosemirror-state'\nimport { Decoration, DecorationSet } from 'prosemirror-view'\n\nconst PLUGIN_KEY = new PluginKey(`previous-blocks`)\n\nconst nodeAttributes: Record<string, string> = {\n  // Numbered List Items\n  index: 'index',\n  // Headings\n  level: 'level',\n  // All Blocks\n  type: 'type',\n  depth: 'depth',\n  'depth-change': 'depth-change',\n}\n\n/**\n * This plugin tracks transformation of Block node attributes, so we can support CSS transitions.\n *\n * Problem it solves: ProseMirror recreates the DOM when transactions happen. So when a transaction changes a Node attribute,\n * it results in a completely new DOM element. This means CSS transitions don't work.\n *\n * Solution: When attributes change on a node, this plugin sets a data-* attribute with the \"previous\" value. This way we can still use CSS transitions. (See block.module.css)\n */\nconst PreviousBlockTypePlugin = () => {\n  let timeout: any\n  return new Plugin({\n    key: PLUGIN_KEY,\n    view() {\n      return {\n        update: async (view) => {\n          if (this.key?.getState(view.state).updatedBlocks.size > 0) {\n            // use setTimeout 0 to clear the decorations so that at least\n            // for one DOM-render the decorations have been applied\n            timeout = setTimeout(() => {\n              view.dispatch(view.state.tr.setMeta(PLUGIN_KEY, { clearUpdate: true }))\n            }, 0)\n          }\n        },\n        destroy: () => {\n          if (timeout) {\n            clearTimeout(timeout)\n          }\n        },\n      }\n    },\n    state: {\n      init() {\n        return {\n          // Block attributes, by block ID, from just before the previous transaction.\n          prevTransactionOldBlockAttrs: {} as any,\n          // Block attributes, by block ID, from just before the current transaction.\n          currentTransactionOldBlockAttrs: {} as any,\n          // Set of IDs of blocks whose attributes changed from the current transaction.\n          updatedBlocks: new Set<string>(),\n        }\n      },\n\n      apply(transaction, prev, oldState, newState) {\n        prev.currentTransactionOldBlockAttrs = {}\n        prev.updatedBlocks.clear()\n\n        if (!transaction.docChanged || oldState.doc.eq(newState.doc)) {\n          return prev\n        }\n\n        // TODO: Instead of iterating through the entire document, only check nodes affected by the transactions. Will\n        //  also probably require checking nodes affected by the previous transaction too.\n        // We didn't get this to work yet:\n        // const transform = combineTransactionSteps(oldState.doc, [transaction]);\n        // // const { mapping } = transform;\n        // const changes = getChangedRanges(transform);\n        //\n        // changes.forEach(({ oldRange, newRange }) => {\n        // const oldNodes = findChildrenInRange(\n        //   oldState.doc,\n        //   oldRange,\n        //   (node) => node.attrs.id\n        // );\n        //\n        // const newNodes = findChildrenInRange(\n        //   newState.doc,\n        //   newRange,\n        //   (node) => node.attrs.id\n        // );\n\n        const currentTransactionOriginalOldBlockAttrs = {} as any\n\n        const oldNodes = findChildren(oldState.doc, (node) => node.attrs.id)\n        const oldNodesById = new Map(oldNodes.map((node) => [node.node.attrs.id, node]))\n        const newNodes = findChildren(newState.doc, (node) => node.attrs.id)\n\n        // Traverses all block containers in the new editor state.\n        for (const node of newNodes) {\n          const oldNode = oldNodesById.get(node.node.attrs.id)\n\n          const oldContentNode = oldNode?.node.firstChild\n          const newContentNode = node.node.firstChild\n\n          if (oldNode && oldContentNode && newContentNode) {\n            const newAttrs = {\n              index: newContentNode.attrs.index,\n              level: newContentNode.attrs.level,\n              type: newContentNode.type.name,\n              depth: newState.doc.resolve(node.pos).depth,\n            }\n\n            let oldAttrs = {\n              index: oldContentNode.attrs.index,\n              level: oldContentNode.attrs.level,\n              type: oldContentNode.type.name,\n              depth: oldState.doc.resolve(oldNode.pos).depth,\n            }\n\n            currentTransactionOriginalOldBlockAttrs[node.node.attrs.id] = oldAttrs\n\n            // Whenever a transaction is appended by the OrderedListItemIndexPlugin, it's given the metadata:\n            // { \"orderedListIndexing\": true }\n            // These appended transactions happen immediately after any transaction which causes ordered list item\n            // indices to require updating, including those which trigger animations. Therefore, these animations are\n            // immediately overridden when the PreviousBlockTypePlugin processes the appended transaction, despite only\n            // the listItemIndex attribute changing. To solve this, oldAttrs must be edited for transactions with the\n            // \"orderedListIndexing\" metadata, so the correct animation can be re-triggered.\n            if (transaction.getMeta('numberedListIndexing')) {\n              // If the block existed before the transaction, gets the attributes from before the previous transaction\n              // (i.e. the transaction that caused list item indices to need updating).\n              if (node.node.attrs.id in prev.prevTransactionOldBlockAttrs) {\n                oldAttrs = prev.prevTransactionOldBlockAttrs[node.node.attrs.id]\n              }\n\n              // Stops list item indices themselves being animated (looks smoother), unless the block's content type is\n              // changing from a numbered list item to something else.\n              if (newAttrs.type === 'numberedListItem') {\n                oldAttrs.index = newAttrs.index\n              }\n            }\n\n            prev.currentTransactionOldBlockAttrs[node.node.attrs.id] = oldAttrs\n\n            // TODO: faster deep equal?\n            if (JSON.stringify(oldAttrs) !== JSON.stringify(newAttrs)) {\n              ;(oldAttrs as any)['depth-change'] = oldAttrs.depth - newAttrs.depth\n\n              // for debugging:\n              // console.log(\n              //   \"id:\",\n              //   node.node.attrs.id,\n              //   \"previousBlockTypePlugin changes detected, oldAttrs\",\n              //   oldAttrs,\n              //   \"new\",\n              //   newAttrs\n              // );\n\n              prev.updatedBlocks.add(node.node.attrs.id)\n            }\n          }\n        }\n\n        prev.prevTransactionOldBlockAttrs = currentTransactionOriginalOldBlockAttrs\n\n        return prev\n      },\n    },\n    props: {\n      decorations(state) {\n        const pluginState = (this as Plugin).getState(state)\n        if (pluginState.updatedBlocks.size === 0) {\n          return undefined\n        }\n\n        const decorations: Decoration[] = []\n\n        state.doc.descendants((node, pos) => {\n          if (!node.attrs.id) {\n            return\n          }\n\n          if (!pluginState.updatedBlocks.has(node.attrs.id)) {\n            return\n          }\n\n          const prevAttrs = pluginState.currentTransactionOldBlockAttrs[node.attrs.id]\n          const decorationAttrs: any = {}\n\n          for (const [nodeAttr, val] of Object.entries(prevAttrs)) {\n            decorationAttrs[`data-prev-${nodeAttributes[nodeAttr]}`] = val || 'none'\n          }\n\n          // for debugging:\n          // console.log(\n          //   \"previousBlockTypePlugin committing decorations\",\n          //   decorationAttrs\n          // );\n\n          const decoration = Decoration.node(pos, pos + node.nodeSize, {\n            ...decorationAttrs,\n          })\n\n          decorations.push(decoration)\n        })\n\n        return DecorationSet.create(state.doc, decorations)\n      },\n    },\n  })\n}\n\nexport default PreviousBlockTypePlugin\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/Blocks/api/block.ts",
    "content": "import { Attribute, Node } from '@tiptap/core'\nimport { TagParseRule } from '@tiptap/pm/model'\nimport { BlockNoteDOMAttributes, BlockNoteEditor } from '../../..'\nimport { mergeCSSClasses } from '../../../shared/utils'\nimport styles from '../nodes/Block.module.css'\nimport { BlockConfig, BlockSchema, BlockSpec, PropSchema, TipTapNode, TipTapNodeConfig } from './blockTypes'\n\nexport function camelToDataKebab(str: string): string {\n  return `data-${str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase()}`\n}\n\n// Function that uses the 'propSchema' of a blockConfig to create a TipTap\n// node's `addAttributes` property.\nexport function propsToAttributes<\n  BType extends string,\n  PSchema extends PropSchema,\n  ContainsInlineContent extends boolean,\n  BSchema extends BlockSchema,\n  BParseRules extends TagParseRule[],\n>(blockConfig: Omit<BlockConfig<BType, PSchema, ContainsInlineContent, BSchema, BParseRules>, 'render'>) {\n  const tiptapAttributes: Record<string, Attribute> = {}\n\n  Object.entries(blockConfig.propSchema).forEach(([name, spec]) => {\n    tiptapAttributes[name] = {\n      default: spec.default,\n      keepOnSplit: true,\n      // Props are displayed in kebab-case as HTML attributes. If a prop's\n      // value is the same as its default, we don't display an HTML\n      // attribute for it.\n      parseHTML: (element) => element.getAttribute(camelToDataKebab(name)),\n      renderHTML: (attributes) =>\n        attributes[name] !== spec.default\n          ? {\n              [camelToDataKebab(name)]: attributes[name],\n            }\n          : {},\n    }\n  })\n\n  return tiptapAttributes\n}\n\n// Function that uses the 'parse' function of a blockConfig to create a\n// TipTap node's `parseHTML` property. This is only used for parsing content\n// from the clipboard.\nexport function parse<\n  BType extends string,\n  PSchema extends PropSchema,\n  ContainsInlineContent extends boolean,\n  BSchema extends BlockSchema,\n  BParseRules extends TagParseRule[],\n>(blockConfig: Omit<BlockConfig<BType, PSchema, ContainsInlineContent, BSchema, BParseRules>, 'render'>) {\n  const rules: TagParseRule[] = []\n  if (blockConfig.parseHTML && blockConfig.parseHTML.length > 0) {\n    blockConfig.parseHTML.forEach((rule) => {\n      rules.push(rule)\n    })\n  }\n  rules.push({\n    tag: `div[data-content-type=${blockConfig.type}]`,\n    priority: 999,\n  })\n  return rules\n}\n\n// Function that uses the 'render' function of a blockConfig to create a\n// TipTap node's `renderHTML` property. Since custom blocks use node views,\n// this is only used for serializing content to the clipboard.\nexport function render<\n  BType extends string,\n  PSchema extends PropSchema,\n  ContainsInlineContent extends boolean,\n  BSchema extends BlockSchema,\n  BParseRules extends TagParseRule[],\n>(\n  blockConfig: Omit<BlockConfig<BType, PSchema, ContainsInlineContent, BSchema, BParseRules>, 'render'>,\n  HTMLAttributes: Record<string, any>,\n) {\n  // Create blockContent element\n  const blockContent = document.createElement('div')\n  // Add blockContent HTML attribute\n  blockContent.setAttribute('data-content-type', blockConfig.type)\n  // Add props as HTML attributes in kebab-case with \"data-\" prefix\n  for (const [attribute, value] of Object.entries(HTMLAttributes)) {\n    blockContent.setAttribute(attribute, value)\n  }\n\n  // TODO: This only works for content copied within BlockNote.\n  // Creates contentDOM element to serialize inline content into.\n  let contentDOM: HTMLDivElement | undefined\n  if (blockConfig.containsInlineContent) {\n    contentDOM = document.createElement('div')\n    blockContent.appendChild(contentDOM)\n  } else {\n    contentDOM = undefined\n  }\n\n  return contentDOM !== undefined\n    ? {\n        dom: blockContent,\n        contentDOM: contentDOM,\n      }\n    : {\n        dom: blockContent,\n      }\n}\n\nexport function createTipTapBlock<\n  Type extends string,\n  Options extends {\n    domAttributes?: BlockNoteDOMAttributes\n  } = {\n    domAttributes?: BlockNoteDOMAttributes\n  },\n  Storage = any,\n>(config: TipTapNodeConfig<Type, Options, Storage>): TipTapNode<Type, Options, Storage> {\n  // Type cast is needed as Node.name is mutable, though there is basically no\n  // reason to change it after creation. Alternative is to wrap Node in a new\n  // class, which I don't think is worth it since we'd only be changing 1\n  // attribute to be read only.\n  return Node.create<Options, Storage>({\n    ...config,\n    group: 'blockContent',\n  }) as TipTapNode<Type, Options, Storage>\n}\n\n// A function to create custom block for API consumers\n// we want to hide the tiptap node from API consumers and provide a simpler API surface instead\nexport function createBlockSpec<\n  BType extends string,\n  PSchema extends PropSchema,\n  ContainsInlineContent extends boolean,\n  BSchema extends BlockSchema,\n  BParseRules extends TagParseRule[],\n>(blockConfig: BlockConfig<BType, PSchema, ContainsInlineContent, BSchema, BParseRules>): BlockSpec<BType, PSchema> {\n  const node = createTipTapBlock<\n    BType,\n    {\n      editor: BlockNoteEditor<BSchema>\n      domAttributes?: BlockNoteDOMAttributes\n    }\n  >({\n    name: blockConfig.type,\n    content: blockConfig.containsInlineContent ? 'inline*' : '',\n    selectable: blockConfig.containsInlineContent,\n\n    addAttributes() {\n      return propsToAttributes(blockConfig)\n    },\n\n    parseHTML() {\n      return parse(blockConfig)\n    },\n\n    renderHTML({ HTMLAttributes }) {\n      return render(blockConfig, HTMLAttributes)\n    },\n\n    addNodeView() {\n      return ({ HTMLAttributes, getPos }) => {\n        // Create blockContent element\n        const blockContent = document.createElement('div')\n        // Add custom HTML attributes\n        const blockContentDOMAttributes = this.options.domAttributes?.blockContent || {}\n        for (const [attribute, value] of Object.entries(blockContentDOMAttributes)) {\n          if (attribute !== 'class') {\n            blockContent.setAttribute(attribute, value)\n          }\n        }\n        // Set blockContent & custom classes\n        blockContent.className = mergeCSSClasses(styles.blockContent, blockContentDOMAttributes.class)\n        // Add blockContent HTML attribute\n        blockContent.setAttribute('data-content-type', blockConfig.type)\n        // Add props as HTML attributes in kebab-case with \"data-\" prefix\n        for (const [attribute, value] of Object.entries(HTMLAttributes)) {\n          blockContent.setAttribute(attribute, value)\n        }\n\n        // Gets BlockNote editor instance\n        const editor = this.options.editor! as BlockNoteEditor<BSchema>\n        // Gets position of the node\n        if (typeof getPos === 'boolean') {\n          throw new Error('Cannot find node position as getPos is a boolean, not a function.')\n        }\n        const pos = getPos()\n        // Gets TipTap editor instance\n        const tipTapEditor = editor._tiptapEditor\n        // Gets parent blockContainer node\n        const blockContainer = tipTapEditor.state.doc.resolve(pos!).node()\n        // Gets block identifier\n        const blockIdentifier = blockContainer.attrs.id\n\n        // Get the block\n        const block = editor.getBlock(blockIdentifier)!\n        if (block.type !== blockConfig.type) {\n          throw new Error('Block type does not match')\n        }\n\n        // Render elements\n        const rendered = blockConfig.render(block as any, editor)\n        // Add HTML attributes to contentDOM\n        if ('contentDOM' in rendered) {\n          const inlineContentDOMAttributes = this.options.domAttributes?.inlineContent || {}\n          // Add custom HTML attributes\n          for (const [attribute, value] of Object.entries(inlineContentDOMAttributes)) {\n            if (attribute !== 'class') {\n              rendered.contentDOM.setAttribute(attribute, value)\n            }\n          }\n          // Merge existing classes with inlineContent & custom classes\n          rendered.contentDOM.className = mergeCSSClasses(\n            rendered.contentDOM.className,\n            styles.inlineContent,\n            inlineContentDOMAttributes.class,\n          )\n        }\n        // Add elements to blockContent\n        blockContent.appendChild(rendered.dom)\n\n        return 'contentDOM' in rendered\n          ? {\n              dom: blockContent,\n              contentDOM: rendered.contentDOM,\n            }\n          : {\n              dom: blockContent,\n            }\n      }\n    },\n  })\n\n  return {\n    node: node as TipTapNode<BType>,\n    propSchema: blockConfig.propSchema,\n  }\n}\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/Blocks/api/blockTypes.ts",
    "content": "/** Define the main block types * */\nimport { Node, NodeConfig } from '@tiptap/core'\nimport { ParseRule } from '@tiptap/pm/model'\nimport { DefaultBlockSchema } from './defaultBlocks'\nimport { InlineContent, PartialInlineContent } from './inlineContentTypes'\nimport { BlockNoteEditor } from '../../../BlockNoteEditor'\n\nexport type BlockNoteDOMElement = 'editor' | 'blockContainer' | 'blockGroup' | 'blockContent' | 'inlineContent'\n\nexport type BlockNoteDOMAttributes = Partial<{\n  [DOMElement in BlockNoteDOMElement]: Record<string, string>\n}>\n\n// A configuration for a TipTap node, but with stricter type constraints on the\n// \"name\" and \"group\" properties. The \"name\" property is now always a string\n// literal type, and the \"blockGroup\" property cannot be configured as it should\n// always be \"blockContent\". Used as the parameter in `createTipTapNode`.\nexport type TipTapNodeConfig<\n  Name extends string,\n  Options extends {\n    domAttributes?: BlockNoteDOMAttributes\n  } = {\n    domAttributes?: BlockNoteDOMAttributes\n  },\n  Storage = any,\n> = {\n  [K in keyof NodeConfig<Options, Storage>]: K extends 'name'\n    ? Name\n    : K extends 'group'\n      ? never\n      : NodeConfig<Options, Storage>[K]\n}\n\n// A TipTap node with stricter type constraints on the \"name\" and \"group\"\n// properties. The \"name\" property is now a string literal type, and the\n// \"blockGroup\" property is now \"blockContent\". Returned by `createTipTapNode`.\nexport type TipTapNode<\n  Name extends string,\n  Options extends {\n    domAttributes?: BlockNoteDOMAttributes\n  } = {\n    domAttributes?: BlockNoteDOMAttributes\n  },\n  Storage = any,\n> = Node<Options, Storage> & {\n  name: Name\n  group: 'blockContent'\n}\n\n// Defines a single prop spec, which includes the default value the prop should\n// take and possible values it can take.\nexport type PropSpec = {\n  values?: readonly string[]\n  default: string\n}\n\n// Defines multiple block prop specs. The key of each prop is the name of the\n// prop, while the value is a corresponding prop spec. This should be included\n// in a block config or schema. From a prop schema, we can derive both the props'\n// internal implementation (as TipTap node attributes) and the type information\n// for the external API.\nexport type PropSchema = Record<string, PropSpec>\n\n// Defines Props objects for use in Block objects in the external API. Converts\n// each prop spec into a union type of its possible values, or a string if no\n// values are specified.\nexport type Props<PSchema extends PropSchema> = {\n  [PType in keyof PSchema]: PSchema[PType]['values'] extends readonly string[]\n    ? PSchema[PType]['values'][number]\n    : string\n}\n\n// Defines the config for a single block. Meant to be used as an argument to\n// `createBlockSpec`, which will create a new block spec from it. This is the\n// main way we expect people to create custom blocks as consumers don't need to\n// know anything about the TipTap API since the associated nodes are created\n// automatically.\nexport type BlockConfig<\n  Type extends string,\n  PSchema extends PropSchema,\n  ContainsInlineContent extends boolean,\n  BSchema extends BlockSchema,\n  BParseRules extends ParseRule[],\n> = {\n  // Attributes to define block in the API as well as a TipTap node.\n  type: Type\n  readonly propSchema: PSchema\n\n  // Additional attributes to help define block as a TipTap node.\n  containsInlineContent: ContainsInlineContent\n  render: (\n    /**\n     * The custom block to render\n     */\n    block: SpecificBlock<BSchema & { [k in Type]: BlockSpec<Type, PSchema> }, Type>,\n    /**\n     * The BlockNote editor instance\n     * This is typed generically. If you want an editor with your custom schema, you need to\n     * cast it manually, e.g.: `const e = editor as BlockNoteEditor<typeof mySchema>;`\n     */\n    editor: BlockNoteEditor<BSchema>,\n    // (note) if we want to fix the manual cast, we need to prevent circular references and separate block definition and render implementations\n    // or allow manually passing <BSchema>, but that's not possible without passing the other generics because Typescript doesn't support partial inferred generics\n  ) => ContainsInlineContent extends true\n    ? {\n        dom: HTMLElement\n        contentDOM: HTMLElement\n      }\n    : {\n        dom: HTMLElement\n      }\n\n  parseHTML?: BParseRules\n}\n\n// Defines a single block spec, which includes the props that the block has and\n// the TipTap node used to implement it. Usually created using `createBlockSpec`\n// though it can also be defined from scratch by providing your own TipTap node,\n// allowing for more advanced custom blocks.\nexport type BlockSpec<Type extends string, PSchema extends PropSchema> = {\n  readonly propSchema: PSchema\n  node: TipTapNode<Type, any>\n}\n\n// Utility type. For a given object block schema, ensures that the key of each\n// block spec matches the name of the TipTap node in it.\nexport type TypesMatch<Blocks extends Record<string, BlockSpec<string, PropSchema>>> = Blocks extends {\n  [Type in keyof Blocks]: Type extends string\n    ? Blocks[Type] extends BlockSpec<Type, PropSchema>\n      ? Blocks[Type]\n      : never\n    : never\n}\n  ? Blocks\n  : never\n\n// Defines multiple block specs. Also ensures that the key of each block schema\n// is the same as name of the TipTap node in it. This should be passed in the\n// `blocks` option of the BlockNoteEditor. From a block schema, we can derive\n// both the blocks' internal implementation (as TipTap nodes) and the type\n// information for the external API.\nexport type BlockSchema = TypesMatch<Record<string, BlockSpec<string, PropSchema>>>\n\n// Converts each block spec into a Block object without children. We later merge\n// them into a union type and add a children property to create the Block and\n// PartialBlock objects we use in the external API.\ntype BlocksWithoutChildren<BSchema extends BlockSchema> = {\n  [BType in keyof BSchema]: {\n    id: string\n    type: BType\n    props: Props<BSchema[BType]['propSchema']>\n    content: InlineContent[]\n  }\n}\n\n// Converts each block spec into a Block object without children, merges them\n// into a union type, and adds a children property\nexport type Block<BSchema extends BlockSchema = DefaultBlockSchema> =\n  BlocksWithoutChildren<BSchema>[keyof BlocksWithoutChildren<BSchema>] & {\n    children: Block<BSchema>[]\n  }\n\nexport type SpecificBlock<\n  BSchema extends BlockSchema,\n  BlockType extends keyof BSchema,\n> = BlocksWithoutChildren<BSchema>[BlockType] & {\n  children: Block<BSchema>[]\n}\n\n// Same as BlockWithoutChildren, but as a partial type with some changes to make\n// it easier to create/update blocks in the editor.\ntype PartialBlocksWithoutChildren<BSchema extends BlockSchema> = {\n  [BType in keyof BSchema]: Partial<{\n    id: string\n    type: BType\n    props: Partial<Props<BSchema[BType]['propSchema']>>\n    content: PartialInlineContent[] | string\n  }>\n}\n\n// Same as Block, but as a partial type with some changes to make it easier to\n// create/update blocks in the editor.\nexport type PartialBlock<BSchema extends BlockSchema = DefaultBlockSchema> =\n  PartialBlocksWithoutChildren<BSchema>[keyof PartialBlocksWithoutChildren<BSchema>] &\n    Partial<{\n      children: PartialBlock<BSchema>[]\n    }>\n\nexport type BlockIdentifier = { id: string } | string\nexport type BlockChildrenType = 'group' | 'ol' | 'ul' | 'div' | 'blockquote'\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/Blocks/api/cursorPositionTypes.ts",
    "content": "import { Block, BlockSchema } from './blockTypes'\n\nexport type TextCursorPosition<BSchema extends BlockSchema> = {\n  block: Block<BSchema>\n  prevBlock: Block<BSchema> | undefined\n  nextBlock: Block<BSchema> | undefined\n}\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/Blocks/api/defaultBlocks.ts",
    "content": "import HeadingBlockContent from '../nodes/BlockContent/HeadingBlockContent/HeadingBlockContent'\nimport BulletListItemBlockContent from '../nodes/BlockContent/ListItemBlockContent/BulletListItemBlockContent/BulletListItemBlockContent'\nimport NumberedListItemBlockContent from '../nodes/BlockContent/ListItemBlockContent/NumberedListItemBlockContent/NumberedListItemBlockContent'\nimport ParagraphBlockContent from '../nodes/BlockContent/ParagraphBlockContent/ParagraphBlockContent'\nimport { PropSchema, TypesMatch } from './blockTypes'\n\nexport const defaultProps = {\n  textAlignment: {\n    default: 'left' as const,\n    values: ['left', 'center', 'right', 'justify'] as const,\n  },\n  diff: {\n    default: 'null' as const,\n    values: ['deleted', 'added', 'updated', 'null'] as const,\n  },\n  childrenType: {\n    default: 'Group' as const,\n    values: ['Group', 'Unordered', 'Ordered', 'Blockquote'] as const,\n  },\n  listLevel: {\n    default: '1' as const,\n  },\n} satisfies PropSchema\n\nexport type DefaultProps = typeof defaultProps\n\nexport const defaultBlockSchema = {\n  paragraph: {\n    propSchema: {\n      ...defaultProps,\n      type: { default: 'p' },\n    },\n    node: ParagraphBlockContent,\n  },\n  heading: {\n    propSchema: {\n      ...defaultProps,\n      level: { default: '2', values: ['1', '2', '3'] as const },\n    },\n    node: HeadingBlockContent,\n  },\n  bulletListItem: {\n    propSchema: defaultProps,\n    node: BulletListItemBlockContent,\n  },\n  numberedListItem: {\n    propSchema: defaultProps,\n    node: NumberedListItemBlockContent,\n  },\n} as const\n\nexport type DefaultBlockSchema = TypesMatch<typeof defaultBlockSchema>\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/Blocks/api/inlineContentTypes.ts",
    "content": "export type Styles = {\n  bold?: true\n  italic?: true\n  underline?: true\n  strike?: true\n  code?: true\n  textColor?: string\n  backgroundColor?: string\n}\n\nexport type ToggledStyle = {\n  [K in keyof Styles]-?: Required<Styles>[K] extends true ? K : never\n}[keyof Styles]\n\nexport type ColorStyle = {\n  [K in keyof Styles]-?: Required<Styles>[K] extends string ? K : never\n}[keyof Styles]\n\nexport type StyledText = {\n  type: 'text'\n  text: string\n  styles: Styles\n}\n\nexport type BNLink = {\n  type: 'link'\n  href: string\n  content: StyledText[]\n}\n\nexport type InlineEmbed = {\n  type: 'inline-embed'\n  link: string\n}\n\nexport type PartialLink = Omit<BNLink, 'content'> & {\n  content: string | BNLink['content']\n}\n\nexport type InlineContent = StyledText | BNLink | InlineEmbed\nexport type PartialInlineContent = StyledText | PartialLink\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/Blocks/api/selectionTypes.ts",
    "content": "import { Block, BlockSchema } from './blockTypes'\n\nexport type Selection<BSchema extends BlockSchema> = {\n  blocks: Block<BSchema>[]\n}\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/Blocks/api/serialization.ts",
    "content": "import { Extension } from '@tiptap/core'\nimport { DOMSerializer, Schema } from 'prosemirror-model'\nimport { Plugin } from 'prosemirror-state'\n\nconst customBlockSerializer = (schema: Schema) => {\n  const defaultSerializer = DOMSerializer.fromSchema(schema)\n\n  return new DOMSerializer(\n    {\n      ...defaultSerializer.nodes,\n      // TODO: If a serializer is defined in the config for a custom block, it\n      //  should be added here. We still need to figure out how the serializer\n      //  should be defined in the custom blocks API though, and implement that,\n      //  before we can do this.\n    },\n    defaultSerializer.marks,\n  )\n}\n\nconst CustomBlockSerializerExtension = Extension.create({\n  addProseMirrorPlugins() {\n    return [\n      new Plugin({\n        props: {\n          clipboardSerializer: customBlockSerializer(this.editor.schema),\n        },\n      }),\n    ]\n  },\n})\n\nexport default CustomBlockSerializerExtension\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/Blocks/helpers/findBlock.ts",
    "content": "import { findParentNode } from '@tiptap/core'\n\nconst findBlock = findParentNode((node) => node.type.name === 'blockContainer')\n\nexport default findBlock\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/Blocks/helpers/getBlockInfoFromPos.ts",
    "content": "import { Node, NodeType } from 'prosemirror-model'\n\nexport type BlockInfoWithoutPositions = {\n  id: string\n  node: Node\n  contentNode: Node\n  contentType: NodeType\n  numChildBlocks: number\n}\n\nexport type BlockInfo = BlockInfoWithoutPositions & {\n  startPos: number\n  endPos: number\n  depth: number\n}\n\n/**\n * Helper function for `getBlockInfoFromPos`, returns information regarding\n * provided blockContainer node.\n * @param blockContainer The blockContainer node to retrieve info for.\n */\nexport function getBlockInfo(blockContainer: Node): BlockInfoWithoutPositions {\n  const id = blockContainer.attrs.id\n  const contentNode = blockContainer.firstChild!\n  const contentType = contentNode.type\n  const numChildBlocks = blockContainer.childCount === 2 ? blockContainer.lastChild!.childCount : 0\n\n  return {\n    id,\n    node: blockContainer,\n    contentNode,\n    contentType,\n    numChildBlocks,\n  }\n}\n\n/**\n *\n * Retrieves information regarding the nearest blockContainer node in a\n * ProseMirror doc, relative to a position.\n * @param doc The ProseMirror doc.\n * @param pos An integer position.\n * @returns A BlockInfo object for the nearest blockContainer node.\n */\nexport function getBlockInfoFromPos(doc: Node, pos: number): BlockInfo {\n  // If the position is outside the outer block group, we need to move it to the\n  // nearest block.\n  const outerBlockGroupStartPos = 1\n  const outerBlockGroupEndPos = doc.nodeSize - 2\n  if (pos <= outerBlockGroupStartPos) {\n    pos = outerBlockGroupStartPos + 1\n\n    while (doc.resolve(pos).parent.type.name !== 'blockContainer' && pos < outerBlockGroupEndPos) {\n      pos++\n    }\n  } else if (pos >= outerBlockGroupEndPos) {\n    pos = outerBlockGroupEndPos - 1\n\n    while (doc.resolve(pos).parent.type.name !== 'blockContainer' && pos > outerBlockGroupStartPos) {\n      pos--\n    }\n  }\n\n  // This gets triggered when a node selection on a block is active, i.e. when\n  // you drag and drop a block.\n  if (doc.resolve(pos).parent.type.name === 'blockGroup') {\n    pos++\n  }\n\n  const $pos = doc.resolve(pos)\n\n  const maxDepth = $pos.depth\n  let node = $pos.node(maxDepth)\n  let depth = maxDepth\n\n  // eslint-disable-next-line no-constant-condition\n  while (true) {\n    if (depth < 0) {\n      throw new Error(\n        'Could not find blockContainer node. This can only happen if the underlying BlockNote schema has been edited.',\n      )\n    }\n\n    if (node.type.name === 'blockContainer') {\n      break\n    }\n\n    depth -= 1\n    node = $pos.node(depth)\n  }\n\n  const { id, contentNode, contentType, numChildBlocks } = getBlockInfo(node)\n\n  const startPos = $pos.start(depth)\n  const endPos = $pos.end(depth)\n\n  return {\n    id,\n    node,\n    contentNode,\n    contentType,\n    numChildBlocks,\n    startPos,\n    endPos,\n    depth,\n  }\n}\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/Blocks/helpers/getGroupInfoFromPos.ts",
    "content": "import { Node, ResolvedPos } from '@tiptap/pm/model'\nimport { EditorState } from 'prosemirror-state'\n\nexport type GroupInfo = {\n  group: Node\n  container?: Node\n  depth: number\n  level: number\n  $pos: ResolvedPos\n}\n\nexport function getGroupInfoFromPos(pos: number, state: EditorState): GroupInfo {\n  const $pos = state.doc.resolve(pos)\n  const maxDepth = $pos.depth\n  // Set group to first node found at position\n  let group = $pos.node(maxDepth)\n  let container\n  let depth = maxDepth\n\n  // Find block group, block container and depth it is at\n  while (depth >= 0 && group.type.name !== 'blockGroup') {\n    if (group.type.name === 'blockContainer') {\n      container = group\n    }\n\n    depth -= 1\n    group = $pos.node(depth)\n  }\n\n  return {\n    group,\n    container,\n    depth,\n    level: Math.ceil((maxDepth - 1) / 2),\n    $pos,\n  }\n}\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/Blocks/index.ts",
    "content": "import { Node } from '@tiptap/core'\n\nexport { BlockContainer } from './nodes/BlockContainer'\nexport { default as BlockGroup } from './nodes/BlockGroup'\nexport const Doc = Node.create({\n  name: 'doc',\n  topNode: true,\n  content: 'blockGroup',\n})\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/Blocks/nodes/Block.module.css",
    "content": "/*\nBASIC STYLES\n*/\n\n.blockOuter {\n  line-height: 1.5;\n  transition: margin 0.2s;\n  /* padding-left: 0.5em; */\n}\n\n/*Ensures blocks & block content spans editor width*/\n.block {\n  display: flex;\n  flex-direction: column;\n  position: relative;\n}\n\n/*Ensures block content inside React node views spans editor width*/\n.reactNodeViewRenderer {\n  display: flex;\n  flex-grow: 1;\n}\n\n.blockContent {\n  padding: 12px 0 3px 0;\n  flex-grow: 1;\n  transition: font-size 0.2s;\n  max-width: 100%;\n  max-height: 100%;\n  /*\n  because the content elements are display: block\n  we use flex to position them next to list markers\n  */\n}\n\n.blockContent::before {\n  /* content: \"\"; */\n  transition: all 0.2s;\n  /*margin: 0px;*/\n}\n\n/*\nNESTED BLOCKS\n*/\n\n.blockGroup .blockGroup {\n  margin-left: 1.5em;\n}\n\n.blockGroup .blockGroup > .blockOuter {\n  position: relative;\n}\n\n.blockGroup .blockGroup > .blockOuter:not([data-prev-depth-changed])::before {\n  content: ' ';\n  display: inline;\n  position: absolute;\n  left: -20px;\n  height: 100%;\n  transition: all 0.2s 0.1s;\n}\n\n.blockGroup[data-list-type='Blockquote'] {\n  border-left: 3px solid var(--color8);\n  padding-left: 15px;\n  margin: 1em 0;\n  /* font-style: italic; */\n}\n.blockGroup[data-list-type='ul'],\n.blockGroup[data-list-type='ol'] {\n  margin-top: 0;\n  margin-bottom: 0;\n  padding: 0;\n}\n\n.blockGroup[data-list-type='ul'] {\n  margin-left: 1em;\n  list-style-type: disc;\n}\n\n.blockGroup[data-list-level='2'] {\n  list-style-type: circle;\n}\n\n.blockGroup[data-list-level='3'] {\n  list-style-type: square;\n}\n\n.blockGroup[data-list-type='ol'] {\n  margin-left: 1em;\n  list-style-type: decimal;\n}\n\n.blockGroup[data-list-type='ul'] > .blockOuter {\n  display: list-item !important;\n}\n\n.blockGroup[data-list-type='ol'] > .blockOuter {\n  display: list-item !important;\n}\n\n.blockGroup[data-list-type='ul'] > span[data-decoration-type='link-dropdown'] {\n  display: list-item !important;\n}\n\n.blockGroup[data-list-type='ol'] > span[data-decoration-type='link-dropdown'] {\n  display: list-item !important;\n}\n\n.inlineContent {\n  font-size: 0.9em;\n  /* font-family:\n    'Inter',\n    'SF Pro Display',\n    -apple-system,\n    BlinkMacSystemFont,\n    'Open Sans',\n    'Segoe UI',\n    'Roboto',\n    'Oxygen',\n    'Ubuntu',\n    'Cantarell',\n    'Fira Sans',\n    'Droid Sans',\n    'Helvetica Neue',\n    sans-serif; */\n  font-family: Georgia, serif;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n\n/* [data-theme='light']\n  .blockGroup\n  .blockGroup\n  > .blockOuter:not([data-prev-depth-changed])::before {\n  border-left: 1px solid #cccccc;\n}\n\n[data-theme='dark']\n  .blockGroup\n  .blockGroup\n  > .blockOuter:not([data-prev-depth-changed])::before {\n  border-left: 1px solid #999999;\n} */\n\n.blockGroup .blockGroup > .blockOuter[data-prev-depth-change='-2']::before {\n  height: 0;\n}\n\n/* NESTED BLOCK ANIMATIONS (change in indent) */\n\n/* [data-prev-depth-change='1'] {\n  --x: 1;\n}\n[data-prev-depth-change='2'] {\n  --x: 2;\n}\n[data-prev-depth-change='3'] {\n  --x: 3;\n}\n[data-prev-depth-change='4'] {\n  --x: 4;\n}\n[data-prev-depth-change='5'] {\n  --x: 5;\n}\n\n[data-prev-depth-change='-1'] {\n  --x: -1;\n}\n[data-prev-depth-change='-2'] {\n  --x: -2;\n}\n[data-prev-depth-change='-3'] {\n  --x: -3;\n}\n[data-prev-depth-change='-4'] {\n  --x: -4;\n}\n[data-prev-depth-change='-5'] {\n  --x: -5;\n} */\n\n.blockOuter[data-prev-depth-change] {\n  margin-left: calc(10px * var(--x));\n}\n\n.blockOuter[data-prev-depth-change] .blockOuter[data-prev-depth-change] {\n  margin-left: 0;\n}\n\n/* HEADINGS*/\n[data-level='1'],\n[data-content-type='heading'] {\n  --level: 32px;\n}\n[data-level='2'],\n[data-content-type='heading'] [data-content-type='heading'] {\n  --level: 24px;\n}\n[data-level='3'] {\n  --level: 22px;\n}\n\n[data-level='4'] {\n  --level: 20px;\n}\n\n[data-level='5'] {\n  --level: 18px;\n}\n\n[data-level='6'] {\n  --level: 18px;\n}\n\n/*\n[data-prev-level='1'] {\n  --prev-level: 32px;\n}\n[data-prev-level='2'] {\n  --prev-level: 24px;\n}\n[data-prev-level='3'] {\n  --prev-level: 22px;\n}\n\n[data-prev-level='4'] {\n  --prev-level: 20px;\n}\n\n[data-prev-level='4'] {\n  --prev-level: 18px;\n}\n\n[data-prev-level='4'] {\n  --prev-level: 18px;\n} */\n\n/* .blockOuter[data-prev-type='heading'] > .block .blockContent {\n  font-size: var(--prev-level);\n  font-weight: bold;\n} */\n\n[data-content-type='paragraph'] {\n  font-size: 1rem;\n}\n\n.blockOuter:not([data-prev-type]) > .block .blockContent[data-content-type='heading'] {\n  font-size: var(--level);\n  line-height: 1.2;\n  /* margin-top: 0.6em; */\n  font-weight: bold;\n}\n\n/* IMAGE PLACEHOLDER */\n.blockContent[data-content-type='imagePlaceholder'] {\n  background-color: var(--color4);\n  border-color: var(--color4);\n  border-width: 2px;\n  border-radius: 5px;\n  overflow: 'hidden';\n  padding: 16px;\n  margin-top: 12px;\n  outline-width: 0;\n}\n\n.blockContent {\n  margin-top: 4px;\n}\n\n/* CODE BLOCK */\n.blockContent[data-content-type='code-block'] {\n  /* background-color: var(--color4); */\n  border-radius: 6px;\n  overflow: auto;\n  /* margin-left: -16px;\n  margin-right: -16px; */\n  position: 'relative';\n}\n\n.blockContent[data-content-type='code-block'] code {\n  font-family: 'ui-monospace', 'SFMono-Regular', 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace;\n  font-size: 0.65em;\n  white-space: pre;\n  padding: 0;\n}\n\n.blockContent[data-content-type='code-block'] pre {\n  background-color: var(--color4);\n  color: var(--color12)\n}\n\n/* LISTS */\n\n.blockContent::before {\n  margin-right: 0;\n  content: '';\n}\n\n/* Ordered */\n[data-content-type='numberedListItem'] {\n  --index: attr(data-index);\n}\n\n[data-prev-type='numberedListItem'] {\n  --prev-index: attr(data-prev-index);\n}\n\n.blockOuter[data-prev-type='numberedListItem']:not([data-prev-index='none']) > .block > .blockContent::before {\n  margin-right: 1.2em;\n  content: var(--prev-index) '.';\n}\n\n.blockOuter:not([data-prev-type]) > .block > .blockContent[data-content-type='numberedListItem']::before {\n  margin-right: 1.2em;\n  content: var(--index) '.';\n}\n\n/* Unordered */\n/* No list nesting */\n.blockOuter[data-prev-type='bulletListItem'] > .block > .blockContent::before {\n  margin-right: 1.2em;\n  content: '•';\n}\n\n.blockOuter:not([data-prev-type]) > .block > .blockContent[data-content-type='bulletListItem']::before {\n  margin-right: 1.2em;\n  content: '•';\n}\n\n/* 1 level of list nesting */\n[data-content-type='bulletListItem']\n  ~ .blockGroup\n  > .blockOuter[data-prev-type='bulletListItem']\n  > .block\n  > .blockContent::before {\n  margin-right: 1.2em;\n  content: '◦';\n}\n\n[data-content-type='bulletListItem']\n  ~ .blockGroup\n  > .blockOuter:not([data-prev-type])\n  > .block\n  > .blockContent[data-content-type='bulletListItem']::before {\n  margin-right: 1.2em;\n  content: '◦';\n}\n\n/* 2 levels of list nesting */\n[data-content-type='bulletListItem']\n  ~ .blockGroup\n  [data-content-type='bulletListItem']\n  ~ .blockGroup\n  > .blockOuter[data-prev-type='bulletListItem']\n  > .block\n  > .blockContent::before {\n  margin-right: 1.2em;\n  content: '▪';\n}\n\n[data-content-type='bulletListItem']\n  ~ .blockGroup\n  [data-content-type='bulletListItem']\n  ~ .blockGroup\n  > .blockOuter:not([data-prev-type])\n  > .block\n  > .blockContent[data-content-type='bulletListItem']::before {\n  margin-right: 1.2em;\n  content: '▪';\n}\n\n/* PLACEHOLDERS*/\n\n.isEmpty .inlineContent:before,\n.isFilter .inlineContent:before {\n  /*float: left; */\n  content: '';\n  pointer-events: none;\n  height: 0;\n  /* width: 0; */\n  position: absolute;\n  font-style: italic;\n}\n\n.isEmpty .inlineContent:before,\n.isFilter .inlineContent:before {\n  opacity: 0.5;\n}\n\n/* [data-theme='dark'] .isEmpty .inlineContent:before,\n.isFilter .inlineContent:before {\n  color: #999999;\n} */\n\n/* TODO: would be nicer if defined from code */\n\n.blockContent.isEmpty.hasAnchor .inlineContent:before {\n  font-size: 0.9em;\n  font-family:\n    'Inter',\n    'SF Pro Display',\n    -apple-system,\n    BlinkMacSystemFont,\n    'Open Sans',\n    'Segoe UI',\n    'Roboto',\n    'Oxygen',\n    'Ubuntu',\n    'Cantarell',\n    'Fira Sans',\n    'Droid Sans',\n    'Helvetica Neue',\n    sans-serif;\n  content: \"Enter text or type '/' for commands\";\n}\n\n.blockContent.isFilter.hasAnchor .inlineContent:before {\n  font-family:\n    'Inter',\n    'SF Pro Display',\n    -apple-system,\n    BlinkMacSystemFont,\n    'Open Sans',\n    'Segoe UI',\n    'Roboto',\n    'Oxygen',\n    'Ubuntu',\n    'Cantarell',\n    'Fira Sans',\n    'Droid Sans',\n    'Helvetica Neue',\n    sans-serif;\n  content: 'Type to filter';\n}\n\n.blockContent[data-content-type='heading'].isEmpty.hasAnchor .inlineContent:before {\n  font-family:\n    'Inter',\n    'SF Pro Display',\n    -apple-system,\n    BlinkMacSystemFont,\n    'Open Sans',\n    'Segoe UI',\n    'Roboto',\n    'Oxygen',\n    'Ubuntu',\n    'Cantarell',\n    'Fira Sans',\n    'Droid Sans',\n    'Helvetica Neue',\n    sans-serif;\n  content: 'Heading';\n}\n\n.blockContent[data-content-type='code-block'].isEmpty.hasAnchor .inlineContent:before {\n  font-family:\n    'Inter',\n    'SF Pro Display',\n    -apple-system,\n    BlinkMacSystemFont,\n    'Open Sans',\n    'Segoe UI',\n    'Roboto',\n    'Oxygen',\n    'Ubuntu',\n    'Cantarell',\n    'Fira Sans',\n    'Droid Sans',\n    'Helvetica Neue',\n    sans-serif;\n  content: 'Code Block';\n  line-height: 1.5;\n}\n\n.isEmpty.hasAnchor .blockContent[data-content-type='image'] .inlineContent:before {\n  content: 'Image caption';\n}\n\n[data-content-type='heading'] {\n  font-family:\n    'Inter',\n    'SF Pro Display',\n    -apple-system,\n    BlinkMacSystemFont,\n    'Open Sans',\n    'Segoe UI',\n    'Roboto',\n    'Oxygen',\n    'Ubuntu',\n    'Cantarell',\n    'Fira Sans',\n    'Droid Sans',\n    'Helvetica Neue',\n    sans-serif;\n}\n\n/* TEXT COLORS */\n[data-text-color='gray'] {\n  color: #9b9a97;\n}\n\n[data-text-color='brown'] {\n  color: #64473a;\n}\n\n[data-text-color='red'] {\n  color: #e03e3e;\n}\n\n[data-text-color='orange'] {\n  color: #d9730d;\n}\n\n[data-text-color='yellow'] {\n  color: #dfab01;\n}\n\n[data-text-color='green'] {\n  color: #4d6461;\n}\n\n[data-text-color='blue'] {\n  color: #0b6e99;\n}\n\n[data-text-color='purple'] {\n  color: #6940a5;\n}\n\n[data-text-color='pink'] {\n  color: #ad1a72;\n}\n\n/* BACKGROUND COLORS */\n[data-background-color='gray'] {\n  background-color: #ebeced;\n}\n\n[data-background-color='brown'] {\n  background-color: #e9e5e3;\n}\n\n[data-background-color='red'] {\n  background-color: #fbe4e4;\n}\n\n[data-background-color='orange'] {\n  background-color: #faebdd;\n}\n\n[data-background-color='yellow'] {\n  background-color: #fbf3db;\n}\n\n[data-background-color='green'] {\n  background-color: #ddedea;\n}\n\n[data-background-color='blue'] {\n  background-color: #ddebf1;\n}\n\n[data-background-color='purple'] {\n  background-color: #eae4f2;\n}\n\n[data-background-color='pink'] {\n  background-color: #f4dfeb;\n}\n\n/* TEXT ALIGNMENT */\n[data-text-alignment='left'] {\n  text-align: left;\n}\n\n[data-text-alignment='center'] {\n  text-align: center;\n}\n\n[data-text-alignment='right'] {\n  text-align: right;\n}\n\n[data-text-alignment='justify'] {\n  text-align: justify;\n}\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/Blocks/nodes/BlockAttributes.ts",
    "content": "// Object containing all possible block attributes.\nconst BlockAttributes: Record<string, string> = {\n  blockColor: 'data-block-color',\n  blockStyle: 'data-block-style',\n  id: 'data-id',\n  depth: 'data-depth',\n  depthChange: 'data-depth-change',\n}\n\nexport default BlockAttributes\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/Blocks/nodes/BlockContainer.ts",
    "content": "import { mergeAttributes, Node } from '@tiptap/core'\nimport { Fragment, Node as PMNode, Slice } from 'prosemirror-model'\nimport { EditorState, NodeSelection, Plugin, PluginKey, TextSelection } from 'prosemirror-state'\nimport { Decoration, DecorationSet } from 'prosemirror-view'\nimport { ResolvedPos } from '@tiptap/pm/model'\nimport { EditorView } from '@tiptap/pm/view'\nimport { blockToNode, inlineContentToNodes } from '../../../api/nodeConversions/nodeConversions'\n\nimport { BlockChildrenType, BlockNoteDOMAttributes, BlockSchema, PartialBlock } from '../api/blockTypes'\nimport { mergeCSSClasses } from '../../../shared/utils'\nimport { getBlockInfoFromPos } from '../helpers/getBlockInfoFromPos'\nimport { getGroupInfoFromPos } from '../helpers/getGroupInfoFromPos'\nimport styles from './Block.module.css'\nimport BlockAttributes from './BlockAttributes'\n\nconst SelectionPluginKey = new PluginKey('selectionPluginKey')\nconst ClickSelectionPluginKey = new PluginKey('clickSelectionPluginKey')\nconst PastePluginKey = new PluginKey('pastePluginKey')\nconst headingLinePluginKey = new PluginKey('HeadingLinePlugin')\n\nconst SelectionPlugin = new Plugin({\n  key: SelectionPluginKey,\n  state: {\n    init() {\n      return DecorationSet.empty\n    },\n    apply(tr, oldState) {\n      return tr.getMeta(SelectionPluginKey) || oldState\n    },\n  },\n  props: {\n    decorations(state) {\n      return this.getState(state)\n    },\n  },\n})\n\nconst ClickSelectionPlugin = new Plugin({\n  key: ClickSelectionPluginKey,\n  props: {\n    handleDOMEvents: {\n      mousedown(view, event) {\n        if (event.shiftKey && event.button === 0) {\n          const { state } = view\n          const editorBoundingBox = (view.dom.firstChild! as HTMLElement).getBoundingClientRect()\n          const coords = {\n            left: editorBoundingBox.left + editorBoundingBox.width / 2, // take middle of editor\n            top: event.clientY,\n          }\n          const pos = view.posAtCoords(coords)\n          if (!pos) {\n            return undefined\n          }\n          const { selection } = state\n          const selectedPos = state.doc.resolve(selection.from)\n          const nodePos = state.doc.resolve(pos.pos)\n          if (selectedPos.start() === selection.from && pos.pos === nodePos.end()) {\n            const decoration = Decoration.widget(nodePos.pos, () => {\n              const span = document.createElement('span')\n              span.style.backgroundColor = 'blue'\n              span.style.width = '10px'\n              span.style.height = '10px'\n              return span\n            })\n            const decorationSet = DecorationSet.create(state.doc, [decoration])\n            view.dispatch(state.tr.setMeta(SelectionPluginKey, decorationSet))\n          }\n          return false\n        }\n        return false\n      },\n    },\n  },\n})\n\nconst PastePlugin = new Plugin({\n  key: PastePluginKey,\n  props: {\n    handlePaste: (view, event) => {\n      if (!event.clipboardData) {\n        return false\n      }\n\n      const { state } = view\n      let { tr } = state\n      const { selection } = state\n      const { $from, $to } = selection\n\n      const targetNode = state.doc.resolve($from.pos).parent\n\n      if (targetNode.type.name === 'image') {\n        tr = tr.insertText(event.clipboardData.getData('text/plain'), $from.pos, $to.pos)\n        view.dispatch(tr)\n        return true\n      }\n\n      return false\n    },\n  },\n})\n\nfunction getNearestHeadingFromPos(state: EditorState, pos: number) {\n  const $pos = state.doc.resolve(pos)\n  const maxDepth = $pos.depth\n  let group = $pos.node(maxDepth)\n  let heading = group.firstChild\n  let depth = maxDepth\n\n  if (maxDepth > 3) {\n    while (depth >= 0 && group.type.name !== 'blockContainer' && heading?.type.name !== 'heading') {\n      depth -= 1\n      group = $pos.node(depth)\n      heading = group.firstChild\n    }\n    return {\n      depth,\n      groupStartPos: $pos.start(depth),\n      heading,\n      group,\n      $pos,\n    }\n  }\n\n  return null\n}\n\nclass HeadingLinePlugin {\n  private line: HTMLElement\n\n  constructor(view: EditorView) {\n    this.line = document.createElement('div')\n    this.line.style.transition = 'all 0.15s ease-in-out'\n    this.line.style.pointerEvents = 'none'\n    this.line.style.display = ''\n    this.line.style.opacity = '0'\n    view.dom.parentNode?.appendChild(this.line)\n\n    this.update(view, null)\n  }\n\n  update(view: EditorView, lastState: EditorState | null) {\n    const state = view.state\n    // Don't do anything if the document/selection didn't change\n    if (lastState && lastState.doc.eq(state.doc) && lastState.selection.eq(state.selection)) return\n\n    const res = getNearestHeadingFromPos(state, state.selection.from)\n\n    if (res && res.heading?.type.name === 'heading') {\n      const { node } = view.domAtPos(res.groupStartPos)\n\n      const rect = (node as HTMLElement).getBoundingClientRect()\n      const editorRect = view.dom.getBoundingClientRect()\n      const groupPadding = 10\n      const editorPaddingTop = 40\n      this.line.style.position = 'absolute'\n      this.line.style.top = `${rect.top + editorPaddingTop + groupPadding - editorRect.top}px`\n      this.line.style.left = `${rect.left - editorRect.left + groupPadding}px`\n      this.line.style.width = `2.5px`\n      this.line.style.height = `${rect.height - groupPadding * 2}px`\n      this.line.style.backgroundColor = 'var(--brand5)'\n      this.line.style.opacity = '0.4'\n    } else {\n      this.line.style.opacity = '0'\n    }\n  }\n\n  destroy() {\n    this.line.remove()\n  }\n}\n\nconst headingLinePlugin = new Plugin({\n  key: headingLinePluginKey,\n  view(editorView) {\n    return new HeadingLinePlugin(editorView)\n  },\n})\n\nexport function getParentBlockFromPos(state: EditorState, pos: number) {\n  const $pos = state.doc.resolve(pos)\n  const depth = $pos.depth\n  if (depth > 3) {\n    const parent = $pos.node(depth - 3)\n    const parentGroup = $pos.node(depth - 2)\n    const parentPos = $pos.start(depth - 3)\n    return {\n      parentGroup,\n      parentBlock: parent.firstChild,\n      parentPos,\n      depth,\n      $pos,\n    }\n  }\n\n  return null\n}\ndeclare module '@tiptap/core' {\n  interface Commands<ReturnType> {\n    block: {\n      BNCreateBlock: (pos: number) => ReturnType\n      BNDeleteBlock: (posInBlock: number) => ReturnType\n      BNMergeBlocks: (posBetweenBlocks: number) => ReturnType\n      BNSplitBlock: (posInBlock: number, keepType: boolean) => ReturnType\n      BNSplitHeadingBlock: (posInBlock: number) => ReturnType\n      BNUpdateBlock: <BSchema extends BlockSchema>(posInBlock: number, block: PartialBlock<BSchema>) => ReturnType\n      BNCreateOrUpdateBlock: <BSchema extends BlockSchema>(\n        posInBlock: number,\n        block: PartialBlock<BSchema>,\n      ) => ReturnType\n      UpdateGroupChildren: (\n        group: PMNode,\n        groupPos: ResolvedPos,\n        groupLevel: number,\n        listType: BlockChildrenType,\n        indent: number,\n      ) => ReturnType\n      UpdateGroup: (\n        posInBlock: number,\n        listType: BlockChildrenType,\n        tab: boolean,\n        // start?: string,\n        isSank?: boolean,\n        turnInto?: boolean,\n      ) => ReturnType\n    }\n  }\n}\n\n/**\n * The main \"Block node\" documents consist of\n */\nexport const BlockContainer = Node.create<{\n  domAttributes?: BlockNoteDOMAttributes\n}>({\n  name: 'blockContainer',\n  group: 'blockContainer',\n  // A block always contains content, and optionally a blockGroup which contains nested blocks\n  content: 'blockContent blockGroup?',\n  // Ensures content-specific keyboard handlers trigger first.\n  priority: 50,\n  defining: true,\n\n  parseHTML() {\n    return [\n      {\n        tag: 'div',\n        getAttrs: (element) => {\n          if (typeof element === 'string') {\n            return false\n          }\n\n          const attrs: Record<string, string> = {}\n          for (const [nodeAttr, HTMLAttr] of Object.entries(BlockAttributes)) {\n            if (element.getAttribute(HTMLAttr)) {\n              attrs[nodeAttr] = element.getAttribute(HTMLAttr)!\n            }\n          }\n\n          if (element.getAttribute('data-node-type') === 'blockContainer') {\n            return attrs\n          }\n\n          return false\n        },\n      },\n    ]\n  },\n\n  renderHTML({ HTMLAttributes }) {\n    const domAttributes = this.options.domAttributes?.blockContainer || {}\n\n    return [\n      'div',\n      mergeAttributes(HTMLAttributes, {\n        class: styles.blockOuter,\n        'data-node-type': 'block-outer',\n      }),\n      [\n        'div',\n        mergeAttributes(\n          {\n            ...domAttributes,\n            class: mergeCSSClasses(styles.block, domAttributes.class),\n            'data-node-type': this.name,\n          },\n          HTMLAttributes,\n        ),\n        0,\n      ],\n    ]\n  },\n\n  addCommands() {\n    return {\n      // Creates a new text block at a given position.\n      BNCreateBlock:\n        (pos) =>\n        ({ state, dispatch }) => {\n          const newBlock = state.schema.nodes.blockContainer.createAndFill()!\n\n          if (dispatch) {\n            state.tr.insert(pos, newBlock)\n          }\n\n          return true\n        },\n      // Deletes a block at a given position.\n      BNDeleteBlock:\n        (posInBlock) =>\n        ({ state, dispatch }) => {\n          const blockInfo = getBlockInfoFromPos(state.doc, posInBlock)\n          if (blockInfo === undefined) {\n            return false\n          }\n\n          const { startPos, endPos } = blockInfo\n\n          if (dispatch) {\n            state.tr.deleteRange(startPos, endPos)\n          }\n\n          return true\n        },\n      // Updates a block at a given position.\n      BNUpdateBlock:\n        (posInBlock, block) =>\n        ({ state, dispatch }) => {\n          const blockInfo = getBlockInfoFromPos(state.doc, posInBlock)\n          if (blockInfo === undefined) {\n            return false\n          }\n\n          const { startPos, endPos, node, contentNode } = blockInfo\n\n          if (dispatch) {\n            // Adds blockGroup node with child blocks if necessary.\n            if (block.children !== undefined && block.children.length > 0) {\n              const childNodes = []\n\n              // Creates ProseMirror nodes for each child block, including their descendants.\n              for (const child of block.children) {\n                childNodes.push(blockToNode(child, state.schema))\n              }\n\n              // Checks if a blockGroup node already exists.\n              if (node.childCount === 2) {\n                // Replaces all child nodes in the existing blockGroup with the ones created earlier.\n                state.tr.replace(\n                  startPos + contentNode.nodeSize + 1,\n                  endPos - 1,\n                  new Slice(Fragment.from(childNodes), 0, 0),\n                )\n              } else {\n                // Inserts a new blockGroup containing the child nodes created earlier.\n                state.tr.insert(startPos + contentNode.nodeSize, state.schema.nodes.blockGroup.create({}, childNodes))\n              }\n            }\n\n            // Replaces the blockContent node's content if necessary.\n            if (block.content !== undefined) {\n              let content: PMNode[] = []\n\n              // Checks if the provided content is a string or InlineContent[] type.\n              if (typeof block.content === 'string') {\n                // Adds a single text node with no marks to the content.\n                content.push(state.schema.text(block.content))\n              } else {\n                // Adds a text node with the provided styles converted into marks to the content, for each InlineContent\n                // object.\n                content = inlineContentToNodes(block.content, state.schema)\n              }\n\n              // Replaces the contents of the blockContent node with the previously created text node(s).\n              state.tr.replace(\n                startPos + 1,\n                startPos + contentNode.nodeSize - 1,\n                new Slice(Fragment.from(content), 0, 0),\n              )\n            }\n\n            // Changes the blockContent node type and adds the provided props as attributes. Also preserves all existing\n            // attributes that are compatible with the new type.\n            state.tr.setNodeMarkup(startPos, block.type === undefined ? undefined : state.schema.nodes[block.type], {\n              ...contentNode.attrs,\n              ...block.props,\n            })\n\n            // Adds all provided props as attributes to the parent blockContainer node too, and also preserves existing\n            // attributes.\n            const providedProps = {\n              ...node.attrs,\n              ...block.props,\n            }\n            state.tr.setNodeMarkup(startPos - 1, undefined, providedProps)\n          }\n\n          return true\n        },\n      // Appends the text contents of a block to the nearest previous block, given a position between them. Children of\n      // the merged block are moved out of it first, rather than also being merged.\n      //\n      // In the example below, the position passed into the function is between Block1 and Block2.\n      //\n      // Block1\n      //    Block2\n      // Block3\n      //    Block4\n      //        Block5\n      //\n      // Becomes:\n      //\n      // Block1\n      //    Block2Block3\n      // Block4\n      //     Block5\n      BNMergeBlocks:\n        (posBetweenBlocks) =>\n        ({ state, dispatch }) => {\n          const nextNodeIsBlock = state.doc.resolve(posBetweenBlocks + 1).node().type.name === 'blockContainer'\n          const prevNodeIsBlock = state.doc.resolve(posBetweenBlocks - 1).node().type.name === 'blockContainer'\n\n          if (!nextNodeIsBlock || !prevNodeIsBlock) {\n            return false\n          }\n\n          const nextBlockInfo = getBlockInfoFromPos(state.doc, posBetweenBlocks + 1)\n\n          const { node, contentNode, startPos, endPos, depth } = nextBlockInfo!\n\n          // Removes a level of nesting all children of the next block by 1 level, if it contains both content and block\n          // group nodes.\n          if (node.childCount === 2) {\n            const childBlocksStart = state.doc.resolve(startPos + contentNode.nodeSize + 1)\n            const childBlocksEnd = state.doc.resolve(endPos - 1)\n            const childBlocksRange = childBlocksStart.blockRange(childBlocksEnd)\n\n            // Moves the block group node inside the block into the block group node that the current block is in.\n            if (dispatch) {\n              state.tr.lift(childBlocksRange!, depth - 1)\n            }\n          }\n\n          let prevBlockEndPos = posBetweenBlocks - 1\n          let prevBlockInfo = getBlockInfoFromPos(state.doc, prevBlockEndPos)\n\n          // Finds the nearest previous block, regardless of nesting level.\n          while (prevBlockInfo!.numChildBlocks > 0) {\n            prevBlockEndPos--\n            prevBlockInfo = getBlockInfoFromPos(state.doc, prevBlockEndPos)\n            if (prevBlockInfo === undefined) {\n              return false\n            }\n          }\n\n          // Deletes next block and adds its text content to the nearest previous block.\n\n          if (dispatch) {\n            dispatch(\n              state.tr\n                .deleteRange(startPos, startPos + contentNode.nodeSize)\n                .replace(prevBlockEndPos - 1, startPos, new Slice(contentNode.content, 0, 0))\n                .scrollIntoView(),\n            )\n\n            state.tr.setSelection(new TextSelection(state.doc.resolve(prevBlockEndPos - 1)))\n          }\n\n          return true\n        },\n      // Splits a block at a given position. Content after the position is moved to a new block below, at the same\n      // nesting level.\n      BNSplitBlock:\n        (posInBlock, keepType) =>\n        ({ state, dispatch }) => {\n          const blockInfo = getBlockInfoFromPos(state.doc, posInBlock)\n          if (blockInfo === undefined) {\n            return false\n          }\n\n          const { contentNode, contentType, startPos, endPos, depth } = blockInfo\n\n          const originalBlockContent = state.doc.cut(startPos + 1, posInBlock)\n          const newBlockContent = state.doc.cut(posInBlock, endPos - 1)\n\n          const newBlock = state.schema.nodes.blockContainer.createAndFill()!\n\n          const newBlockInsertionPos = endPos + 1\n          const newBlockContentPos = newBlockInsertionPos + 2\n\n          if (dispatch) {\n            // Creates a new block. Since the schema requires it to have a content node, a paragraph node is created\n            // automatically, spanning newBlockContentPos to newBlockContentPos + 1.\n            state.tr.insert(newBlockInsertionPos, newBlock)\n\n            // Replaces the content of the newly created block's content node. Doesn't replace the whole content node so\n            // its type doesn't change.\n            state.tr.replace(\n              newBlockContentPos,\n              newBlockContentPos + 1,\n              newBlockContent.content.size > 0\n                ? new Slice(Fragment.from(newBlockContent), depth + 2, depth + 2)\n                : undefined,\n            )\n\n            // Changes the type of the content node. The range doesn't matter as long as both from and to positions are\n            // within the content node.\n            if (keepType) {\n              state.tr.setBlockType(\n                newBlockContentPos,\n                newBlockContentPos,\n                state.schema.node(contentType).type,\n                contentNode.attrs,\n              )\n            }\n\n            // Sets the selection to the start of the new block's content node.\n            state.tr.setSelection(new TextSelection(state.doc.resolve(newBlockContentPos)))\n\n            // Replaces the content of the original block's content node. Doesn't replace the whole content node so its\n            // type doesn't change.\n            state.tr.replace(\n              startPos + 1,\n              endPos - 1,\n              originalBlockContent.content.size > 0\n                ? new Slice(Fragment.from(originalBlockContent), depth + 2, depth + 2)\n                : undefined,\n            )\n          }\n\n          return true\n        },\n      // Splits a block at a given position. Content after the position is moved to a new block below, at the same\n      // nesting level.\n      BNSplitHeadingBlock:\n        (posInBlock) =>\n        ({ state, dispatch }) => {\n          const blockInfo = getBlockInfoFromPos(state.doc, posInBlock)\n          if (blockInfo === undefined) {\n            return false\n          }\n          const { node, startPos, contentNode, depth } = blockInfo\n          if (node.childCount === 1) {\n            setTimeout(() => {\n              this.editor\n                .chain()\n                .deleteSelection()\n                .BNSplitBlock(state.selection.from, false)\n                .UpdateGroup(-1, blockInfo.node.attrs.listType, true)\n                .run()\n            })\n          } else {\n            const originalBlockContent = state.doc.cut(startPos + 1, state.selection.from)\n            const newBlockContent = state.doc.cut(state.selection.from, startPos + contentNode.nodeSize - 1)\n            const newBlock = state.schema.nodes.blockContainer.createAndFill()!\n            const newBlockInsertionPos = startPos + contentNode.nodeSize + 1\n            const newBlockContentPos = newBlockInsertionPos + 2\n\n            if (dispatch) {\n              // Creates a new block. Since the schema requires it to have a content node, a paragraph node is created\n              // automatically, spanning newBlockContentPos to newBlockContentPos + 1.\n              state.tr.insert(newBlockInsertionPos, newBlock)\n\n              // Replaces the content of the newly created block's content node. Doesn't replace the whole content node so\n              // its type doesn't change.\n              state.tr.replace(\n                newBlockContentPos,\n                newBlockContentPos + 1,\n                newBlockContent.content.size > 0\n                  ? new Slice(Fragment.from(newBlockContent), depth + 2, depth + 2)\n                  : undefined,\n              )\n\n              // Sets the selection to the start of the new block's content node.\n              state.tr.setSelection(new TextSelection(state.doc.resolve(newBlockContentPos)))\n\n              state.tr.replace(\n                startPos + 1,\n                startPos + contentNode.nodeSize - 1,\n                originalBlockContent.content.size > 0\n                  ? new Slice(Fragment.from(originalBlockContent), depth + 2, depth + 2)\n                  : undefined,\n              )\n            }\n          }\n          return true\n        },\n      // Updates group's child groups.\n      UpdateGroupChildren:\n        (group, groupPos, groupLevel, listType, indent) =>\n        ({ state, dispatch }) => {\n          if (dispatch) {\n            group.descendants((child, pos) => {\n              // If child is a group, update it's list level attribute\n              if (\n                child.type.name === 'blockGroup'\n                // && child.attrs.listType === listType\n              ) {\n                const $pos = group.resolve(pos)\n                let newLevel: string\n                if (indent > 0) {\n                  const numericLevel = $pos.depth / 2 + groupLevel\n                  newLevel = numericLevel < 4 ? numericLevel.toString() : '3'\n                } else {\n                  const numericLevel = $pos.depth / 2 + groupLevel - 1\n                  newLevel = numericLevel < 4 ? numericLevel.toString() : '3'\n                }\n                const container = state.doc.resolve(groupPos.start() + pos - 1).parent\n                const posAddition = container.type.name === 'blockContainer' ? -1 : 0\n\n                if (newLevel !== child.attrs.listLevel) {\n                  state.tr.setNodeAttribute(groupPos.start() + pos + posAddition, 'listLevel', newLevel)\n                }\n              }\n            })\n            return true\n          }\n          return false\n        },\n      // Updates a block group at a given position.\n      UpdateGroup:\n        (posInBlock, listType, tab, isSank = false, turnInto = false) =>\n        ({ state, dispatch }) => {\n          // Find block group, block container and depth it is at\n          const {\n            group,\n            container,\n            depth,\n            level: groupLevel,\n            $pos,\n          } = getGroupInfoFromPos(posInBlock < 0 ? state.selection.from : posInBlock, state)\n          if (isSank && group.attrs.listType === listType) return true\n\n          // Change group type to div\n          if (group.attrs.listType !== 'div' && listType === 'div' && container) {\n            setTimeout(() => {\n              this.editor\n                .chain()\n                // eslint-disable-next-line @typescript-eslint/no-shadow\n                .command(({ state, dispatch }) => {\n                  if (dispatch) {\n                    // setTimeout(() => {\n                    state.tr.setNodeMarkup($pos.before(depth), null, {\n                      ...group.attrs,\n                      listType: 'Group',\n                      listLevel: '1',\n                    })\n                    // })\n                    return true\n                  }\n                  return false\n                })\n                .UpdateGroupChildren(container, $pos, 2, group.attrs.listType, -1)\n                .run()\n            })\n\n            return true\n          }\n\n          // If block is first block in the document do nothing\n          if (\n            $pos.node(depth - 1).type.name === 'doc' &&\n            container &&\n            group.firstChild?.attrs.id === container.attrs.id\n          )\n            return false\n\n          // If block is not the first in its' group, sink list item and then update group\n          if (group.firstChild && container && group.firstChild.attrs.id !== container.attrs.id && !tab) {\n            setTimeout(() => {\n              this.editor.chain().sinkListItem('blockContainer').UpdateGroup(-1, listType, tab, true).run()\n\n              return true\n            })\n\n            return false\n          }\n\n          // If inserting other list type in another list, sink list item and then update group\n          if (\n            group.attrs.listType !== 'Group' &&\n            group.attrs.listType !== listType &&\n            container &&\n            !tab &&\n            !turnInto &&\n            !isSank\n          ) {\n            setTimeout(() => {\n              this.editor.chain().sinkListItem('blockContainer').UpdateGroup(-1, listType, tab, true).run()\n\n              return true\n            })\n            return false\n          }\n\n          if (dispatch && group.type.name === 'blockGroup') {\n            let level = '1'\n            if (depth > 7) level = '3'\n            else {\n              switch (depth) {\n                case 7:\n                  level = '3'\n                  break\n                case 5:\n                  level = '2'\n                  break\n                default:\n                  break\n              }\n            }\n\n            // start\n            //   ? state.tr.setNodeMarkup($pos.before(depth), null, {\n            //       ...group.attrs,\n            //       listType: listType,\n            //       listLevel: level,\n            //       start: parseInt(start),\n            //     })\n            //   :\n            state.tr.setNodeMarkup($pos.before(depth), null, {\n              ...group.attrs,\n              listType: listType,\n              listLevel: level,\n            })\n\n            if (container) {\n              setTimeout(() => {\n                this.editor.commands.UpdateGroupChildren(container!, $pos, groupLevel, listType, 0)\n              })\n            }\n          }\n\n          return true\n        },\n    }\n  },\n\n  addProseMirrorPlugins() {\n    return [\n      // PreviousBlockTypePlugin(),\n      SelectionPlugin,\n      ClickSelectionPlugin,\n      PastePlugin,\n      headingLinePlugin,\n    ]\n  },\n\n  addKeyboardShortcuts() {\n    // handleBackspace is partially adapted from https://github.com/ueberdosis/tiptap/blob/ed56337470efb4fd277128ab7ef792b37cfae992/packages/core/src/extensions/keymap.ts\n    const handleBackspace = () =>\n      this.editor.commands.first(({ commands }) => [\n        // Deletes the selection if it's not empty.\n        () => commands.deleteSelection(),\n        // Undoes an input rule if one was triggered in the last editor state change.\n        () => commands.undoInputRule(),\n        () =>\n          commands.command(({ state, dispatch }) => {\n            const selectionAtBlockStart = state.selection.$anchor.parentOffset === 0\n            const blockInfo = getBlockInfoFromPos(state.doc, state.selection.from)!\n\n            const isParagraph = blockInfo.contentType.name === 'paragraph'\n            const parentInfo = getParentBlockFromPos(state, state.selection.from)\n\n            if (selectionAtBlockStart && isParagraph && parentInfo) {\n              const { parentBlock, parentGroup, parentPos } = parentInfo\n              const isFirstChild = blockInfo.node.attrs.id === parentGroup.firstChild?.attrs.id\n              const isParentBlockHeading = parentBlock?.type.name === 'heading'\n\n              if (\n                // is the first child of the parent group\n                isFirstChild &&\n                // the parent of the current block is type \"heading\"\n                isParentBlockHeading &&\n                // parentBlock is defined\n                parentBlock\n              ) {\n                const { startPos, node, depth, endPos, contentNode } = blockInfo\n\n                // lift any children of current block (if any)\n                if (node.childCount === 2) {\n                  // the current block has children, we need to re-parent\n                  const childBlocksStart = state.doc.resolve(startPos + contentNode.nodeSize + 1)\n                  const childBlocksEnd = state.doc.resolve(endPos - 1)\n                  const childBlocksRange = childBlocksStart.blockRange(childBlocksEnd)\n\n                  // Moves the block group node inside the block into the block group node that the current block is in.\n                  if (dispatch) {\n                    state.tr.lift(childBlocksRange!, depth - 1)\n                  }\n                }\n\n                // the position in which we are inserting the current block content\n                let parentInsertPos: number = 0\n                if (parentBlock) {\n                  parentInsertPos = parentPos + parentBlock.nodeSize - 1\n                }\n\n                if (dispatch) {\n                  dispatch(\n                    state.tr\n                      // delete the current block content\n                      .deleteRange(startPos, startPos + contentNode.nodeSize)\n                      // insert the current block content into the parent heading\n                      .insert(parentInsertPos, contentNode.content),\n                  )\n\n                  // set the selection to the join between the previous heading content and the new content inserted\n                  // this needs to happen after the transaction above because the document now is \"different\", hence we need to set\n                  // the selection to a new pos.\n                  state.tr.setSelection(new TextSelection(state.doc.resolve(parentInsertPos)))\n                }\n\n                return true\n              }\n            }\n            return false\n          }),\n        // Convert a list into a normal group if the selection is at the start of the list\n        () =>\n          commands.command(({ state, view }) => {\n            const { group, container, depth, $pos } = getGroupInfoFromPos(state.selection.from, state)\n\n            if (group.attrs.listType !== 'div' && $pos.pos === $pos.start()) {\n              // If block is first in the group change group type\n              if (container && group.firstChild?.attrs.id === container.attrs.id) {\n                setTimeout(() => {\n                  view.dispatch(\n                    state.tr.setNodeMarkup($pos.before(depth), null, {\n                      ...group.attrs,\n                      listType: 'div',\n                      listLevel: '1',\n                    }),\n                  )\n\n                  this.editor.commands.UpdateGroupChildren(container, $pos, 2, group.attrs.listType, -1)\n                })\n\n                return true\n              }\n            }\n            return false\n          }),\n        // If previous block is media, node select it\n        () =>\n          commands.command(({ state, dispatch, view }) => {\n            const blockInfo = getBlockInfoFromPos(state.doc, state.selection.from)!\n            const prevBlockInfo = getBlockInfoFromPos(\n              state.doc,\n              state.selection.$anchor.pos - state.selection.$anchor.depth,\n            )\n            const selectionAtBlockStart = state.selection.$anchor.parentOffset === 0\n\n            const isParagraph = blockInfo.contentType.name === 'paragraph'\n\n            if (selectionAtBlockStart) {\n              if (isParagraph) {\n                if (blockInfo.contentType.name === 'image') {\n                  let tr = state.tr\n                  const selection = NodeSelection.create(state.doc, blockInfo.startPos)\n                  tr = tr.setSelection(selection)\n                  view.dispatch(tr)\n                  return true\n                }\n                if (!prevBlockInfo) return false\n                if (\n                  ['file', 'embed', 'video', 'web-embed', 'math'].includes(prevBlockInfo.contentType.name) ||\n                  (prevBlockInfo.contentType.name === 'image' && prevBlockInfo.contentNode.attrs.url.length === 0)\n                ) {\n                  if (dispatch) {\n                    const { startPos, contentNode } = blockInfo\n\n                    state.tr\n                      .setSelection(NodeSelection.create(state.doc, prevBlockInfo.startPos))\n                      .deleteRange(startPos, startPos + contentNode.nodeSize)\n                    return true\n                  }\n                }\n              } else {\n                if (blockInfo.contentType.name === 'image') {\n                  const { url } = blockInfo.contentNode.attrs\n                  const strippedURL = url.replace('local://', '')\n                  if (strippedURL.length !== 0) {\n                    try {\n                      window.fileSystem.deleteImage(strippedURL)\n                    } catch (error) {\n                      // eslint-disable-next-line no-console\n                      console.error(`Received error: `, error)\n                    }\n                  }\n                }\n                return commands.BNUpdateBlock(state.selection.from, {\n                  type: 'paragraph',\n                  props: {},\n                })\n              }\n            }\n\n            return false\n          }),\n        // move blockID with content if selection is at the start of block, the block has content AND the block above is empty\n        () =>\n          commands.command(({ state, chain }) => {\n            const blockData = getBlockInfoFromPos(state.doc, state.selection.from)!\n            const groupData = getGroupInfoFromPos(state.selection.from!, state)\n            const selectionAtBlockStart = state.selection.$anchor.parentOffset === 0\n\n            const prevBlockEndPos = blockData.startPos - 2\n            const prevBlockInfo = getBlockInfoFromPos(state.doc, prevBlockEndPos)\n\n            if (\n              // selection is at the start of the block\n              selectionAtBlockStart &&\n              // current block is not empty\n              blockData.node.textContent.length > 0 &&\n              // the selected block is not the first block of the child\n              groupData.group.firstChild?.attrs.id !== blockData.id &&\n              // previous block is a blockContainer\n              prevBlockInfo.node.type.name === 'blockContainer' &&\n              // prev block is empty\n              prevBlockInfo.node.textContent.length === 0\n            ) {\n              chain().BNDeleteBlock(prevBlockInfo.startPos).run()\n\n              return true\n            }\n            return false\n          }),\n        // Merge blocks if a block is in the middle of a list\n        () =>\n          commands.command(({ state }) => {\n            const blockData = getBlockInfoFromPos(state.doc, state.selection.from)!\n            const groupData = getGroupInfoFromPos(state.selection.from!, state)\n            const selectionAtBlockStart = state.selection.$anchor.parentOffset === 0\n\n            const prevBlockEndPos = blockData.startPos - 2\n            const prevBlockInfo = getBlockInfoFromPos(state.doc, prevBlockEndPos)\n\n            if (\n              // selection is at the start of the block\n              selectionAtBlockStart &&\n              // the selected block is not the first block of the child\n              groupData.group.firstChild?.attrs.id !== blockData.id &&\n              // previous block is a blockContainer\n              prevBlockInfo.node.type.name === 'blockContainer'\n            ) {\n              return commands.BNMergeBlocks(blockData.startPos - 1)\n            }\n            return false\n          }),\n        // Reverts block content type to a paragraph if the selection is at the start of the block.\n        () =>\n          commands.command(({ state }) => {\n            const { contentType } = getBlockInfoFromPos(state.doc, state.selection.from)!\n\n            const selectionAtBlockStart = state.selection.$anchor.parentOffset === 0\n            const isParagraph = contentType.name === 'paragraph'\n\n            if (selectionAtBlockStart && !isParagraph) {\n              return commands.BNUpdateBlock(state.selection.from, {\n                type: 'paragraph',\n                props: {},\n              })\n            }\n\n            return false\n          }),\n        // Removes a level of nesting if the block is indented if the selection is at the start of the block.\n        () =>\n          commands.command(({ state }) => {\n            const selectionAtBlockStart = state.selection.$anchor.parentOffset === 0\n\n            if (selectionAtBlockStart) {\n              return commands.liftListItem('blockContainer')\n            }\n\n            return false\n          }),\n        // Merges block with the previous one if it isn't indented, isn't the first block in the doc, and the selection\n        // is at the start of the block.\n        () =>\n          commands.command(({ state }) => {\n            const { depth, startPos } = getBlockInfoFromPos(state.doc, state.selection.from)!\n\n            const selectionAtBlockStart = state.selection.$anchor.parentOffset === 0\n            const selectionEmpty = state.selection.anchor === state.selection.head\n            const blockAtDocStart = startPos === 2\n\n            const posBetweenBlocks = startPos - 1\n\n            if (!blockAtDocStart && selectionAtBlockStart && selectionEmpty && depth === 2) {\n              return commands.BNMergeBlocks(posBetweenBlocks)\n            }\n\n            return false\n          }),\n      ])\n\n    const handleEnter = () =>\n      this.editor.commands.first(({ commands }) => [\n        // add a block on top of the current one so the block ID will follow the content\n        () =>\n          commands.command(({ state, chain }) => {\n            const data = getBlockInfoFromPos(state.doc, state.selection.from)!\n\n            const selectionAtBlockStart = state.selection.$anchor.parentOffset === 0\n            const selectionEmpty = state.selection.anchor === state.selection.head\n            const blockEmpty = data.node.textContent.length === 0\n            const newBlockInsertionPos = data.startPos - 1\n\n            if (selectionAtBlockStart && selectionEmpty && !blockEmpty) {\n              chain()\n                .BNCreateBlock(newBlockInsertionPos)\n                // .setTextSelection(newBlockContentPos)\n                .run()\n\n              return true\n            }\n\n            return false\n          }),\n        // when the current block is a heading, do a special splitBlock to suggest heading hierarchy\n        () =>\n          commands.command(({ state, chain }) => {\n            const { contentNode } = getBlockInfoFromPos(state.doc, state.selection.from)!\n\n            const selectionAtBlockStart = state.selection.$anchor.parentOffset === 0\n\n            // if selection is not in the beginning of the heading and is a heading,\n            // we need to check what we need to do\n            if (!selectionAtBlockStart && contentNode.type.name === 'heading') {\n              chain().deleteSelection().BNSplitHeadingBlock(state.selection.from).run()\n              return true\n            }\n\n            return false\n          }),\n        // Removes a level of nesting if the block is empty & indented, while the selection is also empty & at the start\n        // of the block.\n        () =>\n          commands.command(({ state }) => {\n            const { node, depth } = getBlockInfoFromPos(state.doc, state.selection.from)!\n\n            const { group } = getGroupInfoFromPos(state.selection.from, state)\n            const isLastBlock = group.lastChild?.attrs.id === node.attrs.id\n\n            const selectionAtBlockStart = state.selection.$anchor.parentOffset === 0\n            const selectionEmpty = state.selection.anchor === state.selection.head\n            const blockEmpty = node.textContent.length === 0\n            const blockIndented = depth > 2\n\n            if (selectionAtBlockStart && selectionEmpty && blockEmpty && blockIndented && isLastBlock) {\n              return commands.liftListItem('blockContainer')\n            }\n\n            return false\n          }),\n        // Creates a new block and moves the selection to it if the current one is empty, while the selection is also\n        // empty & at the start of the block.\n        () =>\n          commands.command(({ state, chain }) => {\n            const { node, endPos } = getBlockInfoFromPos(state.doc, state.selection.from)!\n\n            const selectionAtBlockStart = state.selection.$anchor.parentOffset === 0\n            const selectionEmpty = state.selection.anchor === state.selection.head\n            const blockEmpty = node.textContent.length === 0\n\n            if (selectionAtBlockStart && selectionEmpty && blockEmpty) {\n              const newBlockInsertionPos = endPos + 1\n              const newBlockContentPos = newBlockInsertionPos + 2\n\n              chain().BNCreateBlock(newBlockInsertionPos).setTextSelection(newBlockContentPos).run()\n\n              return true\n            }\n\n            return false\n          }),\n\n        // Splits the current block, moving content inside that's after the cursor to a new text block below. Also\n        // deletes the selection beforehand, if it's not empty.\n        () =>\n          commands.command(({ state, chain }) => {\n            const { node } = getBlockInfoFromPos(state.doc, state.selection.from)!\n\n            const blockEmpty = node.textContent.length === 0\n\n            if (!blockEmpty) {\n              chain().deleteSelection().BNSplitBlock(state.selection.from, false).run()\n\n              return true\n            }\n\n            return false\n          }),\n      ])\n\n    const handleTab = () =>\n      this.editor.commands.first(({ commands }) => [\n        () =>\n          commands.command(({ state }) => {\n            // Find block group, block container and depth it is at\n            const { group } = getGroupInfoFromPos(state.selection.from, state)\n\n            if (group.type.name === 'blockGroup' && group.attrs.listType !== 'Group') {\n              setTimeout(() => {\n                this.editor.chain().sinkListItem('blockContainer').UpdateGroup(-1, group.attrs.listType, true).run()\n              })\n              return true\n            }\n            return false\n          }),\n        () => {\n          commands.command(({ state }) => {\n            const { group, container, level, $pos } = getGroupInfoFromPos(state.selection.from, state)\n\n            if (container)\n              setTimeout(() => {\n                this.editor\n                  .chain()\n                  .sinkListItem('blockContainer')\n                  .UpdateGroupChildren(container, $pos, level + 1, group.attrs.listType, 1)\n                  .run()\n              })\n            else commands.sinkListItem('blockContainer')\n            return true\n          })\n          return true\n        },\n      ])\n\n    const handleShiftTab = () =>\n      this.editor.commands.first(({ commands }) => [\n        () =>\n          commands.command(({ state }) => {\n            // Find block group, block container and depth it is at\n            const { group, container, level, $pos } = getGroupInfoFromPos(state.selection.from, state)\n\n            // if (group.attrs.listType === 'Group') return false\n\n            if (container) {\n              setTimeout(() => {\n                this.editor.commands.UpdateGroupChildren(container, $pos, level, group.attrs.listType, -1)\n              })\n            }\n            return false\n          }),\n        () => {\n          commands.liftListItem('blockContainer')\n          return true\n        },\n      ])\n\n    return {\n      Backspace: handleBackspace,\n      Enter: handleEnter,\n      // Always returning true for tab key presses ensures they're not captured by the browser. Otherwise, they blur the\n      // editor since the browser will try to use tab for keyboard navigation.\n      Tab: handleTab,\n      'Shift-Tab': handleShiftTab,\n      'Mod-Alt-0': () => this.editor.commands.BNCreateBlock(this.editor.state.selection.anchor + 2),\n      'Mod-Alt-1': () =>\n        this.editor.commands.BNUpdateBlock(this.editor.state.selection.anchor, {\n          type: 'heading',\n          props: {\n            level: '1',\n          },\n        }),\n      'Mod-Alt-2': () =>\n        this.editor.commands.BNUpdateBlock(this.editor.state.selection.anchor, {\n          type: 'heading',\n          props: {\n            level: '2',\n          },\n        }),\n      'Mod-Alt-3': () =>\n        this.editor.commands.BNUpdateBlock(this.editor.state.selection.anchor, {\n          type: 'heading',\n          props: {\n            level: '3',\n          },\n        }),\n      'Mod-Shift-7': () =>\n        this.editor.commands.BNUpdateBlock(this.editor.state.selection.anchor, {\n          type: 'bulletListItem',\n          props: {},\n        }),\n      'Mod-Shift-8': () =>\n        this.editor.commands.BNUpdateBlock(this.editor.state.selection.anchor, {\n          type: 'numberedListItem',\n          props: {},\n        }),\n      'Shift-ArrowLeft': () => {\n        const { state, view } = this.editor\n        const { selection } = state\n        const { id: selectedId } = getBlockInfoFromPos(state.doc, selection.from - 1)\n        if (selection.from <= 3) {\n          return false\n        }\n        if (selection.from === selection.$from.start()) {\n          let currentPos = selection.from - 1\n          let currentNode = state.doc.resolve(currentPos).parent\n          let { id: currentId } = getBlockInfoFromPos(state.doc, currentPos)\n          while (selectedId === currentId || ['blockContainer', 'blockGroup'].includes(currentNode.type.name)) {\n            currentPos--\n            currentNode = state.doc.resolve(currentPos).parent\n            currentId = getBlockInfoFromPos(state.doc, currentPos).id\n          }\n          const decoration = Decoration.widget(currentPos, () => {\n            const span = document.createElement('span')\n            span.style.backgroundColor = 'blue'\n            span.style.width = '10px'\n            span.style.height = '10px'\n            return span\n          })\n          const decorationSet = DecorationSet.create(state.doc, [decoration])\n          view.dispatch(state.tr.setMeta(SelectionPluginKey, decorationSet))\n        }\n        return false\n      },\n    }\n  },\n})\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/Blocks/nodes/BlockContent/HeadingBlockContent/HeadingBlockContent.ts",
    "content": "import { InputRule, mergeAttributes } from '@tiptap/core'\nimport { mergeCSSClasses } from '../../../../../shared/utils'\nimport { createTipTapBlock } from '../../../api/block'\nimport styles from '../../Block.module.css'\n\nconst HeadingBlockContent = createTipTapBlock<'heading'>({\n  name: 'heading',\n  content: 'inline*',\n\n  addAttributes() {\n    return {\n      level: {\n        default: '1',\n        // instead of \"level\" attributes, use \"data-level\"\n        parseHTML: (element) => element.getAttribute('data-level'),\n        renderHTML: (attributes) => {\n          return {\n            'data-level': attributes.level,\n          }\n        },\n      },\n    }\n  },\n\n  addInputRules() {\n    return [\n      ...['1', '2', '3', '4', '5'].map((level) => {\n        // Creates a heading of appropriate level when starting with \"#\", \"##\", or \"###\".\n        return new InputRule({\n          find: new RegExp(`^(#{${parseInt(level, 10)}})\\\\s$`),\n          handler: ({ state, chain, range }) => {\n            chain()\n              .BNUpdateBlock(state.selection.from, {\n                type: 'heading',\n                props: {\n                  level: level,\n                },\n              })\n              // Removes the \"#\" character(s) used to set the heading.\n              .deleteRange({ from: range.from, to: range.to })\n          },\n        })\n      }),\n    ]\n  },\n\n  parseHTML() {\n    return [\n      {\n        tag: 'h1',\n        attrs: { level: '1' },\n        node: 'heading',\n      },\n      {\n        tag: 'h2',\n        attrs: { level: '2' },\n        node: 'heading',\n      },\n      {\n        tag: 'h3',\n        attrs: { level: '3' },\n        node: 'heading',\n      },\n      {\n        tag: 'h4',\n        attrs: { level: '3' },\n        node: 'heading',\n      },\n      {\n        tag: 'h5',\n        attrs: { level: '3' },\n        node: 'heading',\n      },\n    ]\n  },\n\n  renderHTML({ node, HTMLAttributes }) {\n    const blockContentDOMAttributes = this.options.domAttributes?.blockContent || {}\n    const inlineContentDOMAttributes = this.options.domAttributes?.inlineContent || {}\n\n    return [\n      'div',\n      mergeAttributes(HTMLAttributes, {\n        class: mergeCSSClasses(styles.blockContent, blockContentDOMAttributes.class),\n        'data-content-type': this.name,\n      }),\n      [\n        `h${node.attrs.level}`,\n        {\n          class: mergeCSSClasses(styles.inlineContent, inlineContentDOMAttributes.class),\n        },\n        0,\n      ],\n    ]\n  },\n})\n\nexport default HeadingBlockContent\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/Blocks/nodes/BlockContent/ListItemBlockContent/BulletListItemBlockContent/BulletListItemBlockContent.ts",
    "content": "import { InputRule, mergeAttributes } from '@tiptap/core'\nimport { mergeCSSClasses } from '../../../../../../shared/utils'\nimport { createTipTapBlock } from '../../../../api/block'\nimport styles from '../../../Block.module.css'\nimport handleEnter from '../ListItemKeyboardShortcuts'\n\nconst BulletListItemBlockContent = createTipTapBlock<'bulletListItem'>({\n  name: 'bulletListItem',\n  content: 'inline*',\n\n  addInputRules() {\n    return [\n      // Creates an unordered list when starting with \"-\", \"+\", or \"*\".\n      new InputRule({\n        find: /^[-+*]\\\\s$/,\n        handler: ({ state, chain, range }) => {\n          chain()\n            .BNUpdateBlock(state.selection.from, {\n              type: 'bulletListItem',\n              props: {},\n            })\n            // Removes the \"-\", \"+\", or \"*\" character used to set the list.\n            .deleteRange({ from: range.from, to: range.to })\n        },\n      }),\n    ]\n  },\n\n  addKeyboardShortcuts() {\n    return {\n      Enter: () => handleEnter(this.editor),\n    }\n  },\n\n  parseHTML() {\n    return [\n      // Case for regular HTML list structure.\n      {\n        tag: 'li',\n        getAttrs: (element) => {\n          if (typeof element === 'string') {\n            return false\n          }\n\n          const parent = element.parentElement\n\n          if (parent === null) {\n            return false\n          }\n\n          if (parent.tagName === 'UL') {\n            return {}\n          }\n\n          return false\n        },\n        node: 'bulletListItem',\n      },\n      // Case for BlockNote list structure.\n      {\n        tag: 'p',\n        getAttrs: (element) => {\n          if (typeof element === 'string') {\n            return false\n          }\n\n          const parent = element.parentElement\n\n          if (parent === null) {\n            return false\n          }\n\n          if (parent.getAttribute('data-content-type') === 'bulletListItem') {\n            return {}\n          }\n\n          return false\n        },\n        priority: 300,\n        node: 'bulletListItem',\n      },\n    ]\n  },\n\n  renderHTML({ HTMLAttributes }) {\n    const blockContentDOMAttributes = this.options.domAttributes?.blockContent || {}\n    const inlineContentDOMAttributes = this.options.domAttributes?.inlineContent || {}\n\n    return [\n      'div',\n      mergeAttributes(HTMLAttributes, {\n        class: mergeCSSClasses(styles.blockContent, blockContentDOMAttributes.class),\n        'data-content-type': this.name,\n      }),\n      [\n        'p',\n        {\n          class: mergeCSSClasses(styles.inlineContent, inlineContentDOMAttributes.class),\n        },\n        0,\n      ],\n    ]\n  },\n})\n\nexport default BulletListItemBlockContent\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/Blocks/nodes/BlockContent/ListItemBlockContent/ListItemKeyboardShortcuts.ts",
    "content": "import { Editor } from '@tiptap/core'\nimport { getBlockInfoFromPos } from '../../../helpers/getBlockInfoFromPos'\n\nconst handleEnter = (editor: Editor) => {\n  const { node, contentType } = getBlockInfoFromPos(editor.state.doc, editor.state.selection.from)!\n\n  const selectionEmpty = editor.state.selection.anchor === editor.state.selection.head\n\n  if (!contentType.name.endsWith('ListItem') || !selectionEmpty) {\n    return false\n  }\n\n  return editor.commands.first(({ state, chain, commands }) => [\n    () =>\n      // Changes list item block to a text block if the content is empty.\n      commands.command(() => {\n        if (node.textContent.length === 0) {\n          return commands.BNUpdateBlock(state.selection.from, {\n            type: 'paragraph',\n            props: {},\n          })\n        }\n\n        return false\n      }),\n\n    () =>\n      // Splits the current block, moving content inside that's after the cursor to a new block of the same type\n      // below.\n      commands.command(() => {\n        if (node.textContent.length > 0) {\n          chain().deleteSelection().BNSplitBlock(state.selection.from, true).run()\n\n          return true\n        }\n\n        return false\n      }),\n  ])\n}\n\nexport default handleEnter\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/Blocks/nodes/BlockContent/ListItemBlockContent/NumberedListItemBlockContent/NumberedListIndexingPlugin.ts",
    "content": "import { Plugin, PluginKey } from 'prosemirror-state'\nimport { getBlockInfoFromPos } from '../../../../helpers/getBlockInfoFromPos'\n\n// ProseMirror Plugin which automatically assigns indices to ordered list items per nesting level.\nconst PLUGIN_KEY = new PluginKey(`numbered-list-indexing`)\nconst NumberedListIndexingPlugin = () => {\n  return new Plugin({\n    key: PLUGIN_KEY,\n    appendTransaction: (_transactions, _oldState, newState) => {\n      const tr = newState.tr\n      tr.setMeta('numberedListIndexing', true)\n\n      let modified = false\n\n      // Traverses each node the doc using DFS, so blocks which are on the same nesting level will be traversed in the\n      // same order they appear. This means the index of each list item block can be calculated by incrementing the\n      // index of the previous list item block.\n      newState.doc.descendants((node, pos) => {\n        if (node.type.name === 'blockContainer' && node.firstChild!.type.name === 'numberedListItem') {\n          let newIndex = '1'\n          const isFirstBlockInDoc = pos === 1\n\n          const blockInfo = getBlockInfoFromPos(tr.doc, pos + 1)!\n          if (blockInfo === undefined) {\n            return\n          }\n\n          // Checks if this block is the start of a new ordered list, i.e. if it's the first block in the document, the\n          // first block in its nesting level, or the previous block is not an ordered list item.\n          if (!isFirstBlockInDoc) {\n            const prevBlockInfo = getBlockInfoFromPos(tr.doc, pos - 2)!\n            if (prevBlockInfo === undefined) {\n              return\n            }\n\n            const isFirstBlockInNestingLevel = blockInfo.depth !== prevBlockInfo.depth\n\n            if (!isFirstBlockInNestingLevel) {\n              const prevBlockContentNode = prevBlockInfo.contentNode\n              const prevBlockContentType = prevBlockInfo.contentType\n\n              const isPrevBlockOrderedListItem = prevBlockContentType.name === 'numberedListItem'\n\n              if (isPrevBlockOrderedListItem) {\n                const prevBlockIndex = prevBlockContentNode.attrs.index\n\n                newIndex = (parseInt(prevBlockIndex, 10) + 1).toString()\n              }\n            }\n          }\n\n          const contentNode = blockInfo.contentNode\n          const index = contentNode.attrs.index\n\n          if (index !== newIndex) {\n            modified = true\n\n            tr.setNodeMarkup(pos + 1, undefined, {\n              index: newIndex,\n            })\n          }\n        }\n      })\n\n      return modified ? tr : null\n    },\n  })\n}\n\nexport default NumberedListIndexingPlugin\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/Blocks/nodes/BlockContent/ListItemBlockContent/NumberedListItemBlockContent/NumberedListItemBlockContent.ts",
    "content": "import { InputRule, mergeAttributes } from '@tiptap/core'\nimport { mergeCSSClasses } from '../../../../../../shared/utils'\nimport { createTipTapBlock } from '../../../../api/block'\nimport styles from '../../../Block.module.css'\nimport handleEnter from '../ListItemKeyboardShortcuts'\nimport NumberedListIndexingPlugin from './NumberedListIndexingPlugin'\n\nconst NumberedListItemBlockContent = createTipTapBlock<'numberedListItem'>({\n  name: 'numberedListItem',\n  content: 'inline*',\n\n  addAttributes() {\n    return {\n      index: {\n        default: null,\n        parseHTML: (element) => element.getAttribute('data-index'),\n        renderHTML: (attributes) => {\n          return {\n            'data-index': attributes.index,\n          }\n        },\n      },\n    }\n  },\n\n  addInputRules() {\n    return [\n      // Creates an ordered list when starting with \"1.\".\n      new InputRule({\n        find: /^1\\\\.\\\\s$/,\n        handler: ({ state, chain, range }) => {\n          chain()\n            .BNUpdateBlock(state.selection.from, {\n              type: 'numberedListItem',\n              props: {},\n            })\n            // Removes the \"1.\" characters used to set the list.\n            .deleteRange({ from: range.from, to: range.to })\n        },\n      }),\n    ]\n  },\n\n  addKeyboardShortcuts() {\n    return {\n      Enter: () => handleEnter(this.editor),\n    }\n  },\n\n  addProseMirrorPlugins() {\n    return [NumberedListIndexingPlugin()]\n  },\n\n  parseHTML() {\n    return [\n      // Case for regular HTML list structure.\n      // (e.g.: when pasting from other apps)\n      {\n        tag: 'li',\n        getAttrs: (element) => {\n          if (typeof element === 'string') {\n            return false\n          }\n\n          const parent = element.parentElement\n\n          if (parent === null) {\n            return false\n          }\n\n          if (parent.tagName === 'OL') {\n            return {}\n          }\n\n          return false\n        },\n        node: 'numberedListItem',\n      },\n      // Case for BlockNote list structure.\n      // (e.g.: when pasting from blocknote)\n      {\n        tag: 'p',\n        getAttrs: (element) => {\n          if (typeof element === 'string') {\n            return false\n          }\n\n          const parent = element.parentElement\n\n          if (parent === null) {\n            return false\n          }\n\n          if (parent.getAttribute('data-content-type') === 'numberedListItem') {\n            return {}\n          }\n\n          return false\n        },\n        priority: 300,\n        node: 'numberedListItem',\n      },\n    ]\n  },\n\n  renderHTML({ HTMLAttributes }) {\n    const blockContentDOMAttributes = this.options.domAttributes?.blockContent || {}\n    const inlineContentDOMAttributes = this.options.domAttributes?.inlineContent || {}\n\n    return [\n      'div',\n      mergeAttributes(HTMLAttributes, {\n        class: mergeCSSClasses(styles.blockContent, blockContentDOMAttributes.class),\n        'data-content-type': this.name,\n      }),\n      // we use a <p> tag, because for <li> tags we'd need to add a <ul> parent for around siblings to be semantically correct,\n      // which would be quite cumbersome\n      [\n        'p',\n        {\n          class: mergeCSSClasses(styles.inlineContent, inlineContentDOMAttributes.class),\n        },\n        0,\n      ],\n    ]\n  },\n})\n\nexport default NumberedListItemBlockContent\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/Blocks/nodes/BlockContent/ParagraphBlockContent/ParagraphBlockContent.ts",
    "content": "import { mergeAttributes } from '@tiptap/core'\nimport { mergeCSSClasses } from '../../../../../shared/utils'\nimport { createTipTapBlock } from '../../../api/block'\nimport styles from '../../Block.module.css'\n\nconst ParagraphBlockContent = createTipTapBlock({\n  name: 'paragraph',\n  content: 'inline*',\n\n  parseHTML() {\n    return [\n      {\n        tag: 'p',\n        priority: 200,\n        node: 'paragraph',\n        getAttrs: (node) => {\n          // Don't match if has image (for markdown parse)\n          if (node.childNodes.length > 0 && node.childNodes[0].nodeName) {\n            const hasImage = node.childNodes[0].nodeName === 'IMG'\n            return hasImage ? false : null\n          }\n          return null\n        },\n      },\n    ]\n  },\n\n  renderHTML({ HTMLAttributes }) {\n    const blockContentDOMAttributes = this.options.domAttributes?.blockContent || {}\n    const inlineContentDOMAttributes = this.options.domAttributes?.inlineContent || {}\n\n    return [\n      'div',\n      mergeAttributes(\n        {\n          ...blockContentDOMAttributes,\n          class: mergeCSSClasses(styles.blockContent, blockContentDOMAttributes.class),\n          'data-content-type': this.name,\n        },\n        HTMLAttributes,\n      ),\n      [\n        'p',\n        {\n          ...inlineContentDOMAttributes,\n          class: mergeCSSClasses(styles.inlineContent, inlineContentDOMAttributes.class),\n        },\n        0,\n      ],\n    ]\n  },\n})\n\nexport default ParagraphBlockContent\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/Blocks/nodes/BlockGroup.ts",
    "content": "import { InputRule, mergeAttributes, Node } from '@tiptap/core'\nimport { mergeCSSClasses } from '../../../shared/utils'\nimport { BlockNoteDOMAttributes } from '../api/blockTypes'\nimport styles from './Block.module.css'\n\nconst BlockGroup = Node.create<{\n  domAttributes?: BlockNoteDOMAttributes\n}>({\n  name: 'blockGroup',\n  group: 'blockGroup',\n  content: 'blockContainer+',\n\n  addAttributes() {\n    return {\n      listLevel: {\n        default: '1',\n        parseHTML: (element) => element.getAttribute('data-list-level'),\n        renderHTML: (attributes) => {\n          return {\n            'data-list-level': attributes.listLevel,\n          }\n        },\n      },\n      listType: {\n        default: 'div',\n        parseHTML: (element) => element.getAttribute('data-list-type'),\n        renderHTML: (attributes) => {\n          return {\n            'data-list-type': attributes.listType,\n          }\n        },\n      },\n      start: {\n        default: undefined,\n        renderHTML: (attributes) => {\n          if (attributes.listType === 'ol' && attributes.start) {\n            // const offset = 0.65 * attributes.start.toString().length\n            return {\n              start: attributes.start,\n              // style: `margin-left: calc(1em + ${offset}em);`,\n            }\n          }\n          return null\n        },\n      },\n    }\n  },\n\n  addInputRules() {\n    return [\n      // Creates an unordered list when starting with \"-\", \"+\", or \"*\".\n      new InputRule({\n        find: /^[-+*]\\s$/,\n        handler: ({ state, chain, range }) => {\n          chain()\n            .UpdateGroup(state.selection.from, 'ul', false)\n            // Removes the \"-\", \"+\", or \"*\" character used to set the list.\n            .deleteRange({ from: range.from, to: range.to })\n        },\n      }),\n      new InputRule({\n        // ^\\d+\\.\\s\n        find: /^\\d+\\.\\s/,\n        handler: ({ state, chain, range }) => {\n          chain()\n            .UpdateGroup(state.selection.from, 'ol', false)\n            // Removes the \"1.\" characters used to set the list.\n            .deleteRange({ from: range.from, to: range.to })\n        },\n      }),\n    ]\n  },\n  parseHTML() {\n    return [\n      {\n        tag: 'ul',\n        // attrs: {listType: 'ul'},\n        getAttrs: (element) => {\n          if (typeof element === 'string') {\n            return false\n          }\n          return { listType: 'ul' }\n        },\n        priority: 200,\n      },\n      {\n        tag: 'ol',\n        // attrs: {listType: 'ol'},\n        getAttrs: (element) => {\n          if (typeof element === 'string') {\n            return false\n          }\n          return { listType: 'ol', start: element.getAttribute('start') }\n        },\n        priority: 200,\n      },\n      {\n        tag: 'div',\n        getAttrs: (element) => {\n          if (typeof element === 'string') {\n            return false\n          }\n\n          if (element.getAttribute('data-node-type') === 'blockGroup') {\n            // Null means the element matches, but we don't want to add any attributes to the node.\n            return null\n          }\n\n          return false\n        },\n        priority: 100,\n      },\n    ]\n  },\n\n  renderHTML({ node, HTMLAttributes }) {\n    const blockGroupDOMAttributes = this.options.domAttributes?.blockGroup || {}\n\n    return [\n      node.attrs.listType,\n      mergeAttributes(\n        {\n          ...blockGroupDOMAttributes,\n          class: mergeCSSClasses(styles.blockGroup, blockGroupDOMAttributes.class),\n          'data-node-type': 'blockGroup',\n        },\n        HTMLAttributes,\n      ),\n      0,\n    ]\n  },\n})\n\nexport default BlockGroup\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/DragMedia/DragExtension.ts",
    "content": "// import { toast } from '@shm/ui'\n// import { Extension } from '@tiptap/core'\n// import { Plugin, PluginKey } from 'prosemirror-state'\n// import { HMBlockSchema } from '@/components/Editor/schema'\n// import { BlockNoteEditor } from '../../BlockNoteEditor'\n// import { getBlockInfoFromPos } from '../Blocks/helpers/getBlockInfoFromPos'\n\n// const PLUGIN_KEY = new PluginKey(`drop-plugin`)\n\n// export interface DragOptions {\n//   editor: BlockNoteEditor<HMBlockSchema>\n// }\n\n// async function handleDragMedia(file: File) {\n//   if (file.size > 62914560) {\n//     toast.error(`The size of ${file.name} exceeds 60 MB.`)\n//     return null\n//   }\n\n//   const formData = new FormData()\n//   formData.append('file', file)\n\n//   try {\n//     const response = await fetch(DAEMON_FILE_UPLOAD_URL, {\n//       method: 'POST',\n//       body: formData,\n//     })\n//     const data = await response.text()\n//     return {\n//       url: data ? `ipfs://${data}` : '',\n//       name: file.name,\n//       size: file.size.toString(),\n//     } as FileType['props']\n//   } catch (error) {\n//     console.log(error)\n//     toast.error('Failed to upload file.')\n//   }\n// }\n\n// export const DragExtension = Extension.create<DragOptions>({\n//   name: 'drag',\n\n//   addProseMirrorPlugins() {\n//     return [\n//       new Plugin({\n//         key: PLUGIN_KEY,\n//         props: {\n//           handleDOMEvents: {\n//             dragstart: (_, event) => {\n//               event.preventDefault()\n//               return false\n//             },\n//             dragleave: (_, event) => {\n//               event.preventDefault()\n//               return false\n//             },\n//             dragend: (_, event) => {\n//               event.preventDefault()\n//               return false\n//             },\n//             dragover: (_, event) => {\n//               event.preventDefault()\n//               return false\n//             },\n//             drop: (view, event) => {\n//               const data = event.dataTransfer\n\n//               if (data) {\n//                 console.log(data)\n//                 const files: File[] = []\n\n//                 if (data.files.length) {\n//                   for (let i = 0; i < data.files.length; i++) {\n//                     files.push(data.files[i])\n//                   }\n//                 } else if (data.items.length) {\n//                   for (let i = 0; i < data.items.length; i++) {\n//                     const item = data.items[i].getAsFile()\n//                     if (item) {\n//                       files.push(item)\n//                     }\n//                   }\n//                 }\n\n//                 if (files.length > 0) {\n//                   const pos = this.editor.view.posAtCoords({\n//                     left: event.clientX,\n//                     top: event.clientY,\n//                   })\n\n//                   let lastId: string\n\n//                   // using reduce so files get inserted sequentially\n//                   files\n//                     .reduce((previousPromise, file, index) => {\n//                       return previousPromise.then(() => {\n//                         event.preventDefault()\n//                         event.stopPropagation()\n\n//                         if (pos && pos.inside !== -1) {\n//                           return handleDragMedia(file).then((props) => {\n//                             if (!props) return false\n\n//                             const { state } = view\n//                             let blockNode\n//                             const newId = generateBlockId()\n\n//                             if (chromiumSupportedImageMimeTypes.has(file.type)) {\n//                               blockNode = {\n//                                 id: newId,\n//                                 type: 'image',\n//                                 props: {\n//                                   url: props.url,\n//                                   name: props.name,\n//                                 },\n//                               }\n//                             } else if (chromiumSupportedVideoMimeTypes.has(file.type)) {\n//                               blockNode = {\n//                                 id: newId,\n//                                 type: 'video',\n//                                 props: {\n//                                   url: props.url,\n//                                   name: props.name,\n//                                 },\n//                               }\n//                             } else {\n//                               blockNode = {\n//                                 id: newId,\n//                                 type: 'file',\n//                                 props: {\n//                                   ...props,\n//                                 },\n//                               }\n//                             }\n\n//                             const blockInfo = getBlockInfoFromPos(state.doc, pos.pos)\n\n//                             if (index === 0) {\n//                               this.options.editor.insertBlocks(\n//                                 [blockNode],\n//                                 blockInfo.id,\n//                                 blockInfo.node.textContent ? 'after' : 'before',\n//                               )\n//                             } else {\n//                               this.options.editor.insertBlocks([blockNode], lastId, 'after')\n//                             }\n\n//                             lastId = newId\n//                           })\n//                         }\n//                         return null\n//                       })\n//                     }, Promise.resolve())\n//                     .then(() => true)\n\n//                   return true\n//                 }\n\n//                 return false\n//               }\n\n//               return false\n//             },\n//           },\n//         },\n//       }),\n//     ]\n//   },\n// })\n\n// type FileType = {\n//   id: string\n//   props: {\n//     url: string\n//     name: string\n//     size: string\n//   }\n//   children: []\n//   content: []\n//   type: string\n// }\n\n// function generateBlockId(length: number = 8): string {\n//   const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'\n//   let result = ''\n//   for (let i = 0; i < length; i++) {\n//     result += characters.charAt(Math.floor(Math.random() * characters.length))\n//   }\n//   return result\n// }\n\n// const chromiumSupportedImageMimeTypes = new Set([\n//   'image/jpeg',\n//   'image/jpg',\n//   'image/png',\n//   'image/gif',\n//   'image/webp',\n//   'image/bmp',\n//   'image/svg+xml',\n//   'image/x-icon',\n//   'image/vnd.microsoft.icon',\n//   'image/apng',\n//   'image/avif',\n// ])\n\n// const chromiumSupportedVideoMimeTypes = new Set(['video/mp4', 'video/webm'])\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/DraggableBlocks/BlockSideMenuFactoryTypes.ts",
    "content": "import { BlockNoteEditor } from '../../BlockNoteEditor'\nimport { Block, BlockSchema } from '../Blocks/api/blockTypes'\n\nexport type BlockSideMenuStaticParams<BSchema extends BlockSchema> = {\n  editor: BlockNoteEditor<BSchema>\n\n  addBlock: () => void\n\n  blockDragStart: (event: DragEvent) => void\n  blockDragEnd: () => void\n\n  freezeMenu: () => void\n  unfreezeMenu: () => void\n\n  getReferenceRect: () => DOMRect\n}\n\nexport type BlockSideMenuDynamicParams<BSchema extends BlockSchema> = {\n  block: Block<BSchema>\n}\n\nexport type BlockSideMenu<BSchema extends BlockSchema> = {\n  element: HTMLElement\n  render: (params: BlockSideMenuDynamicParams<BSchema>, showElements: boolean) => void\n  hide: () => void\n}\n\nexport type BlockSideMenuFactory<BSchema extends BlockSchema> = {\n  create: (params: BlockSideMenuStaticParams<BSchema>) => BlockSideMenu<BSchema>\n}\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/DraggableBlocks/DraggableBlocksExtension.ts",
    "content": "import { Editor, Extension } from '@tiptap/core'\nimport { BlockSideMenuFactory } from './BlockSideMenuFactoryTypes'\nimport { createDraggableBlocksPlugin } from './DraggableBlocksPlugin'\nimport { BlockNoteEditor } from '../../BlockNoteEditor'\nimport { BlockSchema } from '../Blocks/api/blockTypes'\n\nexport type DraggableBlocksOptions<BSchema extends BlockSchema> = {\n  tiptapEditor: Editor\n  editor: BlockNoteEditor<BSchema>\n  blockSideMenuFactory: BlockSideMenuFactory<BSchema>\n}\n\n/**\n * This extension adds a menu to the side of blocks which features various BlockNote functions such as adding and\n * removing blocks. More importantly, it adds a drag handle which allows the user to drag and drop blocks.\n *\n * code based on https://github.com/ueberdosis/tiptap/issues/323#issuecomment-506637799\n */\nexport const createDraggableBlocksExtension = <BSchema extends BlockSchema>() =>\n  Extension.create<DraggableBlocksOptions<BSchema>>({\n    name: 'DraggableBlocksExtension',\n    priority: 1000, // Need to be high, in order to hide menu when typing slash\n    addProseMirrorPlugins() {\n      if (!this.options.blockSideMenuFactory) {\n        throw new Error('UI Element factory not defined for DraggableBlocksExtension')\n      }\n      return [\n        createDraggableBlocksPlugin({\n          tiptapEditor: this.editor,\n          editor: this.options.editor,\n          blockSideMenuFactory: this.options.blockSideMenuFactory,\n        }),\n      ]\n    },\n  })\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/DraggableBlocks/DraggableBlocksPlugin.ts",
    "content": "import { Editor } from '@tiptap/core'\nimport { Node } from 'prosemirror-model'\nimport { NodeSelection, Plugin, PluginKey, Selection } from 'prosemirror-state'\nimport { EditorView } from 'prosemirror-view'\nimport { BlockNoteEditor } from '../../BlockNoteEditor'\nimport styles from '../../editor.module.css'\nimport { BlockSchema } from '../Blocks/api/blockTypes'\nimport { getBlockInfoFromPos } from '../Blocks/helpers/getBlockInfoFromPos'\nimport {\n  BlockSideMenu,\n  BlockSideMenuDynamicParams,\n  BlockSideMenuFactory,\n  BlockSideMenuStaticParams,\n} from './BlockSideMenuFactoryTypes'\nimport { DraggableBlocksOptions } from './DraggableBlocksExtension'\nimport MultipleNodeSelection from './MultipleNodeSelection'\n\nconst SlashMenuPluginKey = new PluginKey('SlashMenuPlugin')\n// code based on https://github.com/ueberdosis/tiptap/issues/323#issuecomment-506637799\n\nlet dragImageElement: Element | undefined\n\nfunction getDraggableBlockFromCoords(coords: { left: number; top: number }, view: EditorView) {\n  if (!view.dom.isConnected) {\n    // view is not connected to the DOM, this can cause posAtCoords to fail\n    // (Cannot read properties of null (reading 'nearestDesc'), https://github.com/TypeCellOS/BlockNote/issues/123)\n    return undefined\n  }\n\n  const pos = view.posAtCoords(coords)\n  if (!pos) {\n    return undefined\n  }\n  let node = view.domAtPos(pos.pos).node as HTMLElement\n\n  if (node === view.dom) {\n    // mouse over root\n    return undefined\n  }\n\n  if (node.parentNode === null) {\n    const parentNode = view.domAtPos(pos.inside).node as HTMLElement\n    if (parentNode.getAttribute('data-id') !== null) {\n      node = parentNode\n    } else return undefined\n  }\n\n  while (node && node.parentNode && node.parentNode !== view.dom && !node.hasAttribute?.('data-id')) {\n    node = node.parentNode as HTMLElement\n  }\n  if (!node) {\n    return undefined\n  }\n  return { node, id: node.getAttribute('data-id')! }\n}\n\nfunction blockPositionFromCoords(coords: { left: number; top: number }, view: EditorView) {\n  const block = getDraggableBlockFromCoords(coords, view)\n\n  if (block && block.node.nodeType === 1) {\n    // TODO: this uses undocumented PM APIs? do we need this / let's add docs?\n    const docView = (view as any).docView\n    const desc = docView.nearestDesc(block.node, true)\n    if (!desc || desc === docView) {\n      return null\n    }\n    return desc.posBefore\n  }\n  return null\n}\n\nfunction blockPositionsFromSelection(selection: Selection, doc: Node) {\n  // Absolute positions just before the first block spanned by the selection, and just after the last block. Having the\n  // selection start and end just before and just after the target blocks ensures no whitespace/line breaks are left\n  // behind after dragging & dropping them.\n  let beforeFirstBlockPos: number\n  let afterLastBlockPos: number\n\n  // Even the user starts dragging blocks but drops them in the same place, the selection will still be moved just\n  // before & just after the blocks spanned by the selection, and therefore doesn't need to change if they try to drag\n  // the same blocks again. If this happens, the anchor & head move out of the block content node they were originally\n  // in. If the anchor should update but the head shouldn't and vice versa, it means the user selection is outside a\n  // block content node, which should never happen.\n  const selectionStartInBlockContent = doc.resolve(selection.from).node().type.spec.group === 'blockContent'\n  const selectionEndInBlockContent = doc.resolve(selection.to).node().type.spec.group === 'blockContent'\n\n  // Ensures that entire outermost nodes are selected if the selection spans multiple nesting levels.\n  const minDepth = Math.min(selection.$anchor.depth, selection.$head.depth)\n\n  if (selectionStartInBlockContent && selectionEndInBlockContent) {\n    // Absolute positions at the start of the first block in the selection and at the end of the last block. User\n    // selections will always start and end in block content nodes, but we want the start and end positions of their\n    // parent block nodes, which is why minDepth - 1 is used.\n    const startFirstBlockPos = selection.$from.start(minDepth - 1)\n    const endLastBlockPos = selection.$to.end(minDepth - 1)\n\n    // Shifting start and end positions by one moves them just outside the first and last selected blocks.\n    beforeFirstBlockPos = doc.resolve(startFirstBlockPos - 1).pos\n    afterLastBlockPos = doc.resolve(endLastBlockPos + 1).pos\n  } else {\n    beforeFirstBlockPos = selection.from\n    afterLastBlockPos = selection.to\n  }\n\n  return { from: beforeFirstBlockPos, to: afterLastBlockPos }\n}\n\nfunction unsetDragImage() {\n  if (dragImageElement !== undefined) {\n    document.body.removeChild(dragImageElement)\n    dragImageElement = undefined\n  }\n}\n\nfunction setDragImage(view: EditorView, from: number, to = from) {\n  if (from === to) {\n    // Moves to position to be just after the first (and only) selected block.\n    to += view.state.doc.resolve(from + 1).node().nodeSize\n  }\n\n  // Parent element is cloned to remove all unselected children without affecting the editor content.\n  const parentClone = view.domAtPos(from).node.cloneNode(true) as Element\n  const parent = view.domAtPos(from).node as Element\n\n  const getElementIndex = (parentElement: Element, targetElement: Element) =>\n    Array.prototype.indexOf.call(parentElement.children, targetElement)\n\n  const firstSelectedBlockIndex = getElementIndex(\n    parent,\n    // Expects from position to be just before the first selected block.\n    view.domAtPos(from + 1).node.parentElement!,\n  )\n  const lastSelectedBlockIndex = getElementIndex(\n    parent,\n    // Expects to position to be just after the last selected block.\n    view.domAtPos(to - 1).node.parentElement!,\n  )\n\n  for (let i = parent.childElementCount - 1; i >= 0; i--) {\n    if (i > lastSelectedBlockIndex || i < firstSelectedBlockIndex) {\n      parentClone.removeChild(parentClone.children[i])\n    }\n  }\n\n  // dataTransfer.setDragImage(element) only works if element is attached to the DOM.\n  unsetDragImage()\n  dragImageElement = parentClone\n\n  // TODO: This is hacky, need a better way of assigning classes to the editor so that they can also be applied to the\n  //  drag preview.\n  const classes = view.dom.className.split(' ')\n  const inheritedClasses = classes\n    .filter(\n      (className) => !className.includes('bn') && !className.includes('ProseMirror') && !className.includes('editor'),\n    )\n    .join(' ')\n\n  dragImageElement.className = `${dragImageElement.className} ${styles.dragPreview} ${inheritedClasses}`\n\n  document.body.appendChild(dragImageElement)\n}\n\nfunction dragStart(e: DragEvent, view: EditorView) {\n  if (!e.dataTransfer) {\n    return\n  }\n\n  const editorBoundingBox = view.dom.getBoundingClientRect()\n\n  const coords = {\n    left: editorBoundingBox.left + editorBoundingBox.width / 2, // take middle of editor\n    top: e.clientY,\n  }\n\n  const pos = blockPositionFromCoords(coords, view)\n  if (pos != null) {\n    const selection = view.state.selection\n    const doc = view.state.doc\n\n    const { from, to } = blockPositionsFromSelection(selection, doc)\n\n    const draggedBlockInSelection = from <= pos && pos < to\n    const multipleBlocksSelected =\n      selection.$anchor.node() !== selection.$head.node() || selection instanceof MultipleNodeSelection\n\n    if (draggedBlockInSelection && multipleBlocksSelected) {\n      view.dispatch(view.state.tr.setSelection(MultipleNodeSelection.create(doc, from, to)))\n      setDragImage(view, from, to)\n    } else {\n      view.dispatch(view.state.tr.setSelection(NodeSelection.create(view.state.doc, pos)))\n      setDragImage(view, pos)\n    }\n\n    const slice = view.state.selection.content()\n    const { dom, text } = view.serializeForClipboard(slice)\n\n    e.dataTransfer.clearData()\n    e.dataTransfer.setData('text/html', dom.innerHTML)\n    e.dataTransfer.setData('text/plain', text)\n    e.dataTransfer.effectAllowed = 'move'\n    e.dataTransfer.setDragImage(dragImageElement!, 0, 0)\n    view.dragging = { slice, move: true }\n  }\n}\n\nexport type BlockMenuViewProps<BSchema extends BlockSchema> = {\n  tiptapEditor: Editor\n  editor: BlockNoteEditor<BSchema>\n  blockMenuFactory: BlockSideMenuFactory<BSchema>\n  horizontalPosAnchoredAtRoot: boolean\n}\n\nexport class BlockMenuView<BSchema extends BlockSchema> {\n  editor: BlockNoteEditor<BSchema>\n\n  private ttEditor: Editor\n\n  // When true, the drag handle with be anchored at the same level as root elements\n  // When false, the drag handle with be just to the left of the element\n  horizontalPosAnchoredAtRoot: boolean\n\n  horizontalPosAnchor: number\n\n  blockMenu: BlockSideMenu<BSchema>\n\n  hoveredBlock: HTMLElement | undefined\n\n  // Used to check if currently dragged content comes from this editor instance.\n  isDragging = false\n\n  menuOpen = false\n\n  menuFrozen = false\n\n  private lastPosition: DOMRect | undefined\n\n  constructor({ tiptapEditor, editor, blockMenuFactory, horizontalPosAnchoredAtRoot }: BlockMenuViewProps<BSchema>) {\n    this.editor = editor\n    this.ttEditor = tiptapEditor\n    this.horizontalPosAnchoredAtRoot = horizontalPosAnchoredAtRoot\n    this.horizontalPosAnchor = (this.ttEditor.view.dom.firstChild! as HTMLElement).getBoundingClientRect().x\n\n    this.blockMenu = blockMenuFactory.create(this.getStaticParams()) as BlockSideMenu<BSchema>\n\n    document.body.addEventListener('drop', this.onDrop, true)\n    document.body.addEventListener('dragover', this.onDragOver)\n    this.ttEditor.view.dom.addEventListener('dragstart', this.onDragStart)\n\n    // Shows or updates menu position whenever the cursor moves, if the menu isn't frozen.\n    document.body.addEventListener('mousemove', this.onMouseMove, true)\n\n    // Hides and unfreezes the menu whenever the user selects the editor with the mouse or presses a key.\n    // TODO: Better integration with suggestions menu and only editor scope?\n    document.body.addEventListener('mousedown', this.onMouseDown, true)\n    document.body.addEventListener('keydown', this.onKeyDown, true)\n  }\n\n  /**\n   * Sets isDragging when dragging text.\n   */\n  onDragStart = () => {\n    this.isDragging = true\n  }\n\n  /**\n   * If the event is outside the editor contents,\n   * we dispatch a fake event, so that we can still drop the content\n   * when dragging / dropping to the side of the editor\n   */\n  onDrop = (event: DragEvent) => {\n    if ((event as any).synthetic || !this.isDragging) {\n      return\n    }\n    const pos = this.ttEditor.view.posAtCoords({\n      left: event.clientX,\n      top: event.clientY,\n    })\n\n    this.isDragging = false\n\n    if (!pos || pos.inside === -1) {\n      const evt = new Event('drop', event) as any\n      const editorBoundingBox = (this.ttEditor.view.dom.firstChild! as HTMLElement).getBoundingClientRect()\n      evt.clientX = editorBoundingBox.left + editorBoundingBox.width / 2\n      evt.clientY = event.clientY\n      evt.dataTransfer = event.dataTransfer\n      evt.preventDefault = () => event.preventDefault()\n      evt.synthetic = true // prevent recursion\n      // console.log(\"dispatch fake drop\");\n      this.ttEditor.view.dom.dispatchEvent(evt)\n    }\n  }\n\n  /**\n   * If the event is outside the editor contents,\n   * we dispatch a fake event, so that we can still drop the content\n   * when dragging / dropping to the side of the editor\n   */\n  onDragOver = (event: DragEvent) => {\n    if ((event as any).synthetic || !this.isDragging) {\n      return\n    }\n    const pos = this.ttEditor.view.posAtCoords({\n      left: event.clientX,\n      top: event.clientY,\n    })\n\n    if (!pos || pos.inside === -1) {\n      const evt = new Event('dragover', event) as any\n      const editorBoundingBox = (this.ttEditor.view.dom.firstChild! as HTMLElement).getBoundingClientRect()\n      evt.clientX = editorBoundingBox.left + editorBoundingBox.width / 2\n      evt.clientY = event.clientY\n      evt.dataTransfer = event.dataTransfer\n      evt.preventDefault = () => event.preventDefault()\n      evt.synthetic = true // prevent recursion\n      // console.log(\"dispatch fake dragover\");\n      this.ttEditor.view.dom.dispatchEvent(evt)\n    }\n  }\n\n  onKeyDown = () => {\n    if (this.menuOpen) {\n      this.menuOpen = false\n      this.blockMenu.hide()\n    }\n\n    this.menuFrozen = false\n  }\n\n  onMouseDown = (event: MouseEvent) => {\n    if (this.menuFrozen) {\n      this.menuFrozen = false\n      this.blockMenu.hide()\n      return\n    }\n\n    if (this.blockMenu.element?.contains(event.target as HTMLElement)) {\n      return\n    }\n\n    if (this.menuOpen) {\n      this.menuOpen = false\n      this.blockMenu.hide()\n    }\n\n    this.menuFrozen = false\n\n    const editorBoundingBox = (this.ttEditor.view.dom.firstChild! as HTMLElement).getBoundingClientRect()\n\n    // Gets block at mouse cursor's vertical position.\n    const coords = {\n      left: editorBoundingBox.left + editorBoundingBox.width / 2, // take middle of editor\n      top: event.clientY,\n    }\n\n    // Get position of the block at coordinates of the click\n    const pos = this.ttEditor.view.posAtCoords(coords)\n    if (pos) {\n      // Focus either the start or the end of the block depending if it's clicked to the right or left\n      if (event.clientX < editorBoundingBox.left) {\n        this.ttEditor.commands.focus(pos.inside)\n      } else if (event.clientX > editorBoundingBox.right) {\n        this.ttEditor.commands.focus(pos.inside + this.ttEditor.state.doc.resolve(pos.pos).node().nodeSize - 1)\n      }\n    }\n  }\n\n  onMouseMove = (event: MouseEvent) => {\n    if (this.menuFrozen) {\n      return\n    }\n\n    // Editor itself may have padding or other styling which affects\n    // size/position, so we get the boundingRect of the first child (i.e. the\n    // blockGroup that wraps all blocks in the editor) for more accurate side\n    // menu placement.\n    const editorBoundingBox = (this.ttEditor.view.dom.firstChild! as HTMLElement).getBoundingClientRect()\n    // We want the full area of the editor to check if the cursor is hovering\n    // above it though.\n    const editorOuterBoundingBox = this.ttEditor.view.dom.getBoundingClientRect()\n    const cursorWithinEditor =\n      event.clientX >= editorOuterBoundingBox.left &&\n      event.clientX <= editorOuterBoundingBox.right &&\n      event.clientY >= editorOuterBoundingBox.top &&\n      event.clientY <= editorOuterBoundingBox.bottom\n\n    // Doesn't update if the mouse hovers an element that's over the editor but\n    // isn't a part of it or the side menu.\n    if (\n      // Cursor is within the editor area\n      cursorWithinEditor &&\n      // An element is hovered\n      event &&\n      event.target &&\n      // Element is outside the editor\n      this.ttEditor.view.dom !== event.target &&\n      !this.ttEditor.view.dom?.contains(event.target as HTMLElement) &&\n      // Element is outside the side menu\n      this.blockMenu.element !== event.target &&\n      !this.blockMenu.element?.contains(event.target as HTMLElement)\n    ) {\n      if (this.menuOpen) {\n        this.menuOpen = false\n        this.blockMenu.hide()\n      }\n\n      return\n    }\n\n    this.horizontalPosAnchor = editorBoundingBox.x\n\n    // Gets block at mouse cursor's vertical position.\n    const coords = {\n      left: editorBoundingBox.left + editorBoundingBox.width / 2, // take middle of editor\n      top: event.clientY,\n    }\n    const block = getDraggableBlockFromCoords(coords, this.ttEditor.view)\n\n    // Closes the menu if the mouse cursor is beyond the editor vertically.\n    if (!block || !this.editor.isEditable) {\n      if (this.menuOpen) {\n        this.menuOpen = false\n        this.blockMenu.hide()\n      }\n\n      return\n    }\n\n    // Doesn't update if the menu is already open and the mouse cursor is still hovering the same block.\n    if (\n      this.menuOpen &&\n      this.hoveredBlock?.hasAttribute('data-id') &&\n      this.hoveredBlock?.getAttribute('data-id') === block.id &&\n      this.hoveredBlock?.hasAttribute('data-node-type') &&\n      this.hoveredBlock?.getAttribute('data-node-type') === 'blockContainer'\n    ) {\n      return\n    }\n\n    this.hoveredBlock = block.node\n\n    // Gets the block's content node, which lets to ignore child blocks when determining the block menu's position.\n    const blockContent = block.node.firstChild as HTMLElement\n\n    if (!blockContent) {\n      return\n    }\n\n    // Shows or updates elements.\n    if (this.editor.isEditable) {\n      if (!this.menuOpen) {\n        this.menuOpen = true\n        this.blockMenu.render(this.getDynamicParams(), true)\n      } else {\n        this.blockMenu.render(this.getDynamicParams(), false)\n      }\n    }\n  }\n\n  destroy() {\n    if (this.menuOpen) {\n      this.menuOpen = false\n      this.blockMenu.hide()\n    }\n    document.body.removeEventListener('mousemove', this.onMouseMove)\n    document.body.removeEventListener('dragover', this.onDragOver)\n    this.ttEditor.view.dom.removeEventListener('dragstart', this.onDragStart)\n    document.body.removeEventListener('drop', this.onDrop)\n    document.body.removeEventListener('mousedown', this.onMouseDown)\n    document.body.removeEventListener('keydown', this.onKeyDown)\n  }\n\n  addBlock() {\n    this.menuOpen = false\n    this.menuFrozen = true\n    this.blockMenu.hide()\n\n    const blockContent = this.hoveredBlock!.firstChild! as HTMLElement\n    const blockContentBoundingBox = blockContent.getBoundingClientRect()\n\n    const pos = this.ttEditor.view.posAtCoords({\n      left: blockContentBoundingBox.left + blockContentBoundingBox.width / 2,\n      top: blockContentBoundingBox.top + blockContentBoundingBox.height / 2,\n    })\n    if (!pos) {\n      return\n    }\n\n    const blockInfo = getBlockInfoFromPos(this.ttEditor.state.doc, pos.pos)\n    if (blockInfo === undefined) {\n      return\n    }\n\n    const { contentNode, endPos } = blockInfo\n\n    // Creates a new block if current one is not empty for the suggestion menu to open in.\n    if (contentNode.textContent.length !== 0) {\n      const newBlockInsertionPos = endPos + 1\n      const newBlockContentPos = newBlockInsertionPos + 2\n\n      this.ttEditor\n        .chain()\n        .BNCreateBlock(newBlockInsertionPos)\n        .BNUpdateBlock(newBlockContentPos, { type: 'paragraph', props: {} })\n        .setTextSelection(newBlockContentPos)\n        .run()\n    } else {\n      this.ttEditor.commands.setTextSelection(endPos)\n    }\n\n    // Focuses and activates the suggestion menu.\n    this.ttEditor.view.focus()\n    this.ttEditor.view.dispatch(\n      this.ttEditor.view.state.tr.scrollIntoView().setMeta(SlashMenuPluginKey, {\n        // TODO import suggestion plugin key\n        activate: true,\n        type: 'drag',\n      }),\n    )\n  }\n\n  getStaticParams(): BlockSideMenuStaticParams<BSchema> {\n    return {\n      editor: this.editor,\n      addBlock: () => this.addBlock(),\n      blockDragStart: (event: DragEvent) => {\n        // Sets isDragging when dragging blocks.\n        this.isDragging = true\n        dragStart(event, this.ttEditor.view)\n      },\n      blockDragEnd: () => unsetDragImage(),\n      freezeMenu: () => {\n        this.menuFrozen = true\n      },\n      unfreezeMenu: () => {\n        this.menuFrozen = false\n      },\n      getReferenceRect: () => {\n        if (!this.menuOpen) {\n          if (this.lastPosition === undefined) {\n            throw new Error('Attempted to access block reference rect before rendering block side menu.')\n          }\n          return this.lastPosition\n        }\n        const blockContent = this.hoveredBlock!.firstChild! as HTMLElement\n        const blockContentBoundingBox = blockContent.getBoundingClientRect()\n        if (this.horizontalPosAnchoredAtRoot) {\n          blockContentBoundingBox.x = this.horizontalPosAnchor\n        }\n        this.lastPosition = blockContentBoundingBox\n        return blockContentBoundingBox\n      },\n    }\n  }\n\n  getDynamicParams(): BlockSideMenuDynamicParams<BSchema> {\n    return {\n      block: this.editor.getBlock(this.hoveredBlock!.getAttribute('data-id')!)!,\n    }\n  }\n}\n\nexport const createDraggableBlocksPlugin = <BSchema extends BlockSchema>(options: DraggableBlocksOptions<BSchema>) => {\n  return new Plugin({\n    key: new PluginKey('DraggableBlocksPlugin'),\n    view: () =>\n      new BlockMenuView({\n        tiptapEditor: options.tiptapEditor,\n        editor: options.editor,\n        blockMenuFactory: options.blockSideMenuFactory,\n        horizontalPosAnchoredAtRoot: false,\n      }),\n  })\n}\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/DraggableBlocks/MultipleNodeSelection.ts",
    "content": "import { Selection } from 'prosemirror-state'\nimport { Fragment, Node, ResolvedPos, Slice } from 'prosemirror-model'\nimport { Mappable } from 'prosemirror-transform'\n\n/**\n * This class represents an editor selection which spans multiple nodes/blocks. It's currently only used to allow users\n * to drag multiple blocks at the same time. Expects the selection anchor and head to be between nodes, i.e. just before\n * the first target node and just after the last, and that anchor and head are at the same nesting level.\n *\n * Partially based on ProseMirror's NodeSelection implementation:\n * (https://github.com/ProseMirror/prosemirror-state/blob/master/src/selection.ts)\n * MultipleNodeSelection differs from NodeSelection in the following ways:\n * 1. Stores which nodes are included in the selection instead of just a single node.\n * 2. Already expects the selection to start just before the first target node and ends just after the last, while a\n * NodeSelection automatically sets both anchor and head to just before the single target node.\n */\nclass MultipleNodeSelection extends Selection {\n  nodes: Array<Node>\n\n  constructor($anchor: ResolvedPos, $head: ResolvedPos) {\n    super($anchor, $head)\n\n    // Parent is at the same nesting level as anchor/head since they are just before/ just after target nodes.\n    const parentNode = $anchor.node()\n\n    this.nodes = []\n    $anchor.doc.nodesBetween($anchor.pos, $head.pos, (node, _pos, parent) => {\n      if (parent !== null && parent.eq(parentNode)) {\n        this.nodes.push(node)\n        return false\n      }\n      return undefined\n    })\n  }\n\n  static create(doc: Node, from: number, to = from): MultipleNodeSelection {\n    return new MultipleNodeSelection(doc.resolve(from), doc.resolve(to))\n  }\n\n  content(): Slice {\n    return new Slice(Fragment.from(this.nodes), 0, 0)\n  }\n\n  eq(selection: Selection): boolean {\n    if (!(selection instanceof MultipleNodeSelection)) {\n      return false\n    }\n\n    if (this.nodes.length !== selection.nodes.length) {\n      return false\n    }\n\n    if (this.from !== selection.from || this.to !== selection.to) {\n      return false\n    }\n\n    for (let i = 0; i < this.nodes.length; i++) {\n      if (!this.nodes[i].eq(selection.nodes[i])) {\n        return false\n      }\n    }\n\n    return true\n  }\n\n  map(doc: Node, mapping: Mappable): Selection {\n    const fromResult = mapping.mapResult(this.from)\n    const toResult = mapping.mapResult(this.to)\n\n    if (toResult.deleted) {\n      return Selection.near(doc.resolve(fromResult.pos))\n    }\n\n    if (fromResult.deleted) {\n      return Selection.near(doc.resolve(toResult.pos))\n    }\n\n    return new MultipleNodeSelection(doc.resolve(fromResult.pos), doc.resolve(toResult.pos))\n  }\n\n  toJSON(): any {\n    return { type: 'node', anchor: this.anchor, head: this.head }\n  }\n}\n\nexport default MultipleNodeSelection\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/FormattingToolbar/FormattingToolbarPlugin.ts",
    "content": "/* eslint-disable max-classes-per-file */\nimport { isNodeSelection, isTextSelection, posToDOMRect } from '@tiptap/core'\nimport { EditorState, Plugin, PluginKey } from 'prosemirror-state'\nimport { EditorView } from 'prosemirror-view'\nimport { BaseUiElementCallbacks, BaseUiElementState, BlockNoteEditor, BlockSchema } from '../..'\nimport EventEmitter from '../../shared/EventEmitter'\n\nexport type FormattingToolbarCallbacks = BaseUiElementCallbacks\n\nexport type FormattingToolbarState = BaseUiElementState\n\nexport class FormattingToolbarView<BSchema extends BlockSchema> {\n  private formattingToolbarState?: FormattingToolbarState\n\n  public updateFormattingToolbar: () => void\n\n  public preventHide = false\n\n  public preventShow = false\n\n  public prevWasEditable: boolean | null = null\n\n  public static shouldShow: (props: { view: EditorView; state: EditorState; from: number; to: number }) => boolean = ({\n    view,\n    state,\n    from,\n    to,\n  }) => {\n    const { doc, selection } = state\n    const { empty } = selection\n\n    // Sometime check for `empty` is not enough.\n    // Doubleclick an empty paragraph returns a node size of 2.\n    // So we check also for an empty text size.\n    const isEmptyTextBlock = !doc.textBetween(from, to).length && isTextSelection(state.selection)\n\n    return !(\n      !view.hasFocus() ||\n      empty ||\n      isEmptyTextBlock ||\n      // Don't show menu if node selection (image, video, file, embed)\n      isNodeSelection(state.selection)\n    )\n  }\n\n  constructor(\n    private readonly editor: BlockNoteEditor<BSchema>,\n    private readonly pmView: EditorView,\n    updateFormattingToolbar: (formattingToolbarState: FormattingToolbarState) => void,\n  ) {\n    this.updateFormattingToolbar = () => {\n      if (!this.formattingToolbarState) {\n        throw new Error('Attempting to update uninitialized formatting toolbar')\n      }\n\n      updateFormattingToolbar(this.formattingToolbarState)\n    }\n\n    pmView.dom.addEventListener('mousedown', this.viewMousedownHandler)\n    pmView.dom.addEventListener('mouseup', this.viewMouseupHandler)\n    pmView.dom.addEventListener('dragstart', this.dragstartHandler)\n\n    pmView.dom.addEventListener('focus', this.focusHandler)\n    pmView.dom.addEventListener('blur', this.blurHandler)\n\n    document.addEventListener('scroll', this.scrollHandler)\n  }\n\n  viewMousedownHandler = () => {\n    this.preventShow = true\n  }\n\n  viewMouseupHandler = () => {\n    this.preventShow = false\n    setTimeout(() => this.update(this.pmView))\n  }\n\n  // For dragging the whole editor.\n  dragstartHandler = () => {\n    if (this.formattingToolbarState?.show) {\n      this.formattingToolbarState.show = false\n      this.updateFormattingToolbar()\n    }\n  }\n\n  focusHandler = () => {\n    // we use `setTimeout` to make sure `selection` is already updated\n    setTimeout(() => this.update(this.pmView))\n  }\n\n  blurHandler = (event: FocusEvent) => {\n    if (this.preventHide) {\n      this.preventHide = false\n\n      return\n    }\n\n    const editorWrapper = this.pmView.dom.parentElement!\n\n    // Checks if the focus is moving to an element outside the editor. If it is,\n    // the toolbar is hidden.\n    if (\n      // An element is clicked.\n      event &&\n      event.relatedTarget &&\n      // Element is inside the editor.\n      (editorWrapper === (event.relatedTarget as Node) || editorWrapper?.contains(event.relatedTarget as Node))\n    ) {\n      return\n    }\n\n    if (this.formattingToolbarState?.show) {\n      this.formattingToolbarState.show = false\n      this.updateFormattingToolbar()\n    }\n  }\n\n  scrollHandler = () => {\n    if (this.formattingToolbarState?.show) {\n      this.formattingToolbarState.referencePos = this.getSelectionBoundingBox()\n      this.updateFormattingToolbar()\n    }\n  }\n\n  update(view: EditorView, oldState?: EditorState) {\n    const { state, composing } = view\n    const { doc, selection } = state\n    const isSame = oldState && oldState.doc.eq(doc) && oldState.selection.eq(selection)\n\n    if ((this.prevWasEditable === null || this.prevWasEditable === this.editor.isEditable) && (composing || isSame)) {\n      return\n    }\n\n    this.prevWasEditable = this.editor.isEditable\n\n    // support for CellSelections\n    const { ranges } = selection\n    const from = Math.min(...ranges.map((range) => range.$from.pos))\n    const to = Math.max(...ranges.map((range) => range.$to.pos))\n\n    const shouldShow = FormattingToolbarView.shouldShow?.({\n      view,\n      state,\n      from,\n      to,\n    })\n\n    // Checks if menu should be shown/updated.\n    if (this.editor.isEditable && !this.preventShow && (shouldShow || this.preventHide)) {\n      this.formattingToolbarState = {\n        show: true,\n        referencePos: this.getSelectionBoundingBox(),\n      }\n\n      this.updateFormattingToolbar()\n\n      return\n    }\n\n    // Checks if menu should be hidden.\n    if (\n      this.formattingToolbarState?.show &&\n      !this.preventHide &&\n      (!shouldShow || this.preventShow || !this.editor.isEditable)\n    ) {\n      this.formattingToolbarState.show = false\n      this.updateFormattingToolbar()\n    }\n  }\n\n  destroy() {\n    this.pmView.dom.removeEventListener('mousedown', this.viewMousedownHandler)\n    this.pmView.dom.removeEventListener('mouseup', this.viewMouseupHandler)\n    this.pmView.dom.removeEventListener('dragstart', this.dragstartHandler)\n\n    this.pmView.dom.removeEventListener('focus', this.focusHandler)\n    this.pmView.dom.removeEventListener('blur', this.blurHandler)\n\n    document.removeEventListener('scroll', this.scrollHandler)\n  }\n\n  getSelectionBoundingBox() {\n    const { state } = this.pmView\n    const { selection } = state\n\n    // support for CellSelections\n    const { ranges } = selection\n    const from = Math.min(...ranges.map((range) => range.$from.pos))\n    const to = Math.max(...ranges.map((range) => range.$to.pos))\n\n    if (isNodeSelection(selection)) {\n      const node = this.pmView.nodeDOM(from) as HTMLElement\n\n      if (node) {\n        return node.getBoundingClientRect()\n      }\n    }\n\n    return posToDOMRect(this.pmView, from, to)\n  }\n}\n\nexport const formattingToolbarPluginKey = new PluginKey('FormattingToolbarPlugin')\n\nexport class FormattingToolbarProsemirrorPlugin<BSchema extends BlockSchema> extends EventEmitter<any> {\n  private view: FormattingToolbarView<BSchema> | undefined\n\n  public readonly plugin: Plugin\n\n  constructor(editor: BlockNoteEditor<BSchema>) {\n    super()\n    this.plugin = new Plugin({\n      key: formattingToolbarPluginKey,\n      view: (editorView) => {\n        this.view = new FormattingToolbarView(editor, editorView, (state) => {\n          this.emit('update', state)\n        })\n        return this.view\n      },\n    })\n  }\n\n  public onUpdate(callback: (state: FormattingToolbarState) => void) {\n    return this.on('update', callback)\n  }\n}\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/HyperlinkToolbar/HyperlinkToolbarPlugin.ts",
    "content": "/* eslint-disable max-classes-per-file */\nimport { getMarkRange, posToDOMRect, Range } from '@tiptap/core'\nimport { EditorView } from '@tiptap/pm/view'\nimport { Mark, Node as PMNode } from 'prosemirror-model'\nimport { Plugin, PluginKey } from 'prosemirror-state'\nimport type { BlockNoteEditor } from '../../BlockNoteEditor'\nimport { BaseUiElementState } from '../../shared/BaseUiElementTypes'\nimport EventEmitter from '../../shared/EventEmitter'\nimport { BlockSchema } from '../Blocks/api/blockTypes'\nimport { getGroupInfoFromPos } from '../Blocks/helpers/getGroupInfoFromPos'\n\nexport type HyperlinkToolbarState = BaseUiElementState & {\n  // The hovered hyperlink's URL, and the text it's displayed with in the\n  // editor.\n  url: string\n  text: string\n  type: string\n  id: string\n}\n\nclass HyperlinkToolbarView<BSchema extends BlockSchema> {\n  private hyperlinkToolbarState?: HyperlinkToolbarState\n\n  public updateHyperlinkToolbar: () => void\n\n  menuUpdateTimer: ReturnType<typeof setTimeout> | undefined\n\n  startMenuUpdateTimer: () => void\n\n  stopMenuUpdateTimer: () => void\n\n  mouseHoveredHyperlinkMark: Mark | PMNode | undefined\n\n  mouseHoveredHyperlinkMarkRange: Range | undefined\n\n  keyboardHoveredHyperlinkMark: Mark | PMNode | undefined\n\n  keyboardHoveredHyperlinkMarkRange: Range | undefined\n\n  hyperlinkMark: Mark | PMNode | undefined\n\n  hyperlinkMarkRange: Range | undefined\n\n  constructor(\n    private readonly editor: BlockNoteEditor<BSchema>,\n    private readonly pmView: EditorView,\n    updateHyperlinkToolbar: (hyperlinkToolbarState: HyperlinkToolbarState) => void,\n  ) {\n    this.updateHyperlinkToolbar = () => {\n      if (!this.hyperlinkToolbarState) {\n        throw new Error('Attempting to update uninitialized hyperlink toolbar')\n      }\n\n      updateHyperlinkToolbar(this.hyperlinkToolbarState)\n    }\n\n    this.startMenuUpdateTimer = () => {\n      this.menuUpdateTimer = setTimeout(() => {\n        this.update()\n      }, 250)\n    }\n\n    this.stopMenuUpdateTimer = () => {\n      if (this.menuUpdateTimer) {\n        clearTimeout(this.menuUpdateTimer)\n        this.menuUpdateTimer = undefined\n      }\n\n      return false\n    }\n\n    this.pmView.dom.addEventListener('mouseover', this.mouseOverHandler)\n    document.addEventListener('click', this.clickHandler, true)\n    document.addEventListener('scroll', this.scrollHandler)\n  }\n\n  mouseOverHandler = () => {\n    // Resets the hyperlink mark currently hovered by the mouse cursor.\n    this.mouseHoveredHyperlinkMark = undefined\n    this.mouseHoveredHyperlinkMarkRange = undefined\n\n    this.stopMenuUpdateTimer()\n\n    // const target = event.target\n    // if (target instanceof HTMLSpanElement && target.nodeName === 'SPAN') {\n    //   if (target.classList.contains('mention-text')) {\n    //     const parent = target.parentElement\n    //     if (parent && parent.nodeName === 'DIV') {\n    //       // const link = parent.getAttribute('data-inline-embed')\n    //       const domPos = this.pmView.posAtDOM(target, 0)\n    //       const pos = this.pmView.state.doc.resolve(domPos)\n    //       let mention = pos.parent.firstChild\n    //       if (mention) {\n    //         if (mention.type.name === 'inline-embed') {\n    //           this.mouseHoveredHyperlinkMark = mention\n    //           this.mouseHoveredHyperlinkMarkRange = {\n    //             from: pos.start(),\n    //             to: pos.end(),\n    //           }\n    //         } else {\n    //           let offset = 0\n    //           pos.parent.descendants((node, pos) => {\n    //             if (node.type.name === 'inline-embed') {\n    //               mention = node\n    //               offset = pos\n    //             }\n    //           })\n    //           this.mouseHoveredHyperlinkMark = mention\n    //           this.mouseHoveredHyperlinkMarkRange = {\n    //             from: pos.start() + offset,\n    //             to: pos.start() + offset + 2,\n    //           }\n    //         }\n    //       }\n    //     }\n    //   }\n    // else if (target.classList.contains('hm-link')) {\n    //   const posInHoveredHyperlinkMark = this.pmView.posAtDOM(target, 0) + 1\n    //   const resolvedPosInHoveredHyperlinkMark = this.pmView.state.doc.resolve(\n    //     posInHoveredHyperlinkMark,\n    //   )\n    //   const marksAtPos = resolvedPosInHoveredHyperlinkMark.marks()\n\n    //   for (const mark of marksAtPos) {\n    //     if (\n    //       mark.type.name === this.pmView.state.schema.mark('link').type.name\n    //     ) {\n    //       this.mouseHoveredHyperlinkMark = mark\n    //       this.mouseHoveredHyperlinkMarkRange =\n    //         getMarkRange(\n    //           resolvedPosInHoveredHyperlinkMark,\n    //           mark.type,\n    //           mark.attrs,\n    //         ) || undefined\n\n    //       break\n    //     }\n    //   }\n    // }\n    // }\n    // if (\n    //   (target instanceof HTMLButtonElement &&\n    //     target.nodeName === 'BUTTON' &&\n    //     target.getAttribute('data-type') === 'hm-button') ||\n    //   (target instanceof HTMLSpanElement &&\n    //     target.parentElement?.nodeName === 'BUTTON' &&\n    //     target.parentElement.getAttribute('data-type') === 'hm-button')\n    // ) {\n    //   // console.log(target.className, target.getAttribute('data-type'))\n    //   console.log(event.target, event.relatedTarget, event.currentTarget)\n    // }\n\n    // if (target instanceof HTMLDivElement && target.nodeName === 'DIV') {\n    //   console.log(target)\n    // }\n    this.startMenuUpdateTimer()\n\n    return false\n  }\n\n  clickHandler = (event: MouseEvent) => {\n    const editorWrapper = this.pmView.dom.parentElement!\n\n    if (\n      // Toolbar is open.\n      this.hyperlinkMark &&\n      // An element is clicked.\n      event &&\n      event.target &&\n      // The clicked element is not the editor.\n      !(editorWrapper === (event.target as Node) || editorWrapper?.contains(event.target as Node))\n    ) {\n      if (this.hyperlinkToolbarState?.show) {\n        this.hyperlinkToolbarState.show = false\n        this.updateHyperlinkToolbar()\n      }\n    }\n  }\n\n  scrollHandler = () => {\n    if (this.hyperlinkMark !== undefined) {\n      if (this.hyperlinkToolbarState?.show) {\n        this.hyperlinkToolbarState.referencePos = posToDOMRect(\n          this.pmView,\n          this.hyperlinkMarkRange!.from,\n          this.hyperlinkMarkRange!.to,\n        )\n        this.updateHyperlinkToolbar()\n      }\n    }\n  }\n\n  // the latest param here is to change the latest HM param without closing the link modal.\n  // it should be TRUE if you DON't want to close the modal when called.\n  editHyperlink(url: string, text: string) {\n    let tr = this.pmView.state.tr\n    if (this.hyperlinkToolbarState && this.hyperlinkToolbarState.type === 'mention') {\n      const pos = this.hyperlinkMarkRange ? this.hyperlinkMarkRange.from : this.pmView.state.selection.from\n      tr = tr.setNodeMarkup(pos, null, {\n        link: url,\n      })\n      // return\n    } else {\n      tr = this.pmView.state.tr.insertText(text, this.hyperlinkMarkRange!.from, this.hyperlinkMarkRange!.to)\n      tr.addMark(\n        this.hyperlinkMarkRange!.from,\n        this.hyperlinkMarkRange!.from + text.length,\n        this.pmView.state.schema.mark('link', { href: url }),\n      )\n    }\n\n    this.pmView.dispatch(tr)\n\n    this.pmView.focus()\n\n    if (this.hyperlinkToolbarState?.show) {\n      this.hyperlinkToolbarState.show = false\n      this.updateHyperlinkToolbar()\n    }\n  }\n\n  updateHyperlink(url: string, text: string) {\n    let tr = this.pmView.state.tr\n    if (this.hyperlinkToolbarState && this.hyperlinkToolbarState.type === 'mention') {\n      const pos = this.hyperlinkMarkRange ? this.hyperlinkMarkRange.from : this.pmView.state.selection.from\n      tr = tr.setNodeMarkup(pos, null, {\n        link: url,\n      })\n      // return\n    } else {\n      const newLength = this.hyperlinkMarkRange!.from + text.length\n      tr = this.pmView.state.tr\n        .insertText(text, this.hyperlinkMarkRange!.from, this.hyperlinkMarkRange!.to)\n        .addMark(this.hyperlinkMarkRange!.from, newLength, this.pmView.state.schema.mark('link', { href: url }))\n\n      this.hyperlinkMarkRange!.to = newLength\n    }\n\n    this.pmView.dispatch(tr)\n  }\n\n  resetHyperlink() {\n    // @ts-ignore\n    this.hyperlinkToolbarState = {\n      ...this.hyperlinkToolbarState,\n      show: false,\n      url: '',\n      text: '',\n      type: '',\n      id: '',\n    }\n    this.updateHyperlinkToolbar()\n  }\n\n  deleteHyperlink() {\n    if (this.hyperlinkMark instanceof Mark) {\n      this.pmView.dispatch(\n        this.pmView.state.tr\n          .removeMark(this.hyperlinkMarkRange!.from, this.hyperlinkMarkRange!.to, this.hyperlinkMark!.type)\n          .setMeta('preventAutolink', true),\n      )\n    } else if (this.hyperlinkToolbarState && this.hyperlinkToolbarState.type === 'mention') {\n      const state = this.pmView.state\n      let tr = state.tr\n      const pos = this.hyperlinkMarkRange ? this.hyperlinkMarkRange.from : this.pmView.state.selection.from\n      const $pos = state.doc.resolve(pos)\n      let offset = 0\n      $pos.parent.descendants((node, position) => {\n        if (node.type.name === 'inline-embed' && node.attrs.link === this.hyperlinkToolbarState!.url) {\n          offset = position\n        }\n      })\n      tr = tr.replaceRangeWith(\n        $pos.start() + offset,\n        $pos.start() + offset + 1,\n        state.schema.text(this.hyperlinkToolbarState.text),\n      )\n      // tr = tr.setNodeMarkup(pos, state.schema.nodes['paragraph'])\n      this.pmView.dispatch(tr)\n    }\n\n    this.pmView.focus()\n\n    if (this.hyperlinkToolbarState?.show) {\n      this.hyperlinkToolbarState.show = false\n      this.updateHyperlinkToolbar()\n    }\n  }\n\n  update() {\n    if (!this.pmView.hasFocus()) {\n      return\n    }\n\n    // Saves the currently hovered hyperlink mark before it's updated.\n    const prevHyperlinkMark = this.hyperlinkMark\n\n    // Resets the currently hovered hyperlink mark.\n    this.hyperlinkMark = undefined\n    this.hyperlinkMarkRange = undefined\n\n    // Resets the hyperlink mark currently hovered by the keyboard cursor.\n    this.keyboardHoveredHyperlinkMark = undefined\n    this.keyboardHoveredHyperlinkMarkRange = undefined\n\n    // Finds link mark at the editor selection's position to update keyboardHoveredHyperlinkMark and\n    // keyboardHoveredHyperlinkMarkRange.\n    // if (this.pmView.state.selection.empty) {\n    const marksAtPos = this.pmView.state.selection.$from.marks()\n\n    if (marksAtPos.length > 0) {\n      for (const mark of marksAtPos) {\n        if (mark.type.name === this.pmView.state.schema.mark('link').type.name) {\n          this.keyboardHoveredHyperlinkMark = mark\n          this.keyboardHoveredHyperlinkMarkRange =\n            getMarkRange(this.pmView.state.selection.$from, mark.type, mark.attrs) || undefined\n\n          break\n        }\n      }\n    } else {\n      const textNode = this.pmView.state.selection.$from.nodeAfter\n      if (textNode && textNode.type.name === 'inline-embed') {\n        if (this.pmView.state.selection.to - this.pmView.state.selection.from === 1) {\n          this.keyboardHoveredHyperlinkMark = textNode\n          this.keyboardHoveredHyperlinkMarkRange = {\n            from: this.pmView.state.selection.from,\n            to: this.pmView.state.selection.to,\n          }\n        }\n      }\n    }\n\n    if (this.mouseHoveredHyperlinkMark) {\n      this.hyperlinkMark = this.mouseHoveredHyperlinkMark\n      this.hyperlinkMarkRange = this.mouseHoveredHyperlinkMarkRange\n    }\n\n    // Keyboard cursor position takes precedence over mouse hovered hyperlink.\n    if (this.keyboardHoveredHyperlinkMark) {\n      this.hyperlinkMark = this.keyboardHoveredHyperlinkMark\n      this.hyperlinkMarkRange = this.keyboardHoveredHyperlinkMarkRange\n    }\n\n    if (this.hyperlinkMark && this.editor.isEditable) {\n      const { container } = getGroupInfoFromPos(this.pmView.state.selection.from, this.pmView.state)\n      if (this.hyperlinkMark instanceof Mark) {\n        this.hyperlinkToolbarState = {\n          show: this.pmView.state.selection.empty,\n          referencePos: posToDOMRect(this.pmView, this.hyperlinkMarkRange!.from, this.hyperlinkMarkRange!.to),\n          url: this.hyperlinkMark!.attrs.href,\n          text: this.pmView.state.doc.textBetween(this.hyperlinkMarkRange!.from, this.hyperlinkMarkRange!.to),\n          type: 'link',\n          id: container ? container.attrs.id : '',\n        }\n      } else if (this.hyperlinkMark instanceof PMNode) {\n        const parent = this.pmView.state.selection.$anchor.parent\n        this.hyperlinkToolbarState = {\n          show: parent && this.pmView.state.doc.resolve(this.hyperlinkMarkRange!.from).parent.eq(parent),\n          referencePos: posToDOMRect(this.pmView, this.hyperlinkMarkRange!.from, this.hyperlinkMarkRange!.to),\n          url: this.hyperlinkMark!.attrs.link,\n          text: ' ',\n          type: 'mention',\n          id: container ? container.attrs.id : '',\n        }\n      }\n\n      this.updateHyperlinkToolbar()\n\n      return\n    }\n\n    // Hides menu.\n    if (this.hyperlinkToolbarState?.show && prevHyperlinkMark && (!this.hyperlinkMark || !this.editor.isEditable)) {\n      this.hyperlinkToolbarState.show = false\n\n      this.updateHyperlinkToolbar()\n    }\n  }\n\n  destroy() {\n    this.pmView.dom.removeEventListener('mouseover', this.mouseOverHandler)\n    document.removeEventListener('scroll', this.scrollHandler)\n    document.removeEventListener('click', this.clickHandler, true)\n  }\n}\n\nexport const hyperlinkToolbarPluginKey = new PluginKey('HyperlinkToolbarPlugin')\n\nexport class HyperlinkToolbarProsemirrorPlugin<BSchema extends BlockSchema> extends EventEmitter<any> {\n  private view: HyperlinkToolbarView<BSchema> | undefined\n\n  public readonly plugin: Plugin\n\n  constructor(editor: BlockNoteEditor<BSchema>) {\n    super()\n    this.plugin = new Plugin({\n      key: hyperlinkToolbarPluginKey,\n      view: (editorView) => {\n        this.view = new HyperlinkToolbarView(editor, editorView, (state) => {\n          this.emit('update', state)\n        })\n        return this.view\n      },\n    })\n  }\n\n  public onUpdate(callback: (state: HyperlinkToolbarState) => void) {\n    return this.on('update', callback)\n  }\n\n  /**\n   * Edit the currently hovered hyperlink.\n   */\n  public editHyperlink = (url: string, text: string) => {\n    this.view!.editHyperlink(url, text)\n  }\n\n  /**\n   * Edit the currently hovered hyperlink.\n   */\n  public updateHyperlink = (url: string, text: string) => {\n    this.view!.updateHyperlink(url, text)\n  }\n\n  /**\n   * Delete the currently hovered hyperlink.\n   */\n  public deleteHyperlink = () => {\n    this.view!.deleteHyperlink()\n  }\n\n  /**\n   * When hovering on/off hyperlinks using the mouse cursor, the hyperlink\n   * toolbar will open & close with a delay.\n   *\n   * This function starts the delay timer, and should be used for when the mouse cursor enters the hyperlink toolbar.\n   */\n  public startHideTimer = () => {\n    this.view!.startMenuUpdateTimer()\n  }\n\n  /**\n   * When hovering on/off hyperlinks using the mouse cursor, the hyperlink\n   * toolbar will open & close with a delay.\n   *\n   * This function stops the delay timer, and should be used for when the mouse cursor exits the hyperlink toolbar.\n   */\n  public stopHideTimer = () => {\n    this.view!.stopMenuUpdateTimer()\n  }\n\n  public resetHyperlink = () => {\n    this.view!.resetHyperlink()\n  }\n}\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/Markdown/MarkdownExtension.ts",
    "content": "import { Editor, Extension } from '@tiptap/core'\nimport { Fragment, Node } from '@tiptap/pm/model'\nimport { Plugin } from 'prosemirror-state'\nimport { youtubeParser } from '@/components/Editor/types/utils'\nimport { BlockNoteEditor } from '../../BlockNoteEditor'\nimport { getBlockInfoFromPos } from '@/lib/utils'\nimport * as BlockUtils from '@/lib/utils/block-utils'\n\nfunction containsMarkdownSymbols(pastedText: string) {\n  // Regex to detect unique Markdown symbols at the start of a line\n  // eslint-disable-next-line no-useless-backreference\n  const markdownUniqueSymbols = new RegExp(\n    [\n      '^#{1,6} ', // Headers\n      '^[\\\\s]*[-+*] ', // Unordered Lists\n      '^\\\\d+\\\\. ', // Ordered Lists\n      '^[\\\\s]*> ', // Blockquotes\n      '^```', // Code Fences\n      '^`[^`]+`$', // Inline Code\n      '^!\\\\[([^\\\\]]*)\\\\]\\\\(([^)]+)\\\\)$', // Images\n      '^(\\\\*\\\\*|__)(.*?)\\\\1$',\n      '^(\\\\*|_)(.*?)\\\\1$',\n    ].join('|'),\n    'm',\n  )\n\n  // Split the text by lines and check each line\n  const lines = pastedText.split('\\n').map((line) => line.trim())\n\n  // Ensure that at least one line contains valid Markdown symbols\n  return lines.some((line) => markdownUniqueSymbols.test(line))\n}\n\n// Get nodes of a fragment or block group to be pasted\nfunction getPastedNodes(parent: Node | Fragment, editor: Editor) {\n  const nodes: Node[] = []\n  parent.forEach((node) => {\n    if (node.type.name === 'blockGroup') {\n      const prevContainer = nodes.pop()\n      if (prevContainer) {\n        const container = editor.schema.nodes.blockContainer.create(\n          prevContainer.attrs,\n          prevContainer.content.addToEnd(node),\n        )\n        nodes.push(container)\n      }\n    } else if (node.type.name !== 'blockContainer') {\n      let nodeToInsert = node\n      if (node.type.name === 'text') {\n        nodeToInsert = editor.schema.nodes.paragraph.create({}, node)\n      }\n      const container = editor.schema.nodes.blockContainer.create(null, nodeToInsert)\n      nodes.push(container)\n    } else nodes.push(node)\n  })\n  return nodes\n}\n\nconst createMarkdownExtension = (bnEditor: BlockNoteEditor) => {\n  const MarkdownExtension = Extension.create({\n    name: 'MarkdownPasteHandler',\n    priority: 900,\n\n    addProseMirrorPlugins() {\n      return [\n        new Plugin({\n          props: {\n            handlePaste: (view, event, slice) => {\n              const selectedNode = view.state.selection.$from.parent\n              // Don't proceed if pasting into code block\n              if (selectedNode.type.name === 'code-block' || selectedNode.firstChild?.type.name === 'code-block') {\n                return false\n              }\n              const pastedText = event.clipboardData!.getData('text/plain')\n              const pastedHtml = event.clipboardData!.getData('text/html')\n              const hasList = pastedHtml.includes('<ul') || pastedHtml.includes('<ol')\n              const hasVideo = pastedText.includes('youtube')\n              const { state } = view\n              const { selection } = state\n\n              const isMarkdown = pastedHtml ? containsMarkdownSymbols(pastedText) : true\n\n              if (!isMarkdown) {\n                if (hasList) {\n                  const firstBlockGroup = slice.content.firstChild?.type.name === 'blockGroup'\n                  const nodes: Node[] = getPastedNodes(\n                    firstBlockGroup ? slice.content.firstChild : slice.content,\n                    this.editor,\n                  )\n                  const root = this.editor.schema.nodes.blockGroup.create({}, nodes)\n                  let tr = state.tr\n                  tr = tr.replaceRangeWith(\n                    selection.from,\n                    selection.to,\n                    // @ts-ignore\n                    root.content.content,\n                  )\n                  view.dispatch(tr)\n                  return true\n                }\n                return false\n              }\n              if (hasVideo) {\n                let embedUrl = 'https://www.youtube.com/embed/'\n                if (pastedText.includes('youtu.be') || pastedText.includes('youtube')) {\n                  const ytId = youtubeParser(pastedText)\n                  if (ytId) {\n                    embedUrl += ytId\n                    const node = view.state.schema.nodes.video.create({\n                      url: embedUrl,\n                      name: 'youtube',\n                    })\n                    view.dispatch(view.state.tr.replaceSelectionWith(node))\n                  }\n                }\n              } else {\n                // This is not a media file, just plaintext\n                bnEditor.markdownToBlocks(pastedText).then((organizedBlocks: any) => {\n                  const blockInfo = getBlockInfoFromPos(state.doc, selection.from)\n                  bnEditor.replaceBlocks(\n                    [blockInfo.node.attrs.id],\n                    // @ts-ignore\n                    organizedBlocks,\n                  )\n                  BlockUtils.setGroupTypes(bnEditor._tiptapEditor, organizedBlocks)\n                })\n              }\n              return true\n            },\n          },\n        }),\n      ]\n    },\n  })\n\n  return MarkdownExtension\n}\n\nexport default createMarkdownExtension\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/Pasting/local-media-paste-plugin.ts",
    "content": "import { Extension } from '@tiptap/core'\nimport { Plugin, PluginKey } from 'prosemirror-state'\nimport { getBlockInfoFromPos } from '@/lib/utils'\n\n// file was taken from https://github.com/seed-hypermedia/seed/blob/main/frontend/packages/editor/src/handle-local-media-paste-plugin.ts\n// with some changes on storing the file\n\nasync function uploadMedia(file: File, blockID: string) {\n  return new Promise((resolve, reject) => {\n    const reader = new FileReader()\n\n    reader.onload = async (event) => {\n      if (!event.target?.result) {\n        reject(new Error('Failed to load file.'))\n        return\n      }\n      const imageData = event.target.result as string\n\n      try {\n        const storedImageUrl = await window.fileSystem.storeImage(imageData, file.name || 'clipboard.png', blockID)\n        resolve(storedImageUrl)\n      } catch (error) {\n        reject(error)\n      }\n    }\n\n    reader.onerror = (error) => reject(error)\n    reader.readAsDataURL(file) // Convert image to base64\n  })\n}\n\nconst handleLocalMediaPastePlugin = new Plugin({\n  key: new PluginKey('pm-local-media-paste'),\n  props: {\n    handlePaste(view, event) {\n      const currentSelection = view.state.selection\n      const items = Array.from(event.clipboardData?.items || [])\n      const blockInfo = getBlockInfoFromPos(view.state.doc, view.state.selection.from)!\n      const { id } = blockInfo\n\n      if (items.length === 0) return false\n      for (const item of items) {\n        if (item.type.indexOf('image') === 0) {\n          const img = item.getAsFile()\n          if (img) {\n            // return true\n            uploadMedia(img, id)\n              .then((data) => {\n                const { name } = img\n                const { schema } = view.state\n                const node = schema.nodes.image.create({\n                  url: data,\n                  name: name,\n                })\n                view.dispatch(view.state.tr.insert(currentSelection.anchor - 1, node))\n              })\n              .catch((error) => {\n                // eslint-disable-next-line no-console\n                console.error(error)\n              })\n          }\n          return true\n        }\n        if (item.type.indexOf('video') === 0) {\n          const vid = item.getAsFile()\n          if (vid) {\n            // return true\n            uploadMedia(vid, id)\n              .then((data) => {\n                const { name } = vid\n                const { schema } = view.state\n                const node = schema.nodes.video.create({\n                  url: data,\n                  name: name,\n                })\n                view.dispatch(view.state.tr.insert(currentSelection.anchor - 1, node))\n              })\n              .catch((error) => {\n                // eslint-disable-next-line no-console\n                console.error(error)\n              })\n          }\n          return true\n        }\n      }\n      return false\n    },\n  },\n})\n\nconst LocalMediaPastePlugin = Extension.create({\n  name: 'local-media-paste',\n  addProseMirrorPlugins() {\n    return [handleLocalMediaPastePlugin]\n  },\n})\n\nexport default LocalMediaPastePlugin\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/Placeholder/PlaceholderExtension.ts",
    "content": "import { Editor, Extension } from '@tiptap/core'\nimport { Node as ProsemirrorNode } from 'prosemirror-model'\nimport { Plugin, PluginKey } from 'prosemirror-state'\nimport { Decoration, DecorationSet } from 'prosemirror-view'\nimport { slashMenuPluginKey } from '../SlashMenu/SlashMenuPlugin'\n\nconst PLUGIN_KEY = new PluginKey(`blocknote-placeholder`)\n\n/**\n * This is a modified version of the tiptap\n * placeholder plugin, that also sets hasAnchorClass\n *\n * It does not set a data-placeholder (text is currently done in css)\n *\n */\nexport interface PlaceholderOptions {\n  emptyEditorClass: string\n  emptyNodeClass: string\n  isFilterClass: string\n  hasAnchorClass: string\n  placeholder:\n    | ((PlaceholderProps: { editor: Editor; node: ProsemirrorNode; pos: number; hasAnchor: boolean }) => string)\n    | string\n  showOnlyWhenEditable: boolean\n  showOnlyCurrent: boolean\n  includeChildren: boolean\n}\n\nexport const Placeholder = Extension.create<PlaceholderOptions>({\n  name: 'placeholder',\n\n  addOptions() {\n    return {\n      emptyEditorClass: 'is-editor-empty',\n      emptyNodeClass: 'is-empty',\n      isFilterClass: 'is-filter',\n      hasAnchorClass: 'has-anchor',\n      placeholder: 'Write something …',\n      showOnlyWhenEditable: true,\n      showOnlyCurrent: true,\n      includeChildren: false,\n    }\n  },\n\n  addProseMirrorPlugins() {\n    return [\n      new Plugin({\n        key: PLUGIN_KEY,\n        props: {\n          decorations: (state) => {\n            const { doc, selection } = state\n            // Get state of slash menu\n            const menuState = slashMenuPluginKey.getState(state)\n            const active = this.editor.isEditable || !this.options.showOnlyWhenEditable\n            const { anchor } = selection\n            const decorations: Decoration[] = []\n\n            if (!active) {\n              return undefined\n            }\n\n            doc.descendants((node, pos) => {\n              const hasAnchor = anchor >= pos && anchor <= pos + node.nodeSize\n              const isEmpty = !node.isLeaf && !node.childCount\n\n              if ((hasAnchor || !this.options.showOnlyCurrent) && isEmpty) {\n                const classes = [this.options.emptyNodeClass]\n\n                if (this.editor.isEmpty) {\n                  classes.push(this.options.emptyEditorClass)\n                }\n\n                if (hasAnchor) {\n                  classes.push(this.options.hasAnchorClass)\n                }\n\n                // If slash menu is of drag type and active, show the filter placeholder\n                if (menuState?.triggerCharacter === '' && menuState?.active) {\n                  classes.push(this.options.isFilterClass)\n                }\n\n                const decoration = Decoration.node(pos, pos + node.nodeSize, {\n                  class: classes.join(' '),\n                })\n                decorations.push(decoration)\n              }\n\n              return this.options.includeChildren\n            })\n\n            return DecorationSet.create(doc, decorations)\n          },\n        },\n      }),\n    ]\n  },\n})\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/SideMenu/SideMenuPlugin.ts",
    "content": "import { Node } from 'prosemirror-model'\nimport { NodeSelection, Plugin, PluginKey, Selection } from 'prosemirror-state'\nimport { EditorView } from 'prosemirror-view'\nimport { BlockNoteEditor } from '../../BlockNoteEditor'\nimport styles from '../../editor.module.css'\nimport EventEmitter from '../../shared/EventEmitter'\nimport { BlockSchema } from '../Blocks/api/blockTypes'\nimport MultipleNodeSelection from '../DraggableBlocks/MultipleNodeSelection'\nimport { getDraggableBlockFromCoords, SideMenuState, SideMenuView } from './SideMenuView'\n\n// const serializeForClipboard = (pv as any).__serializeForClipboard\n// code based on https://github.com/ueberdosis/tiptap/issues/323#issuecomment-506637799\n\nlet dragImageElement: Element | undefined\n\nfunction blockPositionFromCoords(coords: { left: number; top: number }, view: EditorView) {\n  const block = getDraggableBlockFromCoords(coords, view)\n\n  if (block && block.node.nodeType === 1) {\n    // TODO: this uses undocumented PM APIs? do we need this / let's add docs?\n    const docView = (view as any).docView\n    const desc = docView.nearestDesc(block.node, true)\n    if (!desc || desc === docView) {\n      return null\n    }\n    return desc.posBefore\n  }\n  return null\n}\n\nfunction blockPositionsFromSelection(selection: Selection, doc: Node) {\n  // Absolute positions just before the first block spanned by the selection, and just after the last block. Having the\n  // selection start and end just before and just after the target blocks ensures no whitespace/line breaks are left\n  // behind after dragging & dropping them.\n  let beforeFirstBlockPos: number\n  let afterLastBlockPos: number\n\n  // Even the user starts dragging blocks but drops them in the same place, the selection will still be moved just\n  // before & just after the blocks spanned by the selection, and therefore doesn't need to change if they try to drag\n  // the same blocks again. If this happens, the anchor & head move out of the block content node they were originally\n  // in. If the anchor should update but the head shouldn't and vice versa, it means the user selection is outside a\n  // block content node, which should never happen.\n  const selectionStartInBlockContent = doc.resolve(selection.from).node().type.spec.group === 'blockContent'\n  const selectionEndInBlockContent = doc.resolve(selection.to).node().type.spec.group === 'blockContent'\n\n  // Ensures that entire outermost nodes are selected if the selection spans multiple nesting levels.\n  const minDepth = Math.min(selection.$anchor.depth, selection.$head.depth)\n\n  if (selectionStartInBlockContent && selectionEndInBlockContent) {\n    // Absolute positions at the start of the first block in the selection and at the end of the last block. User\n    // selections will always start and end in block content nodes, but we want the start and end positions of their\n    // parent block nodes, which is why minDepth - 1 is used.\n    const startFirstBlockPos = selection.$from.start(minDepth - 1)\n    const endLastBlockPos = selection.$to.end(minDepth - 1)\n\n    // Shifting start and end positions by one moves them just outside the first and last selected blocks.\n    beforeFirstBlockPos = doc.resolve(startFirstBlockPos - 1).pos\n    afterLastBlockPos = doc.resolve(endLastBlockPos + 1).pos\n  } else {\n    beforeFirstBlockPos = selection.from\n    afterLastBlockPos = selection.to\n  }\n\n  return { from: beforeFirstBlockPos, to: afterLastBlockPos }\n}\n\nfunction unsetDragImage() {\n  if (dragImageElement !== undefined) {\n    document.body.removeChild(dragImageElement)\n    dragImageElement = undefined\n  }\n}\n\nfunction setDragImage(view: EditorView, from: number, to = from) {\n  if (from === to) {\n    // Moves to position to be just after the first (and only) selected block.\n    to += view.state.doc.resolve(from + 1).node().nodeSize\n  }\n\n  // Parent element is cloned to remove all unselected children without affecting the editor content.\n  const parentClone = view.domAtPos(from).node.cloneNode(true) as Element\n  const parent = view.domAtPos(from).node as Element\n\n  const getElementIndex = (parentElement: Element, targetElement: Element) =>\n    Array.prototype.indexOf.call(parentElement.children, targetElement)\n\n  const firstSelectedBlockIndex = getElementIndex(\n    parent,\n    // Expects from position to be just before the first selected block.\n    view.domAtPos(from + 1).node.parentElement!,\n  )\n  const lastSelectedBlockIndex = getElementIndex(\n    parent,\n    // Expects to position to be just after the last selected block.\n    view.domAtPos(to - 1).node.parentElement!,\n  )\n\n  for (let i = parent.childElementCount - 1; i >= 0; i--) {\n    if (i > lastSelectedBlockIndex || i < firstSelectedBlockIndex) {\n      parentClone.removeChild(parentClone.children[i])\n    }\n  }\n\n  // dataTransfer.setDragImage(element) only works if element is attached to the DOM.\n  unsetDragImage()\n  dragImageElement = parentClone\n\n  // TODO: This is hacky, need a better way of assigning classes to the editor so that they can also be applied to the\n  //  drag preview.\n  const classes = view.dom.className.split(' ')\n  const inheritedClasses = classes\n    .filter(\n      (className) => !className.includes('bn') && !className.includes('ProseMirror') && !className.includes('editor'),\n    )\n    .join(' ')\n\n  dragImageElement.className = `${dragImageElement.className} ${styles.dragPreview} ${inheritedClasses}`\n\n  document.body.appendChild(dragImageElement)\n}\n\nfunction dragStart(e: { dataTransfer: DataTransfer | null; clientY: number }, view: EditorView) {\n  if (!e.dataTransfer) {\n    return\n  }\n\n  const editorBoundingBox = view.dom.getBoundingClientRect()\n\n  const coords = {\n    left: editorBoundingBox.left + editorBoundingBox.width / 2, // take middle of editor\n    top: e.clientY,\n  }\n\n  const pos = blockPositionFromCoords(coords, view)\n  if (pos != null) {\n    const selection = view.state.selection\n    const doc = view.state.doc\n\n    const { from, to } = blockPositionsFromSelection(selection, doc)\n\n    const draggedBlockInSelection = from <= pos && pos < to\n    const multipleBlocksSelected =\n      selection.$anchor.node() !== selection.$head.node() || selection instanceof MultipleNodeSelection\n\n    if (draggedBlockInSelection && multipleBlocksSelected) {\n      view.dispatch(view.state.tr.setSelection(MultipleNodeSelection.create(doc, from, to)))\n      setDragImage(view, from, to)\n    } else {\n      view.dispatch(view.state.tr.setSelection(NodeSelection.create(view.state.doc, pos)))\n      setDragImage(view, pos)\n    }\n\n    const slice = view.state.selection.content()\n    // const {dom, text} = serializeForClipboard(view, slice)\n    const { dom, text } = view.serializeForClipboard(slice)\n\n    e.dataTransfer.clearData()\n    e.dataTransfer.setData('text/html', dom.innerHTML)\n    e.dataTransfer.setData('text/plain', text)\n    e.dataTransfer.effectAllowed = 'move'\n    e.dataTransfer.setDragImage(dragImageElement!, 0, 0)\n    view.dragging = { slice, move: true }\n  }\n}\n\nexport const sideMenuPluginKey = new PluginKey('SideMenuPlugin')\n\nexport class SideMenuProsemirrorPlugin<BSchema extends BlockSchema> extends EventEmitter<any> {\n  private sideMenuView: SideMenuView<BSchema> | undefined\n\n  public readonly plugin: Plugin\n\n  constructor(private readonly editor: BlockNoteEditor<BSchema>) {\n    super()\n    this.plugin = new Plugin({\n      key: sideMenuPluginKey,\n      view: (editorView) => {\n        this.sideMenuView = new SideMenuView(editor, editorView, (sideMenuState) => {\n          this.emit('update', sideMenuState)\n        })\n        return this.sideMenuView\n      },\n    })\n  }\n\n  public onUpdate(callback: (state: SideMenuState<BSchema>) => void) {\n    return this.on('update', callback)\n  }\n\n  /**\n   * If the block is empty, opens the slash menu. If the block has content,\n   * creates a new block below and opens the slash menu in it.\n   */\n  addBlock = () => this.sideMenuView!.addBlock()\n\n  /**\n   * Handles drag & drop events for blocks.\n   */\n  blockDragStart = (event: { dataTransfer: DataTransfer | null; clientY: number }) => {\n    this.sideMenuView!.isDragging = true\n    dragStart(event, this.editor.prosemirrorView)\n  }\n\n  /**\n   * Handles drag & drop events for blocks.\n   */\n  // eslint-disable-next-line\n  blockDragEnd = () => unsetDragImage()\n\n  /**\n   * Freezes the side menu. When frozen, the side menu will stay\n   * attached to the same block regardless of which block is hovered by the\n   * mouse cursor.\n   */\n  freezeMenu = () => (this.sideMenuView!.menuFrozen = true)\n\n  /**\n   * Unfreezes the side menu. When frozen, the side menu will stay\n   * attached to the same block regardless of which block is hovered by the\n   * mouse cursor.\n   */\n  unfreezeMenu = () => (this.sideMenuView!.menuFrozen = false)\n}\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/SideMenu/SideMenuView.ts",
    "content": "import { PluginView } from '@tiptap/pm/state'\nimport { EditorView } from 'prosemirror-view'\nimport { BlockSchema, Block } from '../Blocks/api/blockTypes'\nimport { getBlockInfoFromPos } from '../Blocks/helpers/getBlockInfoFromPos'\nimport { slashMenuPluginKey } from '../SlashMenu/SlashMenuPlugin'\nimport { BaseUiElementState } from '../../shared/BaseUiElementTypes'\nimport { BlockNoteEditor } from '../../BlockNoteEditor'\n\nexport type SideMenuState<BSchema extends BlockSchema> = BaseUiElementState & {\n  // The block that the side menu is attached to.\n  block: Block<BSchema>\n  lineHeight: string\n}\n\nexport function getDraggableBlockFromCoords(coords: { left: number; top: number }, view: EditorView) {\n  if (!view.dom.isConnected) {\n    // view is not connected to the DOM, this can cause posAtCoords to fail\n    // (Cannot read properties of null (reading 'nearestDesc'), https://github.com/TypeCellOS/BlockNote/issues/123)\n    return undefined\n  }\n\n  const pos = view.posAtCoords(coords)\n\n  if (!pos) {\n    return undefined\n  }\n\n  let node = (view.nodeDOM(pos.inside) || view.domAtPos(pos.pos).node) as HTMLElement\n  // let atomNode = view.nodeDOM(pos.inside) as HTMLElement\n\n  if (node === view.dom) {\n    // mouse over root\n    return undefined\n  }\n\n  while (node && node.parentNode && node.parentNode !== view.dom && !node.hasAttribute?.('data-id')) {\n    node = node.parentNode as HTMLElement\n  }\n  if (!node) {\n    return undefined\n  }\n\n  return { node, id: node.getAttribute('data-id')! }\n}\n\nexport class SideMenuView<BSchema extends BlockSchema> implements PluginView {\n  private sideMenuState?: SideMenuState<BSchema>\n\n  // When true, the drag handle with be anchored at the same level as root elements\n  // When false, the drag handle with be just to the left of the element\n  // TODO: Is there any case where we want this to be false?\n  private horizontalPosAnchoredAtRoot: boolean\n\n  private horizontalPosAnchor: number\n\n  private hoveredBlock: HTMLElement | undefined\n\n  // Used to check if currently dragged content comes from this editor instance.\n  public isDragging = false\n\n  public menuFrozen = false\n\n  constructor(\n    private readonly editor: BlockNoteEditor<BSchema>,\n    private readonly pmView: EditorView,\n    private readonly updateSideMenu: (sideMenuState: SideMenuState<BSchema>) => void,\n  ) {\n    this.horizontalPosAnchoredAtRoot = true\n    this.horizontalPosAnchor = (this.pmView.dom.firstChild! as HTMLElement).getBoundingClientRect().x\n\n    document.body.addEventListener('drop', this.onDrop, true)\n    document.body.addEventListener('dragover', this.onDragOver)\n    this.pmView.dom.addEventListener('dragstart', this.onDragStart)\n\n    // Shows or updates menu position whenever the cursor moves, if the menu isn't frozen.\n    document.body.addEventListener('mousemove', this.onMouseMove, true)\n\n    // Makes menu scroll with the page.\n    document.addEventListener('scroll', this.onScroll)\n\n    // Hides and unfreezes the menu whenever the user presses a key.\n    document.body.addEventListener('keydown', this.onKeyDown, true)\n  }\n\n  /**\n   * Sets isDragging when dragging text.\n   */\n  onDragStart = () => {\n    this.isDragging = true\n  }\n\n  /**\n   * If the event is outside the editor contents,\n   * we dispatch a fake event, so that we can still drop the content\n   * when dragging / dropping to the side of the editor\n   */\n  onDrop = (event: DragEvent) => {\n    this.editor._tiptapEditor.commands.blur()\n\n    if (\n      (event as any).synthetic ||\n      (!this.isDragging && (!event.dataTransfer?.types || event.dataTransfer?.types[0] !== 'Files'))\n    ) {\n      return\n    }\n\n    const pos = this.pmView.posAtCoords({\n      left: event.clientX,\n      top: event.clientY,\n    })\n\n    this.isDragging = false\n\n    if (!pos || pos.inside === -1) {\n      const evt = new Event('drop', event) as any\n      const editorBoundingBox = (this.pmView.dom.firstChild! as HTMLElement).getBoundingClientRect()\n      evt.clientX = editorBoundingBox.left + editorBoundingBox.width / 2\n      evt.clientY = event.clientY\n      evt.dataTransfer = event.dataTransfer\n      evt.preventDefault = () => event.preventDefault()\n      evt.synthetic = true // prevent recursion\n      // console.log(\"dispatch fake drop\");\n      this.pmView.dom.dispatchEvent(evt)\n    }\n  }\n\n  /**\n   * If the event is outside the editor contents,\n   * we dispatch a fake event, so that we can still drop the content\n   * when dragging / dropping to the side of the editor\n   */\n  onDragOver = (event: DragEvent) => {\n    if (\n      (event as any).synthetic ||\n      (!this.isDragging && (!event.dataTransfer?.types || event.dataTransfer?.types[0] !== 'Files'))\n    ) {\n      return\n    }\n    const pos = this.pmView.posAtCoords({\n      left: event.clientX,\n      top: event.clientY,\n    })\n\n    if (!pos || pos.inside === -1) {\n      const evt = new Event('dragover', event) as any\n      const editorBoundingBox = (this.pmView.dom.firstChild! as HTMLElement).getBoundingClientRect()\n      evt.clientX = editorBoundingBox.left + editorBoundingBox.width / 2\n      evt.clientY = event.clientY\n      evt.dataTransfer = event.dataTransfer\n      evt.preventDefault = () => event.preventDefault()\n      evt.synthetic = true // prevent recursion\n      // console.log(\"dispatch fake dragover\");\n      this.pmView.dom.dispatchEvent(evt)\n    }\n  }\n\n  onKeyDown = () => {\n    if (this.sideMenuState?.show) {\n      this.sideMenuState.show = false\n      this.updateSideMenu(this.sideMenuState)\n    }\n    this.menuFrozen = false\n  }\n\n  onMouseMove = (event: MouseEvent) => {\n    if (this.menuFrozen) {\n      return\n    }\n\n    // Editor itself may have padding or other styling which affects\n    // size/position, so we get the boundingRect of the first child (i.e. the\n    // blockGroup that wraps all blocks in the editor) for more accurate side\n    // menu placement.\n    const editorBoundingBox = (this.pmView.dom.firstChild! as HTMLElement).getBoundingClientRect()\n    // We want the full area of the editor to check if the cursor is hovering\n    // above it though.\n    const editorOuterBoundingBox = this.pmView.dom.getBoundingClientRect()\n    const cursorWithinEditor =\n      event.clientX >= editorOuterBoundingBox.left &&\n      event.clientX <= editorOuterBoundingBox.right &&\n      event.clientY >= editorOuterBoundingBox.top &&\n      event.clientY <= editorOuterBoundingBox.bottom\n\n    const editorWrapper = this.pmView.dom.parentElement!\n\n    // Doesn't update if the mouse hovers an element that's over the editor but\n    // isn't a part of it or the side menu.\n    if (\n      // Cursor is within the editor area\n      cursorWithinEditor &&\n      // An element is hovered\n      event &&\n      event.target &&\n      // Element is outside the editor\n      !(editorWrapper === event.target || editorWrapper?.contains(event.target as HTMLElement))\n    ) {\n      if (this.sideMenuState?.show) {\n        this.sideMenuState.show = false\n        this.updateSideMenu(this.sideMenuState)\n      }\n\n      return\n    }\n\n    this.horizontalPosAnchor = editorBoundingBox.x\n\n    // Gets block at mouse cursor's vertical position.\n    const coords = {\n      left: editorBoundingBox.left + editorBoundingBox.width / 2, // take middle of editor\n      top: event.clientY,\n    }\n    const block = getDraggableBlockFromCoords(coords, this.pmView)\n\n    // Closes the menu if the mouse cursor is beyond the editor vertically.\n    if (!block || !this.editor.isEditable) {\n      if (this.sideMenuState?.show) {\n        this.sideMenuState.show = false\n        this.updateSideMenu(this.sideMenuState)\n      }\n\n      return\n    }\n\n    // Doesn't update if the menu is already open and the mouse cursor is still hovering the same block.\n    if (\n      this.sideMenuState?.show &&\n      this.hoveredBlock?.hasAttribute('data-id') &&\n      this.hoveredBlock?.getAttribute('data-id') === block.id\n    ) {\n      return\n    }\n\n    if (\n      !block.node?.hasAttribute('data-node-type') &&\n      block.node?.getAttribute('data-node-type') !== 'blockContainer'\n    ) {\n      return\n    }\n\n    this.hoveredBlock = block.node\n    // Gets the block's content node, which lets to ignore child blocks when determining the block menu's position.\n    const blockContent = block.node.firstChild as HTMLElement\n\n    if (!blockContent) {\n      return\n    }\n\n    // Shows or updates elements.\n    if (this.editor.isEditable) {\n      const blockContentBoundingBox = blockContent.getBoundingClientRect()\n\n      this.sideMenuState = {\n        show: true,\n        referencePos: new DOMRect(\n          // this.horizontalPosAnchoredAtRoot\n          //   ? this.horizontalPosAnchor\n          //   : blockContentBoundingBox.x,\n          blockContentBoundingBox.x,\n          blockContentBoundingBox.y,\n          blockContentBoundingBox.width,\n          blockContentBoundingBox.height,\n        ),\n        block: this.editor.getBlock(this.hoveredBlock!.getAttribute('data-id')!)!,\n        lineHeight: window.getComputedStyle(blockContent).lineHeight,\n      }\n\n      this.updateSideMenu(this.sideMenuState)\n    }\n  }\n\n  onScroll = () => {\n    if (this.sideMenuState?.show) {\n      const blockContent = this.hoveredBlock!.firstChild as HTMLElement\n      const blockContentBoundingBox = blockContent.getBoundingClientRect()\n\n      this.sideMenuState.referencePos = new DOMRect(\n        blockContentBoundingBox.x,\n        blockContentBoundingBox.y,\n        blockContentBoundingBox.width,\n        blockContentBoundingBox.height,\n      )\n      this.updateSideMenu(this.sideMenuState)\n    }\n  }\n\n  destroy() {\n    if (this.sideMenuState?.show) {\n      this.sideMenuState.show = false\n      this.updateSideMenu(this.sideMenuState)\n    }\n    document.body.removeEventListener('mousemove', this.onMouseMove)\n    document.body.removeEventListener('dragover', this.onDragOver)\n    this.pmView.dom.removeEventListener('dragstart', this.onDragStart)\n    document.body.removeEventListener('drop', this.onDrop, true)\n    document.removeEventListener('scroll', this.onScroll)\n    document.body.removeEventListener('keydown', this.onKeyDown, true)\n  }\n\n  addBlock() {\n    if (this.sideMenuState?.show) {\n      this.sideMenuState.show = false\n      this.updateSideMenu(this.sideMenuState)\n    }\n\n    this.menuFrozen = true\n\n    const blockContent = this.hoveredBlock!.firstChild! as HTMLElement\n    const blockContentBoundingBox = blockContent.getBoundingClientRect()\n\n    const pos = this.pmView.posAtCoords({\n      left: blockContentBoundingBox.left + blockContentBoundingBox.width / 2,\n      top: blockContentBoundingBox.top + blockContentBoundingBox.height / 2,\n    })\n    if (!pos) {\n      return\n    }\n\n    const blockInfo = getBlockInfoFromPos(this.editor._tiptapEditor.state.doc, pos.pos)\n    if (blockInfo === undefined) {\n      return\n    }\n\n    const { contentNode, endPos } = blockInfo\n\n    // Creates a new block if current one is not empty for the suggestion menu to open in.\n    if (contentNode.textContent.length !== 0) {\n      const newBlockInsertionPos = endPos + 1\n      const newBlockContentPos = newBlockInsertionPos + 2\n\n      this.editor._tiptapEditor\n        .chain()\n        .BNCreateBlock(newBlockInsertionPos)\n        .BNUpdateBlock(newBlockContentPos, { type: 'paragraph', props: {} })\n        .setTextSelection(newBlockContentPos)\n        .run()\n    } else {\n      this.editor._tiptapEditor.commands.setTextSelection(endPos)\n    }\n\n    // Focuses and activates the suggestion menu.\n    this.pmView.focus()\n    this.pmView.dispatch(\n      this.pmView.state.tr.scrollIntoView().setMeta(slashMenuPluginKey, {\n        // TODO import suggestion plugin key\n        activate: true,\n        type: 'drag',\n      }),\n    )\n  }\n}\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/SlashMenu/BaseSlashMenuItem.ts",
    "content": "import { SuggestionItem } from '../../shared/plugins/suggestion/SuggestionItem'\nimport { BlockNoteEditor } from '../../BlockNoteEditor'\nimport { BlockSchema } from '../Blocks/api/blockTypes'\nimport { DefaultBlockSchema } from '../Blocks/api/defaultBlocks'\n\nexport type BaseSlashMenuItem<BSchema extends BlockSchema = DefaultBlockSchema> = SuggestionItem & {\n  execute: (editor: BlockNoteEditor<BSchema>) => void\n  aliases?: string[]\n}\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/SlashMenu/SlashMenuPlugin.ts",
    "content": "import { Plugin, PluginKey } from 'prosemirror-state'\n\nimport { BlockNoteEditor } from '../../BlockNoteEditor'\nimport EventEmitter from '../../shared/EventEmitter'\nimport { SuggestionsMenuState, setupSuggestionsMenu } from '../../shared/plugins/suggestion/SuggestionPlugin'\nimport { BlockSchema } from '../Blocks/api/blockTypes'\nimport { BaseSlashMenuItem } from './BaseSlashMenuItem'\n\nexport const slashMenuPluginKey = new PluginKey('SlashMenuPlugin')\n\nexport class SlashMenuProsemirrorPlugin<\n  BSchema extends BlockSchema,\n  SlashMenuItem extends BaseSlashMenuItem<BSchema>,\n> extends EventEmitter<any> {\n  public readonly plugin: Plugin\n\n  public readonly itemCallback: (item: SlashMenuItem) => void\n\n  constructor(editor: BlockNoteEditor<BSchema>, items: SlashMenuItem[]) {\n    super()\n    const suggestions = setupSuggestionsMenu<SlashMenuItem, BSchema>(\n      editor,\n      (state) => {\n        this.emit('update', state)\n      },\n      slashMenuPluginKey,\n      '/',\n      (query) =>\n        items.filter(\n          ({ name, aliases }: SlashMenuItem) =>\n            name.toLowerCase().startsWith(query.toLowerCase()) ||\n            (aliases && aliases.filter((alias) => alias.toLowerCase().startsWith(query.toLowerCase())).length !== 0),\n        ),\n      // eslint-disable-next-line @typescript-eslint/no-shadow\n      ({ item, editor }) => item.execute(editor),\n    )\n\n    this.plugin = suggestions.plugin\n    this.itemCallback = suggestions.itemCallback\n  }\n\n  public onUpdate(callback: (state: SuggestionsMenuState<SlashMenuItem>) => void) {\n    return this.on('update', callback)\n  }\n}\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/SlashMenu/defaultSlashMenuItems.ts",
    "content": "import { BlockNoteEditor } from '../../BlockNoteEditor'\nimport { BlockSchema, PartialBlock } from '../Blocks/api/blockTypes'\nimport { defaultBlockSchema } from '../Blocks/api/defaultBlocks'\nimport { BaseSlashMenuItem } from './BaseSlashMenuItem'\n\nexport function insertOrUpdateBlock<BSchema extends BlockSchema>(\n  editor: BlockNoteEditor<BSchema>,\n  block: PartialBlock<BSchema>,\n  isNode?: boolean,\n) {\n  const currentBlock = editor.getTextCursorPosition().block\n  if (\n    (currentBlock.content.length === 1 &&\n      currentBlock.content[0].type === 'text' &&\n      currentBlock.content[0].text === '/') ||\n    currentBlock.content.length === 0\n  ) {\n    editor.updateBlock(currentBlock, block)\n    if (isNode) {\n      const cursorPosition = editor.getTextCursorPosition()\n      editor.focus()\n      if (cursorPosition.nextBlock) editor.setTextCursorPosition(cursorPosition.nextBlock, 'start')\n      else {\n        editor.insertBlocks([{ type: 'paragraph', content: '' }], currentBlock, 'after')\n        editor.setTextCursorPosition(editor.getTextCursorPosition().nextBlock!, 'start')\n      }\n    }\n  } else {\n    editor.insertBlocks([block], currentBlock, 'after')\n    editor.setTextCursorPosition(editor.getTextCursorPosition().nextBlock!)\n  }\n}\n\nexport const getDefaultSlashMenuItems = <BSchema extends BlockSchema>(\n  // This type casting is weird, but it's the best way of doing it, as it allows\n  // the schema type to be automatically inferred if it is defined, or be\n  // inferred as any if it is not defined. I don't think it's possible to make it\n  // infer to DefaultBlockSchema if it is not defined.\n  schema: BSchema = defaultBlockSchema as unknown as BSchema,\n) => {\n  const slashMenuItems: BaseSlashMenuItem<BSchema>[] = []\n\n  if ('heading' in schema && 'level' in schema.heading.propSchema) {\n    // Command for creating a level 1 heading\n    if (schema.heading.propSchema.level.values?.includes('1')) {\n      slashMenuItems.push({\n        name: 'Heading',\n        aliases: ['h', 'heading1', 'h1'],\n        execute: (editor) =>\n          insertOrUpdateBlock(editor, {\n            type: 'heading',\n            props: { level: '1' },\n          } as PartialBlock<BSchema>),\n      })\n    }\n\n    // Command for creating a level 2 heading\n    if (schema.heading.propSchema.level.values?.includes('2')) {\n      slashMenuItems.push({\n        name: 'Heading 2',\n        aliases: ['h2', 'heading2', 'subheading'],\n        execute: (editor) =>\n          insertOrUpdateBlock(editor, {\n            type: 'heading',\n            props: { level: '2' },\n          } as PartialBlock<BSchema>),\n      })\n    }\n\n    // Command for creating a level 3 heading\n    if (schema.heading.propSchema.level.values?.includes('3')) {\n      slashMenuItems.push({\n        name: 'Heading 3',\n        aliases: ['h3', 'heading3', 'subheading'],\n        execute: (editor) =>\n          insertOrUpdateBlock(editor, {\n            type: 'heading',\n            props: { level: '3' },\n          } as PartialBlock<BSchema>),\n      })\n    }\n  }\n\n  if ('bulletListItem' in schema) {\n    slashMenuItems.push({\n      name: 'Bullet List',\n      aliases: ['ul', 'list', 'bulletlist', 'bullet list'],\n      execute: (editor) =>\n        insertOrUpdateBlock(editor, {\n          type: 'bulletListItem',\n        } as PartialBlock<BSchema>),\n    })\n  }\n\n  if ('numberedListItem' in schema) {\n    slashMenuItems.push({\n      name: 'Numbered List',\n      aliases: ['li', 'list', 'numberedlist', 'numbered list'],\n      execute: (editor) =>\n        insertOrUpdateBlock(editor, {\n          type: 'numberedListItem',\n        } as PartialBlock<BSchema>),\n    })\n  }\n\n  if ('paragraph' in schema) {\n    slashMenuItems.push({\n      name: 'Paragraph',\n      aliases: ['p'],\n      execute: (editor) =>\n        insertOrUpdateBlock(editor, {\n          type: 'paragraph',\n        } as PartialBlock<BSchema>),\n    })\n  }\n\n  return slashMenuItems\n}\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/TextAlignment/TextAlignmentExtension.ts",
    "content": "import { Extension } from '@tiptap/core'\nimport { getBlockInfoFromPos } from '../Blocks/helpers/getBlockInfoFromPos'\n\ndeclare module '@tiptap/core' {\n  interface Commands<ReturnType> {\n    textAlignment: {\n      setTextAlignment: (textAlignment: 'left' | 'center' | 'right' | 'justify') => ReturnType\n    }\n  }\n}\n\nconst TextAlignmentExtension = Extension.create({\n  name: 'textAlignment',\n\n  addGlobalAttributes() {\n    return [\n      {\n        // Attribute is applied to block content instead of container so that child blocks don't inherit the text\n        // alignment styling.\n        types: ['paragraph', 'heading', 'bulletListItem', 'numberedListItem'],\n        attributes: {\n          textAlignment: {\n            default: 'left',\n            parseHTML: (element) => element.getAttribute('data-text-alignment'),\n            renderHTML: (attributes) => {\n              return attributes.textAlignment !== 'left'\n                ? {\n                    'data-text-alignment': attributes.textAlignment,\n                  }\n                : null\n            },\n          },\n        },\n      },\n    ]\n  },\n\n  addCommands() {\n    return {\n      setTextAlignment:\n        (textAlignment) =>\n        ({ state }) => {\n          const positionsBeforeSelectedContent = []\n\n          const blockInfo = getBlockInfoFromPos(state.doc, state.selection.from)\n          if (blockInfo === undefined) {\n            return false\n          }\n\n          // Finds all blockContent nodes that the current selection is in.\n          let pos = blockInfo.startPos\n          while (pos < state.selection.to) {\n            if (state.doc.resolve(pos).node().type.spec.group === 'blockContent') {\n              positionsBeforeSelectedContent.push(pos - 1)\n\n              pos += state.doc.resolve(pos).node().nodeSize - 1\n            } else {\n              pos += 1\n            }\n          }\n\n          // Sets text alignment for all blockContent nodes that the current selection is in.\n          for (const position of positionsBeforeSelectedContent) {\n            state.tr.setNodeAttribute(position, 'textAlignment', textAlignment)\n          }\n\n          return true\n        },\n    }\n  },\n})\n\nexport default TextAlignmentExtension\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/TextColor/TextColorExtension.ts",
    "content": "import { Extension } from '@tiptap/core'\nimport { getBlockInfoFromPos } from '../Blocks/helpers/getBlockInfoFromPos'\n\ndeclare module '@tiptap/core' {\n  interface Commands<ReturnType> {\n    blockTextColor: {\n      setBlockTextColor: (posInBlock: number, color: string) => ReturnType\n    }\n  }\n}\n\nconst TextColorExtension = Extension.create({\n  name: 'blockTextColor',\n\n  addGlobalAttributes() {\n    return [\n      {\n        types: ['blockContainer'],\n        attributes: {\n          textColor: {\n            default: 'default',\n            parseHTML: (element) =>\n              element.hasAttribute('data-text-color') ? element.getAttribute('data-text-color') : 'default',\n            renderHTML: (attributes) => {\n              return attributes.textColor !== 'default'\n                ? {\n                    'data-text-color': attributes.textColor,\n                  }\n                : null\n            },\n          },\n        },\n      },\n    ]\n  },\n\n  addCommands() {\n    return {\n      setBlockTextColor:\n        (posInBlock, color) =>\n        ({ state, view }) => {\n          const blockInfo = getBlockInfoFromPos(state.doc, posInBlock)\n          if (blockInfo === undefined) {\n            return false\n          }\n\n          state.tr.setNodeAttribute(blockInfo.startPos - 1, 'textColor', color)\n\n          view.focus()\n\n          return true\n        },\n    }\n  },\n})\n\nexport default TextColorExtension\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/TextColor/TextColorMark.ts",
    "content": "import { Mark } from '@tiptap/core'\n\ndeclare module '@tiptap/core' {\n  interface Commands<ReturnType> {\n    textColor: {\n      setTextColor: (color: string) => ReturnType\n    }\n  }\n}\n\nconst TextColorMark = Mark.create({\n  name: 'textColor',\n\n  addAttributes() {\n    return {\n      color: {\n        default: undefined,\n        parseHTML: (element) => element.getAttribute('data-text-color'),\n        renderHTML: (attributes) => ({\n          'data-text-color': attributes.color,\n        }),\n      },\n    }\n  },\n\n  parseHTML() {\n    return [\n      {\n        tag: 'span',\n        getAttrs: (element) => {\n          if (typeof element === 'string') {\n            return false\n          }\n\n          if (element.hasAttribute('data-text-color')) {\n            return { color: element.getAttribute('data-text-color') }\n          }\n\n          return false\n        },\n      },\n    ]\n  },\n\n  renderHTML({ HTMLAttributes }) {\n    return ['span', HTMLAttributes, 0]\n  },\n\n  addCommands() {\n    return {\n      setTextColor:\n        (color) =>\n        ({ commands }) => {\n          if (color !== 'default') {\n            return commands.setMark(this.name, { color: color })\n          }\n\n          return commands.unsetMark(this.name)\n        },\n    }\n  },\n})\n\nexport default TextColorMark\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/TrailingNode/TrailingNodeExtension.ts",
    "content": "import { Extension } from '@tiptap/core'\nimport { Plugin, PluginKey } from 'prosemirror-state'\n\n// based on https://github.com/ueberdosis/tiptap/blob/40a9404c94c7fef7900610c195536384781ae101/demos/src/Experiments/TrailingNode/Vue/trailing-node.ts\n\n/**\n * Extension based on:\n * - https://github.com/ueberdosis/tiptap/blob/v1/packages/tiptap-extensions/src/extensions/TrailingNode.js\n * - https://github.com/remirror/remirror/blob/e0f1bec4a1e8073ce8f5500d62193e52321155b9/packages/prosemirror-trailing-node/src/trailing-node-plugin.ts\n */\n\nexport interface TrailingNodeOptions {\n  node: string\n}\n\n/**\n * Add a trailing node to the document so the user can always click at the bottom of the document and start typing\n */\nexport const TrailingNode = Extension.create<TrailingNodeOptions>({\n  name: 'trailingNode',\n\n  addProseMirrorPlugins() {\n    const plugin = new PluginKey(this.name)\n    // const disabledNodes = Object.entries(this.editor.schema.nodes)\n    //   .map(([, value]) => value)\n    //   .filter((node) => this.options.notAfter.includes(node.name));\n\n    return [\n      new Plugin({\n        key: plugin,\n        appendTransaction: (_, __, state) => {\n          const { doc, tr, schema } = state\n          const shouldInsertNodeAtEnd = plugin.getState(state)\n          const endPosition = doc.content.size - 2\n          const type = schema.nodes.blockContainer\n          const contentType = schema.nodes.paragraph\n          if (!shouldInsertNodeAtEnd) return undefined\n\n          return tr.insert(endPosition, type.create(undefined, contentType.create()))\n        },\n        state: {\n          init: () => {\n            // (maybe fix): use same logic as apply() here\n            // so it works when initializing\n          },\n          apply: (tr, value) => {\n            if (!tr.docChanged) {\n              return value\n            }\n\n            let lastNode = tr.doc.lastChild\n\n            if (!lastNode || lastNode.type.name !== 'blockGroup') {\n              throw new Error('Expected blockGroup')\n            }\n\n            lastNode = lastNode.lastChild\n\n            if (!lastNode || lastNode.type.name !== 'blockContainer') {\n              throw new Error('Expected blockContainer')\n            }\n            return lastNode.nodeSize > 4 // empty <block><content/></block> is length 4\n          },\n        },\n      }),\n    ]\n  },\n})\n"
  },
  {
    "path": "src/lib/blocknote/core/extensions/UniqueID/UniqueID.ts",
    "content": "import { combineTransactionSteps, Extension, findChildrenInRange, getChangedRanges } from '@tiptap/core'\nimport { nanoid } from 'nanoid'\nimport { Fragment, Slice } from 'prosemirror-model'\nimport { Plugin, PluginKey } from 'prosemirror-state'\n\nfunction createId() {\n  const id = nanoid(8)\n  return id\n}\n\n/**\n * Code from Tiptap UniqueID extension (https://tiptap.dev/api/extensions/unique-id)\n * This extension is licensed under MIT (even though it's part of Tiptap pro).\n *\n * If you're a user of BlockNote, we still recommend to support their awesome work and become a sponsor!\n * https://tiptap.dev/pro\n */\n\n/**\n * Removes duplicated values within an array.\n * Supports numbers, strings and objects.\n */\nfunction removeDuplicates(array: any, by = JSON.stringify) {\n  const seen: any = {}\n  return array.filter((item: any) => {\n    const key = by(item)\n    return Object.prototype.hasOwnProperty.call(seen, key) ? false : (seen[key] = true)\n  })\n}\n\n/**\n * Returns a list of duplicated items within an array.\n */\nfunction findDuplicates(items: any) {\n  const filtered = items.filter((el: any, index: number) => items.indexOf(el) !== index)\n  const duplicates = removeDuplicates(filtered)\n  return duplicates\n}\n\nconst UniqueID = Extension.create({\n  name: 'uniqueID',\n  // we’ll set a very high priority to make sure this runs first\n  // and is compatible with `appendTransaction` hooks of other extensions\n  priority: 10000,\n  addOptions() {\n    return {\n      attributeName: 'id',\n      types: [],\n      generateID: () => {\n        // Use mock ID if tests are running.\n        if (typeof window !== 'undefined' && (window as any).__TEST_OPTIONS) {\n          const testOptions = (window as any).__TEST_OPTIONS\n          if (testOptions.mockID === undefined) {\n            testOptions.mockID = 0\n          } else {\n            testOptions.mockID++\n          }\n\n          return testOptions.mockID.toString() as string\n        }\n\n        return createId()\n      },\n      filterTransaction: null,\n    }\n  },\n  addGlobalAttributes() {\n    return [\n      {\n        types: this.options.types,\n        attributes: {\n          [this.options.attributeName]: {\n            default: null,\n            parseHTML: (element) => element.getAttribute(`data-${this.options.attributeName}`),\n            renderHTML: (attributes) => ({\n              [`data-${this.options.attributeName}`]: attributes[this.options.attributeName],\n            }),\n          },\n        },\n      },\n    ]\n  },\n  // check initial content for missing ids\n  // onCreate() {\n  //   // Don’t do this when the collaboration extension is active\n  //   // because this may update the content, so Y.js tries to merge these changes.\n  //   // This leads to empty block nodes.\n  //   // See: https://github.com/ueberdosis/tiptap/issues/2400\n  //   if (\n  //     this.editor.extensionManager.extensions.find(\n  //       (extension) => extension.name === \"collaboration\"\n  //     )\n  //   ) {\n  //     return;\n  //   }\n  //   const { view, state } = this.editor;\n  //   const { tr, doc } = state;\n  //   const { types, attributeName, generateID } = this.options;\n  //   const nodesWithoutId = findChildren(doc, (node) => {\n  //     return (\n  //       types.includes(node.type.name) && node.attrs[attributeName] === null\n  //     );\n  //   });\n  //   nodesWithoutId.forEach(({ node, pos }) => {\n  //     tr.setNodeMarkup(pos, undefined, {\n  //       ...node.attrs,\n  //       [attributeName]: generateID(),\n  //     });\n  //   });\n  //   tr.setMeta(\"addToHistory\", false);\n  //   view.dispatch(tr);\n  // },\n  addProseMirrorPlugins() {\n    let dragSourceElement: any = null\n    let transformPasted = false\n    return [\n      new Plugin({\n        key: new PluginKey('uniqueID'),\n        appendTransaction: (transactions, oldState, newState) => {\n          // console.log(\"appendTransaction\");\n          const docChanges =\n            transactions.some((transaction) => transaction.docChanged) && !oldState.doc.eq(newState.doc)\n          const filterTransactions =\n            this.options.filterTransaction &&\n            transactions.some((tr) => {\n              let options\n              let filteredOptions\n              return !((filteredOptions = (options = this.options).filterTransaction) === null ||\n              filteredOptions === undefined\n                ? undefined\n                : filteredOptions.call(options, tr))\n            })\n          if (!docChanges || filterTransactions) {\n            return undefined\n          }\n          const { tr } = newState\n          const { types, attributeName, generateID } = this.options\n          const transform = combineTransactionSteps(oldState.doc, transactions as any)\n          const { mapping } = transform\n          // get changed ranges based on the old state\n          const changes = getChangedRanges(transform)\n\n          changes.forEach(({ newRange }) => {\n            const newNodes = findChildrenInRange(newState.doc, newRange, (node) => {\n              return types.includes(node.type.name)\n            })\n            const newIds = newNodes.map(({ node }) => node.attrs[attributeName]).filter((id) => id !== null)\n            const duplicatedNewIds = findDuplicates(newIds)\n            newNodes.forEach(({ node, pos }) => {\n              let options\n              // instead of checking `node.attrs[attributeName]` directly\n              // we look at the current state of the node within `tr.doc`.\n              // this helps to prevent adding new ids to the same node\n              // if the node changed multiple times within one transaction\n              const id =\n                (options = tr.doc.nodeAt(pos)) === null || options === undefined\n                  ? undefined\n                  : options.attrs[attributeName]\n              if (id === null) {\n                tr.setNodeMarkup(pos, undefined, {\n                  ...node.attrs,\n                  [attributeName]: generateID(),\n                })\n                return undefined\n              }\n              // check if the node doesn’t exist in the old state\n              const { deleted } = mapping.invert().mapResult(pos)\n              const newNode = deleted && duplicatedNewIds.includes(id)\n              if (newNode) {\n                tr.setNodeMarkup(pos, undefined, {\n                  ...node.attrs,\n                  [attributeName]: generateID(),\n                })\n              }\n              return undefined\n            })\n          })\n          if (!tr.steps.length) {\n            return undefined\n          }\n          return tr\n        },\n        // we register a global drag handler to track the current drag source element\n        view(view) {\n          const handleDragstart = (event: any) => {\n            let options\n            dragSourceElement = (\n              (options = view.dom.parentElement) === null || options === undefined\n                ? undefined\n                : options.contains(event.target)\n            )\n              ? view.dom.parentElement\n              : null\n          }\n          window.addEventListener('dragstart', handleDragstart)\n          return {\n            destroy() {\n              window.removeEventListener('dragstart', handleDragstart)\n            },\n          }\n        },\n        props: {\n          // `handleDOMEvents` is called before `transformPasted`\n          // so we can do some checks before\n          handleDOMEvents: {\n            // only create new ids for dropped content while holding `alt`\n            // or content is dragged from another editor\n            drop: (view, event: any) => {\n              let options\n              if (\n                dragSourceElement !== view.dom.parentElement ||\n                ((options = event.dataTransfer) === null || options === undefined\n                  ? undefined\n                  : options.effectAllowed) === 'copy'\n              ) {\n                dragSourceElement = null\n                transformPasted = true\n              }\n              return false\n            },\n            // always create new ids on pasted content\n            paste: () => {\n              transformPasted = true\n              return false\n            },\n          },\n          // we’ll remove ids for every pasted node\n          // so we can create a new one within `appendTransaction`\n          transformPasted: (slice) => {\n            if (!transformPasted) {\n              return slice\n            }\n            const { types, attributeName } = this.options\n            const removeId = (fragment: any) => {\n              const list: any[] = []\n              fragment.forEach((node: any) => {\n                // don’t touch text nodes\n                if (node.isText) {\n                  list.push(node)\n                  return\n                }\n                // check for any other child nodes\n                if (!types.includes(node.type.name)) {\n                  list.push(node.copy(removeId(node.content)))\n                  return\n                }\n                // remove id\n                const nodeWithoutId = node.type.create(\n                  {\n                    ...node.attrs,\n                    [attributeName]: null,\n                  },\n                  removeId(node.content),\n                  node.marks,\n                )\n                list.push(nodeWithoutId)\n              })\n              return Fragment.from(list)\n            }\n            // reset check\n            transformPasted = false\n            return new Slice(removeId(slice.content), slice.openStart, slice.openEnd)\n          },\n        },\n      }),\n    ]\n  },\n})\n\nexport default UniqueID\n"
  },
  {
    "path": "src/lib/blocknote/core/index.ts",
    "content": "export * from './api/nodeConversions/nodeConversions'\nexport * from './BlockNoteEditor'\nexport { default as getBlockNoteExtensions } from './BlockNoteExtensions'\nexport * from './extensions/Blocks/api/block'\nexport * from './extensions/Blocks/api/blockTypes'\nexport * from './extensions/Blocks/api/defaultBlocks'\nexport * from './extensions/Blocks/api/inlineContentTypes'\nexport { default as CustomBlockSerializerExtension } from './extensions/Blocks/api/serialization'\nexport * from './extensions/Blocks/helpers/getBlockInfoFromPos'\nexport { default as bnBlockStyles } from './extensions/Blocks/nodes/Block.module.css'\nexport * from './extensions/FormattingToolbar/FormattingToolbarPlugin'\nexport * from './extensions/HyperlinkToolbar/HyperlinkToolbarPlugin'\nexport * from './extensions/SideMenu/SideMenuPlugin'\nexport * from './extensions/SlashMenu/BaseSlashMenuItem'\nexport * from './extensions/SlashMenu/defaultSlashMenuItems'\nexport * from './extensions/SlashMenu/SlashMenuPlugin'\nexport * from './shared/BaseUiElementTypes'\nexport type { SuggestionItem } from './shared/plugins/suggestion/SuggestionItem'\nexport * from './shared/plugins/suggestion/SuggestionPlugin'\nexport * from './shared/utils'\n"
  },
  {
    "path": "src/lib/blocknote/core/shared/BaseUiElementTypes.ts",
    "content": "export type BaseUiElementCallbacks = {\n  destroy: () => void\n}\n\nexport type BaseUiElementState = {\n  show: boolean\n  referencePos: DOMRect\n}\n"
  },
  {
    "path": "src/lib/blocknote/core/shared/EditorElement.ts",
    "content": ""
  },
  {
    "path": "src/lib/blocknote/core/shared/EventEmitter.ts",
    "content": "// from https://raw.githubusercontent.com/ueberdosis/tiptap/develop/packages/core/src/EventEmitter.ts (MIT)\n\ntype StringKeyOf<T> = Extract<keyof T, string>\ntype CallbackType<T extends Record<string, any>, EventName extends StringKeyOf<T>> = T[EventName] extends any[]\n  ? T[EventName]\n  : [T[EventName]]\ntype CallbackFunction<T extends Record<string, any>, EventName extends StringKeyOf<T>> = (\n  ...props: CallbackType<T, EventName>\n) => any\n\nclass EventEmitter<T extends Record<string, any>> {\n  // eslint-disable-next-line\n  private callbacks: { [key: string]: Function[] } = {}\n\n  public on<EventName extends StringKeyOf<T>>(event: EventName, fn: CallbackFunction<T, EventName>) {\n    if (!this.callbacks[event]) {\n      this.callbacks[event] = []\n    }\n\n    this.callbacks[event].push(fn)\n\n    return () => this.off(event, fn)\n  }\n\n  protected emit<EventName extends StringKeyOf<T>>(event: EventName, ...args: CallbackType<T, EventName>) {\n    const callbacks = this.callbacks[event]\n\n    if (callbacks) {\n      callbacks.forEach((callback) => callback.apply(this, args))\n    }\n  }\n\n  public off<EventName extends StringKeyOf<T>>(event: EventName, fn?: CallbackFunction<T, EventName>) {\n    const callbacks = this.callbacks[event]\n\n    if (callbacks) {\n      if (fn) {\n        this.callbacks[event] = callbacks.filter((callback) => callback !== fn)\n      } else {\n        delete this.callbacks[event]\n      }\n    }\n  }\n\n  protected removeAllListeners(): void {\n    this.callbacks = {}\n  }\n}\n\nexport default EventEmitter\n"
  },
  {
    "path": "src/lib/blocknote/core/shared/plugins/suggestion/SuggestionItem.ts",
    "content": "export type SuggestionItem = {\n  name: string\n}\n"
  },
  {
    "path": "src/lib/blocknote/core/shared/plugins/suggestion/SuggestionPlugin.ts",
    "content": "import { EditorState, Plugin, PluginKey } from 'prosemirror-state'\nimport { Decoration, DecorationSet, EditorView } from 'prosemirror-view'\nimport { BlockNoteEditor } from '../../../BlockNoteEditor'\nimport { BlockSchema } from '../../../extensions/Blocks/api/blockTypes'\nimport findBlock from '../../../extensions/Blocks/helpers/findBlock'\nimport { BaseUiElementState } from '../../BaseUiElementTypes'\nimport { SuggestionItem } from './SuggestionItem'\n\nexport type SuggestionsMenuState<T extends SuggestionItem> = BaseUiElementState & {\n  // The suggested items to display.\n  filteredItems: T[]\n  // The index of the suggested item that's currently hovered by the keyboard.\n  keyboardHoveredItemIndex: number\n}\n\nfunction getDefaultPluginState<T extends SuggestionItem>(): SuggestionPluginState<T> {\n  return {\n    active: false,\n    triggerCharacter: undefined,\n    queryStartPos: undefined,\n    items: [] as T[],\n    keyboardHoveredItemIndex: undefined,\n    notFoundCount: 0,\n    decorationId: undefined,\n  }\n}\n\nclass SuggestionsMenuView<T extends SuggestionItem, BSchema extends BlockSchema> {\n  private suggestionsMenuState?: SuggestionsMenuState<T>\n\n  public updateSuggestionsMenu: () => void\n\n  pluginState: SuggestionPluginState<T>\n\n  constructor(\n    private readonly editor: BlockNoteEditor<BSchema>,\n    private readonly pluginKey: PluginKey,\n    updateSuggestionsMenu: (suggestionsMenuState: SuggestionsMenuState<T>) => void = () => {\n      // noop\n    },\n  ) {\n    this.pluginState = getDefaultPluginState<T>()\n\n    this.updateSuggestionsMenu = () => {\n      if (!this.suggestionsMenuState) {\n        throw new Error('Attempting to update uninitialized suggestions menu')\n      }\n\n      updateSuggestionsMenu(this.suggestionsMenuState)\n    }\n\n    document.addEventListener('scroll', this.handleScroll)\n  }\n\n  handleScroll = () => {\n    if (this.suggestionsMenuState?.show) {\n      const decorationNode = document.querySelector(`[data-decoration-id=\"${this.pluginState.decorationId}\"]`)\n      this.suggestionsMenuState.referencePos = decorationNode!.getBoundingClientRect()\n      this.updateSuggestionsMenu()\n    }\n  }\n\n  update(view: EditorView, prevState: EditorState) {\n    const prev = this.pluginKey.getState(prevState)\n    const next = this.pluginKey.getState(view.state)\n\n    // See how the state changed\n    const started = !prev.active && next.active\n    const stopped = prev.active && !next.active\n    // TODO: Currently also true for cases in which an update isn't needed so selected list item index updates still\n    //  cause the view to update. May need to be more strict.\n    const changed = prev.active && next.active\n\n    // Cancel when suggestion isn't active\n    if (!started && !changed && !stopped) {\n      return\n    }\n\n    this.pluginState = stopped ? prev : next\n\n    if (stopped || !this.editor.isEditable) {\n      this.suggestionsMenuState!.show = false\n      this.updateSuggestionsMenu()\n\n      return\n    }\n\n    const decorationNode = document.querySelector(`[data-decoration-id=\"${this.pluginState.decorationId}\"]`)\n\n    if (this.editor.isEditable) {\n      this.suggestionsMenuState = {\n        show: true,\n        referencePos: decorationNode!.getBoundingClientRect(),\n        filteredItems: this.pluginState.items,\n        keyboardHoveredItemIndex: this.pluginState.keyboardHoveredItemIndex!,\n      }\n\n      this.updateSuggestionsMenu()\n    }\n  }\n\n  destroy() {\n    document.removeEventListener('scroll', this.handleScroll)\n  }\n}\n\ntype SuggestionPluginState<T extends SuggestionItem> = {\n  // True when the menu is shown, false when hidden.\n  active: boolean\n  // The character that triggered the menu being shown. Allowing the trigger to be different to the default\n  // trigger allows other extensions to open it programmatically.\n  triggerCharacter: string | undefined\n  // The editor position just after the trigger character, i.e. where the user query begins. Used to figure out\n  // which menu items to show and can also be used to delete the trigger character.\n  queryStartPos: number | undefined\n  // The items that should be shown in the menu.\n  items: T[]\n  // The index of the item in the menu that's currently hovered using the keyboard.\n  keyboardHoveredItemIndex: number | undefined\n  // The number of characters typed after the last query that matched with at least 1 item. Used to close the\n  // menu if the user keeps entering queries that don't return any results.\n  notFoundCount: number | undefined\n  decorationId: string | undefined\n}\n\n/**\n * A ProseMirror plugin for suggestions, designed to make '/'-commands possible as well as mentions.\n *\n * This is basically a simplified version of TipTap's [Suggestions](https://github.com/ueberdosis/tiptap/tree/db92a9b313c5993b723c85cd30256f1d4a0b65e1/packages/suggestion) plugin.\n *\n * This version is adapted from the aforementioned version in the following ways:\n * - This version supports generic items instead of only strings (to allow for more advanced filtering for example)\n * - This version hides some unnecessary complexity from the user of the plugin.\n * - This version handles key events differently\n */\nexport const setupSuggestionsMenu = <T extends SuggestionItem, BSchema extends BlockSchema>(\n  editor: BlockNoteEditor<BSchema>,\n  updateSuggestionsMenu: (suggestionsMenuState: SuggestionsMenuState<T>) => void,\n  pluginKey: PluginKey,\n  defaultTriggerCharacter: string,\n  items: (query: string) => T[] = () => [],\n  onSelectItem: (props: { item: T; editor: BlockNoteEditor<BSchema> }) => void = () => {\n    // noop\n  },\n) => {\n  // Assertions\n  if (defaultTriggerCharacter.length !== 1) {\n    throw new Error(\"'char' should be a single character\")\n  }\n\n  let suggestionsPluginView: SuggestionsMenuView<T, BSchema>\n\n  const deactivate = (view: EditorView) => {\n    view.dispatch(view.state.tr.setMeta(pluginKey, { deactivate: true }))\n  }\n\n  return {\n    plugin: new Plugin({\n      key: pluginKey,\n\n      view: () => {\n        suggestionsPluginView = new SuggestionsMenuView<T, BSchema>(\n          editor,\n          pluginKey,\n\n          updateSuggestionsMenu,\n        )\n        return suggestionsPluginView\n      },\n\n      state: {\n        // Initialize the plugin's internal state.\n        init(): SuggestionPluginState<T> {\n          return getDefaultPluginState<T>()\n        },\n\n        // Apply changes to the plugin state from an editor transaction.\n        apply(transaction, prev, oldState, newState): SuggestionPluginState<T> {\n          // TODO: More clearly define which transactions should be ignored.\n          if (transaction.getMeta('orderedListIndexing') !== undefined) {\n            return prev\n          }\n\n          // Checks if the menu should be shown.\n          if (transaction.getMeta(pluginKey)?.activate) {\n            return {\n              active: true,\n              triggerCharacter: transaction.getMeta(pluginKey)?.triggerCharacter || '',\n              queryStartPos: newState.selection.from,\n              items: items(''),\n              keyboardHoveredItemIndex: 0,\n              // TODO: Maybe should be 1 if the menu has no possible items? Probably redundant since a menu with no items\n              //  is useless in practice.\n              notFoundCount: 0,\n              decorationId: `id_${Math.floor(Math.random() * 0xffffffff)}`,\n            }\n          }\n\n          // Checks if the menu is hidden, in which case it doesn't need to be hidden or updated.\n          if (!prev.active) {\n            return prev\n          }\n\n          const next = { ...prev }\n\n          // Updates which menu items to show by checking which items the current query (the text between the trigger\n          // character and caret) matches with.\n          next.items = items(newState.doc.textBetween(prev.queryStartPos!, newState.selection.from))\n\n          // Updates notFoundCount if the query doesn't match any items.\n          next.notFoundCount = 0\n          if (next.items.length === 0) {\n            // Checks how many characters were typed or deleted since the last transaction, and updates the notFoundCount\n            // accordingly. Also ensures the notFoundCount does not become negative.\n            next.notFoundCount = Math.max(0, prev.notFoundCount! + (newState.selection.from - oldState.selection.from))\n          }\n\n          // Hides the menu. This is done after items and notFoundCount are already updated as notFoundCount is needed to\n          // check if the menu should be hidden.\n          if (\n            // Highlighting text should hide the menu.\n            newState.selection.from !== newState.selection.to ||\n            // Transactions with plugin metadata {deactivate: true} should hide the menu.\n            transaction.getMeta(pluginKey)?.deactivate ||\n            // Certain mouse events should hide the menu.\n            // TODO: Change to global mousedown listener.\n            transaction.getMeta('focus') ||\n            transaction.getMeta('blur') ||\n            transaction.getMeta('pointer') ||\n            // Moving the caret before the character which triggered the menu should hide it.\n            (prev.active && newState.selection.from < prev.queryStartPos!) ||\n            // Entering more than 3 characters, after the last query that matched with at least 1 menu item, should hide\n            // the menu.\n            next.notFoundCount > 3\n          ) {\n            return getDefaultPluginState<T>()\n          }\n\n          // Updates keyboardHoveredItemIndex if the up or down arrow key was\n          // pressed, or resets it if the keyboard cursor moved.\n          if (transaction.getMeta(pluginKey)?.selectedItemIndexChanged !== undefined) {\n            let newIndex = transaction.getMeta(pluginKey).selectedItemIndexChanged\n\n            // Allows selection to jump between first and last items.\n            if (newIndex < 0) {\n              newIndex = prev.items.length - 1\n            } else if (newIndex >= prev.items.length) {\n              newIndex = 0\n            }\n\n            next.keyboardHoveredItemIndex = newIndex\n          } else if (oldState.selection.from !== newState.selection.from) {\n            next.keyboardHoveredItemIndex = 0\n          }\n\n          return next\n        },\n      },\n\n      props: {\n        handleKeyDown(view, event) {\n          const menuIsActive = (this as Plugin).getState(view.state).active\n\n          // Shows the menu if the default trigger character was pressed and the menu isn't active.\n          if (event.key === defaultTriggerCharacter && !menuIsActive) {\n            view.dispatch(\n              view.state.tr.insertText(defaultTriggerCharacter).scrollIntoView().setMeta(pluginKey, {\n                activate: true,\n                triggerCharacter: defaultTriggerCharacter,\n              }),\n            )\n\n            return true\n          }\n\n          // Doesn't handle other keystrokes if the menu isn't active.\n          if (!menuIsActive) {\n            return false\n          }\n\n          // Handles keystrokes for navigating the menu.\n          // eslint-disable-next-line @typescript-eslint/no-shadow\n          const { triggerCharacter, queryStartPos, items, keyboardHoveredItemIndex } = pluginKey.getState(view.state)\n\n          // Moves the keyboard selection to the previous item.\n          if (event.key === 'ArrowUp') {\n            view.dispatch(\n              view.state.tr.setMeta(pluginKey, {\n                selectedItemIndexChanged: keyboardHoveredItemIndex - 1,\n              }),\n            )\n            return true\n          }\n\n          // Moves the keyboard selection to the next item.\n          if (event.key === 'ArrowDown') {\n            view.dispatch(\n              view.state.tr.setMeta(pluginKey, {\n                selectedItemIndexChanged: keyboardHoveredItemIndex + 1,\n              }),\n            )\n            return true\n          }\n\n          // Selects an item and closes the menu.\n          if (event.key === 'Enter') {\n            deactivate(view)\n            editor._tiptapEditor\n              .chain()\n              .focus()\n              .deleteRange({\n                from: queryStartPos! - triggerCharacter!.length,\n                to: editor._tiptapEditor.state.selection.from,\n              })\n              .run()\n\n            onSelectItem({\n              item: items[keyboardHoveredItemIndex],\n              editor: editor,\n            })\n\n            return true\n          }\n\n          // Closes the menu.\n          if (event.key === 'Escape') {\n            deactivate(view)\n            return true\n          }\n\n          return false\n        },\n\n        // Setup decorator on the currently active suggestion.\n        decorations(state) {\n          const { active, decorationId, queryStartPos, triggerCharacter } = (this as Plugin).getState(state)\n\n          if (!active) {\n            return null\n          }\n\n          // If the menu was opened programmatically by another extension, it may not use a trigger character. In this\n          // case, the decoration is set on the whole block instead, as the decoration range would otherwise be empty.\n          if (triggerCharacter === '') {\n            const blockNode = findBlock(state.selection)\n            if (blockNode) {\n              return DecorationSet.create(state.doc, [\n                Decoration.node(blockNode.pos, blockNode.pos + blockNode.node.nodeSize, {\n                  nodeName: 'span',\n                  class: 'suggestion-decorator',\n                  'data-decoration-id': decorationId,\n                }),\n              ])\n            }\n          }\n          // Creates an inline decoration around the trigger character.\n          return DecorationSet.create(state.doc, [\n            Decoration.inline(queryStartPos - triggerCharacter.length, queryStartPos, {\n              nodeName: 'span',\n              class: 'suggestion-decorator',\n              'data-decoration-id': decorationId,\n            }),\n          ])\n        },\n      },\n    }),\n    itemCallback: (item: T) => {\n      deactivate(editor._tiptapEditor.view)\n      editor._tiptapEditor\n        .chain()\n        .focus()\n        .deleteRange({\n          from:\n            suggestionsPluginView.pluginState.queryStartPos! -\n            suggestionsPluginView.pluginState.triggerCharacter!.length,\n          to: editor._tiptapEditor.state.selection.from,\n        })\n        .run()\n\n      onSelectItem({\n        item: item,\n        editor: editor,\n      })\n    },\n  }\n}\n"
  },
  {
    "path": "src/lib/blocknote/core/shared/utils.ts",
    "content": "export const isAppleOS = () =>\n  /Mac/.test(navigator.platform) || (/AppleWebKit/.test(navigator.userAgent) && /Mobile\\/\\w+/.test(navigator.userAgent))\n\nexport function formatKeyboardShortcut(shortcut: string) {\n  if (isAppleOS()) {\n    return shortcut.replace('Mod', '⌘')\n  }\n  return shortcut.replace('Mod', 'Ctrl')\n}\n\nexport function mergeCSSClasses(...classes: string[]) {\n  return classes.filter((c) => c).join(' ')\n}\n\nexport class UnreachableCaseError extends Error {\n  constructor(val: never) {\n    super(`Unreachable case: ${val}`)\n  }\n}\n"
  },
  {
    "path": "src/lib/blocknote/core/style.css",
    "content": "/*\nThis is an empty placeholder file, which should NOT contain CSS code.\nIt's here so DEV environment doesn't show a 404\n\n- In DEV environment, examples/editor loads this stub file, but actual CSS is loaded from CSS modules directly\n- In PROD environment, the actual dist/style.css file is built from the CSS modules\n*/\n"
  },
  {
    "path": "src/lib/blocknote/index.ts",
    "content": "/* eslint-disable import/export */\nimport { InlineContent } from './react/ReactBlockSpec'\n\nexport * from './core'\nexport * from './react'\nexport { InlineContent }\n"
  },
  {
    "path": "src/lib/blocknote/react/BlockNoteTheme.ts",
    "content": "import { MantineThemeOverride } from '@mantine/core'\nimport { CSSObject } from '@mantine/styles'\nimport _ from 'lodash'\nimport { bnBlockStyles } from '../core'\n\nexport type CombinedColor = {\n  text: string\n  background: string\n}\n\nexport type ColorScheme = {\n  editor: CombinedColor\n  menu: CombinedColor\n  tooltip: CombinedColor\n  hovered: CombinedColor\n  selected: CombinedColor\n  disabled: CombinedColor\n  shadow: string\n  border: string\n  sideMenu: string\n  highlightColors: {\n    gray: CombinedColor\n    brown: CombinedColor\n    red: CombinedColor\n    orange: CombinedColor\n    yellow: CombinedColor\n    green: CombinedColor\n    blue: CombinedColor\n    purple: CombinedColor\n    pink: CombinedColor\n  }\n}\n\nexport type ComponentStyles = Partial<{\n  // Slash Menu, Formatting Toolbar dropdown, color picker dropdown\n  Menu: CSSObject\n  // Icon in the color picker dropdown (Formatting Toolbar & Drag Handle Menu)\n  ColorIcon: CSSObject\n  DragHandleMenu: CSSObject\n  // Menu to edit hyperlinks (in Formatting Toolbar & Hyperlink Toolbar)\n  EditHyperlinkMenu: CSSObject\n  Editor: CSSObject\n  // Wraps Formatting Toolbar & Hyperlink Toolbar\n  Toolbar: CSSObject\n  // Appears on hover for Formatting Toolbar & Hyperlink Toolbar buttons\n  Tooltip: CSSObject\n  SlashMenu: CSSObject\n  SideMenu: CSSObject\n}>\n\nexport type Theme = {\n  colors: ColorScheme\n  borderRadius: number\n  fontFamily: string\n  componentStyles?: (theme: Theme) => ComponentStyles\n}\n\nexport const blockNoteToMantineTheme = (theme: Theme): MantineThemeOverride => {\n  const shadow = `0 4px 12px ${theme.colors.shadow}`\n  const border = `1px solid ${theme.colors.border}`\n\n  const textColors = {\n    default: theme.colors.editor.text,\n    gray: theme.colors.highlightColors.gray.text,\n    brown: theme.colors.highlightColors.brown.text,\n    red: theme.colors.highlightColors.red.text,\n    orange: theme.colors.highlightColors.orange.text,\n    yellow: theme.colors.highlightColors.yellow.text,\n    green: theme.colors.highlightColors.green.text,\n    blue: theme.colors.highlightColors.blue.text,\n    purple: theme.colors.highlightColors.purple.text,\n    pink: theme.colors.highlightColors.pink.text,\n  }\n\n  const backgroundColors = {\n    default: theme.colors.editor.background,\n    gray: theme.colors.highlightColors.gray.background,\n    brown: theme.colors.highlightColors.brown.background,\n    red: theme.colors.highlightColors.red.background,\n    orange: theme.colors.highlightColors.orange.background,\n    yellow: theme.colors.highlightColors.yellow.background,\n    green: theme.colors.highlightColors.green.background,\n    blue: theme.colors.highlightColors.blue.background,\n    purple: theme.colors.highlightColors.purple.background,\n    pink: theme.colors.highlightColors.pink.background,\n  }\n\n  const editorBorderRadius = `${Math.max(theme.borderRadius + 2, 1)}px`\n  const outerBorderRadius = `${theme.borderRadius}px`\n  const innerBorderRadius = `${Math.max(theme.borderRadius - 2, 1)}px`\n\n  return {\n    activeStyles: {\n      // Removes button press effect.\n      transform: 'none',\n    },\n    components: {\n      // Slash Menu, Formatting Toolbar dropdown, color picker dropdown\n      Menu: {\n        styles: () => ({\n          dropdown: _.merge<CSSObject, CSSObject>(\n            {\n              backgroundColor: theme.colors.menu.background,\n              border: border,\n              borderRadius: outerBorderRadius,\n              boxShadow: shadow,\n              color: theme.colors.menu.text,\n              padding: '2px',\n              '.mantine-Menu-label': {\n                backgroundColor: theme.colors.menu.background,\n                color: theme.colors.menu.text,\n              },\n              '.mantine-Menu-item': {\n                backgroundColor: theme.colors.menu.background,\n                border: 'none',\n                borderRadius: innerBorderRadius,\n                color: theme.colors.menu.text,\n              },\n              '.mantine-Menu-item[data-hovered]': {\n                backgroundColor: theme.colors.hovered.background,\n                border: 'none',\n                color: theme.colors.hovered.text,\n              },\n            },\n            theme.componentStyles?.(theme).Menu || {},\n          ),\n        }),\n      },\n      ColorIcon: {\n        styles: () => ({\n          root: _.merge<CSSObject, CSSObject>(\n            {\n              border: border,\n              borderRadius: innerBorderRadius,\n            },\n            theme.componentStyles?.(theme).ColorIcon || {},\n          ),\n        }),\n      },\n      DragHandleMenu: {\n        styles: () => ({\n          root: _.merge<CSSObject, CSSObject>(\n            {\n              '.mantine-Menu-item': {\n                fontSize: '12px',\n                height: '30px',\n              },\n            },\n            theme.componentStyles?.(theme).DragHandleMenu || {},\n          ),\n        }),\n      },\n      EditHyperlinkMenu: {\n        styles: () => ({\n          root: _.merge<CSSObject, CSSObject>(\n            {\n              backgroundColor: theme.colors.menu.background,\n              border: border,\n              borderRadius: outerBorderRadius,\n              boxShadow: shadow,\n              color: theme.colors.menu.text,\n              gap: '4px',\n              minWidth: '145px',\n              padding: '2px',\n              // Row\n              '.mantine-Group-root': {\n                flexWrap: 'nowrap',\n                gap: '8px',\n                paddingInline: '6px',\n                // Row icon\n                '.mantine-Container-root': {\n                  color: theme.colors.menu.text,\n                  display: 'flex',\n                  justifyContent: 'center',\n                  padding: 0,\n                  width: 'fit-content',\n                },\n                // Row input field\n                '.mantine-TextInput-root': {\n                  width: '300px',\n                  '.mantine-TextInput-wrapper': {\n                    '.mantine-TextInput-input': {\n                      border: 'none',\n                      color: '#3F3F3F',\n                      fontSize: '12px',\n                      paddingLeft: '5px',\n                    },\n                  },\n                },\n              },\n            },\n            theme.componentStyles?.(theme).EditHyperlinkMenu || {},\n          ),\n        }),\n      },\n      Editor: {\n        styles: () => ({\n          root: _.merge<CSSObject, CSSObject>(\n            {\n              '.ProseMirror': {\n                backgroundColor: theme.colors.editor.background,\n                borderRadius: editorBorderRadius,\n                color: theme.colors.editor.text,\n                fontFamily: theme.fontFamily,\n              },\n              // Placeholders\n              [`.${bnBlockStyles.isEmpty} .${bnBlockStyles.inlineContent}:before, .${bnBlockStyles.isFilter} .${bnBlockStyles.inlineContent}:before`]:\n                {\n                  color: theme.colors.sideMenu,\n                },\n              // Highlight text colors\n              ...(Object.fromEntries(\n                Object.entries(textColors).map(([key, value]) => [`[data-text-color=\"${key}\"]`, { color: value }]),\n              ) as CSSObject),\n              // Highlight background colors\n              ...(Object.fromEntries(\n                Object.entries(backgroundColors).map(([key, value]) => [\n                  `[data-background-color=\"${key}\"]`,\n                  { backgroundColor: value },\n                ]),\n              ) as CSSObject),\n            },\n            theme.componentStyles?.(theme).Editor || {},\n          ),\n        }),\n      },\n      Toolbar: {\n        styles: () => ({\n          root: _.merge<CSSObject, CSSObject>(\n            {\n              backgroundColor: theme.colors.menu.background,\n              boxShadow: shadow,\n              border: border,\n              borderRadius: outerBorderRadius,\n              flexWrap: 'nowrap',\n              gap: '2px',\n              padding: '2px',\n              width: 'fit-content',\n              // Button (including dropdown target)\n              '.mantine-UnstyledButton-root': {\n                backgroundColor: theme.colors.menu.background,\n                border: 'none',\n                borderRadius: innerBorderRadius,\n                color: theme.colors.menu.text,\n              },\n              // Hovered button\n              '.mantine-UnstyledButton-root:hover': {\n                backgroundColor: theme.colors.hovered.background,\n                border: 'none',\n                color: theme.colors.hovered.text,\n              },\n              // Selected button\n              '.mantine-UnstyledButton-root[data-selected]': {\n                backgroundColor: theme.colors.selected.background,\n                border: 'none',\n                color: theme.colors.selected.text,\n              },\n              // Disabled button\n              '.mantine-UnstyledButton-root[data-disabled]': {\n                backgroundColor: theme.colors.disabled.background,\n                border: 'none',\n                color: theme.colors.disabled.text,\n              },\n              // Dropdown\n              '.mantine-Menu-dropdown': {\n                // Dropdown item\n                '.mantine-Menu-item': {\n                  fontSize: '12px',\n                  height: '30px',\n                  '.mantine-Menu-itemRightSection': {\n                    paddingLeft: '5px',\n                  },\n                },\n                '.mantine-Menu-item:hover': {\n                  backgroundColor: theme.colors.hovered.background,\n                },\n              },\n            },\n            theme.componentStyles?.(theme).Toolbar || {},\n          ),\n        }),\n      },\n      Tooltip: {\n        styles: () => ({\n          root: _.merge<CSSObject, CSSObject>(\n            {\n              backgroundColor: theme.colors.tooltip.background,\n              border: border,\n              borderRadius: outerBorderRadius,\n              boxShadow: shadow,\n              color: theme.colors.tooltip.text,\n              padding: '4px 10px',\n              textAlign: 'center',\n              'div ~ div': {\n                color: theme.colors.tooltip.text,\n              },\n            },\n            theme.componentStyles?.(theme).Tooltip || {},\n          ),\n        }),\n      },\n      SlashMenu: {\n        styles: () => ({\n          root: _.merge<CSSObject, CSSObject>(\n            {\n              position: 'relative',\n              '.mantine-Menu-item': {\n                height: '6vh',\n                maxHeight: '55px',\n                // Icon\n                '.mantine-Menu-itemIcon': {\n                  backgroundColor: theme.colors.tooltip.background,\n                  borderRadius: innerBorderRadius,\n                  color: theme.colors.tooltip.text,\n                  padding: '8px',\n                },\n                // Text\n                '.mantine-Menu-itemLabel': {\n                  paddingRight: '16px',\n                  '.mantine-Stack-root': {\n                    gap: '0',\n                  },\n                },\n                // Badge (keyboard shortcut)\n                '.mantine-Menu-itemRightSection': {\n                  '.mantine-Badge-root': {\n                    backgroundColor: theme.colors.tooltip.background,\n                    color: theme.colors.tooltip.text,\n                  },\n                },\n              },\n            },\n            theme.componentStyles?.(theme).SlashMenu || {},\n          ),\n        }),\n      },\n      SideMenu: {\n        styles: () => ({\n          root: _.merge<CSSObject, CSSObject>(\n            {\n              backgroundColor: 'transparent',\n              '.mantine-UnstyledButton-root': {\n                backgroundColor: 'transparent',\n                color: theme.colors.sideMenu,\n              },\n              '.mantine-UnstyledButton-root:hover': {\n                backgroundColor: theme.colors.hovered.background,\n              },\n            },\n            theme.componentStyles?.(theme).SideMenu || {},\n          ),\n        }),\n      },\n    },\n    fontFamily: theme.fontFamily,\n    other: {\n      textColors: textColors,\n      backgroundColors: backgroundColors,\n    },\n  }\n}\n"
  },
  {
    "path": "src/lib/blocknote/react/BlockNoteView.tsx",
    "content": "import { MantineProvider } from '@mantine/core'\nimport { createStyles } from '@mantine/styles'\nimport { EditorContent } from '@tiptap/react'\nimport React, { HTMLAttributes, ReactNode, useMemo } from 'react'\nimport { usePrefersColorScheme } from 'use-prefers-color-scheme'\nimport { BlockNoteEditor, BlockSchema, mergeCSSClasses } from '../core'\nimport { Theme, blockNoteToMantineTheme } from './BlockNoteTheme'\nimport { darkDefaultTheme, lightDefaultTheme } from './defaultThemes'\n\n// Renders the editor as well as all menus & toolbars using default styles.\nconst BaseBlockNoteView = <BSchema extends BlockSchema>(\n  props: {\n    editor: BlockNoteEditor<BSchema>\n    children?: ReactNode\n  } & HTMLAttributes<HTMLDivElement>,\n) => {\n  const { classes } = createStyles({ root: {} })(undefined, {\n    name: 'Editor',\n  })\n\n  const { editor, children, className, ...rest } = props\n\n  return (\n    <EditorContent\n      editor={props.editor?._tiptapEditor || null}\n      className={mergeCSSClasses(classes.root, props.className || '')}\n      {...rest}\n    >\n      {props.children}\n    </EditorContent>\n  )\n}\n\n// eslint-disable-next-line import/prefer-default-export\nexport const BlockNoteView = <BSchema extends BlockSchema>(\n  props: {\n    editor: BlockNoteEditor<BSchema>\n    theme?:\n      | 'light'\n      | 'dark'\n      | Theme\n      | {\n          light: Theme\n          dark: Theme\n        }\n    children?: ReactNode\n  } & HTMLAttributes<HTMLDivElement>,\n) => {\n  const { theme = { light: lightDefaultTheme, dark: darkDefaultTheme }, ...rest } = props\n\n  const preferredTheme = usePrefersColorScheme()\n\n  const mantineTheme = useMemo(() => {\n    if (theme === 'light') {\n      return blockNoteToMantineTheme(lightDefaultTheme)\n    }\n\n    if (theme === 'dark') {\n      return blockNoteToMantineTheme(darkDefaultTheme)\n    }\n\n    if ('light' in theme && 'dark' in theme) {\n      return blockNoteToMantineTheme(theme[preferredTheme === 'dark' ? 'dark' : 'light'])\n    }\n\n    return blockNoteToMantineTheme(theme)\n  }, [preferredTheme, theme])\n\n  return (\n    <MantineProvider theme={mantineTheme}>\n      <BaseBlockNoteView {...rest} />\n    </MantineProvider>\n  )\n}\n"
  },
  {
    "path": "src/lib/blocknote/react/Editor/EditorContent.tsx",
    "content": "/* eslint-disable import/prefer-default-export */\n// BlockNote uses a similar pattern as Tiptap, so for now we can just export that\nexport { EditorContent } from '@tiptap/react'\n"
  },
  {
    "path": "src/lib/blocknote/react/FormattingToolbar/components/DefaultButtons/ColorStyleButton.tsx",
    "content": "import { Menu } from '@mantine/core'\nimport React, { useCallback, useState } from 'react'\nimport { BlockNoteEditor, BlockSchema } from '@/lib/blocknote/core'\nimport ColorIcon from '../../../SharedComponents/ColorPicker/components/ColorIcon'\nimport ColorPicker from '../../../SharedComponents/ColorPicker/components/ColorPicker'\nimport { ToolbarButton } from '../../../SharedComponents/Toolbar/components/ToolbarButton'\nimport useEditorContentChange from '../../../hooks/useEditorContentChange'\nimport useEditorSelectionChange from '../../../hooks/useEditorSelectionChange'\n\nconst createColorIcon = (currentTextColor?: string | undefined, currentBackgroundColor?: string | undefined) => {\n  return <ColorIcon textColor={currentTextColor} backgroundColor={currentBackgroundColor} size={20} />\n}\n\nconst ColorStyleButton = <BSchema extends BlockSchema>(props: { editor: BlockNoteEditor<BSchema> }) => {\n  const [currentTextColor, setCurrentTextColor] = useState<string>(\n    props.editor.getActiveStyles().textColor || 'default',\n  )\n  const [currentBackgroundColor, setCurrentBackgroundColor] = useState<string>(\n    props.editor.getActiveStyles().backgroundColor || 'default',\n  )\n\n  useEditorContentChange(props.editor, () => {\n    setCurrentTextColor(props.editor.getActiveStyles().textColor || 'default')\n    setCurrentBackgroundColor(props.editor.getActiveStyles().backgroundColor || 'default')\n  })\n\n  useEditorSelectionChange(props.editor, () => {\n    setCurrentTextColor(props.editor.getActiveStyles().textColor || 'default')\n    setCurrentBackgroundColor(props.editor.getActiveStyles().backgroundColor || 'default')\n  })\n\n  const setTextColor = useCallback(\n    (color: string) => {\n      props.editor.focus()\n      if (color === 'default') {\n        props.editor.removeStyles({ textColor: color })\n      } else {\n        props.editor.addStyles({ textColor: color })\n      }\n    },\n    [props.editor],\n  )\n\n  const setBackgroundColor = useCallback(\n    (color: string) => {\n      props.editor.focus()\n      if (color === 'default') {\n        props.editor.removeStyles({ backgroundColor: color })\n      } else {\n        props.editor.addStyles({ backgroundColor: color })\n      }\n    },\n    [props.editor],\n  )\n\n  const ColorIconComponent = createColorIcon(currentTextColor, currentBackgroundColor)\n\n  return (\n    <Menu>\n      <Menu.Target>\n        <ToolbarButton mainTooltip=\"Colors\" icon={() => ColorIconComponent} />\n      </Menu.Target>\n      <Menu.Dropdown>\n        <ColorPicker\n          textColor={currentTextColor}\n          setTextColor={setTextColor}\n          backgroundColor={currentBackgroundColor}\n          setBackgroundColor={setBackgroundColor}\n        />\n      </Menu.Dropdown>\n    </Menu>\n  )\n}\n\nexport default ColorStyleButton\n"
  },
  {
    "path": "src/lib/blocknote/react/FormattingToolbar/components/DefaultButtons/NestBlockButtons.tsx",
    "content": "import React, { useCallback, useState } from 'react'\nimport { RiIndentDecrease, RiIndentIncrease } from 'react-icons/ri'\nimport { BlockNoteEditor, BlockSchema } from '@/lib/blocknote/core'\nimport { ToolbarButton } from '../../../SharedComponents/Toolbar/components/ToolbarButton'\nimport useEditorContentChange from '../../../hooks/useEditorContentChange'\nimport useEditorSelectionChange from '../../../hooks/useEditorSelectionChange'\nimport { formatKeyboardShortcut } from '../../../utils'\n\nexport const NestBlockButton = <BSchema extends BlockSchema>(props: { editor: BlockNoteEditor<BSchema> }) => {\n  const [canNestBlock, setCanNestBlock] = useState<boolean>()\n\n  useEditorContentChange(props.editor, () => {\n    setCanNestBlock(props.editor.canNestBlock())\n  })\n\n  useEditorSelectionChange(props.editor, () => {\n    setCanNestBlock(props.editor.canNestBlock())\n  })\n\n  const nestBlock = useCallback(() => {\n    props.editor.focus()\n    props.editor.nestBlock()\n  }, [props.editor])\n\n  return (\n    <ToolbarButton\n      onClick={nestBlock}\n      isDisabled={!canNestBlock}\n      mainTooltip=\"Nest Block\"\n      secondaryTooltip={formatKeyboardShortcut('Tab')}\n      icon={RiIndentIncrease}\n    />\n  )\n}\n\nexport const UnnestBlockButton = <BSchema extends BlockSchema>(props: { editor: BlockNoteEditor<BSchema> }) => {\n  const [canUnnestBlock, setCanUnnestBlock] = useState<boolean>()\n\n  useEditorContentChange(props.editor, () => {\n    setCanUnnestBlock(props.editor.canUnnestBlock())\n  })\n\n  useEditorSelectionChange(props.editor, () => {\n    setCanUnnestBlock(props.editor.canUnnestBlock())\n  })\n\n  const unnestBlock = useCallback(() => {\n    props.editor.focus()\n    props.editor.unnestBlock()\n  }, [props])\n\n  return (\n    <ToolbarButton\n      onClick={unnestBlock}\n      isDisabled={!canUnnestBlock}\n      mainTooltip=\"Unnest Block\"\n      secondaryTooltip={formatKeyboardShortcut('Shift+Tab')}\n      icon={RiIndentDecrease}\n    />\n  )\n}\n"
  },
  {
    "path": "src/lib/blocknote/react/FormattingToolbar/components/DefaultButtons/TextAlignButton.tsx",
    "content": "import React, { useCallback, useMemo, useState } from 'react'\nimport { IconType } from 'react-icons'\nimport { RiAlignCenter, RiAlignJustify, RiAlignLeft, RiAlignRight } from 'react-icons/ri'\nimport { BlockNoteEditor, BlockSchema, DefaultProps, PartialBlock } from '@/lib/blocknote/core'\nimport { ToolbarButton } from '../../../SharedComponents/Toolbar/components/ToolbarButton'\nimport useEditorContentChange from '../../../hooks/useEditorContentChange'\nimport useEditorSelectionChange from '../../../hooks/useEditorSelectionChange'\n\ntype TextAlignment = DefaultProps['textAlignment']['values'][number]\n\nconst icons: Record<TextAlignment, IconType> = {\n  left: RiAlignLeft,\n  center: RiAlignCenter,\n  right: RiAlignRight,\n  justify: RiAlignJustify,\n}\n\nconst TextAlignButton = <BSchema extends BlockSchema>(props: {\n  editor: BlockNoteEditor<BSchema>\n  textAlignment: TextAlignment\n}) => {\n  const [activeTextAlignment, setActiveTextAlignment] = useState(() => {\n    const block = props.editor.getTextCursorPosition().block\n\n    if ('textAlignment' in block.props) {\n      return block.props.textAlignment as TextAlignment\n    }\n    return undefined\n  })\n\n  useEditorContentChange(props.editor, () => {\n    const block = props.editor.getTextCursorPosition().block\n\n    if ('textAlignment' in block.props) {\n      setActiveTextAlignment(block.props.textAlignment as TextAlignment)\n    }\n  })\n\n  useEditorSelectionChange(props.editor, () => {\n    const block = props.editor.getTextCursorPosition().block\n\n    if ('textAlignment' in block.props) {\n      setActiveTextAlignment(block.props.textAlignment as TextAlignment)\n    }\n  })\n\n  const show = useMemo(() => {\n    const selection = props.editor.getSelection()\n\n    if (selection) {\n      for (const block of selection.blocks) {\n        if (!('textAlignment' in block.props)) {\n          return false\n        }\n      }\n    } else {\n      const block = props.editor.getTextCursorPosition().block\n\n      if (!('textAlignment' in block.props)) {\n        return false\n      }\n    }\n\n    return true\n  }, [props.editor])\n\n  const setTextAlignment = useCallback(\n    (textAlignment: TextAlignment) => {\n      props.editor.focus()\n\n      const selection = props.editor.getSelection()\n\n      if (selection) {\n        for (const block of selection.blocks) {\n          props.editor.updateBlock(block, {\n            props: { textAlignment: textAlignment },\n          } as PartialBlock<BSchema>)\n        }\n      } else {\n        const block = props.editor.getTextCursorPosition().block\n\n        props.editor.updateBlock(block, {\n          props: { textAlignment: textAlignment },\n        } as PartialBlock<BSchema>)\n      }\n    },\n    [props.editor],\n  )\n\n  if (!show) {\n    return null\n  }\n\n  return (\n    <ToolbarButton\n      onClick={() => setTextAlignment(props.textAlignment)}\n      isSelected={activeTextAlignment === props.textAlignment}\n      mainTooltip={\n        props.textAlignment === 'justify'\n          ? 'Justify Text'\n          : `Align Text ${props.textAlignment.slice(0, 1).toUpperCase()}${props.textAlignment.slice(1)}`\n      }\n      icon={icons[props.textAlignment]}\n    />\n  )\n}\n\nexport default TextAlignButton\n"
  },
  {
    "path": "src/lib/blocknote/react/FormattingToolbar/components/DefaultButtons/ToggledStyleButton.tsx",
    "content": "import React, { useState } from 'react'\nimport { IconType } from 'react-icons'\nimport { RiBold, RiCodeFill, RiItalic, RiStrikethrough, RiUnderline } from 'react-icons/ri'\nimport { BlockNoteEditor, BlockSchema, ToggledStyle } from '@/lib/blocknote/core'\nimport { ToolbarButton } from '../../../SharedComponents/Toolbar/components/ToolbarButton'\nimport useEditorContentChange from '../../../hooks/useEditorContentChange'\nimport useEditorSelectionChange from '../../../hooks/useEditorSelectionChange'\nimport { formatKeyboardShortcut } from '../../../utils'\n\nconst shortcuts: Record<ToggledStyle, string> = {\n  bold: 'Mod+B',\n  italic: 'Mod+I',\n  underline: 'Mod+U',\n  strike: 'Mod+Shift+X',\n  // blocknote had Mod+Shift+C here, but tiptap responds to Cmd-E with code toggle.\n  code: 'Mod+E',\n  // https://tiptap.dev/api/keyboard-shortcuts\n}\n\nconst icons: Record<ToggledStyle, IconType> = {\n  bold: RiBold,\n  italic: RiItalic,\n  underline: RiUnderline,\n  strike: RiStrikethrough,\n  code: RiCodeFill,\n}\n\nconst ToggledStyleButton = <BSchema extends BlockSchema>(props: {\n  editor: BlockNoteEditor<BSchema>\n  toggledStyle: ToggledStyle\n}) => {\n  const [active, setActive] = useState<boolean>(props.toggledStyle in props.editor.getActiveStyles())\n\n  useEditorContentChange(props.editor, () => {\n    setActive(props.toggledStyle in props.editor.getActiveStyles())\n  })\n\n  useEditorSelectionChange(props.editor, () => {\n    setActive(props.toggledStyle in props.editor.getActiveStyles())\n  })\n\n  const toggleStyle = (style: ToggledStyle) => {\n    props.editor.focus()\n    props.editor.toggleStyles({ [style]: true })\n  }\n\n  return (\n    <ToolbarButton\n      onClick={() => toggleStyle(props.toggledStyle)}\n      isSelected={active}\n      mainTooltip={props.toggledStyle.slice(0, 1).toUpperCase() + props.toggledStyle.slice(1)}\n      secondaryTooltip={formatKeyboardShortcut(shortcuts[props.toggledStyle])}\n      icon={icons[props.toggledStyle]}\n    />\n  )\n}\n\nexport default ToggledStyleButton\n"
  },
  {
    "path": "src/lib/blocknote/react/FormattingToolbar/components/DefaultDropdowns/BlockTypeDropdown.tsx",
    "content": "import React, { useMemo, useState } from 'react'\nimport { IconType } from 'react-icons'\nimport { RiH2, RiListOrdered, RiListUnordered, RiText } from 'react-icons/ri'\nimport { BlockNoteEditor, BlockSchema } from '@/lib/blocknote/core'\nimport { updateGroup } from '@/lib/utils'\nimport { ToolbarDropdown } from '../../../SharedComponents/Toolbar/components/ToolbarDropdown'\nimport { ToolbarDropdownItemProps } from '../../../SharedComponents/Toolbar/components/ToolbarDropdownItem'\nimport useEditorContentChange from '../../../hooks/useEditorContentChange'\nimport useEditorSelectionChange from '../../../hooks/useEditorSelectionChange'\n\nexport type BlockTypeDropdownItem = {\n  name: string\n  type: string\n  props?: Record<string, string>\n  icon: IconType\n}\n\nexport const defaultBlockTypeDropdownItems: BlockTypeDropdownItem[] = [\n  {\n    name: 'Paragraph',\n    type: 'paragraph',\n    icon: RiText,\n  },\n  {\n    name: 'Heading',\n    type: 'heading',\n    props: { level: '2' },\n    icon: RiH2,\n  },\n  // {\n  //   name: 'Heading 2',\n  //   type: 'heading',\n  //   props: {level: '2'},\n  //   icon: RiH2,\n  // },\n  // {\n  //   name: 'Heading 3',\n  //   type: 'heading',\n  //   props: {level: '3'},\n  //   icon: RiH3,\n  // },\n  {\n    name: 'Bullet List',\n    type: 'bulletListItem',\n    icon: RiListUnordered,\n  },\n  {\n    name: 'Numbered List',\n    type: 'numberedListItem',\n    icon: RiListOrdered,\n  },\n]\n\nexport const BlockTypeDropdown = <BSchema extends BlockSchema>(props: {\n  editor: BlockNoteEditor<BSchema>\n  items?: BlockTypeDropdownItem[]\n}) => {\n  const [block, setBlock] = useState(props.editor.getTextCursorPosition().block)\n\n  const filteredItems: BlockTypeDropdownItem[] = useMemo(() => {\n    return (props.items || defaultBlockTypeDropdownItems).filter((item) => {\n      // Checks if block type exists in the schema\n      if (!(item.type in props.editor.schema)) {\n        return false\n      }\n\n      // Checks if props for the block type are valid\n      for (const [prop, value] of Object.entries(item.props || {})) {\n        const propSchema = props.editor.schema[item.type].propSchema\n\n        // Checks if the prop exists for the block type\n        if (!(prop in propSchema)) {\n          return false\n        }\n\n        // Checks if the prop's value is valid\n        if (propSchema[prop].values !== undefined && !propSchema[prop].values!.includes(value)) {\n          return false\n        }\n      }\n\n      return true\n    })\n  }, [props.editor, props.items])\n\n  const shouldShow: boolean = useMemo(\n    () => filteredItems.find((item) => item.type === block.type) !== undefined,\n    [block.type, filteredItems],\n  )\n\n  const fullItems: ToolbarDropdownItemProps[] = useMemo(\n    () =>\n      filteredItems.map((item) => ({\n        text: item.name,\n        icon: item.icon,\n        onClick: () => {\n          props.editor.focus()\n          props.editor.updateBlock(block, {\n            type: item.type,\n            props: {},\n          })\n        },\n        isSelected: block.type === item.type,\n      })),\n    [block, filteredItems, props.editor],\n  )\n\n  useEditorContentChange(props.editor, () => {\n    setBlock(props.editor.getTextCursorPosition().block)\n  })\n\n  useEditorSelectionChange(props.editor, () => {\n    setBlock(props.editor.getTextCursorPosition().block)\n  })\n\n  if (!shouldShow) {\n    return null\n  }\n\n  return (\n    <ToolbarDropdown\n      items={[\n        ...fullItems,\n        {\n          text: 'Bullet Item',\n          icon: RiListUnordered,\n          onClick: () => {\n            updateGroup(props.editor, block, 'ul')\n          },\n        },\n        {\n          text: 'Numbered Item',\n          icon: RiListOrdered,\n          onClick: () => {\n            updateGroup(props.editor, block, 'ol')\n          },\n        },\n        {\n          text: 'BlockQuote item',\n          icon: RiListOrdered,\n          onClick: () => {\n            // @ts-expect-error\n            updateGroup(props.editor, block, 'Blockquote')\n          },\n        },\n      ]}\n    />\n  )\n}\n"
  },
  {
    "path": "src/lib/blocknote/react/FormattingToolbar/components/DefaultFormattingToolbar.tsx",
    "content": "import React from 'react'\nimport { BlockSchema } from '@/lib/blocknote/core'\nimport Toolbar from '../../SharedComponents/Toolbar/components/Toolbar'\nimport ToggledStyleButton from './DefaultButtons/ToggledStyleButton'\nimport { BlockTypeDropdown, BlockTypeDropdownItem } from './DefaultDropdowns/BlockTypeDropdown'\nimport { FormattingToolbarProps } from './FormattingToolbarPositioner'\n\nimport { NestBlockButton, UnnestBlockButton } from './DefaultButtons/NestBlockButtons'\n\nconst DefaultFormattingToolbar = <BSchema extends BlockSchema>(\n  props: FormattingToolbarProps<BSchema> & {\n    blockTypeDropdownItems?: BlockTypeDropdownItem[]\n  },\n) => {\n  return (\n    <Toolbar>\n      <BlockTypeDropdown {...props} items={props.blockTypeDropdownItems} />\n\n      <ToggledStyleButton editor={props.editor} toggledStyle=\"bold\" />\n      <ToggledStyleButton editor={props.editor} toggledStyle=\"italic\" />\n      <ToggledStyleButton editor={props.editor} toggledStyle=\"underline\" />\n      <ToggledStyleButton editor={props.editor} toggledStyle=\"strike\" />\n      <ToggledStyleButton editor={props.editor} toggledStyle=\"code\" />\n\n      <NestBlockButton editor={props.editor} />\n      <UnnestBlockButton editor={props.editor} />\n    </Toolbar>\n  )\n}\n\nexport default DefaultFormattingToolbar\n"
  },
  {
    "path": "src/lib/blocknote/react/FormattingToolbar/components/FormattingToolbarPositioner.tsx",
    "content": "import Tippy from '@tippyjs/react'\nimport React, { FC, useEffect, useMemo, useRef, useState } from 'react'\nimport { sticky } from 'tippy.js'\nimport { BlockSchema, DefaultBlockSchema, BlockNoteEditor } from '@/lib/blocknote/core'\n\nimport DefaultFormattingToolbar from './DefaultFormattingToolbar'\n\nexport type FormattingToolbarProps<BSchema extends BlockSchema = DefaultBlockSchema> = {\n  editor: BlockNoteEditor<BSchema>\n}\n\n// We want Tippy to call `getReferenceClientRect` whenever the reference\n// DOMRect's position changes. This happens automatically on scroll, but we need\n// the `sticky` plugin to make it happen in all cases. This is most evident\n// when changing the text alignment using the formatting toolbar.\nconst tippyPlugins = [sticky]\n\nexport const FormattingToolbarPositioner = <BSchema extends BlockSchema = DefaultBlockSchema>(props: {\n  editor: BlockNoteEditor<BSchema>\n  formattingToolbar?: FC<FormattingToolbarProps<BSchema>>\n}) => {\n  const [show, setShow] = useState<boolean>(false)\n\n  const referencePos = useRef<DOMRect>()\n\n  useEffect(() => {\n    return props.editor.formattingToolbar.onUpdate((state) => {\n      setShow(state.show)\n\n      referencePos.current = state.referencePos\n    })\n  }, [props.editor])\n\n  const getReferenceClientRect = useMemo(\n    () => {\n      if (!referencePos) {\n        return undefined\n      }\n      return () => referencePos.current!\n    },\n    [referencePos.current], // eslint-disable-line\n  )\n\n  const formattingToolbarElement = useMemo(() => {\n    const FormattingToolbar = props.formattingToolbar || DefaultFormattingToolbar\n\n    return <FormattingToolbar editor={props.editor} />\n  }, [props.editor, props.formattingToolbar])\n\n  return (\n    <Tippy\n      appendTo={props.editor.domElement.parentElement ?? document.body}\n      content={formattingToolbarElement}\n      getReferenceClientRect={getReferenceClientRect}\n      interactive\n      visible={show}\n      animation=\"fade\"\n      placement=\"top-start\"\n      sticky\n      plugins={tippyPlugins}\n    />\n  )\n}\n"
  },
  {
    "path": "src/lib/blocknote/react/ReactBlockSpec.tsx",
    "content": "/* eslint-disable react/no-this-in-sfc */\nimport { TagParseRule } from '@tiptap/pm/model'\nimport { NodeViewContent, NodeViewProps, NodeViewWrapper, ReactNodeViewRenderer } from '@tiptap/react'\nimport React, { createContext, ElementType, FC, HTMLProps, useContext, useMemo } from 'react'\nimport {\n  BlockConfig,\n  BlockNoteDOMAttributes,\n  BlockNoteEditor,\n  BlockSchema,\n  BlockSpec,\n  bnBlockStyles,\n  camelToDataKebab,\n  mergeCSSClasses,\n  parse,\n  PropSchema,\n  propsToAttributes,\n  render,\n  createTipTapBlock,\n} from '../core'\n\n// extend BlockConfig but use a React render function\nexport type ReactBlockConfig<\n  Type extends string,\n  PSchema extends PropSchema,\n  ContainsInlineContent extends boolean,\n  BSchema extends BlockSchema,\n  BParseRules extends TagParseRule[],\n> = Omit<BlockConfig<Type, PSchema, ContainsInlineContent, BSchema, BParseRules>, 'render'> & {\n  render: FC<{\n    block: Parameters<BlockConfig<Type, PSchema, ContainsInlineContent, BSchema, BParseRules>['render']>[0]\n    editor: Parameters<BlockConfig<Type, PSchema, ContainsInlineContent, BSchema, BParseRules>['render']>[1]\n  }>\n}\n\nconst BlockNoteDOMAttributesContext = createContext<BlockNoteDOMAttributes>({})\n\nexport const InlineContent = <Tag extends ElementType>(props: { as?: Tag } & HTMLProps<Tag>) => {\n  const inlineContentDOMAttributes = useContext(BlockNoteDOMAttributesContext).inlineContent || {}\n\n  const classNames = mergeCSSClasses(\n    props.className || '',\n    bnBlockStyles.inlineContent,\n    inlineContentDOMAttributes.class,\n  )\n\n  return (\n    <NodeViewContent\n      {...Object.fromEntries(Object.entries(inlineContentDOMAttributes).filter(([key]) => key !== 'class'))}\n      {...props}\n      className={classNames}\n    />\n  )\n}\n\n// A function to create custom block for API consumers\n// we want to hide the tiptap node from API consumers and provide a simpler API surface instead\nexport function createReactBlockSpec<\n  BType extends string,\n  PSchema extends PropSchema,\n  ContainsInlineContent extends boolean,\n  BSchema extends BlockSchema,\n  BParseRules extends TagParseRule[],\n>(\n  blockConfig: ReactBlockConfig<BType, PSchema, ContainsInlineContent, BSchema, BParseRules>,\n): BlockSpec<BType, PSchema> {\n  const node = createTipTapBlock<\n    BType,\n    {\n      editor: BlockNoteEditor<BSchema>\n      domAttributes?: BlockNoteDOMAttributes\n    }\n  >({\n    name: blockConfig.type,\n    content: blockConfig?.containsInlineContent ? 'inline*' : '',\n    selectable: blockConfig?.containsInlineContent,\n\n    addAttributes() {\n      return propsToAttributes(blockConfig)\n    },\n\n    parseHTML() {\n      return parse(blockConfig)\n    },\n\n    renderHTML({ HTMLAttributes }) {\n      return render(blockConfig, HTMLAttributes)\n    },\n\n    addNodeView() {\n      const BlockContent: FC<NodeViewProps> = (props: NodeViewProps) => {\n        const Content = blockConfig.render\n        const { domAttributes: rawDomAttributes } = this.options\n        const domAttributes = useMemo(() => ({ ...rawDomAttributes }), [rawDomAttributes])\n        // Add custom HTML attributes\n        const blockContentDOMAttributes = this.options.domAttributes?.blockContent || {}\n\n        // Add props as HTML attributes in kebab-case with \"data-\" prefix\n        const htmlAttributes: Record<string, string> = {}\n        for (const [attribute, value] of Object.entries(props.node.attrs)) {\n          if (attribute in blockConfig.propSchema && value !== blockConfig.propSchema[attribute].default) {\n            htmlAttributes[camelToDataKebab(attribute)] = value\n          }\n        }\n\n        // Gets BlockNote editor instance\n        const editor = this.options.editor! as BlockNoteEditor<BSchema>\n        // Gets position of the node\n        const pos = typeof props.getPos === 'function' ? props.getPos() : undefined\n\n        if (!pos) return null\n        // Gets TipTap editor instance\n        const tipTapEditor = editor._tiptapEditor\n        // Gets parent blockContainer node\n\n        const blockContainer = tipTapEditor.state.doc.resolve(pos!).node()\n\n        // Gets block identifier\n        const blockIdentifier = blockContainer.attrs.id\n        // Get the block\n        const block = editor.getBlock(blockIdentifier)!\n        if (block.type !== blockConfig.type) {\n          throw new Error('Block type does not match')\n        }\n\n        return (\n          <NodeViewWrapper\n            {...Object.fromEntries(Object.entries(blockContentDOMAttributes).filter(([key]) => key !== 'class'))}\n            className={mergeCSSClasses(bnBlockStyles.blockContent, blockContentDOMAttributes.class)}\n            data-content-type={blockConfig.type}\n            {...htmlAttributes}\n          >\n            <BlockNoteDOMAttributesContext.Provider value={domAttributes}>\n              <Content block={block as any} editor={editor} />\n            </BlockNoteDOMAttributesContext.Provider>\n          </NodeViewWrapper>\n        )\n      }\n\n      return ReactNodeViewRenderer(BlockContent, {\n        className: bnBlockStyles.reactNodeViewRenderer,\n      })\n    },\n  })\n\n  return {\n    node,\n    propSchema: blockConfig.propSchema,\n  }\n}\n"
  },
  {
    "path": "src/lib/blocknote/react/SharedComponents/ColorPicker/components/ColorIcon.tsx",
    "content": "import React from 'react'\nimport { Box } from '@mantine/core'\nimport { createStyles } from '@mantine/styles'\n\nconst ColorIcon = (\n  props: Partial<{\n    textColor: string | undefined\n    backgroundColor: string | undefined\n    size: number | undefined\n  }>,\n) => {\n  const { classes } = createStyles({ root: {} })(undefined, {\n    name: 'ColorIcon',\n  })\n\n  const textColor = props.textColor || 'default'\n  const backgroundColor = props.backgroundColor || 'default'\n  const size = props.size || 16\n\n  return (\n    <Box\n      className={classes.root}\n      sx={(theme) => {\n        return {\n          backgroundColor: theme.other.backgroundColors[backgroundColor],\n          color: theme.other.textColors[textColor],\n          fontSize: `${(size * 0.75).toString()}px`,\n          height: `${size.toString()}px`,\n          lineHeight: `${size.toString()}px`,\n          textAlign: 'center',\n          width: `${size.toString()}px`,\n        }\n      }}\n    >\n      A\n    </Box>\n  )\n}\n\nexport default ColorIcon\n"
  },
  {
    "path": "src/lib/blocknote/react/SharedComponents/ColorPicker/components/ColorPicker.tsx",
    "content": "import React from 'react'\nimport { Menu } from '@mantine/core'\nimport { TiTick } from 'react-icons/ti'\nimport ColorIcon from './ColorIcon'\n\nconst ColorPicker = (props: {\n  onClick?: () => void\n  iconSize?: number\n  textColor: string\n  setTextColor: (color: string) => void\n  backgroundColor: string\n  setBackgroundColor: (color: string) => void\n}) => {\n  return (\n    <>\n      <Menu.Label>Text</Menu.Label>\n      {['default', 'gray', 'brown', 'red', 'orange', 'yellow', 'green', 'blue', 'purple', 'pink'].map((color) => (\n        <Menu.Item\n          onClick={() => {\n            if (props.onClick) props.onClick()\n            props.setTextColor(color)\n          }}\n          component=\"div\"\n          data-test={`text-color-${color}`}\n          icon={<ColorIcon textColor={color} size={props.iconSize} />}\n          key={`text-color-${color}`}\n          rightSection={\n            props.textColor === color ? (\n              <TiTick size={16} style={{ paddingLeft: '8px' }} />\n            ) : (\n              <div style={{ width: '24px', padding: '0' }} />\n            )\n          }\n        >\n          {color.charAt(0).toUpperCase() + color.slice(1)}\n        </Menu.Item>\n      ))}\n      <Menu.Label>Background</Menu.Label>\n      {['default', 'gray', 'brown', 'red', 'orange', 'yellow', 'green', 'blue', 'purple', 'pink'].map((color) => (\n        <Menu.Item\n          onClick={() => {\n            if (props.onClick) props.onClick()\n            props.setBackgroundColor(color)\n          }}\n          component=\"div\"\n          data-test={`background-color-${color}`}\n          icon={<ColorIcon backgroundColor={color} size={props.iconSize} />}\n          key={`background-color-${color}`}\n          rightSection={\n            props.backgroundColor === color ? (\n              <TiTick size={16} style={{ paddingLeft: '8px' }} />\n            ) : (\n              <div style={{ width: '24px', padding: '0' }} />\n            )\n          }\n        >\n          {color.charAt(0).toUpperCase() + color.slice(1)}\n        </Menu.Item>\n      ))}\n    </>\n  )\n}\n\nexport default ColorPicker\n"
  },
  {
    "path": "src/lib/blocknote/react/SharedComponents/Toolbar/components/Toolbar.tsx",
    "content": "import { Group } from '@mantine/core'\nimport { createStyles } from '@mantine/styles'\nimport React, { forwardRef, HTMLAttributes } from 'react'\n\nconst Toolbar = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>((props, ref) => {\n  const { classes } = createStyles({ root: {} })(undefined, {\n    name: 'Toolbar',\n  })\n\n  return (\n    <Group className={props.className ? `${classes.root} ${props.className}` : classes.root} ref={ref} {...props}>\n      {props.children}\n    </Group>\n  )\n})\n\nexport default Toolbar\n"
  },
  {
    "path": "src/lib/blocknote/react/SharedComponents/Toolbar/components/ToolbarButton.tsx",
    "content": "import { ActionIcon, Button } from '@mantine/core'\nimport Tippy from '@tippyjs/react'\nimport React, { ForwardedRef, MouseEvent, forwardRef } from 'react'\nimport { IconType } from 'react-icons'\nimport TooltipContent from '../../Tooltip/components/TooltipContent'\n\nexport type ToolbarButtonProps = {\n  onClick?: (e: MouseEvent) => void\n  icon?: IconType\n  mainTooltip: string\n  secondaryTooltip?: string\n  isSelected?: boolean\n  children?: any\n  isDisabled?: boolean\n}\n\n/**\n * Helper for basic buttons that show in the formatting toolbar.\n */\n// eslint-disable-next-line react/display-name\nexport const ToolbarButton = forwardRef((props: ToolbarButtonProps, ref: ForwardedRef<HTMLButtonElement>) => {\n  const ButtonIcon = props.icon\n  return (\n    <Tippy\n      content={<TooltipContent mainTooltip={props.mainTooltip} secondaryTooltip={props.secondaryTooltip} />}\n      trigger=\"mouseenter\"\n    >\n      {/* Creates an ActionIcon instead of a Button if only an icon is provided as content. */}\n      {props.children ? (\n        <Button\n          onClick={props.onClick}\n          data-selected={props.isSelected ? 'true' : undefined}\n          data-test={props.mainTooltip.slice(0, 1).toLowerCase() + props.mainTooltip.replace(/\\s+/g, '').slice(1)}\n          size=\"xs\"\n          disabled={props.isDisabled || false}\n          ref={ref}\n        >\n          {ButtonIcon && <ButtonIcon />}\n          {props.children}\n        </Button>\n      ) : (\n        <ActionIcon\n          onClick={props.onClick}\n          data-selected={props.isSelected ? 'true' : undefined}\n          data-test={props.mainTooltip.slice(0, 1).toLowerCase() + props.mainTooltip.replace(/\\s+/g, '').slice(1)}\n          size={30}\n          disabled={props.isDisabled || false}\n          ref={ref}\n        >\n          {ButtonIcon && <ButtonIcon />}\n        </ActionIcon>\n      )}\n    </Tippy>\n  )\n})\n"
  },
  {
    "path": "src/lib/blocknote/react/SharedComponents/Toolbar/components/ToolbarDropdown.tsx",
    "content": "import React from 'react'\nimport { Menu } from '@mantine/core'\nimport { ToolbarDropdownItem, ToolbarDropdownItemProps } from './ToolbarDropdownItem'\nimport { ToolbarDropdownTarget } from './ToolbarDropdownTarget'\n\nexport type ToolbarDropdownProps = {\n  items: ToolbarDropdownItemProps[]\n  isDisabled?: boolean\n}\n\nexport const ToolbarDropdown = (props: ToolbarDropdownProps) => {\n  const selectedItem = props.items.filter((p) => p.isSelected)[0]\n\n  if (!selectedItem) {\n    return null\n  }\n\n  return (\n    <Menu disabled={props.isDisabled}>\n      <Menu.Target>\n        <ToolbarDropdownTarget text={selectedItem.text} icon={selectedItem.icon} isDisabled={selectedItem.isDisabled} />\n      </Menu.Target>\n      <Menu.Dropdown>\n        {props.items.map((item) => (\n          <ToolbarDropdownItem key={item.text} {...item} />\n        ))}\n      </Menu.Dropdown>\n    </Menu>\n  )\n}\n"
  },
  {
    "path": "src/lib/blocknote/react/SharedComponents/Toolbar/components/ToolbarDropdownItem.tsx",
    "content": "import { Menu } from '@mantine/core'\nimport React, { MouseEvent } from 'react'\nimport { IconType } from 'react-icons'\nimport { TiTick } from 'react-icons/ti'\n\nexport type ToolbarDropdownItemProps = {\n  text: string\n  // eslint-disable-next-line react/no-unused-prop-types\n  type?: string\n  icon?: IconType\n  onClick?: (e: MouseEvent) => void\n  isSelected?: boolean\n  isDisabled?: boolean\n}\n\nexport const ToolbarDropdownItem = (props: ToolbarDropdownItemProps) => {\n  const ItemIcon = props.icon\n\n  return (\n    <Menu.Item\n      key={props.text}\n      onClick={props.onClick}\n      icon={ItemIcon && <ItemIcon size={16} />}\n      rightSection={\n        props.isSelected ? (\n          <TiTick size={16} />\n        ) : (\n          // Ensures space for tick even if item isn't currently selected.\n          <div style={{ width: '16px', padding: '0' }} />\n        )\n      }\n      disabled={props.isDisabled}\n    >\n      {props.text}\n    </Menu.Item>\n  )\n}\n"
  },
  {
    "path": "src/lib/blocknote/react/SharedComponents/Toolbar/components/ToolbarDropdownTarget.tsx",
    "content": "import { Button } from '@mantine/core'\nimport React, { MouseEventHandler, forwardRef } from 'react'\nimport { IconType } from 'react-icons'\nimport { HiChevronDown } from 'react-icons/hi'\n\nexport type ToolbarDropdownTargetProps = {\n  text: string\n  icon?: IconType\n  isDisabled?: boolean\n  onClick?: MouseEventHandler\n}\n\nexport const ToolbarDropdownTarget = forwardRef<HTMLButtonElement, ToolbarDropdownTargetProps>(\n  (props: ToolbarDropdownTargetProps, ref) => {\n    const TargetIcon = props.icon\n    return (\n      <Button\n        leftIcon={TargetIcon && <TargetIcon size={16} />}\n        rightIcon={<HiChevronDown />}\n        size=\"xs\"\n        variant=\"subtle\"\n        disabled={props.isDisabled}\n        onClick={props.onClick}\n        ref={ref}\n      >\n        {props.text}\n      </Button>\n    )\n  },\n)\n"
  },
  {
    "path": "src/lib/blocknote/react/SharedComponents/Tooltip/components/TooltipContent.tsx",
    "content": "import React from 'react'\nimport { Stack, Text } from '@mantine/core'\nimport { createStyles } from '@mantine/styles'\n\nconst TooltipContent = (props: { mainTooltip: string; secondaryTooltip?: string }) => {\n  const { classes } = createStyles({ root: {} })(undefined, {\n    name: 'Tooltip',\n  })\n\n  return (\n    <Stack spacing={0} className={classes.root}>\n      <Text size=\"sm\">{props.mainTooltip}</Text>\n      {props.secondaryTooltip && <Text size=\"xs\">{props.secondaryTooltip}</Text>}\n    </Stack>\n  )\n}\n\nexport default TooltipContent\n"
  },
  {
    "path": "src/lib/blocknote/react/SideMenu/components/DefaultButtons/AddBlockButton.tsx",
    "content": "import React from 'react'\nimport { AiOutlinePlus } from 'react-icons/ai'\nimport { BlockSchema } from '@/lib/blocknote/core'\nimport SideMenuButton from '../SideMenuButton'\nimport { SideMenuProps } from '../SideMenuPositioner'\n\nconst AddBlockButton = <BSchema extends BlockSchema>(props: SideMenuProps<BSchema>) => (\n  <SideMenuButton>\n    <AiOutlinePlus size={24} onClick={props.addBlock} data-test=\"dragHandleAdd\" />\n  </SideMenuButton>\n)\n\nexport default AddBlockButton\n"
  },
  {
    "path": "src/lib/blocknote/react/SideMenu/components/DefaultButtons/DragHandle.tsx",
    "content": "import React from 'react'\nimport { Menu } from '@mantine/core'\nimport { MdDragIndicator } from 'react-icons/md'\nimport { BlockSchema } from '@/lib/blocknote/core'\nimport DefaultDragHandleMenu from '../DragHandleMenu/DefaultDragHandleMenu'\nimport SideMenuButton from '../SideMenuButton'\nimport { SideMenuProps } from '../SideMenuPositioner'\nimport ThemedMenu from '@/components/ui/ThemedMenu'\n\nconst DragHandle = <BSchema extends BlockSchema>(props: SideMenuProps<BSchema>) => {\n  const DragHandleMenu = props.dragHandleMenu || DefaultDragHandleMenu\n\n  return (\n    <ThemedMenu trigger=\"click\" onOpen={props.freezeMenu} onClose={props.unfreezeMenu} width={100} position=\"left\">\n      <Menu.Target>\n        <div draggable=\"true\" onDragStart={props.blockDragStart} onDragEnd={props.blockDragEnd}>\n          <SideMenuButton>\n            <MdDragIndicator size={24} data-test=\"dragHandle\" />\n          </SideMenuButton>\n        </div>\n      </Menu.Target>\n      <DragHandleMenu editor={props.editor} block={props.block} />\n    </ThemedMenu>\n  )\n}\n\nexport default DragHandle\n"
  },
  {
    "path": "src/lib/blocknote/react/SideMenu/components/DefaultSideMenu.tsx",
    "content": "import React from 'react'\nimport { BlockSchema } from '@/lib/blocknote/core'\nimport DragHandle from './DefaultButtons/DragHandle'\nimport SideMenu from './SideMenu'\nimport { SideMenuProps } from './SideMenuPositioner'\nimport AddBlockButton from './DefaultButtons/AddBlockButton'\n\nconst DefaultSideMenu = <BSchema extends BlockSchema>(props: SideMenuProps<BSchema>) => (\n  <SideMenu>\n    <AddBlockButton {...props} />\n    <DragHandle {...props} />\n  </SideMenu>\n)\n\nexport default DefaultSideMenu\n"
  },
  {
    "path": "src/lib/blocknote/react/SideMenu/components/DragHandleMenu/DefaultButtons/RemoveBlockButton.tsx",
    "content": "import React, { ReactNode } from 'react'\n\nimport { XStack } from 'tamagui'\nimport { Delete } from '@tamagui/lucide-icons'\nimport { BlockSchema } from '@/lib/blocknote/core'\nimport { DragHandleMenuProps } from '../DragHandleMenu'\nimport DragHandleMenuItem from '../DragHandleMenuItem'\n\nconst RemoveBlockButton = <BSchema extends BlockSchema>(\n  props: DragHandleMenuProps<BSchema> & { children: ReactNode },\n) => {\n  return (\n    <DragHandleMenuItem onClick={() => props.editor.removeBlocks([props.block])}>\n      <XStack gap=\"$2\">\n        <Delete size={14} />\n        {props.children}\n      </XStack>\n    </DragHandleMenuItem>\n  )\n}\n\nexport default RemoveBlockButton\n"
  },
  {
    "path": "src/lib/blocknote/react/SideMenu/components/DragHandleMenu/DefaultDragHandleMenu.tsx",
    "content": "import { Box, Menu } from '@mantine/core'\nimport { XStack } from 'tamagui'\nimport { Forward, RefreshCcw } from '@tamagui/lucide-icons'\nimport * as _ from 'lodash'\nimport React, { useCallback, useRef, useState } from 'react'\nimport {\n  RiChatQuoteLine,\n  RiCodeBoxLine,\n  RiHeading,\n  RiListOrdered,\n  RiListUnordered,\n  RiMenuLine,\n  RiText,\n} from 'react-icons/ri'\nimport { Block, BlockNoteEditor, BlockSchema } from '@/lib/blocknote'\nimport { updateGroup } from '@/lib/utils'\nimport RemoveBlockButton from './DefaultButtons/RemoveBlockButton'\nimport { DragHandleMenu, DragHandleMenuProps } from './DragHandleMenu'\nimport DragHandleMenuItem from './DragHandleMenuItem'\nimport { HMBlockSchema } from '@/components/Editor/schema'\nimport ThemedMenu, { ThemedMenuItem, ThemedLabel } from '@/components/ui/ThemedMenu'\n\nconst TurnIntoItems = <BSchema extends HMBlockSchema>() => [\n  {\n    label: 'Paragraph',\n    group: 'Block operations',\n    Icon: RiText,\n    onClick: ({ block, editor }: { block: Block<BSchema>; editor: BlockNoteEditor<BSchema> }) => {\n      editor.focus()\n      editor.updateBlock(block, {\n        type: 'paragraph',\n        props: {},\n      })\n    },\n  },\n  {\n    label: 'Heading',\n    group: 'Block operations',\n    Icon: RiHeading,\n    onClick: ({ block, editor }: { block: Block<BSchema>; editor: BlockNoteEditor<BSchema> }) => {\n      editor.focus()\n      editor.updateBlock(block, {\n        type: 'heading',\n        props: {},\n      })\n    },\n  },\n  {\n    label: 'Code',\n    group: 'Block operations',\n    Icon: RiCodeBoxLine,\n    onClick: ({ block, editor }: { block: Block<BSchema>; editor: BlockNoteEditor<BSchema> }) => {\n      editor.focus()\n      editor.updateBlock(block, {\n        type: 'code-block',\n        props: {},\n      })\n    },\n  },\n  // {\n  //   label: 'Block Quote',\n  //   group: 'Group operations',\n  //   Icon: RiChatQuoteFill,\n  //   onClick: ({\n  //     block,\n  //     editor,\n  //   }: {\n  //     block: Block<HMBlockSchema>\n  //     editor: BlockNoteEditor<HMBlockSchema>\n  //   }) => {\n  //     editor.focus()\n  //     updateGroup(editor, block, 'Blockquote')\n  //   },\n  // },\n  {\n    label: 'Bullet item',\n    group: 'Group operations',\n    Icon: RiListUnordered,\n    onClick: ({ block, editor }: { block: Block<BSchema>; editor: BlockNoteEditor<BSchema> }) => {\n      editor.focus()\n      updateGroup(editor, block, 'ul')\n    },\n  },\n  {\n    label: 'Numbered item',\n    group: 'Group operations',\n    Icon: RiListOrdered,\n    onClick: ({ block, editor }: { block: Block<BSchema>; editor: BlockNoteEditor<BSchema> }) => {\n      editor.focus()\n      updateGroup(editor, block, 'ul')\n    },\n  },\n  {\n    label: 'Group item',\n    group: 'Group operations',\n    Icon: RiMenuLine,\n    onClick: ({ block, editor }: { block: Block<BSchema>; editor: BlockNoteEditor<BSchema> }) => {\n      editor.focus()\n      updateGroup(editor, block, 'group')\n    },\n  },\n\n  {\n    label: 'Blockquote item',\n    group: 'Group operations',\n    Icon: RiChatQuoteLine,\n    onClick: ({ block, editor }: { block: Block<BSchema>; editor: BlockNoteEditor<BSchema> }) => {\n      editor.focus()\n      updateGroup(editor, block, 'blockquote')\n    },\n  },\n]\n\nconst TurnIntoMenu = <BSchema extends BlockSchema>(props: DragHandleMenuProps<BSchema>) => {\n  const [opened, setOpened] = useState(false)\n\n  const menuCloseTimer = useRef<NodeJS.Timeout | null>(null)\n\n  const startMenuCloseTimer = useCallback(() => {\n    if (menuCloseTimer.current) {\n      clearTimeout(menuCloseTimer.current)\n    }\n    menuCloseTimer.current = setTimeout(() => {\n      setOpened(false)\n    }, 250)\n  }, [])\n\n  const stopMenuCloseTimer = useCallback(() => {\n    if (menuCloseTimer.current) {\n      clearTimeout(menuCloseTimer.current)\n    }\n    setOpened(true)\n  }, [])\n\n  const turnIntoItems = TurnIntoItems<BSchema>()\n  const groups = _.groupBy(turnIntoItems, (i) => i.group)\n  const renderedItems: any[] = []\n\n  _.forEach(groups, (groupedItems) => {\n    renderedItems.push(<ThemedLabel key={groupedItems[0].group}>{groupedItems[0].group}</ThemedLabel>)\n\n    for (const item of groupedItems) {\n      renderedItems.push(\n        <ThemedMenuItem\n          key={item.label}\n          onClick={() => {\n            item.onClick(props)\n          }}\n          icon={<item.Icon size={12} />}\n        >\n          {item.label}\n        </ThemedMenuItem>,\n      )\n    }\n  })\n\n  if (!props.block.type) {\n    return null\n  }\n\n  return (\n    <DragHandleMenuItem onMouseOver={stopMenuCloseTimer} onMouseLeave={startMenuCloseTimer}>\n      <ThemedMenu opened={opened} position=\"right\">\n        <Menu.Target>\n          <XStack gap=\"$2\">\n            <RefreshCcw size={14} />\n            <div style={{ flex: 1 }}>Turn into</div>\n            <Box style={{ display: 'flex', alignItems: 'center' }}>\n              <Forward size={12} />\n            </Box>\n          </XStack>\n        </Menu.Target>\n        <Menu.Dropdown\n          onMouseLeave={startMenuCloseTimer}\n          onMouseOver={stopMenuCloseTimer}\n          style={{ marginLeft: '5px' }}\n        >\n          {renderedItems}\n        </Menu.Dropdown>\n      </ThemedMenu>\n    </DragHandleMenuItem>\n  )\n}\n\nconst DefaultDragHandleMenu = <BSchema extends BlockSchema>(props: DragHandleMenuProps<BSchema>) => (\n  <DragHandleMenu>\n    <RemoveBlockButton {...props}>Delete</RemoveBlockButton>\n    <TurnIntoMenu {...props} />\n  </DragHandleMenu>\n)\n\nexport default DefaultDragHandleMenu\n"
  },
  {
    "path": "src/lib/blocknote/react/SideMenu/components/DragHandleMenu/DragHandleMenu.tsx",
    "content": "import { Menu } from '@mantine/core'\nimport { createStyles } from '@mantine/styles'\nimport React, { ReactNode } from 'react'\nimport { Block, BlockNoteEditor } from '@/lib/blocknote/core'\nimport { HMBlockSchema } from '@/components/Editor/schema'\n\nexport type DragHandleMenuProps<BSchema extends HMBlockSchema> = {\n  block: Block<BSchema>\n  editor: BlockNoteEditor<BSchema>\n}\n\nexport const DragHandleMenu = (props: { children: ReactNode }) => {\n  const { classes } = createStyles({\n    root: {\n      minWidth: 180,\n    },\n  })(undefined, {\n    name: 'DragHandleMenu',\n  })\n\n  return <Menu.Dropdown className={classes.root}>{props.children}</Menu.Dropdown>\n}\n"
  },
  {
    "path": "src/lib/blocknote/react/SideMenu/components/DragHandleMenu/DragHandleMenuItem.tsx",
    "content": "import React from 'react'\nimport { PolymorphicComponentProps } from '@mantine/utils'\nimport { ThemedMenuItem } from '@/components/ui/ThemedMenu'\n\nconst DragHandleMenuItem = (props: PolymorphicComponentProps<'button'>) => {\n  const { children, ...remainingProps } = props\n  return <ThemedMenuItem {...remainingProps}>{children}</ThemedMenuItem>\n}\n\nexport default DragHandleMenuItem\n"
  },
  {
    "path": "src/lib/blocknote/react/SideMenu/components/SideMenu.tsx",
    "content": "import { Group } from '@mantine/core'\nimport React, { ReactNode } from 'react'\n\nconst SideMenu = (props: { children: ReactNode }) => {\n  return (\n    <Group className=\"side-menu\" spacing={0}>\n      {props.children}\n    </Group>\n  )\n}\n\nexport default SideMenu\n"
  },
  {
    "path": "src/lib/blocknote/react/SideMenu/components/SideMenuButton.tsx",
    "content": "import React from 'react'\nimport { XStack } from 'tamagui'\n\nconst SideMenuButton = (props: { children: JSX.Element }) => (\n  <XStack\n    cursor=\"pointer\"\n    padding=\"$1\"\n    hoverStyle={{\n      backgroundColor: '$gray5',\n      borderRadius: '$2',\n    }}\n  >\n    {props.children}\n  </XStack>\n)\n\nexport default SideMenuButton\n"
  },
  {
    "path": "src/lib/blocknote/react/SideMenu/components/SideMenuPositioner.tsx",
    "content": "import Tippy from '@tippyjs/react'\nimport React, { FC, useEffect, useMemo, useRef, useState } from 'react'\nimport { Block, BlockNoteEditor, BlockSchema, DefaultBlockSchema, SideMenuProsemirrorPlugin } from '@/lib/blocknote'\nimport { getGroupInfoFromPos } from '@/lib/blocknote/core/extensions/Blocks/helpers/getGroupInfoFromPos'\nimport DefaultSideMenu from './DefaultSideMenu'\nimport { DragHandleMenuProps } from './DragHandleMenu/DragHandleMenu'\n\nconst popperOptions = {\n  modifiers: [\n    {\n      name: 'flip',\n      options: {\n        fallbackPlacements: [],\n      },\n    },\n    {\n      name: 'preventOverflow',\n      options: {\n        mainAxis: false,\n        altAxis: false,\n      },\n    },\n  ],\n}\n\nexport type SideMenuProps<BSchema extends BlockSchema = DefaultBlockSchema> = Pick<\n  SideMenuProsemirrorPlugin<BSchema>,\n  'blockDragStart' | 'blockDragEnd' | 'addBlock' | 'freezeMenu' | 'unfreezeMenu'\n> & {\n  block: Block<BSchema>\n  editor: BlockNoteEditor<BSchema>\n  dragHandleMenu?: FC<DragHandleMenuProps<BSchema>>\n}\n\nexport const SideMenuPositioner = <BSchema extends BlockSchema = DefaultBlockSchema>(props: {\n  editor: BlockNoteEditor<BSchema>\n  sideMenu?: FC<SideMenuProps<BSchema>>\n  placement?: 'left' | 'right'\n}) => {\n  const [show, setShow] = useState<boolean>(false)\n  const [block, setBlock] = useState<Block<BSchema>>()\n  const referencePos = useRef<DOMRect | null>(null)\n  const [lh, setLh] = useState('')\n  useEffect(() => {\n    return props.editor.sideMenu.onUpdate((sideMenuState) => {\n      setShow(sideMenuState.show)\n      setBlock(sideMenuState.block)\n      referencePos.current = sideMenuState.referencePos ?? null\n      setLh(sideMenuState.lineHeight)\n    })\n  }, [props.editor])\n\n  const getReferenceClientRect = useMemo(\n    () => {\n      if (!referencePos.current) {\n        return undefined\n      }\n\n      return () => referencePos.current!\n    },\n    [referencePos.current], // eslint-disable-line\n  )\n\n  const sideMenuElement = useMemo(() => {\n    if (!block) {\n      return null\n    }\n\n    const SideMenu = props.sideMenu || DefaultSideMenu\n\n    return (\n      <SideMenu\n        block={block}\n        editor={props.editor}\n        blockDragStart={props.editor.sideMenu.blockDragStart}\n        blockDragEnd={props.editor.sideMenu.blockDragEnd}\n        addBlock={props.editor.sideMenu.addBlock}\n        freezeMenu={props.editor.sideMenu.freezeMenu}\n        unfreezeMenu={props.editor.sideMenu.unfreezeMenu}\n      />\n    )\n  }, [block, props.editor, props.sideMenu])\n\n  const topOffset = useMemo(() => {\n    if (block && referencePos.current) {\n      const lhValue = parseInt(lh, 10)\n\n      switch (block.type) {\n        case 'paragraph':\n        case 'heading':\n          return (referencePos.current.height / 2) * -1 + lhValue\n        default:\n          return 8\n      }\n    } else {\n      return 8\n    }\n  }, [block, lh])\n\n  // Add right offset if the node is inside a list or blockquote\n  const rightOffset = useMemo(() => {\n    let offset = 8\n    if (block && referencePos.current) {\n      const ttEditor = props.editor._tiptapEditor\n      const { view } = ttEditor\n      const { state } = view\n      state.doc.descendants((node, pos) => {\n        if (node.attrs.id === block.id) {\n          const { group } = getGroupInfoFromPos(pos, state)\n\n          offset = group.attrs.listType !== 'Group' ? 20 : 8\n        }\n      })\n    }\n    return offset\n  }, [block, props.editor._tiptapEditor])\n\n  return (\n    <Tippy\n      appendTo={props.editor.domElement.parentElement ?? document.body}\n      content={sideMenuElement}\n      getReferenceClientRect={getReferenceClientRect}\n      interactive\n      visible={show}\n      animation=\"fade\"\n      offset={[topOffset, rightOffset]}\n      placement={props.placement}\n      popperOptions={popperOptions}\n      zIndex={40}\n    />\n  )\n}\n"
  },
  {
    "path": "src/lib/blocknote/react/SlashMenu/ReactSlashMenuItem.ts",
    "content": "import { BaseSlashMenuItem, BlockSchema, DefaultBlockSchema } from '@/lib/blocknote'\n\nexport type ReactSlashMenuItem<BSchema extends BlockSchema = DefaultBlockSchema> = BaseSlashMenuItem<BSchema> & {\n  group: string\n  icon: JSX.Element\n  hint?: string\n  shortcut?: string\n}\n"
  },
  {
    "path": "src/lib/blocknote/react/SlashMenu/components/DefaultSlashMenu.tsx",
    "content": "import React from 'react'\nimport { Menu } from '@mantine/core'\nimport { createStyles } from '@mantine/styles'\nimport * as _ from 'lodash'\n\nimport { BlockSchema } from '@/lib/blocknote/core'\nimport { SlashMenuItem } from './SlashMenuItem'\nimport { SlashMenuProps } from './SlashMenuPositioner'\n\nconst DefaultSlashMenu = <BSchema extends BlockSchema>(props: SlashMenuProps<BSchema>) => {\n  const { classes } = createStyles({ root: {} })(undefined, {\n    name: 'SlashMenu',\n  })\n  const renderedItems: any[] = []\n  let index = 0\n\n  const groups = _.groupBy(props.filteredItems, (i) => i.group)\n  // const showNostr = trpc.experiments.get.useQuery().data?.nostr\n\n  _.forEach(groups, (groupedItems) => {\n    renderedItems.push(<Menu.Label key={groupedItems[0].group}>{groupedItems[0].group}</Menu.Label>)\n\n    for (const item of groupedItems) {\n      // if (item.name !== 'Nostr' || showNostr) {\n      renderedItems.push(\n        <SlashMenuItem\n          key={item.name}\n          name={item.name}\n          icon={item.icon}\n          hint={item.hint}\n          shortcut={item.shortcut}\n          isSelected={props.keyboardHoveredItemIndex === index}\n          set={() => props.itemCallback(item)}\n        />,\n      )\n      // }\n      index++\n    }\n  })\n\n  return (\n    <Menu\n      /** Hacky fix to get the desired menu behaviour. The trigger=\"hover\"\n       * attribute allows focus to remain on the editor, allowing for suggestion\n       * filtering. The closeDelay=10000000 attribute allows the menu to stay open\n       * practically indefinitely, as normally hovering off it would cause it to\n       * close due to trigger=\"hover\".\n       */\n      defaultOpened\n      trigger=\"hover\"\n      closeDelay={10000000}\n    >\n      <Menu.Dropdown\n        // TODO: This should go back in the plugin.\n        onMouseDown={(event) => event.preventDefault()}\n        className={classes.root}\n      >\n        {renderedItems.length > 0 ? renderedItems : <Menu.Item>No match found</Menu.Item>}\n      </Menu.Dropdown>\n    </Menu>\n  )\n}\n\nexport default DefaultSlashMenu\n"
  },
  {
    "path": "src/lib/blocknote/react/SlashMenu/components/SlashMenuItem.tsx",
    "content": "import { Badge, Menu, Stack, Text } from '@mantine/core'\nimport { createStyles } from '@mantine/styles'\nimport React, { JSX, useEffect, useRef } from 'react'\n\n// const MIN_LEFT_MARGIN = 5\n\nexport type SlashMenuItemProps = {\n  name: string\n  icon: JSX.Element\n  hint: string | undefined\n  shortcut?: string\n  isSelected: boolean\n  set: () => void\n}\n\nexport const SlashMenuItem = (props: SlashMenuItemProps) => {\n  const itemRef = useRef<HTMLButtonElement>(null)\n  const { classes } = createStyles({ root: {} })(undefined, {\n    name: 'SuggestionListItem',\n  })\n\n  function isSelected() {\n    const isKeyboardSelected = props.isSelected\n    // props.selectedIndex !== undefined && props.selectedIndex === props.index;\n    const isMouseSelected = itemRef.current?.matches(':hover')\n\n    return isKeyboardSelected || isMouseSelected\n  }\n\n  // Updates HTML \"data-hovered\" attribute which Mantine uses to set mouse hover styles.\n  // Allows users to \"hover\" menu items when navigating using the keyboard.\n  function updateSelection() {\n    if (isSelected()) {\n      itemRef.current?.setAttribute('data-hovered', 'true')\n    } else {\n      itemRef.current?.removeAttribute('data-hovered')\n    }\n  }\n\n  useEffect(() => {\n    // Updates whether the item is selected with the keyboard (triggered on selectedIndex prop change).\n    updateSelection()\n\n    // if (\n    //   isSelected() &&\n    //   itemRef.current &&\n    //   itemRef.current.getBoundingClientRect().left > MIN_LEFT_MARGIN //TODO: Kinda hacky, fix\n    //   // This check is needed because initially the menu is initialized somewhere above outside the screen (with left = 1)\n    //   // scrollIntoView() is called before the menu is set in the right place, and without the check would scroll to the top of the page every time\n    // ) {\n    //   itemRef.current.scrollIntoView({\n    //     behavior: 'smooth',\n    //     block: 'nearest',\n    //   })\n    // }\n  })\n\n  return (\n    <Menu.Item\n      className={classes.root}\n      icon={props.icon}\n      onClick={props.set}\n      closeMenuOnClick={false}\n      key={props.name}\n      // Ensures an item selected with both mouse & keyboard doesn't get deselected on mouse leave.\n      onMouseLeave={() => {\n        setTimeout(() => {\n          updateSelection()\n        }, 1)\n      }}\n      ref={itemRef}\n      rightSection={props.shortcut && <Badge size=\"xs\">{props.shortcut}</Badge>}\n    >\n      <Stack>\n        <Text size={14} weight={500}>\n          {props.name}\n        </Text>\n        <Text size={10}>{props.hint}</Text>\n      </Stack>\n    </Menu.Item>\n  )\n}\n"
  },
  {
    "path": "src/lib/blocknote/react/SlashMenu/components/SlashMenuPositioner.tsx",
    "content": "import Tippy from '@tippyjs/react'\nimport React, { FC, useEffect, useMemo, useRef, useState } from 'react'\n\nimport {\n  BlockNoteEditor,\n  BlockSchema,\n  DefaultBlockSchema,\n  SlashMenuProsemirrorPlugin,\n  SuggestionsMenuState,\n} from '@/lib/blocknote/core'\n\nimport { ReactSlashMenuItem } from '../ReactSlashMenuItem'\nimport DefaultSlashMenu from './DefaultSlashMenu'\n\nexport type SlashMenuProps<BSchema extends BlockSchema = DefaultBlockSchema> = Pick<\n  SlashMenuProsemirrorPlugin<BSchema, any>,\n  'itemCallback'\n> &\n  Pick<SuggestionsMenuState<ReactSlashMenuItem<BSchema>>, 'filteredItems' | 'keyboardHoveredItemIndex'>\n\nexport const SlashMenuPositioner = <BSchema extends BlockSchema = DefaultBlockSchema>(props: {\n  editor: BlockNoteEditor<BSchema>\n  slashMenu?: FC<SlashMenuProps<BSchema>>\n}) => {\n  const [show, setShow] = useState<boolean>(false)\n  const [filteredItems, setFilteredItems] = useState<ReactSlashMenuItem<BSchema>[]>()\n  const [keyboardHoveredItemIndex, setKeyboardHoveredItemIndex] = useState<number>()\n  const scroller = useRef<HTMLElement | null>(null)\n\n  const referencePos = useRef<DOMRect>()\n  useEffect(() => {\n    setTimeout(() => {\n      scroller.current = document.getElementById('scroll-page-wrapper')\n    }, 100)\n  }, [])\n\n  useEffect(() => {\n    return props.editor.slashMenu.onUpdate((slashMenuState) => {\n      setShow(slashMenuState.show)\n      setFilteredItems(slashMenuState.filteredItems)\n      setKeyboardHoveredItemIndex(slashMenuState.keyboardHoveredItemIndex)\n\n      referencePos.current = slashMenuState.referencePos\n    })\n  }, [props.editor])\n\n  const getReferenceClientRect = useMemo(\n    () => {\n      if (!referencePos.current) {\n        return undefined\n      }\n\n      const boundingRect = referencePos.current!\n      const newRect = {\n        top: boundingRect.top,\n        right: boundingRect.right,\n        bottom: boundingRect.bottom,\n        left: boundingRect.left,\n        width: boundingRect.width,\n        height: boundingRect.height,\n      }\n      if (boundingRect.bottom > window.innerHeight) {\n        newRect.top = window.innerHeight / 2.15\n      }\n\n      return () => newRect as DOMRect\n    },\n    [referencePos.current], // eslint-disable-line\n  )\n\n  const slashMenuElement = useMemo(() => {\n    if (!filteredItems || keyboardHoveredItemIndex === undefined) {\n      return null\n    }\n\n    const SlashMenu = props.slashMenu || DefaultSlashMenu\n\n    return (\n      <SlashMenu\n        filteredItems={filteredItems}\n        itemCallback={(item) => props.editor.slashMenu.itemCallback(item)}\n        keyboardHoveredItemIndex={keyboardHoveredItemIndex}\n      />\n    )\n  }, [filteredItems, keyboardHoveredItemIndex, props.editor.slashMenu, props.slashMenu])\n\n  return (\n    <Tippy\n      appendTo={scroller.current ?? document.body}\n      content={slashMenuElement}\n      getReferenceClientRect={getReferenceClientRect}\n      interactive\n      visible={show}\n      animation=\"fade\"\n      placement=\"auto\"\n    />\n  )\n}\n"
  },
  {
    "path": "src/lib/blocknote/react/SlashMenu/defaultReactSlashMenuItems.tsx",
    "content": "import React from 'react'\nimport { MdPreview } from 'react-icons/md'\nimport { RiChatQuoteLine, RiCodeLine, RiFolder2Line, RiH1, RiPlayCircleLine, RiText } from 'react-icons/ri'\nimport {\n  BaseSlashMenuItem,\n  BlockSchema,\n  defaultBlockSchema,\n  DefaultBlockSchema,\n  getDefaultSlashMenuItems,\n} from '../../core'\nimport { ReactSlashMenuItem } from './ReactSlashMenuItem'\n\nconst extraFields: Record<\n  string,\n  Omit<ReactSlashMenuItem<DefaultBlockSchema>, keyof BaseSlashMenuItem<DefaultBlockSchema>>\n> = {\n  Heading: {\n    group: 'Text Content',\n    icon: <RiH1 size={18} />,\n    hint: 'Group content with a title',\n    // shortcut: formatKeyboardShortcut('Mod-Alt-1'),\n  },\n  // 'Heading 2': {\n  //   group: 'Text Content',\n  //   icon: <RiH2 size={18} />,\n  //   hint: 'Used for key sections',\n  //   // shortcut: formatKeyboardShortcut('Mod-Alt-2'),\n  // },\n  // 'Heading 3': {\n  //   group: 'Text Content',\n  //   icon: <RiH3 size={18} />,\n  //   hint: 'Used for subsections and group headings',\n  //   // shortcut: formatKeyboardShortcut('Mod-Alt-3'),\n  // },\n  // 'Numbered List': {\n  //   group: 'Text Content',\n  //   icon: <RiListOrdered size={18} />,\n  //   hint: 'Used to display a numbered list',\n  //   // shortcut: formatKeyboardShortcut('Mod-Alt-7'),\n  // },\n  // 'Bullet List': {\n  //   group: 'Text Content',\n  //   icon: <RiListUnordered size={18} />,\n  //   hint: 'Used to display an unordered list',\n  //   // shortcut: formatKeyboardShortcut('Mod-Alt-9'),\n  // },\n  Paragraph: {\n    group: 'Text Content',\n    icon: <RiText size={18} />,\n    hint: 'Used for the body of your document',\n    // shortcut: formatKeyboardShortcut('Mod-Alt-0'),\n  },\n  Code: {\n    group: 'Text Content',\n    icon: <RiCodeLine size={18} />,\n    hint: 'Test code',\n  },\n\n  Blockquote: {\n    group: 'Text Content',\n    icon: <RiChatQuoteLine size={18} />,\n    hint: 'Test blockquote',\n  },\n\n  'Video / Audio': {\n    group: 'Media',\n    icon: <RiPlayCircleLine size={18} />,\n    hint: 'Multimedia player',\n    // shortcut: formatKeyboardShortcut('Mod-Alt-0'),\n  },\n\n  'File / Folder': {\n    group: 'Media',\n    icon: <RiFolder2Line size={18} />,\n    hint: 'Include Files and Folders for downloading',\n    // shortcut: formatKeyboardShortcut('Mod-Alt-0'),\n  },\n  Embed: {\n    group: 'Media',\n    icon: <MdPreview size={18} />,\n    hint: 'Include a HyperDocs Section or Document',\n    // shortcut: formatKeyboardShortcut('Mod-Alt-0'),\n  },\n}\n\nfunction getDefaultReactSlashMenuItems<BSchema extends BlockSchema>(\n  // This type casting is weird, but it's the best way of doing it, as it allows\n  // the schema type to be automatically inferred if it is defined, or be\n  // inferred as any if it is not defined. I don't think it's possible to make it\n  // infer to DefaultBlockSchema if it is not defined.\n  schema: BSchema = defaultBlockSchema as unknown as BSchema,\n): ReactSlashMenuItem<BSchema>[] {\n  const slashMenuItems: BaseSlashMenuItem<BSchema>[] = getDefaultSlashMenuItems(schema)\n\n  return slashMenuItems.map((item) => ({\n    ...item,\n    ...extraFields[item.name],\n  }))\n}\n\nexport default getDefaultReactSlashMenuItems\n"
  },
  {
    "path": "src/lib/blocknote/react/defaultThemes.ts",
    "content": "import { Theme } from './index'\n\nexport const defaultColorScheme = [\n  '#FFFFFF',\n  '#EFEFEF',\n  '#CFCFCF',\n  '#AFAFAF',\n  '#7F7F7F',\n  '#3F3F3F',\n  '#1F1F1F',\n  '#161616',\n  '#0F0F0F',\n  '#000000',\n]\n\nexport const lightDefaultTheme: Theme = {\n  colors: {\n    editor: {\n      text: 'inherit',\n      background: 'transparent',\n    },\n    menu: {\n      text: defaultColorScheme[5],\n      background: defaultColorScheme[0],\n    },\n    tooltip: {\n      text: defaultColorScheme[5],\n      background: defaultColorScheme[1],\n    },\n    hovered: {\n      text: defaultColorScheme[5],\n      background: defaultColorScheme[1],\n    },\n    selected: {\n      text: defaultColorScheme[0],\n      background: defaultColorScheme[5],\n    },\n    disabled: {\n      text: defaultColorScheme[3],\n      background: defaultColorScheme[1],\n    },\n    shadow: defaultColorScheme[2],\n    border: defaultColorScheme[1],\n    sideMenu: defaultColorScheme[2],\n    highlightColors: {\n      gray: {\n        text: '#9b9a97',\n        background: '#ebeced',\n      },\n      brown: {\n        text: '#64473a',\n        background: '#e9e5e3',\n      },\n      red: {\n        text: '#e03e3e',\n        background: '#fbe4e4',\n      },\n      orange: {\n        text: '#d9730d',\n        background: '#f6e9d9',\n      },\n      yellow: {\n        text: '#dfab01',\n        background: '#fbf3db',\n      },\n      green: {\n        text: '#4d6461',\n        background: '#ddedea',\n      },\n      blue: {\n        text: '#0b6e99',\n        background: '#ddebf1',\n      },\n      purple: {\n        text: '#6940a5',\n        background: '#eae4f2',\n      },\n      pink: {\n        text: '#ad1a72',\n        background: '#f4dfeb',\n      },\n    },\n  },\n  borderRadius: 6,\n  fontFamily:\n    '\"Inter\", \"SF Pro Display\", -apple-system, BlinkMacSystemFont, \"Open Sans\", \"Segoe UI\", \"Roboto\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", sans-serif',\n}\n\nexport const darkDefaultTheme: Theme = {\n  colors: {\n    editor: {\n      text: 'inherit',\n      background: 'transparent',\n    },\n    menu: {\n      text: defaultColorScheme[2],\n      background: defaultColorScheme[6],\n    },\n    tooltip: {\n      text: defaultColorScheme[2],\n      background: defaultColorScheme[7],\n    },\n    hovered: {\n      text: defaultColorScheme[2],\n      background: defaultColorScheme[7],\n    },\n    selected: {\n      text: defaultColorScheme[2],\n      background: defaultColorScheme[8],\n    },\n    disabled: {\n      text: defaultColorScheme[5],\n      background: defaultColorScheme[7],\n    },\n    shadow: defaultColorScheme[8],\n    border: defaultColorScheme[7],\n    sideMenu: defaultColorScheme[4],\n    highlightColors: {\n      gray: {\n        text: '#bebdb8',\n        background: '#9b9a97',\n      },\n      brown: {\n        text: '#8e6552',\n        background: '#64473a',\n      },\n      red: {\n        text: '#ec4040',\n        background: '#be3434',\n      },\n      orange: {\n        text: '#e3790d',\n        background: '#b7600a',\n      },\n      yellow: {\n        text: '#dfab01',\n        background: '#b58b00',\n      },\n      green: {\n        text: '#6b8b87',\n        background: '#4d6461',\n      },\n      blue: {\n        text: '#0e87bc',\n        background: '#0b6e99',\n      },\n      purple: {\n        text: '#8552d7',\n        background: '#6940a5',\n      },\n      pink: {\n        text: '#da208f',\n        background: '#ad1a72',\n      },\n    },\n  },\n  borderRadius: lightDefaultTheme.borderRadius,\n  fontFamily: lightDefaultTheme.fontFamily,\n}\n"
  },
  {
    "path": "src/lib/blocknote/react/hooks/useBlockNote.ts",
    "content": "/* eslint-disable import/prefer-default-export */\nimport { useRef, useMemo } from 'react'\nimport { BlockNoteEditor, BlockNoteEditorOptions, defaultBlockSchema, DefaultBlockSchema } from '../../core'\nimport { HMBlockSchema } from '@/components/Editor/schema'\nimport getDefaultReactSlashMenuItems from '../SlashMenu/defaultReactSlashMenuItems'\n\nconst initEditor = <BSchema extends HMBlockSchema>(options: Partial<BlockNoteEditorOptions<BSchema>>) =>\n  new BlockNoteEditor<BSchema>({\n    slashMenuItems: getDefaultReactSlashMenuItems<BSchema | DefaultBlockSchema>(\n      options.blockSchema || defaultBlockSchema,\n    ),\n    ...options,\n  })\n\n// /**\n//  * Main hook for importing a BlockNote editor into a React project\n//  */\nexport const useBlockNote = <BSchema extends HMBlockSchema = HMBlockSchema>(\n  options: Partial<BlockNoteEditorOptions<BSchema>> = {},\n  deps: any[] = [],\n): BlockNoteEditor<BSchema> => {\n  const editorRef = useRef<BlockNoteEditor<BSchema>>()\n\n  return useMemo(() => {\n    if (editorRef.current) {\n      editorRef.current._tiptapEditor.destroy()\n    }\n    editorRef.current = initEditor(options)\n    return editorRef.current\n  }, deps) //eslint-disable-line\n}\n"
  },
  {
    "path": "src/lib/blocknote/react/hooks/useEditorContentChange.ts",
    "content": "import { useEffect } from 'react'\nimport { BlockNoteEditor, BlockSchema } from '../../core'\n\nfunction useEditorContentChange<BSchema extends BlockSchema>(editor: BlockNoteEditor<BSchema>, callback: () => void) {\n  useEffect(() => {\n    editor._tiptapEditor.on('update', callback)\n\n    return () => {\n      editor._tiptapEditor.off('update', callback)\n    }\n  }, [callback, editor._tiptapEditor])\n}\n\nexport default useEditorContentChange\n"
  },
  {
    "path": "src/lib/blocknote/react/hooks/useEditorForceUpdate.tsx",
    "content": "import { Editor } from '@tiptap/core'\nimport { useEffect, useState } from 'react'\n\nfunction useForceUpdate() {\n  const [, setValue] = useState(0)\n\n  return () => setValue((value) => value + 1)\n}\n\n// This is a component that is similar to https://github.com/ueberdosis/tiptap/blob/main/packages/react/src/useEditor.ts\n// Use it to rerender a component whenever a transaction happens in the editor\nconst useEditorForceUpdate = (editor: Editor) => {\n  const forceUpdate = useForceUpdate()\n\n  useEffect(() => {\n    const callback = () => {\n      requestAnimationFrame(() => {\n        requestAnimationFrame(() => {\n          forceUpdate()\n        })\n      })\n    }\n\n    editor.on('transaction', callback)\n    return () => {\n      editor.off('transaction', callback)\n    }\n    // eslint-disable-next-line\n  }, [editor])\n}\n\nexport default useEditorForceUpdate\n"
  },
  {
    "path": "src/lib/blocknote/react/hooks/useEditorSelectionChange.ts",
    "content": "import { useEffect } from 'react'\nimport { BlockNoteEditor, BlockSchema } from '../../core'\n\nfunction useEditorSelectionChange<BSchema extends BlockSchema>(editor: BlockNoteEditor<BSchema>, callback: () => void) {\n  useEffect(() => {\n    editor._tiptapEditor.on('selectionUpdate', callback)\n\n    return () => {\n      editor._tiptapEditor.off('selectionUpdate', callback)\n    }\n  }, [callback, editor._tiptapEditor])\n}\n\nexport default useEditorSelectionChange\n"
  },
  {
    "path": "src/lib/blocknote/react/index.ts",
    "content": "export * from './BlockNoteTheme'\nexport * from './BlockNoteView'\nexport * from './defaultThemes'\n\nexport { default as ColorStyleButton } from './FormattingToolbar/components/DefaultButtons/ColorStyleButton'\nexport * from './FormattingToolbar/components/DefaultButtons/NestBlockButtons'\nexport { default as TextAlignButton } from './FormattingToolbar/components/DefaultButtons/TextAlignButton'\nexport { default as ToggledStyleButton } from './FormattingToolbar/components/DefaultButtons/ToggledStyleButton'\nexport * from './FormattingToolbar/components/DefaultDropdowns/BlockTypeDropdown'\nexport { default as DefaultFormattingToolbar } from './FormattingToolbar/components/DefaultFormattingToolbar'\nexport * from './FormattingToolbar/components/FormattingToolbarPositioner'\n\nexport * from './SlashMenu/ReactSlashMenuItem'\nexport { default as DefaultSlashMenu } from './SlashMenu/components/DefaultSlashMenu'\nexport * from './SlashMenu/components/SlashMenuItem'\nexport * from './SlashMenu/components/SlashMenuPositioner'\nexport { default as getDefaultReactSlashMenuItems } from './SlashMenu/defaultReactSlashMenuItems'\n\nexport * from './SideMenu/components/SideMenuPositioner'\n\nexport { default as Toolbar } from './SharedComponents/Toolbar/components/Toolbar'\nexport * from './SharedComponents/Toolbar/components/ToolbarButton'\nexport * from './SharedComponents/Toolbar/components/ToolbarDropdown'\n\nexport * from './hooks/useBlockNote'\nexport { default as useEditorContentChange } from './hooks/useEditorContentChange'\nexport { default as useEditorForceUpdate } from './hooks/useEditorForceUpdate'\nexport { default as useEditorSelectionChange } from './hooks/useEditorSelectionChange'\n\nexport * from './ReactBlockSpec'\n"
  },
  {
    "path": "src/lib/blocknote/react/utils.ts",
    "content": "export const isAppleOS = () =>\n  typeof navigator !== 'undefined' &&\n  (/Mac/.test(navigator.platform) ||\n    (/AppleWebKit/.test(navigator.userAgent) && /Mobile\\/\\w+/.test(navigator.userAgent)))\n\nexport function formatKeyboardShortcut(shortcut: string) {\n  if (isAppleOS()) {\n    return shortcut.replace('Mod', '⌘')\n  }\n  return shortcut.replace('Mod', 'Ctrl')\n}\n"
  },
  {
    "path": "src/lib/db.ts",
    "content": "/* eslint-disable no-underscore-dangle */\nimport { FileInfoWithContent } from 'electron/main/filesystem/types'\nimport { DBEntry, DBQueryResult } from 'electron/main/vector-database/schema'\nimport { parse, isValid, format } from 'date-fns'\nimport { DatabaseSearchFilters } from '@/lib/llm/types'\n\nexport const generateTimeStampFilter = (minDate?: Date | string, maxDate?: Date | string): string => {\n  let filter = ''\n\n  const parseDate = (date: Date | string): string => {\n    if (date instanceof Date) {\n      return format(date, \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n    }\n    if (typeof date === 'string') {\n      const parsedDate = parse(date, \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\", new Date())\n      if (isValid(parsedDate)) {\n        return format(parsedDate, \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n      }\n    }\n    throw new Error('Invalid date format. Please use ISO 8601 format: YYYY-MM-DDTHH:mm:ss.sssZ')\n  }\n\n  if (minDate) {\n    const minDateStr = parseDate(minDate)\n    filter += `filemodified > timestamp '${minDateStr}'`\n  }\n\n  if (maxDate) {\n    const maxDateStr = parseDate(maxDate)\n    if (filter) {\n      filter += ' AND '\n    }\n    filter += `filemodified < timestamp '${maxDateStr}'`\n  }\n\n  return filter\n}\n\nexport const retreiveFromVectorDB = async (\n  query: string,\n  searchFilters: DatabaseSearchFilters,\n): Promise<DBEntry[] | FileInfoWithContent[]> => {\n  if (searchFilters.limit > 0) {\n    const timeStampFilter = generateTimeStampFilter(searchFilters.minDate, searchFilters.maxDate)\n    const dbSearchResults = await window.database.search(query, searchFilters.limit, timeStampFilter)\n    if (searchFilters.passFullNoteIntoContext) {\n      const uniqueNotepaths = Array.from(new Set(dbSearchResults.map((result) => result.notepath)))\n      return window.fileSystem.getFiles(uniqueNotepaths)\n    }\n    return dbSearchResults\n  }\n  return []\n}\n\ninterface KeywordDBQueryResult extends DBQueryResult {\n  keyword_score?: number\n}\n\nconst keywordSearch = async (query: string, limit: number, filter?: string): Promise<KeywordDBQueryResult[]> => {\n  try {\n    const keywords = query\n      .toLowerCase()\n      .split(/\\s+/)\n      .filter((word: string) => word.length > 2 && !['the', 'and', 'for', 'with', 'this', 'that'].includes(word))\n\n    if (keywords.length === 0) {\n      return []\n    }\n\n    const vectorResults = await window.database.search(query, limit, filter)\n\n    const escapedKeywords = keywords.map((k) => k.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'))\n    const keywordRegex = new RegExp(`\\\\b(${escapedKeywords.join('|')})\\\\b`, 'gi')\n\n    const resultsWithKeywordScores = vectorResults\n      .map((result) => {\n        const matches = result.content.matchAll(keywordRegex)\n        const score = Array.from(matches).length\n        return {\n          ...result,\n          keyword_score: score,\n        }\n      })\n      .sort((a, b) => (b.keyword_score || 0) - (a.keyword_score || 0))\n\n    return resultsWithKeywordScores\n  } catch (error) {\n    // eslint-disable-next-line no-console\n    console.error('Error performing keyword search:', error)\n    return []\n  }\n}\n\nconst combineAndRankResults = (\n  vectorResults: DBQueryResult[],\n  keywordResults: KeywordDBQueryResult[],\n  limit: number,\n  vectorWeight = 0.7,\n): DBQueryResult[] => {\n  const keywordWeight = 1 - vectorWeight\n  const resultsMap = new Map<string, DBQueryResult & { combinedScore: number; keywordScore?: number }>()\n\n  const maxKeywordScore = keywordResults.length > 0 ? Math.max(...keywordResults.map((r) => r.keyword_score || 0)) : 0\n\n  vectorResults.forEach((result) => {\n    const key = `${result.notepath}-${result.subnoteindex}`\n    const vectorScore = 1 - result._distance\n\n    resultsMap.set(key, {\n      ...result,\n      combinedScore: vectorScore * vectorWeight,\n    })\n  })\n\n  keywordResults.forEach((result) => {\n    const key = `${result.notepath}-${result.subnoteindex}`\n\n    // Normalize keyword score to 0-1 range\n    const normalizedKeywordScore = maxKeywordScore > 0 ? (result.keyword_score || 0) / maxKeywordScore : 0\n\n    const keywordScoreComponent = normalizedKeywordScore * keywordWeight\n\n    if (resultsMap.has(key)) {\n      const existingEntry = resultsMap.get(key)!\n      existingEntry.combinedScore += keywordScoreComponent\n      existingEntry.keywordScore = result.keyword_score\n    } else {\n      resultsMap.set(key, {\n        ...result,\n        _distance: 1 - keywordScoreComponent,\n        combinedScore: keywordScoreComponent,\n        keywordScore: result.keyword_score,\n      })\n    }\n  })\n\n  // Convert map to array, sort by combined score, and take top results\n  const finalResults = Array.from(resultsMap.values())\n    .sort((a, b) => b.combinedScore - a.combinedScore)\n    .slice(0, limit)\n    .map((entry) => {\n      const updatedEntry = { ...entry }\n\n      // When vectorWeight is 0 (all keywords), display keyword score as similarity instead\n      if (vectorWeight === 0) {\n        // Handle the case where we're using 100% keyword search\n        if (entry.keywordScore !== undefined && maxKeywordScore > 0) {\n          const normalizedScore = entry.keywordScore / maxKeywordScore\n          updatedEntry._distance = 1 - normalizedScore\n        } else {\n          updatedEntry._distance = 0.99 // Show at least 1% similarity\n        }\n      } else {\n        updatedEntry._distance = 1 - entry.combinedScore\n      }\n\n      return updatedEntry\n    })\n\n  return finalResults\n}\n\nexport const hybridSearch = async (\n  query: string,\n  limit: number,\n  filter?: string,\n  vectorWeight = 0.7,\n): Promise<DBQueryResult[]> => {\n  try {\n    const [vectorResults, keywordResults] = await Promise.all([\n      window.database.search(query, limit, filter),\n\n      keywordSearch(query, limit, filter),\n    ])\n\n    return combineAndRankResults(vectorResults, keywordResults, limit, vectorWeight)\n  } catch (error) {\n    // eslint-disable-next-line no-console\n    console.error('Error performing hybrid search:', error)\n    return window.database.search(query, limit, filter)\n  }\n}\n"
  },
  {
    "path": "src/lib/error.ts",
    "content": "function errorToStringRendererProcess(error: unknown, depth: number = 0): string {\n  if (error instanceof Error) {\n    let errorString = `${error.name}: ${error.message}`\n    if (error.cause) {\n      errorString += `\\nCaused by: ${errorToStringRendererProcess(error.cause, depth + 1)}`\n    }\n    if (depth === 0) {\n      // Optionally include the stack trace at the top level\n      errorString += `\\nStack Trace:\\n${error.stack}`\n    }\n    return errorString\n  }\n  return String(error)\n}\nexport default errorToStringRendererProcess\n"
  },
  {
    "path": "src/lib/file.ts",
    "content": "import { isFileNodeDirectory } from '@shared/utils'\nimport { FileInfo, FileInfoTree } from 'electron/main/filesystem/types'\n\nexport function flattenFileInfoTree(tree: FileInfoTree): FileInfo[] {\n  return tree.reduce((flatList: FileInfo[], node) => {\n    if (!isFileNodeDirectory(node)) {\n      flatList.push({\n        name: node.name,\n        path: node.path,\n        relativePath: node.relativePath,\n        dateModified: node.dateModified,\n        dateCreated: node.dateCreated,\n      })\n    }\n    if (isFileNodeDirectory(node) && node.children) {\n      flatList.push(...flattenFileInfoTree(node.children))\n    }\n    return flatList\n  }, [])\n}\n\nexport const getFilesInDirectory = async (directoryPath: string, filesTree: FileInfo[]): Promise<FileInfo[]> => {\n  return filesTree.filter((file) => file.path.startsWith(directoryPath))\n}\n\nexport function getNextAvailableFileNameGivenBaseName(\n  existingFilenames: string[],\n  baseName: string,\n  extension: string = 'md',\n): string {\n  const filenameRegex = new RegExp(`^${baseName}( \\\\d+)?\\\\.${extension}$`)\n\n  const existingNumbers = existingFilenames\n    .filter((filename) => filenameRegex.test(filename))\n    .map((filename) => {\n      const match = filename.match(filenameRegex)\n      return match && match[1] ? parseInt(match[1].trim(), 10) : 0\n    })\n\n  if (existingNumbers.length === 0) {\n    return `${baseName}.${extension}`\n  }\n\n  const maxNumber = Math.max(...existingNumbers)\n\n  return `${baseName} ${maxNumber + 1}.${extension}`\n}\n\nexport function removeFileExtension(filename: string): string {\n  if (!filename || filename.indexOf('.') === -1) {\n    return filename\n  }\n\n  if (filename.startsWith('.') && filename.lastIndexOf('.') === 0) {\n    return filename\n  }\n\n  return filename.substring(0, filename.lastIndexOf('.'))\n}\n\nexport const getInvalidCharacterInFilePath = async (filePath: string): Promise<string | null> => {\n  let invalidCharacters: RegExp\n  const platform = await window.electronUtils.getPlatform()\n\n  switch (platform) {\n    case 'win32':\n      invalidCharacters = /[\"*<>?|]/\n      break\n    case 'darwin':\n      invalidCharacters = /[:]/\n      break\n    default:\n      invalidCharacters = /$^/\n      break\n  }\n\n  const idx = filePath.search(invalidCharacters)\n\n  return idx === -1 ? null : filePath[idx]\n}\n\n// eslint-disable-next-line no-useless-escape\nconst INVALID_FILENAME_CHARACTERS = /[<>:\"\\/\\\\|?*\\.\\[\\]\\{\\}!@#$%^&()+=,;'`~]/g\n\nexport const getInvalidCharacterInFileName = (filename: string): string | null => {\n  // Check if the filename contains any invalid characters\n  const match = filename.match(INVALID_FILENAME_CHARACTERS)\n  return match ? match[0] : null\n}\n\nexport const removeInvalidCharactersFromFileName = (filename: string): string => {\n  return filename.replace(INVALID_FILENAME_CHARACTERS, '')\n}\n\nexport const generateFileNameFromFileContent = (content: string, maxLength: number = 30): string | null => {\n  const firstLine = content.split('\\n').find((line) => line.trim() !== '')\n  if (!firstLine) {\n    return null\n  }\n  const cleanTitle = removeInvalidCharactersFromFileName(firstLine.trim())\n  const words = cleanTitle.split(/\\s+/)\n\n  const { resultString: finalResult } = words.reduce(\n    ({ resultString, currentLength }, word) => {\n      if (currentLength + word.length + (resultString ? 1 : 0) <= maxLength) {\n        return {\n          resultString: resultString + (resultString ? ' ' : '') + word,\n          currentLength: currentLength + word.length + (resultString ? 1 : 0),\n        }\n      }\n      return { resultString, currentLength }\n    },\n    { resultString: '', currentLength: 0 },\n  )\n\n  if (!finalResult) {\n    // Edge case: first word is longer than maxLength\n    return words[0] ? words[0].substring(0, maxLength) : null\n  }\n\n  return finalResult\n}\n\nexport const sortFilesAndDirectories = (fileList: FileInfoTree, currentFilePath: string | null): FileInfoTree => {\n  fileList.sort((a, b) => {\n    const aIsDirectory = isFileNodeDirectory(a)\n    const bIsDirectory = isFileNodeDirectory(b)\n\n    if (aIsDirectory && bIsDirectory) {\n      return a.name.localeCompare(b.name)\n    }\n\n    if (aIsDirectory && !bIsDirectory) {\n      return -1\n    }\n    if (!aIsDirectory && bIsDirectory) {\n      return 1\n    }\n\n    if (currentFilePath !== null) {\n      if (a.path === currentFilePath) {\n        return -1\n      }\n      if (b.path === currentFilePath) {\n        return 1\n      }\n    }\n\n    return b.dateModified.getTime() - a.dateModified.getTime()\n  })\n\n  fileList.forEach((fileInfoNode) => {\n    if (fileInfoNode.children && fileInfoNode.children.length > 0) {\n      sortFilesAndDirectories(fileInfoNode.children, currentFilePath)\n    }\n  })\n\n  return fileList\n}\n\nexport const findRelevantDirectoriesToBeExpanded = async (\n  filePath: string | null,\n  currentExpandedDirs: Map<string, boolean>,\n) => {\n  if (!filePath) {\n    return currentExpandedDirs\n  }\n\n  const pathSep = await window.path.pathSep()\n  const isAbsolute = await window.path.isAbsolute(filePath)\n  const basePath = isAbsolute ? '' : '.'\n\n  const directoryPath = await window.path.dirname(filePath)\n  const pathSegments = directoryPath.split(pathSep).filter(Boolean)\n\n  const newExpandedDirectories = new Map(currentExpandedDirs)\n  let currentPath = basePath\n\n  for (const segment of pathSegments) {\n    // eslint-disable-next-line no-await-in-loop\n    currentPath = await window.path.join(currentPath, segment)\n    newExpandedDirectories.set(currentPath, true)\n  }\n\n  return newExpandedDirectories\n}\n"
  },
  {
    "path": "src/lib/hooks/use-agent-configs.ts",
    "content": "import { useState, useEffect } from 'react'\nimport { AgentConfig } from '../llm/types'\nimport exampleAgents from '@/components/Chat/ChatConfigComponents/exampleAgents'\n\ninterface UseAgentConfigReturn {\n  agentConfig: AgentConfig | undefined\n  setAgentConfig: React.Dispatch<React.SetStateAction<AgentConfig | undefined>>\n}\n\nfunction useAgentConfig(): UseAgentConfigReturn {\n  const [agentConfig, setAgentConfig] = useState<AgentConfig>()\n\n  useEffect(() => {\n    const fetchAgentConfigs = async () => {\n      const agentConfigs = await window.electronStore.getAgentConfigs()\n      if (agentConfigs && agentConfigs.length > 0) {\n        setAgentConfig(agentConfigs[0])\n      } else {\n        setAgentConfig(exampleAgents[0])\n      }\n    }\n    fetchAgentConfigs()\n  }, [])\n\n  return {\n    agentConfig,\n    setAgentConfig,\n  }\n}\n\nexport default useAgentConfig\n"
  },
  {
    "path": "src/lib/hooks/use-llm-configs.ts",
    "content": "import { useState, useEffect, useCallback } from 'react'\n\nimport { LLMConfig } from 'electron/main/electron-store/storeConfig'\n\nconst useLLMConfigs = () => {\n  const [llmConfigs, setLLMConfigs] = useState<LLMConfig[]>([])\n  const [defaultLLM, setDefaultLocalLLM] = useState<string>('')\n\n  const fetchAndUpdateModelConfigs = useCallback(async () => {\n    const fetchedLLMConfigs = await window.llm.getLLMConfigs()\n    setLLMConfigs(fetchedLLMConfigs)\n    const storedDefaultLLM = await window.llm.getDefaultLLMName()\n    if (!storedDefaultLLM && fetchedLLMConfigs.length > 0) {\n      await window.llm.setDefaultLLM(fetchedLLMConfigs[0].modelName)\n      setDefaultLocalLLM(fetchedLLMConfigs[0].modelName)\n    } else {\n      setDefaultLocalLLM(storedDefaultLLM)\n    }\n  }, [])\n\n  useEffect(() => {\n    window.ipcRenderer.on('llm-configs-changed', fetchAndUpdateModelConfigs)\n  }, [fetchAndUpdateModelConfigs])\n\n  const setDefaultLLM = async (modelName: string) => {\n    await window.llm.setDefaultLLM(modelName)\n    setDefaultLocalLLM(modelName)\n  }\n\n  useEffect(() => {\n    fetchAndUpdateModelConfigs()\n  }, [fetchAndUpdateModelConfigs])\n\n  return {\n    llmConfigs,\n    defaultLLM,\n    setDefaultLLM,\n    fetchAndUpdateModelConfigs,\n  }\n}\n\nexport default useLLMConfigs\n"
  },
  {
    "path": "src/lib/hooks/use-ordered-set.tsx",
    "content": "import { useState, useCallback } from 'react'\n\n// Custom hook for managing ordered set\nconst useOrderedSet = (initialValues: string[] = []) => {\n  const [set, setSet] = useState(new Set(initialValues))\n\n  const add = useCallback((value: string) => {\n    setSet((prevSet) => {\n      const newSet = new Set(prevSet)\n      if (newSet.has(value)) {\n        newSet.delete(value)\n      }\n      newSet.add(value)\n      return newSet\n    })\n  }, [])\n\n  const remove = useCallback((value: string) => {\n    setSet((prevSet) => {\n      const newSet = new Set(prevSet)\n      newSet.delete(value)\n      return newSet\n    })\n  }, [])\n\n  const clear = useCallback(() => {\n    setSet(new Set())\n  }, [])\n\n  return {\n    set,\n    add,\n    remove,\n    clear,\n    values: Array.from(set),\n  }\n}\n\nexport default useOrderedSet\n"
  },
  {
    "path": "src/lib/hooks/use-outside-click.ts",
    "content": "import { useEffect, RefObject } from 'react'\n\nconst useOutsideClick = (ref: RefObject<HTMLElement>, callback: () => void): void => {\n  useEffect(() => {\n    const handleClickOutside = (event: MouseEvent): void => {\n      if (ref.current && !ref.current.contains(event.target as Node)) {\n        callback()\n      }\n    }\n\n    document.addEventListener('mousedown', handleClickOutside)\n    return () => {\n      document.removeEventListener('mousedown', handleClickOutside)\n    }\n  }, [ref, callback])\n}\n\nexport default useOutsideClick\n"
  },
  {
    "path": "src/lib/hooks/use-resize-observer.tsx",
    "content": "import { useEffect, RefObject } from 'react'\n\nconst useResizeObserver = (ref: RefObject<HTMLElement>, callback: (entry: ResizeObserverEntry) => void) => {\n  // eslint-disable-next-line consistent-return\n  useEffect(() => {\n    if (ref.current) {\n      const observer = new ResizeObserver((entries) => {\n        callback(entries[0])\n      })\n\n      observer.observe(ref.current)\n\n      return () => {\n        observer.disconnect()\n      }\n    }\n  }, [ref, callback])\n}\n\nexport default useResizeObserver\n"
  },
  {
    "path": "src/lib/llm/chat.ts",
    "content": "/* eslint-disable no-param-reassign */\nimport { DBEntry } from 'electron/main/vector-database/schema'\nimport { FileInfoWithContent } from 'electron/main/filesystem/types'\nimport { generateChatName } from '@shared/utils'\nimport { AssistantContent, CoreAssistantMessage, CoreToolMessage, ToolCallPart } from 'ai'\nimport posthog from 'posthog-js'\nimport { format } from 'date-fns'\nimport { AnonymizedAgentConfig, Chat, AgentConfig, PromptTemplate, ReorChatMessage } from './types'\nimport { retreiveFromVectorDB } from '@/lib/db'\n\nexport const appendStringContentToMessages = (messages: ReorChatMessage[], content: string): ReorChatMessage[] => {\n  if (content === '') {\n    return messages\n  }\n\n  if (messages.length === 0) {\n    return [\n      {\n        role: 'assistant',\n        content,\n      },\n    ]\n  }\n\n  const lastMessage = messages[messages.length - 1]\n\n  if (lastMessage.role === 'assistant') {\n    return [\n      ...messages.slice(0, -1),\n      {\n        ...lastMessage,\n        content:\n          typeof lastMessage.content === 'string'\n            ? lastMessage.content + content\n            : [...lastMessage.content, { type: 'text' as const, text: content }],\n      },\n    ]\n  }\n\n  return [\n    ...messages,\n    {\n      role: 'assistant',\n      content,\n    },\n  ]\n}\n\nexport const convertMessageToString = (message: ReorChatMessage | undefined): string => {\n  if (!message) {\n    return ''\n  }\n  if (message.visibleContent) {\n    return message.visibleContent\n  }\n  if (typeof message.content === 'string') {\n    return message.content\n  }\n  return ''\n}\n\nexport function anonymizeAgentConfigForPosthog(\n  agentConfig: AgentConfig | undefined,\n): AnonymizedAgentConfig | undefined {\n  if (!agentConfig) {\n    return undefined\n  }\n  const { dbSearchFilters, files } = agentConfig\n  return {\n    name: agentConfig.name,\n    numberOfChunksToFetch: dbSearchFilters?.limit ?? 0,\n    filesLength: files.length,\n    minDate: dbSearchFilters?.minDate,\n    maxDate: dbSearchFilters?.maxDate,\n    toolNames: agentConfig.toolDefinitions.map((tool) => tool.name),\n  }\n}\n\nconst generateStringOfContextItemsForPrompt = (contextItems: DBEntry[] | FileInfoWithContent[]): string => {\n  const contextString = contextItems.map((item) => JSON.stringify(item, null, 2)).join('\\n\\n')\n  return `${contextString}`\n}\n\nconst replaceTemplatePlaceholders = (content: string, userQuery: string) => {\n  const now = new Date()\n  const today = format(now, \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n  return content.replace('{QUERY}', userQuery).replace('{TODAY}', today)\n}\n\nconst generateMessagesFromTemplate = (\n  promptTemplate: PromptTemplate,\n  userQuery: string,\n  contextItems: DBEntry[] | FileInfoWithContent[],\n): ReorChatMessage[] => {\n  return promptTemplate.map((templateMessage) => {\n    if (templateMessage.role === 'system') {\n      return {\n        ...templateMessage,\n        content: `${replaceTemplatePlaceholders(templateMessage.content, userQuery)}`,\n        hideMessage: true,\n      }\n    }\n\n    if (templateMessage.role === 'user') {\n      return {\n        ...templateMessage,\n        context: contextItems,\n        content: replaceTemplatePlaceholders(templateMessage.content, userQuery),\n        visibleContent: userQuery,\n      }\n    }\n\n    return templateMessage\n  }) as ReorChatMessage[]\n}\n\nconst injectContextStringIntoMessages = (\n  messages: ReorChatMessage[],\n  contextItems: DBEntry[] | FileInfoWithContent[],\n  contextString: string,\n): ReorChatMessage[] => {\n  const lastUserMessage = messages.findLast((message) => message.role === 'user')\n  if (lastUserMessage) {\n    lastUserMessage.content = `The context retrieved from the user's knowledge base for the query is: ${contextString}\\n\\n${lastUserMessage.content}`\n    lastUserMessage.context = contextItems\n  }\n  return messages\n}\n\nconst retrieveContextItems = async (\n  query: string,\n  agentConfig: AgentConfig,\n): Promise<DBEntry[] | FileInfoWithContent[]> => {\n  const { files } = agentConfig\n\n  if (files.length > 0) {\n    return window.fileSystem.getFiles(files)\n  }\n\n  if (agentConfig.dbSearchFilters) {\n    return retreiveFromVectorDB(query, agentConfig.dbSearchFilters)\n  }\n\n  return []\n}\n\nexport const generateInitialChat = async (userTextFieldInput: string, agentConfig: AgentConfig): Promise<Chat> => {\n  const contextItems = await retrieveContextItems(userTextFieldInput ?? '', agentConfig)\n\n  const contextString = generateStringOfContextItemsForPrompt(contextItems)\n  const messages = generateMessagesFromTemplate(agentConfig.promptTemplate, userTextFieldInput ?? '', contextItems)\n  const ragMessages = injectContextStringIntoMessages(messages, contextItems, contextString)\n\n  return {\n    id: Date.now().toString(),\n    messages: ragMessages,\n    displayName: generateChatName(ragMessages, userTextFieldInput),\n    timeOfLastMessage: Date.now(),\n    toolDefinitions: agentConfig.toolDefinitions,\n  }\n}\n\nconst generateFollowUpChat = async (\n  currentChat: Chat | undefined,\n  userTextFieldInput: string,\n  agentConfig: AgentConfig | undefined,\n): Promise<Chat> => {\n  if (!currentChat) {\n    throw new Error('Current chat is required')\n  }\n  currentChat.messages.push({\n    role: 'user',\n    visibleContent: userTextFieldInput,\n    content: `The user's query is: ${userTextFieldInput}`,\n    context: [],\n  })\n\n  if (agentConfig) {\n    const contextItems = await retrieveContextItems(userTextFieldInput ?? '', agentConfig)\n    const contextString = generateStringOfContextItemsForPrompt(contextItems)\n    currentChat.messages = injectContextStringIntoMessages(currentChat.messages, contextItems, contextString)\n    currentChat.toolDefinitions = agentConfig.toolDefinitions\n  }\n\n  return currentChat\n}\n\nexport const appendToOrCreateChat = async (\n  currentChat: Chat | undefined,\n  userTextFieldInput: string,\n  agentConfig?: AgentConfig,\n): Promise<Chat> => {\n  let outputChat = currentChat\n\n  if (!outputChat || !outputChat.id || outputChat.messages.length === 0) {\n    if (!agentConfig) {\n      throw new Error('Agent config is required')\n    }\n    outputChat = await generateInitialChat(userTextFieldInput ?? '', agentConfig)\n    const anonymizedAgentConfig = anonymizeAgentConfigForPosthog(agentConfig)\n    posthog.capture('chat_message_submitted', {\n      chatId: outputChat?.id,\n      chatLength: outputChat?.messages.length,\n      ...anonymizedAgentConfig,\n    })\n  } else {\n    outputChat = await generateFollowUpChat(outputChat, userTextFieldInput, agentConfig)\n    posthog.capture('follow_up_chat_message_submitted', {\n      chatId: outputChat?.id,\n      chatLength: outputChat?.messages.length,\n    })\n  }\n\n  return outputChat\n}\n\nexport const getDisplayMessage = (message: ReorChatMessage): string | undefined => {\n  if (message.hideMessage) {\n    return undefined\n  }\n  if (message.visibleContent !== null && message.visibleContent !== undefined && message.visibleContent !== '') {\n    return message.visibleContent\n  }\n  if (typeof message.content === 'string') {\n    return message.content\n  }\n  return undefined\n}\n\nexport const findToolResultMatchingToolCall = (\n  toolCallId: string,\n  messages: ReorChatMessage[],\n): CoreToolMessage | undefined => {\n  return messages.find(\n    (message) => message.role === 'tool' && message.content.some((content) => content.toolCallId === toolCallId),\n  ) as CoreToolMessage | undefined\n}\n\nexport function extractMessagePartsFromAssistantMessage(message: CoreAssistantMessage) {\n  const outputTextParts: string[] = []\n  const outputToolCalls: ToolCallPart[] = []\n\n  if (typeof message.content === 'string') {\n    outputTextParts.push(getDisplayMessage(message) || '')\n  } else if (Array.isArray(message.content)) {\n    message.content.forEach((part) => {\n      if ('text' in part) {\n        outputTextParts.push(part.text)\n      } else if (part.type === 'tool-call') {\n        outputToolCalls.push(part)\n      }\n    })\n  }\n\n  return { textParts: outputTextParts, toolCalls: outputToolCalls }\n}\n\nexport const removeUncalledToolsFromMessages = (messages: ReorChatMessage[]): ReorChatMessage[] => {\n  return messages.map((message) => {\n    if (message.role === 'assistant') {\n      const { textParts, toolCalls } = extractMessagePartsFromAssistantMessage(message)\n      const toolCallsWithResults: ToolCallPart[] = toolCalls.filter((toolCall) => {\n        return findToolResultMatchingToolCall(toolCall.toolCallId, messages)\n      })\n      const assistantContent: AssistantContent = [\n        ...textParts.map((textPart) => ({ type: 'text' as const, text: textPart })),\n        ...toolCallsWithResults,\n      ]\n      const msgOut: ReorChatMessage = {\n        ...message,\n        content: assistantContent,\n      }\n      return msgOut\n    }\n    return message\n  })\n}\n"
  },
  {
    "path": "src/lib/llm/client.ts",
    "content": "import { createOllama } from 'ollama-ai-provider'\nimport { createOpenAI } from '@ai-sdk/openai'\nimport { createAnthropic } from '@ai-sdk/anthropic'\nimport { LanguageModel } from 'ai'\n\nconst resolveLLMClient = async (llmName: string): Promise<LanguageModel> => {\n  if (!llmName || llmName === '') {\n    throw new Error('No LLM has been configured. Please setup an LLM in settings.')\n  }\n  const llmConfigs = await window.llm.getLLMConfigs()\n  const apiConfigs = await window.llm.getLLMAPIConfigs()\n\n  const llmConfig = llmConfigs.find((llm) => llm.modelName === llmName)\n\n  if (!llmConfig) {\n    throw new Error(`LLM ${llmName} not found.`)\n  }\n\n  const apiConfig = apiConfigs.find((api) => api.name === llmConfig.apiName)\n\n  if (!apiConfig) {\n    throw new Error(`API ${llmConfig.apiName} not found.`)\n  }\n\n  if (apiConfig.apiInterface === 'openai') {\n    const openai = createOpenAI({\n      apiKey: apiConfig.apiKey || '',\n      baseURL: apiConfig.apiURL,\n    })\n    return openai(llmName)\n  }\n  if (apiConfig.apiInterface === 'anthropic') {\n    const anthropic = createAnthropic({\n      apiKey: apiConfig.apiKey || '',\n      baseURL: apiConfig.apiURL,\n      headers: {\n        'anthropic-dangerous-direct-browser-access': 'true',\n      },\n    })\n    return anthropic(llmName)\n  }\n  if (apiConfig.apiInterface === 'ollama') {\n    const ollama = createOllama()\n    const model = ollama(llmName)\n    return model as LanguageModel\n  }\n  throw new Error(`API interface ${apiConfig.apiInterface} not supported.`)\n}\n\nexport default resolveLLMClient\n"
  },
  {
    "path": "src/lib/llm/tools/tool-definitions.ts",
    "content": "import { ToolDefinition } from '../types'\nimport { retreiveFromVectorDB } from '@/lib/db'\n\nexport const searchToolDefinition: ToolDefinition = {\n  name: 'search',\n  displayName: 'Search',\n  description:\n    'The search tool allows the LLM to automatically search your knowledge base. It is the most powerful tool because it can do things like filter by date & time which means you can ask things like \"what did I work on last week?\"',\n  parameters: [\n    {\n      name: 'query',\n      type: 'string',\n      description: 'The query to search for. To get the best results, this should be the full user query.',\n    },\n    {\n      name: 'limit',\n      type: 'number',\n      defaultValue: 20,\n      description: 'The number of results to return',\n    },\n    {\n      name: 'minDate',\n      type: 'string',\n      optional: true,\n      description: 'The minimum date of the notes to search for. Please use ISO 8601 format: YYYY-MM-DDTHH:mm:ss.sssZ',\n    },\n    {\n      name: 'maxDate',\n      type: 'string',\n      optional: true,\n      description: 'The maximum date of the notes to search for. Please use ISO 8601 format: YYYY-MM-DDTHH:mm:ss.sssZ',\n    },\n  ],\n  autoExecute: true,\n}\n\nexport const createNoteToolDefinition: ToolDefinition = {\n  name: 'createNote',\n  displayName: 'Create Note',\n  description:\n    'The create note tool allows the LLM to automatically create new notes for you. It will ask you to confirm before creating a new note.',\n  parameters: [\n    {\n      name: 'filename',\n      type: 'string',\n      description: 'The filename of the note. Do not include the file extension.',\n    },\n    {\n      name: 'content',\n      type: 'string',\n      description: 'The content of the note',\n    },\n  ],\n}\n\nexport const createDirectoryToolDefinition: ToolDefinition = {\n  name: 'createDirectory',\n  displayName: 'Create Directory',\n  description:\n    'The create directory tool allows the LLM to automatically create new directories for you. It will ask you to confirm before creating a new directory.',\n  parameters: [\n    {\n      name: 'directoryName',\n      type: 'string',\n      description: 'The name of the directory to create',\n    },\n  ],\n}\n\nconst readFileToolDefinition: ToolDefinition = {\n  name: 'readFile',\n  displayName: 'Read File',\n  description:\n    'The read file tool allows the LLM to automatically read files from your knowledge base. It will ask you to confirm before reading a file.',\n  parameters: [\n    {\n      name: 'filePath',\n      type: 'string',\n      description: 'The path of the file to read',\n    },\n  ],\n}\n\nexport const deleteNoteToolDefinition: ToolDefinition = {\n  name: 'deleteNote',\n  displayName: 'Delete Note',\n  description:\n    'The delete note tool allows the LLM to automatically delete notes from your knowledge base. It will ask you to confirm before deleting a note.',\n  parameters: [\n    {\n      name: 'filename',\n      type: 'string',\n      description: 'The filename of the note to delete',\n    },\n  ],\n}\n\nexport const editNoteToolDefinition: ToolDefinition = {\n  name: 'editNote',\n  displayName: 'Edit Note',\n  description:\n    'The edit note tool allows the LLM to automatically edit notes in your knowledge base. It will ask you to confirm before editing a note.',\n  parameters: [\n    {\n      name: 'filename',\n      type: 'string',\n      description: 'The filename of the note to edit',\n    },\n    {\n      name: 'content',\n      type: 'string',\n      description: 'The content to edit the note to',\n    },\n  ],\n}\n\nexport const appendToNoteToolDefinition: ToolDefinition = {\n  name: 'appendToNote',\n  displayName: 'Append to Note',\n  description:\n    'The append to note tool allows the LLM to automatically append to notes in your knowledge base. It will ask you to confirm before appending to a note.',\n  parameters: [\n    {\n      name: 'filename',\n      type: 'string',\n      description: 'The filename of the note to append to',\n    },\n    {\n      name: 'content',\n      type: 'string',\n      description: 'The content to append to the note',\n    },\n  ],\n}\n\nexport const listFilesToolDefinition: ToolDefinition = {\n  name: 'listFiles',\n  displayName: 'List Files',\n  description: 'The list files tool allows the LLM to automatically list files from your knowledge base.',\n  parameters: [],\n}\n\nexport const allAvailableToolDefinitions: ToolDefinition[] = [\n  searchToolDefinition,\n  createNoteToolDefinition,\n  createDirectoryToolDefinition,\n  readFileToolDefinition,\n  deleteNoteToolDefinition,\n  appendToNoteToolDefinition,\n  editNoteToolDefinition,\n  listFilesToolDefinition,\n]\n\ntype ToolFunction = (...args: any[]) => Promise<any>\n\ntype ToolFunctionMap = {\n  [key: string]: ToolFunction\n}\n\nexport const toolNamesToFunctions: ToolFunctionMap = {\n  search: async (query: string, limit: number, minDate: Date, maxDate: Date): Promise<any[]> => {\n    const results = await retreiveFromVectorDB(query, { limit, minDate, maxDate, passFullNoteIntoContext: true })\n    return results\n  },\n  createNote: async (filename: string, content: string): Promise<string> => {\n    const vault = await window.electronStore.getVaultDirectoryForWindow()\n    const path = await window.path.join(vault, filename)\n    await window.fileSystem.createFile(path, content)\n    return `Note ${path} created successfully`\n  },\n  createDirectory: async (directoryName: string): Promise<string> => {\n    const vault = await window.electronStore.getVaultDirectoryForWindow()\n    const path = await window.path.join(vault, directoryName)\n    await window.fileSystem.createDirectory(path)\n    return `Directory ${directoryName} created successfully`\n  },\n  readFile: async (filePath: string): Promise<string> => {\n    const content = await window.fileSystem.readFile(filePath, 'utf-8')\n    return content\n  },\n  deleteNote: async (filename: string): Promise<string> => {\n    const vault = await window.electronStore.getVaultDirectoryForWindow()\n    const path = await window.path.join(vault, filename)\n    await window.fileSystem.deleteFile(path)\n    return `Note ${filename} deleted successfully`\n  },\n  editNote: async (filename: string, content: string): Promise<string> => {\n    const vault = await window.electronStore.getVaultDirectoryForWindow()\n    const path = await window.path.join(vault, filename)\n    await window.fileSystem.writeFile({ filePath: path, content })\n    return `Note ${filename} edited successfully`\n  },\n  appendToNote: async (filename: string, content: string): Promise<string> => {\n    const vault = await window.electronStore.getVaultDirectoryForWindow()\n    const path = await window.path.join(vault, filename)\n    const currentContent = await window.fileSystem.readFile(path, 'utf-8')\n    await window.fileSystem.writeFile({ filePath: path, content: currentContent + content })\n    return `Note ${filename} appended to successfully`\n  },\n  listFiles: async (): Promise<string[]> => {\n    const files = await window.fileSystem.getFilesTreeForWindow()\n    // convert to string\n    return files.map((file) => file.name)\n  },\n}\n\nexport type ToolName = keyof typeof toolNamesToFunctions\n"
  },
  {
    "path": "src/lib/llm/tools/utils.ts",
    "content": "import { CoreToolMessage, ToolCallPart, ToolResultPart } from 'ai'\nimport { z } from 'zod'\nimport posthog from 'posthog-js'\nimport { ToolName, toolNamesToFunctions } from './tool-definitions'\nimport { ReorChatMessage, ToolDefinition } from '../types'\n\nexport async function executeTool(toolName: ToolName, args: unknown[]): Promise<any> {\n  const tool = toolNamesToFunctions[toolName]\n  if (!tool) {\n    throw new Error(`Unknown tool: ${toolName}`)\n  }\n  const out = await tool(...Object.values(args)) // TODO: make this cleaner quizas.\n  return out\n}\n\nexport async function createToolResult(toolName: string, args: unknown[], toolCallId: string): Promise<ToolResultPart> {\n  try {\n    const result = await executeTool(toolName, args)\n    return {\n      type: 'tool-result',\n      toolCallId,\n      toolName,\n      result,\n    }\n  } catch (error) {\n    return {\n      type: 'tool-result',\n      toolCallId,\n      toolName,\n      result: error,\n      isError: true,\n    }\n  }\n}\n\nexport function convertToolConfigToZodSchema(tool: ToolDefinition) {\n  const parameterSchema = z.object(\n    tool.parameters.reduce((acc, param) => {\n      let zodType: z.ZodType<any>\n\n      switch (param.type) {\n        case 'string':\n          zodType = z.string()\n          break\n        case 'number':\n          zodType = z.number()\n          break\n        case 'boolean':\n          zodType = z.boolean()\n          break\n        default:\n          throw new Error(`Unsupported parameter type: ${param.type}`)\n      }\n\n      // Apply default value if it exists\n      if (param.defaultValue !== undefined) {\n        zodType = zodType.default(param.defaultValue)\n      }\n\n      if (param.optional) {\n        zodType = zodType.optional()\n      }\n\n      // Apply description\n      zodType = zodType.describe(param.description)\n\n      return { ...acc, [param.name]: zodType }\n    }, {}),\n  )\n\n  return {\n    [tool.name]: {\n      description: tool.description,\n      parameters: parameterSchema,\n    },\n  }\n}\n\nexport const makeAndAddToolResultToMessages = async (\n  messages: ReorChatMessage[],\n  toolCallPart: ToolCallPart,\n  assistantMessage: ReorChatMessage,\n): Promise<ReorChatMessage[]> => {\n  const toolResult = await createToolResult(toolCallPart.toolName, toolCallPart.args as any, toolCallPart.toolCallId)\n  posthog.capture('tool_executed', {\n    toolName: toolCallPart.toolName,\n  })\n  const toolMessage: CoreToolMessage = {\n    role: 'tool',\n    content: [toolResult],\n  }\n\n  const assistantIndex = messages.findIndex((msg) => msg === assistantMessage)\n  if (assistantIndex === -1) {\n    throw new Error('Assistant message not found')\n  }\n\n  return [...messages.slice(0, assistantIndex + 1), toolMessage, ...messages.slice(assistantIndex + 1)]\n}\n\nconst autoExecuteTools = async (\n  messages: ReorChatMessage[],\n  toolDefinitions: ToolDefinition[],\n  toolCalls: ToolCallPart[],\n) => {\n  const toolsThatNeedExecuting = toolCalls.filter((toolCall) => {\n    const toolDefinition = toolDefinitions.find((definition) => definition.name === toolCall.toolName)\n    return toolDefinition?.autoExecute\n  })\n  let outputMessages = messages\n  const lastMessage = messages[messages.length - 1]\n\n  if (lastMessage.role !== 'assistant') {\n    throw new Error('Last message is not an assistant message')\n  }\n  for (const toolCall of toolsThatNeedExecuting) {\n    // eslint-disable-next-line no-await-in-loop\n    outputMessages = await makeAndAddToolResultToMessages(outputMessages, toolCall, lastMessage)\n  }\n  const allToolCallsHaveBeenExecuted =\n    toolsThatNeedExecuting.length > 0 && toolsThatNeedExecuting.length === toolCalls.length\n  return { messages: outputMessages, allToolCallsHaveBeenExecuted }\n}\n\nexport const appendToolCallPartsToMessages = (\n  messages: ReorChatMessage[],\n  toolCalls: ToolCallPart[],\n): ReorChatMessage[] => {\n  if (toolCalls.length === 0) {\n    return messages\n  }\n\n  if (messages.length === 0) {\n    return [\n      {\n        role: 'assistant',\n        content: toolCalls,\n      },\n    ]\n  }\n\n  const lastMessage = messages[messages.length - 1]\n\n  if (lastMessage.role === 'assistant') {\n    return [\n      ...messages.slice(0, -1),\n      {\n        ...lastMessage,\n        content: Array.isArray(lastMessage.content)\n          ? [...lastMessage.content, ...toolCalls]\n          : [{ type: 'text' as const, text: lastMessage.content }, ...toolCalls],\n      },\n    ]\n  }\n\n  return [\n    ...messages,\n    {\n      role: 'assistant',\n      content: toolCalls,\n    },\n  ]\n}\n\nexport const appendToolCallsAndAutoExecuteTools = async (\n  messages: ReorChatMessage[],\n  toolDefinitions: ToolDefinition[],\n  toolCalls: ToolCallPart[],\n): Promise<{ messages: ReorChatMessage[]; allToolCallsHaveBeenExecuted: boolean }> => {\n  const messagesWithToolCalls = appendToolCallPartsToMessages(messages, toolCalls)\n  const { messages: messagesWithToolResults, allToolCallsHaveBeenExecuted } = await autoExecuteTools(\n    messagesWithToolCalls,\n    toolDefinitions,\n    toolCalls,\n  )\n  return { messages: messagesWithToolResults, allToolCallsHaveBeenExecuted }\n}\n"
  },
  {
    "path": "src/lib/llm/types.ts",
    "content": "import { CoreMessage } from 'ai'\nimport { FileInfoWithContent } from 'electron/main/filesystem/types'\nimport { DBEntry } from 'electron/main/vector-database/schema'\n\nexport type ReorChatMessage = CoreMessage & {\n  context?: DBEntry[] | FileInfoWithContent[]\n  hideMessage?: boolean\n  visibleContent?: string\n}\n\ntype ParameterType = 'string' | 'number' | 'boolean'\n\ntype ToolParameter = {\n  name: string\n  type: ParameterType\n  optional?: boolean\n  defaultValue?: string | number | boolean\n  description: string\n}\n\nexport type ToolDefinition = {\n  name: string\n  displayName?: string\n  description: string\n  parameters: ToolParameter[]\n  autoExecute?: boolean\n}\n\nexport type Chat = {\n  [x: string]: any // used to delete legacy properties in store migrator.\n  id: string\n  messages: ReorChatMessage[]\n  displayName: string\n  timeOfLastMessage: number\n  toolDefinitions: ToolDefinition[]\n}\n\nexport type ChatMetadata = Omit<Chat, 'messages'>\n\nexport interface DatabaseSearchFilters {\n  limit: number\n  minDate?: Date\n  maxDate?: Date\n  passFullNoteIntoContext?: boolean\n}\n\nexport type PromptTemplate = {\n  role: 'system' | 'user'\n  content: string\n}[]\n\nexport type AgentConfig = {\n  name: string\n  dbSearchFilters?: DatabaseSearchFilters\n  files: string[]\n  propertiesToIncludeInContext?: string[]\n  toolDefinitions: ToolDefinition[]\n  promptTemplate: PromptTemplate\n}\n\nexport interface AnonymizedAgentConfig {\n  name: string\n  numberOfChunksToFetch?: number\n  filesLength: number\n  minDate?: Date\n  maxDate?: Date\n  toolNames: string[]\n}\n\nexport type LoadingState = 'idle' | 'generating' | 'waiting-for-first-token'\n"
  },
  {
    "path": "src/lib/shortcuts/shortcutDefinitions.ts",
    "content": "export interface Shortcut {\n  key: string\n  action: string\n  description: string\n  displayValue: {\n    mac: string\n    other: string\n  }\n}\n\nexport const shortcuts: Shortcut[] = [\n  {\n    key: 'mod+O',\n    action: 'open-files',\n    description: 'Open Files',\n    displayValue: { mac: 'Cmd+O', other: 'Ctrl+O' },\n  },\n  {\n    key: 'mod+N',\n    action: 'open-new-note',\n    description: 'New Note',\n    displayValue: { mac: 'Cmd+N', other: 'Ctrl+N' },\n  },\n  {\n    key: 'mod+P',\n    action: 'open-search',\n    description: 'Semantic Search',\n    displayValue: { mac: 'Cmd+P', other: 'Ctrl+P' },\n  },\n  {\n    key: 'mod+T',\n    action: 'open-chat-bot',\n    description: 'Open Chatbot',\n    displayValue: { mac: 'Cmd+T', other: 'Ctrl+T' },\n  },\n  {\n    key: 'mod+D',\n    action: 'open-new-directory-modal',\n    description: 'New Directory',\n    displayValue: { mac: 'Cmd+D', other: 'Ctrl+D' },\n  },\n  {\n    key: 'mod+,',\n    action: 'open-settings-modal',\n    description: 'Settings',\n    displayValue: { mac: 'Cmd+,', other: 'Ctrl+,' },\n  },\n]\n"
  },
  {
    "path": "src/lib/shortcuts/use-shortcut.ts",
    "content": "import { useCallback, useEffect, useRef } from 'react'\nimport { useDebouncedCallback } from 'use-debounce'\nimport { useChatContext } from '../../contexts/ChatContext'\nimport { useContentContext } from '@/contexts/ContentContext'\nimport { shortcuts } from './shortcutDefinitions'\nimport { useModalOpeners } from '@/contexts/ModalContext'\n\nfunction useAppShortcuts() {\n  const { setSidebarShowing, openNewChat } = useChatContext()\n  const { createUntitledNote } = useContentContext()\n  const { setIsNewDirectoryModalOpen } = useModalOpeners()\n\n  const handleShortcut = useCallback(\n    (action: string) => {\n      switch (action) {\n        case 'open-new-note':\n          createUntitledNote()\n          break\n        case 'open-new-directory-modal':\n          setIsNewDirectoryModalOpen(true)\n          break\n        case 'open-search':\n          setSidebarShowing('search')\n          break\n        case 'open-files':\n          setSidebarShowing('files')\n          break\n        case 'open-chat-bot':\n          openNewChat()\n          break\n        default:\n          // No other cases\n          break\n      }\n    },\n    [createUntitledNote, setSidebarShowing, openNewChat, setIsNewDirectoryModalOpen],\n  )\n\n  const handleShortcutRef = useRef(handleShortcut)\n  handleShortcutRef.current = handleShortcut\n\n  const debouncedHandleKeyDown = useDebouncedCallback((event: KeyboardEvent) => {\n    const modifierPressed = event.ctrlKey || event.metaKey\n    const keyPressed = event.key.toLowerCase()\n\n    const triggeredShortcut = shortcuts.find((s) => {\n      const [mod, key] = s.key.toLowerCase().split('+')\n      return mod === 'mod' && modifierPressed && key === keyPressed\n    })\n\n    if (triggeredShortcut) {\n      event.preventDefault()\n      handleShortcutRef.current(triggeredShortcut.action)\n    }\n  }, 100)\n\n  useEffect(() => {\n    window.addEventListener('keydown', debouncedHandleKeyDown)\n    return () => {\n      window.removeEventListener('keydown', debouncedHandleKeyDown)\n      debouncedHandleKeyDown.cancel()\n    }\n  }, [debouncedHandleKeyDown])\n\n  const getShortcutDescription = useCallback((action: string) => {\n    const shortcut = shortcuts.find((s) => s.action === action)\n    if (!shortcut) return ''\n    const platform = navigator.platform.toLowerCase().includes('mac') ? 'mac' : 'other'\n    return `${shortcut.description} (${shortcut.displayValue[platform]})`\n  }, [])\n\n  return { getShortcutDescription }\n}\n\nexport default useAppShortcuts\n"
  },
  {
    "path": "src/lib/tiptap-extension-code-block/code-block-lowlight.tsx",
    "content": "/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable react/no-this-in-sfc */\nimport { NodeViewProps, NodeViewWrapper, ReactNodeViewRenderer } from '@tiptap/react'\nimport React, { FC } from 'react'\nimport styles from '../blocknote/core/extensions/Blocks/nodes/Block.module.css'\nimport { mergeCSSClasses } from '../blocknote'\nimport { CodeBlock, CodeBlockOptions } from './code-block'\nimport CodeBlockView from './code-block-view'\nimport LowlightPlugin from './lowlight-plugin'\n\nexport interface CodeBlockLowlightOptions extends CodeBlockOptions {\n  lowlight: any\n  defaultLanguage: string | null | undefined\n}\n\nexport const CodeBlockLowlight = CodeBlock.extend<CodeBlockLowlightOptions>({\n  addOptions() {\n    return {\n      ...this.parent?.(),\n      lowlight: {},\n      defaultLanguage: null,\n    }\n  },\n\n  addNodeView() {\n    const BlockContent: FC<NodeViewProps> = (props: NodeViewProps) => {\n      const Content = CodeBlockView\n      const blockContentDOMAttributes = this.options.domAttributes?.blockContent || {}\n      const language = props.node.attrs.language\n      return (\n        <NodeViewWrapper\n          {...Object.fromEntries(Object.entries(blockContentDOMAttributes).filter(([key]) => key !== 'class'))}\n          className={mergeCSSClasses(\n            styles.blockContent,\n            blockContentDOMAttributes.class,\n            language.length ? this.options.languageClassPrefix + language : '',\n          )}\n          data-content-type={props.node.type.name}\n        >\n          <Content props={props} />\n        </NodeViewWrapper>\n      )\n    }\n\n    return ReactNodeViewRenderer(BlockContent, {\n      className: styles.reactNodeViewRenderer,\n    })\n  },\n\n  addProseMirrorPlugins() {\n    return [\n      ...(this.parent?.() || []),\n      LowlightPlugin({\n        name: this.name,\n        lowlight: this.options.lowlight,\n        defaultLanguage: this.options.defaultLanguage,\n      }),\n    ]\n  },\n})\n"
  },
  {
    "path": "src/lib/tiptap-extension-code-block/code-block-view.tsx",
    "content": "/* eslint-disable react/prop-types */\nimport React, { useState } from 'react'\nimport { NodeViewProps } from '@tiptap/core'\nimport { NodeViewContent } from '@tiptap/react'\nimport { Popover, Button, SizableText, ScrollView } from 'tamagui'\nimport { ChevronDown } from '@tamagui/lucide-icons'\nimport { XStack, YStack } from '@/components/Editor/ui/src'\n\nconst languages = [\n  'Arduino',\n  'Bash',\n  'C',\n  'CPP',\n  'Csharp',\n  'Css',\n  'Diff',\n  'Go',\n  'Graphql',\n  'Ini',\n  'Java',\n  'javascript',\n  'Json',\n  'Kotlin',\n  'Less',\n  'Lua',\n  'Makefile',\n  'Markdown',\n  'Objectivec',\n  'Perl',\n  'Php',\n  'Php-template',\n  'Plaintext',\n  'Python',\n  'Python-repl',\n  'R',\n  'Ruby',\n  'Rust',\n  'Scss',\n  'Shell',\n  'Sql',\n  'Swift',\n  'Typescript',\n  'Vbnet',\n  'Wasm',\n  'XML',\n  'YAML',\n]\n\nconst CodeBlockView = ({ props }: { props: NodeViewProps }) => {\n  const { node, updateAttributes } = props\n  const [hovered, setHovered] = useState(false)\n  const [language, setLanguage] = useState(node.attrs.language ? node.attrs.language : 'Plaintext')\n  const [popoverOpen, setPopoverOpen] = useState(false)\n\n  const handleChange = (newLanguage: string) => {\n    updateAttributes({ language: newLanguage })\n    setLanguage(newLanguage)\n    setPopoverOpen(false)\n  }\n\n  const customLanguageClass = `language-${language}`\n  return (\n    <YStack onHoverIn={() => setHovered(true)} onHoverOut={() => setHovered(false)}>\n      <XStack\n        position=\"absolute\"\n        top={24}\n        right={0}\n        zIndex=\"$zIndex.5\"\n        ai=\"center\"\n        jc=\"flex-end\"\n        gap=\"$4\"\n        // @ts-ignore\n        contentEditable={false}\n        opacity={hovered ? 1 : 0}\n        pointerEvents={hovered ? 'auto' : 'none'}\n      >\n        <Popover open={popoverOpen} onOpenChange={setPopoverOpen}>\n          <Popover.Trigger asChild>\n            <Button\n              onPress={() => setPopoverOpen(!popoverOpen)}\n              size={20}\n              fontSize={12}\n              color=\"$gray9\"\n              backgroundColor=\"transparent\"\n            >\n              {language} <ChevronDown color=\"$gray9\" size={12} />\n            </Button>\n          </Popover.Trigger>\n\n          <Popover.Content p={0}>\n            <YStack borderRadius=\"$4\" backgroundColor=\"$background\" borderWidth={1} borderColor=\"$gray6\">\n              {/* List of selectable items */}\n              <ScrollView maxHeight={200} padding=\"$2\">\n                {languages.map((lang) => (\n                  <XStack\n                    key={lang}\n                    padding=\"$2\"\n                    alignItems=\"center\"\n                    justifyContent=\"space-between\"\n                    onPress={() => handleChange(lang)}\n                    hoverStyle={{ backgroundColor: lang === language ? '$blue9' : 'rgba(0, 0, 0, 0.1)' }}\n                    cursor=\"pointer\"\n                    width={200}\n                    borderRadius=\"$2\"\n                    backgroundColor={lang === language ? '$blue9' : ''}\n                  >\n                    <SizableText fontSize={12}>{lang}</SizableText>\n                  </XStack>\n                ))}\n              </ScrollView>\n            </YStack>\n          </Popover.Content>\n        </Popover>\n      </XStack>\n      <pre>\n        <code className={customLanguageClass}>\n          <NodeViewContent />\n        </code>\n      </pre>\n    </YStack>\n  )\n}\n\nexport default CodeBlockView\n"
  },
  {
    "path": "src/lib/tiptap-extension-code-block/code-block.ts",
    "content": "import { Editor, mergeAttributes, Node, textblockTypeInputRule } from '@tiptap/core'\nimport { Fragment, Slice } from '@tiptap/pm/model'\nimport { Plugin, PluginKey, TextSelection } from '@tiptap/pm/state'\nimport styles from '@/lib/blocknote/core/extensions/Blocks/nodes/Block.module.css'\nimport { BlockNoteDOMAttributes, getBlockInfoFromPos, mergeCSSClasses } from '../blocknote'\nimport { getGroupInfoFromPos } from '../blocknote/core/extensions/Blocks/helpers/getGroupInfoFromPos'\n\ndeclare module '@tiptap/core' {\n  interface Commands<ReturnType> {\n    'code-block': {\n      /**\n       * Set a code block\n       */\n      setCodeBlock: (attributes?: { language: string }) => ReturnType\n      /**\n       * Toggle a code block\n       */\n      toggleCodeBlock: (attributes?: { language: string }) => ReturnType\n    }\n  }\n}\n\nexport const backtickInputRegex = /^```([a-z]+)?[\\s\\n]$/\nexport const tildeInputRegex = /^~~~([a-z]+)?[\\s\\n]$/\n\nexport interface CodeBlockOptions {\n  /**\n   * Adds a prefix to language classes that are applied to code tags.\n   * Defaults to `'language-'`.\n   */\n  languageClassPrefix: string\n  /**\n   * BlockNote's default DOM attributes\n   */\n  domAttributes?: BlockNoteDOMAttributes\n}\n\nexport const CodeBlock = Node.create<CodeBlockOptions>({\n  name: 'code-block',\n\n  addOptions() {\n    return {\n      languageClassPrefix: 'language-',\n      domAttributes: {},\n    }\n  },\n\n  content: 'text*',\n\n  marks: '',\n\n  group: 'blockContent',\n\n  code: true,\n\n  defining: true,\n\n  addAttributes() {\n    return {\n      language: {\n        default: '',\n        parseHTML: (element) => {\n          const { languageClassPrefix } = this.options\n          const getClassNames = (classList: DOMTokenList) => Array.from(classList || [])\n\n          const classNames = [\n            ...getClassNames(element.classList),\n            ...getClassNames(element.firstElementChild?.classList || new DOMTokenList()),\n          ]\n          const languages = classNames\n            .filter((className) => className.startsWith(languageClassPrefix))\n            .map((className) => className.replace(languageClassPrefix, ''))\n          const language = languages[0]\n\n          if (!language) {\n            return ''\n          }\n\n          return language\n        },\n        rendered: false,\n      },\n    }\n  },\n\n  parseHTML() {\n    return [\n      {\n        tag: 'pre',\n        preserveWhitespace: 'full',\n      },\n    ]\n  },\n\n  renderHTML({ HTMLAttributes, node }) {\n    const blockContentDOMAttributes = this.options.domAttributes?.blockContent || {}\n    const inlineContentDOMAttributes = this.options.domAttributes?.inlineContent || {}\n\n    return [\n      'pre',\n      mergeAttributes(HTMLAttributes, {\n        ...blockContentDOMAttributes,\n        class: mergeCSSClasses(\n          styles.blockContent,\n          blockContentDOMAttributes.class,\n          node.attrs.language.length ? this.options.languageClassPrefix + node.attrs.language : '',\n        ),\n        'data-content-type': this.name,\n        'data-language': HTMLAttributes.language,\n      }),\n      [\n        'code',\n        {\n          ...inlineContentDOMAttributes,\n          class: mergeCSSClasses(styles.inlineContent, inlineContentDOMAttributes.class),\n        },\n        0,\n      ],\n    ]\n  },\n\n  addCommands() {\n    return {\n      setCodeBlock:\n        (attributes) =>\n        ({ commands }) => {\n          return commands.setNode(this.name, attributes)\n        },\n      toggleCodeBlock:\n        (attributes) =>\n        ({ commands }) => {\n          return commands.toggleNode(this.name, 'paragraph', attributes)\n        },\n    }\n  },\n\n  addKeyboardShortcuts() {\n    function splitCodeBlock(editor: Editor) {\n      const { state } = editor\n      const codePos = state.doc.resolve(state.selection.$from.pos)\n      const blockInfo = getBlockInfoFromPos(state.doc, codePos.pos)\n      if (blockInfo === undefined) {\n        return false\n      }\n\n      const { depth } = blockInfo\n\n      const originalBlockContent = state.doc.cut(codePos.start(), codePos.pos)\n      const newBlockContent = state.doc.cut(codePos.pos, codePos.end())\n\n      const newBlock = state.schema.nodes.blockContainer.createAndFill()!\n      const nextBlockPos = codePos.end() + 2\n      const nextBlockContentPos = nextBlockPos + 2\n\n      let tr = state.tr\n      tr = tr.insert(nextBlockPos, newBlock)\n      tr = tr.replace(\n        nextBlockContentPos,\n        nextBlockContentPos + 1,\n        newBlockContent.content.size > 0 ? new Slice(Fragment.from(newBlockContent), depth + 2, depth + 2) : undefined,\n      )\n      tr = tr.replace(\n        codePos.start(),\n        codePos.end(),\n        originalBlockContent.content.size > 0\n          ? new Slice(Fragment.from(originalBlockContent), depth + 2, depth + 2)\n          : undefined,\n      )\n\n      editor.view.dispatch(tr)\n\n      let blockContentLength = 0\n      if (newBlockContent.textContent) blockContentLength = newBlockContent.textContent.length\n      editor.commands.setTextSelection(nextBlockContentPos - blockContentLength)\n\n      return true\n    }\n\n    return {\n      'Mod-Alt-c': () => this.editor.commands.toggleCodeBlock(),\n\n      // Split code block's content on current selection and move other content to the next block.\n      'Shift-Enter': ({ editor }) => splitCodeBlock(editor),\n      'Mod-Enter': ({ editor }) => splitCodeBlock(editor),\n\n      // remove code block when at start of document or code block is empty\n      Backspace: () => {\n        const { empty, $anchor } = this.editor.state.selection\n        const isAtStart = $anchor.pos === 1\n\n        if (!empty || $anchor.parent.type.name !== this.name) {\n          return false\n        }\n\n        if (isAtStart || !$anchor.parent.textContent.length) {\n          return this.editor.commands.clearNodes()\n        }\n\n        return false\n      },\n\n      // remove double space (if any) from the current line on shift+tab click\n      'Shift-Tab': ({ editor }) => {\n        const { state, view } = editor\n        const { selection } = state\n        const { $from, $to, empty } = selection\n\n        if ($from.parent.type !== this.type) {\n          return false\n        }\n\n        const codePos = state.doc.resolve($from.pos)\n\n        if (codePos.pos === codePos.start() && empty) {\n          return false\n        }\n\n        const codeBlock = codePos.parent\n        let currentPosInBlock = codePos.pos - codePos.start()\n        let currentChar: string = ''\n        const tabSpace = '  '\n\n        do {\n          currentPosInBlock--\n\n          currentChar = codeBlock.textBetween(currentPosInBlock, currentPosInBlock + 1)\n        } while (currentChar !== '\\n' && currentPosInBlock !== -1)\n\n        if (currentPosInBlock + 2 >= codePos.end() - codePos.start()) return true\n\n        do {\n          currentPosInBlock++\n          currentChar = codeBlock.textBetween(currentPosInBlock, currentPosInBlock + 2)\n        } while (\n          currentChar !== tabSpace &&\n          !currentChar.includes('\\n') &&\n          currentPosInBlock + 2 < codePos.end() - codePos.start()\n        )\n\n        const breakLinePositions: number[] = []\n\n        if (!empty) {\n          let currentPos = $from.pos - codePos.start()\n          currentChar = ''\n          while (currentPos !== $to.pos - codePos.start()) {\n            currentChar = codeBlock.textBetween(currentPos, currentPos + 1)\n\n            if (currentChar === '\\n') {\n              const nextChars = codeBlock.textBetween(currentPos + 1, currentPos + 3)\n              if (nextChars === tabSpace) breakLinePositions.push(currentPos + 1)\n            }\n\n            currentPos++\n          }\n        }\n\n        let shouldDispatch = false\n        let tr = state.tr\n        if (currentChar === tabSpace) {\n          tr = tr.deleteRange(currentPosInBlock + codePos.start(), currentPosInBlock + codePos.start() + 2)\n          shouldDispatch = true\n        }\n        if (breakLinePositions.length > 0) {\n          breakLinePositions.forEach((pos, index) => {\n            const startPos = pos + codePos.start()\n            const endPos = pos + codePos.start() + 2\n            if (shouldDispatch) {\n              tr = tr.deleteRange(startPos - (index + 1) * 2, endPos - (index + 1) * 2)\n            } else {\n              tr = tr.deleteRange(startPos - index * 2, endPos - index * 2)\n            }\n          })\n          shouldDispatch = true\n        }\n\n        view.dispatch(tr)\n\n        return true\n      },\n\n      // add double space to the current line on tab click\n      Tab: ({ editor }) => {\n        const { state, view } = editor\n        const { selection } = state\n        const { $from, $to, empty } = selection\n        const tabSpace = '  '\n\n        if ($from.parent.type !== this.type) {\n          return false\n        }\n\n        const codePos = state.doc.resolve($from.pos)\n\n        if (codePos.pos === codePos.start() && empty) {\n          return false\n        }\n\n        const codeBlock = codePos.parent\n        let currentPosInBlock = codePos.pos - codePos.start()\n        let currentChar: string = ''\n\n        while (currentChar !== '\\n' && currentPosInBlock !== -1) {\n          currentPosInBlock--\n\n          currentChar = codeBlock.textBetween(currentPosInBlock, currentPosInBlock + 1)\n        }\n\n        const breakLinePositions: number[] = []\n\n        if (!empty) {\n          let currentPos = $from.pos - codePos.start()\n          currentChar = ''\n          while (currentPos !== $to.pos - codePos.start()) {\n            currentChar = codeBlock.textBetween(currentPos, currentPos + 1)\n\n            if (currentChar === '\\n') {\n              breakLinePositions.push(currentPos)\n            }\n\n            currentPos++\n          }\n        }\n\n        let tr = state.tr\n        tr = tr.insert(currentPosInBlock + codePos.start() + 1, state.schema.text(tabSpace))\n        if (breakLinePositions.length > 0) {\n          breakLinePositions.forEach((pos, index) => {\n            tr = tr.insert(pos + codePos.start() + 1 + (index + 1) * 2, state.schema.text(tabSpace))\n          })\n        }\n        view.dispatch(tr)\n        return true\n      },\n\n      // exit node on enter if at end of the block and at the new line or add a new line\n      Enter: ({ editor }) => {\n        const { state, view } = editor\n        const { selection } = state\n        const { $from, empty } = selection\n\n        if (!empty || $from.parent.type !== this.type) {\n          return false\n        }\n\n        const codePos = state.doc.resolve($from.pos)\n        const codeBlock = codePos.parent\n        const isAtEnd = codePos.parentOffset === codeBlock.nodeSize - 2\n        const endsWithNewline = codeBlock.textContent.endsWith('\\n')\n        if (isAtEnd && endsWithNewline) {\n          const nextBlockPos = codePos.end() + 2\n          const { group, container, $pos, depth } = getGroupInfoFromPos(codePos.pos, state)\n          if (group.type.name === 'blockGroup' && group.lastChild?.firstChild?.eq(codeBlock)) {\n            editor\n              .chain()\n              .command(({ tr }) => {\n                if (group.child(group.childCount - 1).childCount > 1) {\n                  const groupContent = group.content\n                  const lastBlockContent = groupContent.lastChild!.lastChild!\n                  const newBlockContent = [state.schema.nodes.paragraph.createAndFill()!, lastBlockContent]\n                  const newContainer = state.schema.nodes.blockContainer.createAndFill(null, newBlockContent)!\n                  const replaceContainer = state.schema.nodes.blockContainer.createAndFill(container?.attrs, codeBlock)!\n                  const newGroupContent = group.content\n                    .replaceChild(group.childCount - 1, replaceContainer)\n                    .addToEnd(newContainer)\n                  const newGroup = state.schema.nodes.blockGroup.createAndFill(group.attrs, newGroupContent)!\n                  const groupPos = state.doc.resolve($pos.after(depth + 1))\n                  tr.replaceRangeWith(groupPos.start(), groupPos.end(), newGroup)\n                } else {\n                  const newContainer = state.schema.nodes.blockContainer.createAndFill()!\n                  tr.insert(nextBlockPos, newContainer)\n                }\n                return false\n              })\n              .focus(nextBlockPos)\n              .command(({ tr }) => {\n                tr.delete($from.pos - 1, $from.pos)\n                return true\n              })\n              .run()\n            return true\n          }\n          editor\n            .chain()\n            .focus(nextBlockPos)\n            .command(({ tr }) => {\n              tr.delete($from.pos - 1, $from.pos)\n              return true\n            })\n            .run()\n\n          return true\n        }\n        let tr = state.tr\n        tr = tr.replaceSelectionWith(state.schema.text('\\n'))\n        view.dispatch(tr)\n        return true\n      },\n\n      // exit node on arrow down\n      ArrowDown: ({ editor }) => {\n        const { state } = editor\n        const { selection, doc } = state\n        const { $from, empty } = selection\n\n        if (!empty || $from.parent.type !== this.type) {\n          return false\n        }\n\n        const isAtEnd = $from.parentOffset === $from.parent.nodeSize - 2\n\n        if (!isAtEnd) {\n          return false\n        }\n\n        const after = $from.after()\n\n        if (after === undefined) {\n          return false\n        }\n\n        const nodeAfter = doc.nodeAt(after)\n\n        if (nodeAfter) {\n          return false\n        }\n\n        return editor.commands.exitCode()\n      },\n    }\n  },\n\n  addInputRules() {\n    return [\n      textblockTypeInputRule({\n        find: backtickInputRegex,\n        type: this.type,\n        getAttributes: (match) => ({\n          language: match[1],\n        }),\n      }),\n      textblockTypeInputRule({\n        find: tildeInputRegex,\n        type: this.type,\n        getAttributes: (match) => ({\n          language: match[1],\n        }),\n      }),\n    ]\n  },\n\n  addProseMirrorPlugins() {\n    return [\n      // this plugin creates a code block for pasted content from VS Code\n      // we can also detect the copied code language\n      new Plugin({\n        key: new PluginKey('codeBlockVSCodeHandler'),\n        props: {\n          handlePaste: (view, event) => {\n            if (!event.clipboardData) {\n              return false\n            }\n\n            // don’t create a new code block within code blocks\n            if (this.editor.isActive(this.type.name)) {\n              return false\n            }\n\n            const text = event.clipboardData.getData('text/plain')\n            const vscode = event.clipboardData.getData('vscode-editor-data')\n            const vscodeData = vscode ? JSON.parse(vscode) : undefined\n            const language = vscodeData?.mode\n\n            if (!text || !language) {\n              return false\n            }\n\n            const { tr } = view.state\n            const { selection } = view.state\n            const { $from, $to } = selection\n\n            // create an empty code block\n            tr.replaceWith($from.before($from.depth), $to.pos, this.type.create({ language }))\n\n            // put cursor inside the newly created code block\n            tr.setSelection(TextSelection.near(tr.doc.resolve(Math.max(0, $from.pos - 2))))\n\n            // add text to code block\n            // strip carriage return chars from text pasted as code\n            // see: https://github.com/ProseMirror/prosemirror-view/commit/a50a6bcceb4ce52ac8fcc6162488d8875613aacd\n            tr.insertText(text.replace(/\\r\\n?/g, '\\n'))\n\n            // store meta information\n            // this is useful for other plugins that depends on the paste event\n            // like the paste rule plugin\n            tr.setMeta('paste', true)\n\n            view.dispatch(tr)\n\n            return true\n          },\n        },\n      }),\n    ]\n  },\n})\n"
  },
  {
    "path": "src/lib/tiptap-extension-code-block/index.ts",
    "content": "import { CodeBlockLowlight } from './code-block-lowlight'\n\nexport * from './code-block-lowlight'\n\nexport default CodeBlockLowlight\n"
  },
  {
    "path": "src/lib/tiptap-extension-code-block/lowlight-plugin.ts",
    "content": "import { findChildren } from '@tiptap/core'\nimport { Node as ProsemirrorNode } from '@tiptap/pm/model'\nimport { Plugin, PluginKey } from '@tiptap/pm/state'\nimport { Decoration, DecorationSet } from '@tiptap/pm/view'\nimport highlight from 'highlight.js/lib/core'\n\nfunction parseNodes(nodes: any[], className: string[] = []): { text: string; classes: string[] }[] {\n  return nodes\n    .map((node) => {\n      const classes = [...className, ...(node.properties ? node.properties.className : [])]\n\n      if (node.children) {\n        return parseNodes(node.children, classes)\n      }\n\n      return {\n        text: node.value,\n        classes,\n      }\n    })\n    .flat()\n}\n\nfunction getHighlightNodes(result: any) {\n  // `.value` for lowlight v1, `.children` for lowlight v2\n  return result.value || result.children || []\n}\n\nfunction registered(aliasOrLanguage: string) {\n  return Boolean(highlight.getLanguage(aliasOrLanguage))\n}\n\nfunction getDecorations({\n  doc,\n  name,\n  lowlight,\n  defaultLanguage,\n}: {\n  doc: ProsemirrorNode\n  name: string\n  lowlight: any\n  defaultLanguage: string | null | undefined\n}) {\n  const decorations: Decoration[] = []\n\n  findChildren(doc, (node) => node.type.name === name).forEach((block) => {\n    let from = block.pos + 1\n    const language = block.node.attrs.language || defaultLanguage\n    const languages = lowlight.listLanguages()\n\n    const nodes =\n      language && (languages.includes(language) || registered(language))\n        ? getHighlightNodes(lowlight.highlight(language, block.node.textContent))\n        : getHighlightNodes(lowlight.highlightAuto(block.node.textContent))\n\n    parseNodes(nodes).forEach((node) => {\n      const to = from + node.text.length\n\n      if (node.classes.length) {\n        const decoration = Decoration.inline(from, to, {\n          class: node.classes.join(' '),\n        })\n\n        decorations.push(decoration)\n      }\n\n      from = to\n    })\n  })\n\n  return DecorationSet.create(doc, decorations)\n}\n\nfunction isFunction(param: Function) {\n  return typeof param === 'function'\n}\n\nfunction LowlightPlugin({\n  name,\n  lowlight,\n  defaultLanguage,\n}: {\n  name: string\n  lowlight: any\n  defaultLanguage: string | null | undefined\n}) {\n  if (!['highlight', 'highlightAuto', 'listLanguages'].every((api) => isFunction(lowlight[api]))) {\n    throw Error('You should provide an instance of lowlight to use the code-block-lowlight extension')\n  }\n\n  const lowlightPlugin: Plugin<any> = new Plugin({\n    key: new PluginKey('lowlight'),\n\n    state: {\n      init: (_, { doc }) =>\n        getDecorations({\n          doc,\n          name,\n          lowlight,\n          defaultLanguage,\n        }),\n      apply: (transaction, decorationSet, oldState, newState) => {\n        const oldNodeName = oldState.selection.$head.parent.type.name\n        const newNodeName = newState.selection.$head.parent.type.name\n        const oldNodes = findChildren(oldState.doc, (node) => node.type.name === name)\n        const newNodes = findChildren(newState.doc, (node) => node.type.name === name)\n\n        if (\n          transaction.docChanged &&\n          // Apply decorations if:\n          // selection includes named node,\n          ([oldNodeName, newNodeName].includes(name) ||\n            // OR transaction adds/removes named node,\n            newNodes.length !== oldNodes.length ||\n            // OR transaction has changes that completely encapsulte a node\n            // (for example, a transaction that affects the entire document).\n            // Such transactions can happen during collab syncing via y-prosemirror, for example.\n            transaction.steps.some((step) => {\n              // @ts-ignore\n              return (\n                // @ts-ignore\n                step.from !== undefined &&\n                // @ts-ignore\n                step.to !== undefined &&\n                oldNodes.some((node) => {\n                  // @ts-ignore\n                  return (\n                    // @ts-ignore\n                    node.pos >= step.from &&\n                    // @ts-ignore\n                    node.pos + node.node.nodeSize <= step.to\n                  )\n                })\n              )\n            }))\n        ) {\n          return getDecorations({\n            doc: transaction.doc,\n            name,\n            lowlight,\n            defaultLanguage,\n          })\n        }\n\n        return decorationSet.map(transaction.mapping, transaction.doc)\n      },\n    },\n\n    props: {\n      decorations(state) {\n        return lowlightPlugin.getState(state)\n      },\n    },\n  })\n\n  return lowlightPlugin\n}\n\nexport default LowlightPlugin\n"
  },
  {
    "path": "src/lib/tiptap-extension-link/helpers/autolink.ts",
    "content": "import {\n  combineTransactionSteps,\n  findChildrenInRange,\n  getChangedRanges,\n  getMarksBetween,\n  NodeWithPos,\n} from '@tiptap/core'\nimport { MarkType } from '@tiptap/pm/model'\nimport { Plugin, PluginKey } from '@tiptap/pm/state'\nimport { find, test } from 'linkifyjs'\nimport { nanoid } from 'nanoid'\n\ntype AutolinkOptions = {\n  type: MarkType\n  validate?: (url: string) => boolean\n}\n\nfunction autolink(options: AutolinkOptions): Plugin {\n  return new Plugin({\n    key: new PluginKey('autolink'),\n    appendTransaction: (transactions, oldState, newState) => {\n      const docChanges = transactions.some((transaction) => transaction.docChanged) && !oldState.doc.eq(newState.doc)\n      const preventAutolink = transactions.some((transaction) => transaction.getMeta('preventAutolink'))\n\n      if (!docChanges || preventAutolink) {\n        return undefined\n      }\n\n      const { tr } = newState\n      const transform = combineTransactionSteps(oldState.doc, [...transactions])\n      const { mapping } = transform\n      const changes = getChangedRanges(transform)\n      let needsAutolink = true\n\n      changes.forEach(({ oldRange, newRange }) => {\n        // At first we check if we have to remove links.\n        getMarksBetween(oldRange.from, oldRange.to, oldState.doc)\n          .filter((item) => item.mark.type === options.type)\n          .forEach((oldMark) => {\n            const newFrom = mapping.map(oldMark.from)\n            const newTo = mapping.map(oldMark.to)\n            const newMarks = getMarksBetween(newFrom, newTo, newState.doc).filter(\n              (item) => item.mark.type === options.type,\n            )\n\n            if (!newMarks.length) {\n              return\n            }\n\n            const newMark = newMarks[0]\n            const oldLinkText = oldState.doc.textBetween(oldMark.from, oldMark.to, undefined, ' ')\n            const newLinkText = newState.doc.textBetween(newMark.from, newMark.to, undefined, ' ')\n            const wasLink = test(oldLinkText)\n            const isLink = test(newLinkText)\n\n            if (wasLink) {\n              needsAutolink = false\n            }\n\n            // Remove only the link, if it was a link before too.\n            // Because we don’t want to remove links that were set manually.\n            if (wasLink && !isLink) {\n              tr.removeMark(needsAutolink ? newMark.from : newMark.to - 1, newMark.to, options.type)\n            }\n          })\n\n        // Now let’s see if we can add new links.\n        const nodesInChangedRanges = findChildrenInRange(newState.doc, newRange, (node) => node.isTextblock)\n\n        let textBlock: NodeWithPos | undefined\n        let textBeforeWhitespace: string | undefined\n\n        if (nodesInChangedRanges.length > 1) {\n          // Grab the first node within the changed ranges (ex. the first of two paragraphs when hitting enter).\n          textBlock = nodesInChangedRanges[0]\n          textBeforeWhitespace = newState.doc.textBetween(\n            textBlock.pos,\n            textBlock.pos + textBlock.node.nodeSize,\n            undefined,\n            ' ',\n          )\n        } else if (\n          nodesInChangedRanges.length &&\n          // We want to make sure to include the block seperator argument to treat hard breaks like spaces.\n          newState.doc.textBetween(newRange.from, newRange.to, ' ', ' ').endsWith(' ')\n        ) {\n          textBlock = nodesInChangedRanges[0]\n          textBeforeWhitespace = newState.doc.textBetween(textBlock.pos, newRange.to, undefined, ' ')\n        }\n\n        if (textBlock && textBeforeWhitespace) {\n          const wordsBeforeWhitespace = textBeforeWhitespace.split(' ').filter((s) => s !== '')\n\n          if (wordsBeforeWhitespace.length <= 0) {\n            return false\n          }\n\n          const lastWordBeforeSpace = wordsBeforeWhitespace[wordsBeforeWhitespace.length - 1]\n          const lastWordAndBlockOffset = textBlock.pos + textBeforeWhitespace.lastIndexOf(lastWordBeforeSpace)\n\n          if (!lastWordBeforeSpace) {\n            return false\n          }\n\n          find(lastWordBeforeSpace)\n            .filter((link) => link.isLink)\n            .filter((link) => {\n              if (options.validate) {\n                return options.validate(link.value)\n              }\n              return true\n            })\n            // Calculate link position.\n            .map((link) => ({\n              ...link,\n              from: lastWordAndBlockOffset + link.start + 1,\n              to: lastWordAndBlockOffset + link.end + 1,\n            }))\n            // Add link mark.\n            .forEach((link) => {\n              if (getMarksBetween(link.from, link.to, newState.doc).some((item) => item.mark.type === options.type)) {\n                return\n              }\n              const id = nanoid(8)\n              tr.setMeta('hmPlugin:uncheckedLink', id)\n              tr.addMark(\n                link.from,\n                link.to,\n                options.type.create({\n                  href: link.href,\n                  id,\n                }),\n              )\n            })\n        }\n        return true\n      })\n\n      if (!tr.steps.length) {\n        return undefined\n      }\n\n      return tr\n    },\n  })\n}\n\nexport default autolink\n"
  },
  {
    "path": "src/lib/tiptap-extension-link/helpers/clickHandler.ts",
    "content": "import { getAttributes } from '@tiptap/core'\nimport { MarkType } from '@tiptap/pm/model'\nimport { Plugin, PluginKey } from '@tiptap/pm/state'\n\ntype ClickHandlerOptions = {\n  type: MarkType\n  openUrl?: any\n}\n\nfunction clickHandler(options: ClickHandlerOptions): Plugin {\n  return new Plugin({\n    key: new PluginKey('handleClickLink'),\n    props: {\n      handleClick: (view, pos, event) => {\n        if (event.button !== 0) {\n          return false\n        }\n\n        const attrs = getAttributes(view.state, options.type.name)\n        const link = event.target as HTMLLinkElement\n\n        const href = link?.href ?? attrs.href\n\n        if (link && href) {\n          const newWindow = false // todo, check for meta key\n          options.openUrl(href, newWindow)\n          return true\n        }\n\n        return false\n      },\n    },\n  })\n}\n\nexport default clickHandler\n"
  },
  {
    "path": "src/lib/tiptap-extension-link/index.ts",
    "content": "import { Link } from './link'\n\nexport * from './link'\n\nexport default Link\n"
  },
  {
    "path": "src/lib/tiptap-extension-link/link.ts",
    "content": "import { Mark, mergeAttributes } from '@tiptap/core'\nimport { Plugin } from '@tiptap/pm/state'\nimport { registerCustomProtocol, reset } from 'linkifyjs'\nimport { isHypermediaScheme } from '../utils'\n\nimport autolink from './helpers/autolink'\nimport clickHandler from './helpers/clickHandler'\n\nexport interface LinkProtocolOptions {\n  scheme: string\n  optionalSlashes?: boolean\n}\n\nexport interface LinkOptions {\n  /**\n   * If enabled, it adds links as you type.\n   */\n  autolink: boolean\n  /**\n   * An array of custom protocols to be registered with linkifyjs.\n   */\n  protocols: Array<LinkProtocolOptions | string>\n  /**\n   * If enabled, links will be opened on click.\n   */\n  openOnClick: boolean\n  /**\n   * Adds a link to the current selection if the pasted content only contains an url.\n   */\n  linkOnPaste: boolean\n  /**\n   * A list of HTML attributes to be rendered.\n   */\n  HTMLAttributes: Record<string, any>\n  /**\n   * A validation function that modifies link verification for the auto linker.\n   * @param url - The url to be validated.\n   * @returns - True if the url is valid, false otherwise.\n   */\n  validate?: (url: string) => boolean\n  checkWebUrl: (url: string) => Promise<any>\n}\n\ndeclare module '@tiptap/core' {\n  interface Commands<ReturnType> {\n    link: {\n      /**\n       * Set a link mark\n       */\n      setLink: (attributes: { href: string; target?: string | null }) => ReturnType\n      /**\n       * Toggle a link mark\n       */\n      toggleLink: (attributes: { href: string; target?: string | null }) => ReturnType\n      /**\n       * Unset a link mark\n       */\n      unsetLink: () => ReturnType\n    }\n  }\n}\n\nexport const Link = Mark.create<LinkOptions>({\n  name: 'link',\n\n  priority: 1000,\n\n  keepOnSplit: false,\n\n  onCreate() {\n    this.options.protocols.forEach((protocol) => {\n      if (typeof protocol === 'string') {\n        registerCustomProtocol(protocol)\n        return\n      }\n      registerCustomProtocol(protocol.scheme, protocol.optionalSlashes)\n    })\n  },\n\n  onDestroy() {\n    reset()\n  },\n\n  // inclusive() {\n  //   return this.options.autolink\n  // },\n\n  inclusive: false,\n\n  addOptions() {\n    return {\n      openOnClick: true,\n      linkOnPaste: true,\n      autolink: true,\n      protocols: [],\n      HTMLAttributes: {\n        target: '_blank',\n        rel: 'noopener noreferrer nofollow',\n        class: 'link',\n      },\n      validate: undefined,\n      checkWebUrl: () => Promise.resolve(),\n    }\n  },\n\n  addAttributes() {\n    return {\n      href: {\n        default: null,\n      },\n      target: {\n        default: this.options.HTMLAttributes.target,\n      },\n      class: {\n        default: this.options.HTMLAttributes.class,\n      },\n      id: {\n        default: null,\n      },\n    }\n  },\n\n  parseHTML() {\n    return [{ tag: 'a[href]:not([href *= \"javascript:\" i])' }]\n  },\n\n  renderHTML({ HTMLAttributes }) {\n    const attrs = mergeAttributes(this.options.HTMLAttributes, HTMLAttributes)\n    const isHM = isHypermediaScheme(HTMLAttributes.href)\n    return [\n      'span',\n      {\n        ...attrs,\n        class: `${attrs.class} ${isHM ? 'hm-link' : ''}`,\n      },\n      0,\n    ]\n  },\n\n  addCommands() {\n    return {\n      setLink:\n        (attributes) =>\n        ({ chain }) => {\n          return chain().setMark(this.name, attributes).setMeta('preventAutolink', true).run()\n        },\n\n      toggleLink:\n        (attributes) =>\n        ({ chain }) => {\n          return chain()\n            .toggleMark(this.name, attributes, { extendEmptyMarkRange: true })\n            .setMeta('preventAutolink', true)\n            .run()\n        },\n\n      unsetLink:\n        () =>\n        ({ chain }) => {\n          return chain().unsetMark(this.name, { extendEmptyMarkRange: true }).setMeta('preventAutolink', true).run()\n        },\n    }\n  },\n\n  addProseMirrorPlugins() {\n    const plugins: Plugin[] = []\n\n    if (this.options.autolink) {\n      plugins.push(\n        autolink({\n          type: this.type,\n          validate: this.options.validate,\n        }),\n      )\n    }\n\n    if (this.options.openOnClick) {\n      plugins.push(\n        clickHandler({\n          openUrl: (this.options as any).openUrl,\n          type: this.type,\n        }),\n      )\n    }\n\n    return plugins\n  },\n})\n"
  },
  {
    "path": "src/lib/ui.ts",
    "content": "import { clsx, type ClassValue } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\n// eslint-disable-next-line import/prefer-default-export\nexport function cn(...inputs: ClassValue[]) {\n  return twMerge(clsx(inputs))\n}\n"
  },
  {
    "path": "src/lib/utils/block-utils.ts",
    "content": "import { Node, NodeType } from 'prosemirror-model'\nimport { EditorView } from '@tiptap/pm/view'\nimport { Editor } from '@tiptap/core'\nimport { Node as TipTapNode } from '@tiptap/pm/model'\nimport { Block, BlockSchema, BlockNoteEditor, BlockChildrenType } from '../blocknote'\nimport getNodeById from './node-utils'\n\nexport type BlockInfoWithoutPositions = {\n  id: string\n  node: Node\n  contentNode: Node\n  contentType: NodeType\n  numChildBlocks: number\n}\n\nexport type BlockInfo = BlockInfoWithoutPositions & {\n  startPos: number\n  endPos: number\n  depth: number\n}\n\n/**\n * Helper function for `getBlockInfoFromPos`, returns information regarding\n * provided blockContainer node.\n * @param blockContainer The blockContainer node to retrieve info for.\n */\nexport function getBlockInfo(blockContainer: Node): BlockInfoWithoutPositions {\n  const id = blockContainer.attrs.id\n  const contentNode = blockContainer.firstChild!\n  const contentType = contentNode.type\n  const numChildBlocks = blockContainer.childCount === 2 ? blockContainer.lastChild!.childCount : 0\n\n  return {\n    id,\n    node: blockContainer,\n    contentNode,\n    contentType,\n    numChildBlocks,\n  }\n}\n\n/**\n * Retrieves information regarding the nearest blockContainer node in a\n * ProseMirror doc, relative to a position.\n * @param doc The ProseMirror doc.\n * @param pos An integer position.\n * @returns A BlockInfo object for the nearest blockContainer node.\n */\nexport function getBlockInfoFromPos(doc: Node, pos: number): BlockInfo {\n  // If the position is outside the outer block group, we need to move it to the\n  // nearest block. This happens when the collaboration plugin is active, where\n  // the selection is placed at the very end of the doc.\n  const outerBlockGroupStartPos = 1\n  const outerBlockGroupEndPos = doc.nodeSize - 2\n  if (pos <= outerBlockGroupStartPos) {\n    pos = outerBlockGroupStartPos + 1\n\n    while (doc.resolve(pos).parent.type.name !== 'blockContainer' && pos < outerBlockGroupEndPos) {\n      pos++\n    }\n  } else if (pos >= outerBlockGroupEndPos) {\n    pos = outerBlockGroupEndPos - 1\n\n    while (doc.resolve(pos).parent.type.name !== 'blockContainer' && pos > outerBlockGroupStartPos) {\n      pos--\n    }\n  }\n\n  // This gets triggered when a node selection on a block is active, i.e. when\n  // you drag and drop a block.\n  if (doc.resolve(pos).parent.type.name === 'blockGroup') {\n    pos++\n  }\n\n  const $pos = doc.resolve(pos)\n\n  const maxDepth = $pos.depth\n  let node = $pos.node(maxDepth)\n  let depth = maxDepth\n\n  // eslint-disable-next-line no-constant-condition\n  while (true) {\n    if (depth < 0) {\n      throw new Error(\n        'Could not find blockContainer node. This can only happen if the underlying BlockNote schema has been edited.',\n      )\n    }\n\n    if (node.type.name === 'blockContainer') {\n      break\n    }\n\n    depth -= 1\n    node = $pos.node(depth)\n  }\n\n  const { id, contentNode, contentType, numChildBlocks } = getBlockInfo(node)\n\n  const startPos = $pos.start(depth)\n  const endPos = $pos.end(depth)\n\n  return {\n    id,\n    node,\n    contentNode,\n    contentType,\n    numChildBlocks,\n    startPos,\n    endPos,\n    depth,\n  }\n}\n\nexport function updateGroup<BSchema extends BlockSchema>(\n  editor: BlockNoteEditor<BSchema>,\n  block: any,\n  listType: BlockChildrenType,\n) {\n  const { posBeforeNode } = getNodeById(block.id, editor._tiptapEditor.state.doc)\n\n  const posData = getBlockInfoFromPos(editor._tiptapEditor.state.doc, posBeforeNode + 1)\n\n  if (!posData) return\n\n  const { startPos } = posData\n  editor.focus()\n  editor._tiptapEditor.commands.UpdateGroup(startPos, listType, false)\n}\n\n// Find the next block from provided position or from selection\nexport function findNextBlock(view: EditorView, pos?: number) {\n  const { state } = view\n  const currentPos = pos || state.selection.from\n  const blockInfo = getBlockInfoFromPos(state.doc, currentPos)!\n  let nextBlock: Node | undefined\n  let nextBlockPos: number | undefined\n  // Find first child\n  if (blockInfo.node.lastChild?.type.name === 'blockGroup') {\n    state.doc.nodesBetween(blockInfo.startPos, blockInfo.endPos, (node, nodePos) => {\n      if (node.attrs.id === blockInfo.node.lastChild?.firstChild?.attrs.id) {\n        nextBlock = node\n        nextBlockPos = nodePos\n      }\n    })\n  }\n  const maybePos = pos ? state.doc.resolve(pos) : state.selection.$to\n  const nextBlockInfo = getBlockInfoFromPos(state.doc, maybePos.end() + 3)\n  // If there is first child, return it as a next block\n  if (nextBlock && nextBlockPos) {\n    if (!nextBlockInfo || nextBlockPos <= nextBlockInfo.startPos - 1)\n      return {\n        nextBlock,\n        nextBlockPos,\n      }\n  }\n  if (!nextBlockInfo || nextBlockInfo.startPos < currentPos) return undefined\n  return {\n    nextBlock: nextBlockInfo.node,\n    nextBlockPos: nextBlockInfo.startPos - 1,\n  }\n}\n\n// Find the previous block from provided position or from selection\nexport function findPreviousBlock(view: EditorView, pos?: number) {\n  const { state } = view\n  const currentPos = pos || state.selection.from\n  const $currentPos = state.doc.resolve(currentPos)\n  if ($currentPos.start() <= 3) return undefined\n  const blockInfo = getBlockInfoFromPos(state.doc, currentPos)!\n  const prevBlockInfo = getBlockInfoFromPos(state.doc, $currentPos.start() - 3)\n  // If prev block has no children, return it\n  if (prevBlockInfo.node.childCount === 1)\n    return {\n      prevBlock: prevBlockInfo.node,\n      prevBlockPos: prevBlockInfo.startPos - 1,\n    }\n  let prevBlock: Node | undefined\n  let prevBlockPos: number | undefined\n  // Find last child of prev block and return it\n  if (prevBlockInfo.node.lastChild?.type.name === 'blockGroup') {\n    state.doc.nodesBetween(prevBlockInfo.startPos + 3, blockInfo.startPos - 2, (node, nodePos) => {\n      if (node.type.name === 'blockContainer') {\n        prevBlock = node\n        prevBlockPos = nodePos\n      }\n    })\n  }\n  if (prevBlock && prevBlockPos) return { prevBlock, prevBlockPos }\n  return undefined\n}\n\nexport function setGroupTypes(tiptap: Editor, blocks: Array<Partial<Block<BlockSchema>>>) {\n  blocks.forEach((block: Partial<Block<BlockSchema>>) => {\n    tiptap.state.doc.descendants((node: TipTapNode, pos: number) => {\n      if (node.attrs.id === block.id && block.props && block.props.childrenType) {\n        node.descendants((child: TipTapNode, childPos: number) => {\n          if (child.type.name === 'blockGroup') {\n            setTimeout(() => {\n              let tr = tiptap.state.tr\n              tr = block.props?.start\n                ? tr.setNodeMarkup(pos + childPos + 1, null, {\n                    listType: block.props?.childrenType,\n                    listLevel: block.props?.listLevel,\n                    start: parseInt(block.props?.start, 10),\n                  })\n                : tr.setNodeMarkup(pos + childPos + 1, null, {\n                    listType: block.props?.childrenType,\n                    listLevel: block.props?.listLevel,\n                  })\n              tiptap.view.dispatch(tr)\n            })\n            return false\n          }\n          return true\n        })\n      }\n    })\n    if (block.children) {\n      setGroupTypes(tiptap, block.children)\n    }\n  })\n}\n"
  },
  {
    "path": "src/lib/utils/entity-id-url.ts",
    "content": "export const HYPERMEDIA_SCHEME = 'hm'\n\nexport function isHypermediaScheme(url?: string) {\n  return !!url?.startsWith(`${HYPERMEDIA_SCHEME}://`)\n}\n"
  },
  {
    "path": "src/lib/utils/index.ts",
    "content": "export * from './block-utils'\nexport { default as getNodeById } from './node-utils'\nexport * from './entity-id-url'\n"
  },
  {
    "path": "src/lib/utils/node-utils.ts",
    "content": "import { Node } from 'prosemirror-model'\n\n/**\n * Get a TipTap node by id\n */\nfunction getNodeById(id: string, doc: Node): { node: Node; posBeforeNode: number } {\n  let targetNode: Node | undefined\n  let posBeforeNode: number | undefined\n\n  doc.firstChild!.descendants((node, pos) => {\n    // Skips traversing nodes after node with target ID has been found.\n    if (targetNode) {\n      return false\n    }\n\n    // Keeps traversing nodes if block with target ID has not been found.\n    if (node.type.name !== 'blockContainer' || node.attrs.id !== id) {\n      return true\n    }\n\n    targetNode = node\n    posBeforeNode = pos + 1\n\n    return false\n  })\n\n  if (targetNode === undefined || posBeforeNode === undefined) {\n    throw Error('Could not find block in the editor with matching ID.')\n  }\n\n  return {\n    node: targetNode,\n    posBeforeNode: posBeforeNode,\n  }\n}\n\nexport default getNodeById\n"
  },
  {
    "path": "src/lib/welcome-note.ts",
    "content": "const welcomeNote = `## Welcome to Reor!\n\nReor is a private AI personal knowledge management tool. Our philosophy is that AI should be a thought enhancer not a thought replacer: Reor helps you find & connect notes, discover new insights and enhance your reasoning.\n\nSome features you should be aware of:\n\n- **Chat:**\n\n  - Ask your entire set of notes anything you want to know! Reor will automatically give the LLM relevant context.\n\n  - Ask things like “What are my thoughts on philosophy?” or “Summarize my notes on black holes\"\n\n  - In settings, you can attach a local LLM or connect to OpenAI models with your API key.\n\n  - LLMs can be provided 'tools' like search, create files, and more. This is powerful for getting the LLM to act agentically in your knowledge base.\n\n  - You can also edit the system prompt provided to the LLM.\n\n- **Writing assistant:**\n\n  - Reor has a built-in writing assistant that can help you with your writing.\n\n  - You can trigger it by hitting space on a newline or selecting text and hitting the icon that appears.\n\n- **Links:**\n\n  - Reor automatically links your notes to other notes in the Related Notes sidebar.\n\n  - You can view the Related Notes to a particular chunk of text by highlighting it and hitting the button that appears.\n\n  - You can also create inline links by surrounding text with two square brackets (like in Obsidian). [[Like this]]\n\nYou can import notes from other apps by adding markdown files to your vault directory. Note that Reor will only read markdown files.\n\nPlease join our [Discord community](https://discord.gg/QBhGUFJYuH) to ask questions, give feedback, and get help. We're excited to have you on board!`\n\nexport default welcomeNote\n"
  },
  {
    "path": "src/main.tsx",
    "content": "import React from 'react'\nimport ReactDOM from 'react-dom/client'\n// import * as Sentry from '@sentry/electron/renderer'\nimport * as Sentry from '@sentry/react'\nimport { toast } from 'react-toastify'\n\nimport App from './App'\nimport './styles/global.css'\nimport errorToStringRendererProcess from './lib/error'\n\nif (process.env.NODE_ENV === 'production') {\n  Sentry.init({\n    integrations: [],\n  })\n}\n\nwindow.addEventListener('error', (event) => {\n  event.preventDefault()\n  toast.error(errorToStringRendererProcess(event.error))\n  if (process.env.NODE_ENV === 'production') {\n    Sentry.captureException(event.error)\n  }\n})\n\nwindow.addEventListener('unhandledrejection', (event) => {\n  event.preventDefault()\n  toast.error(errorToStringRendererProcess(event.reason))\n  if (process.env.NODE_ENV === 'production') {\n    Sentry.captureException(event.reason)\n  }\n})\n\nReactDOM.createRoot(document.getElementById('root') as HTMLElement).render(<App />)\n"
  },
  {
    "path": "src/styles/chat.css",
    "content": "/* Main chat container */\n.markdown-content p {\n  padding: 0.25rem;\n  margin: 0;\n  word-wrap: break-word;\n}\n\n.chat-container {\n  line-height: 1.6;\n}\n\n/* User's message box */\n.user-chat-message {\n  background-color: rgb(50, 50, 50);\n  color: rgb(220, 220, 220);\n  border-radius: 10px;\n  margin: 10px 0;\n  padding: 0 4px;\n  font-size: 0.94rem;\n  line-height: 1.2rem;\n}\n\n/* AI's message box */\n.assistant-chat-message {\n  color: rgb(210, 210, 210);\n  margin: 10px 0;\n  padding: 0 4px;\n  font-size: 0.94rem;\n  line-height: 1.2rem;\n}\n\n@keyframes dropdown-fadeIn {\n  from {\n    opacity: 0;\n    transform: translateY(0);\n  }\n  to {\n    opacity: 1;\n    transform: translateY(10px);\n  }\n}\n\n.animate-dropdown-fadeIn {\n  opacity: 0;\n  animation: dropdown-fadeIn 0.5s ease-out forwards;\n}\n"
  },
  {
    "path": "src/styles/global.css",
    "content": "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n\n:root {\n  --bg-000: 60 1.8% 22%;\n  --gen-100: 50 23.1% 94.9%;\n}\n\nhtml,\nbody {\n  padding: 0;\n  margin: 0;\n  min-height: 100%;\n  min-width: 100%;\n  overflow-y: hidden;\n}\n\n* {\n  box-sizing: border-box;\n  border: none;\n  font-family: 'Inter', sans-serif;\n}\n\na {\n  cursor: pointer;\n  color: rgb(16, 214, 218);\n}\n\n::marker {\n  color: rgb(163 163 163);\n}\n\n.electron-drag {\n  -webkit-app-region: drag;\n}\n\n.electron-no-drag {\n  -webkit-app-region: no-drag;\n}\n\nbutton {\n  -webkit-app-region: no-drag;\n}\n\n::-webkit-scrollbar {\n  width: 7px;\n  /* Adjust the width of the scrollbar */\n}\n\n::-webkit-scrollbar-track {\n  background: transparent;\n  /* Make the scrollbar track transparent */\n}\n\n::-webkit-scrollbar-thumb {\n  background-color: rgba(95, 125, 139, 0.5);\n  border-radius: 2px;\n}\n\n.icon {\n  margin-right: 16px;\n}\n\n.text {\n  align-self: center;\n}\n\n/* Css for table on bubble-menu */\n.table-size-selector {\n  background: #1e1e1e;\n  border: 1px solid rgb(55 65 81);\n  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n  padding: 10px;\n  z-index: 1050;\n}\n\n.table-size-selector .row {\n  display: flex;\n}\n\n.table-size-selector .cell {\n  width: 20px;\n  height: 20px;\n  border: 1px solid #ccc;\n  background-color: #323232;\n  transition: background-color 0.3s;\n  margin: 1px;\n}\n\n.table-size-selector .cell.hovered,\n.table-size-selector .cell:hover {\n  background-color: #ddd;\n}\n\n/**\n * TAKEN FROM: https://tiptap.dev/docs/editor/extensions/nodes/table\n */\n/* Basic editor styles */\n.tiptap :first-child {\n  margin-top: 0;\n}\n\n/* Table-specific styling */\n.tiptap table {\n  border-collapse: collapse;\n  margin: 0;\n  overflow: hidden;\n  table-layout: fixed;\n  width: 100%;\n}\n\n.tiptap td,\n.tiptap th {\n  border: 1px solid #ccc;\n  box-sizing: border-box;\n  min-width: 1em;\n  padding: 6px 8px;\n  position: relative;\n  vertical-align: top;\n}\n\n.tiptap td > *,\n.tiptap th > * {\n  margin-bottom: 0;\n}\n\n.tiptap th {\n  /* background-color: rgba(61, 37, 20, .05); */\n  background-color: rgba(162, 157, 153, 0.5);\n  /* 50% transparent white */\n  font-weight: bold;\n  text-align: left;\n}\n\n.tiptap .selectedCell:after {\n  /* background: rgba(61, 37, 20, .08); */\n  content: '';\n  left: 0;\n  right: 0;\n  top: 0;\n  bottom: 0;\n  pointer-events: none;\n  position: absolute;\n  z-index: 2;\n}\n\n.tiptap .column-resize-handle {\n  background-color: var(--purple);\n  bottom: -2px;\n  pointer-events: none;\n  position: absolute;\n  right: -2px;\n  top: 0;\n  width: 4px;\n}\n\n.tiptap .tableWrapper {\n  margin: 1.5rem 0;\n  overflow-x: auto;\n}\n\n.tiptap.resize-cursor {\n  cursor: ew-resize;\n  cursor: col-resize;\n}\n\n.my-day-picker .rdp {\n  @apply text-xs;\n  /* Adjust font size */\n}\n\n.my-day-picker .rdp-months {\n  @apply p-2;\n  /* Adjust padding */\n}\n\n.my-day-picker .rdp-caption {\n  @apply text-sm;\n  /* Adjust caption font size */\n}\n\n.my-day-picker .rdp-day {\n  @apply w-6 h-6 leading-6;\n  /* Adjust day cell size */\n}\n\n@layer base {\n  :root {\n    --background: 0 0% 100%;\n    --foreground: 20 14.3% 4.1%;\n    --card: 0 0% 100%;\n    --card-foreground: 20 14.3% 4.1%;\n    --popover: 0 0% 100%;\n    --popover-foreground: 20 14.3% 4.1%;\n    --primary: 24 9.8% 10%;\n    --primary-foreground: 60 9.1% 97.8%;\n    --secondary: 60 4.8% 95.9%;\n    --secondary-foreground: 24 9.8% 10%;\n    --muted: 60 4.8% 95.9%;\n    --muted-foreground: 25 5.3% 44.7%;\n    --accent: 60 4.8% 95.9%;\n    --accent-foreground: 24 9.8% 10%;\n    --destructive: 0 84.2% 60.2%;\n    --destructive-foreground: 60 9.1% 97.8%;\n    --border: 20 5.9% 90%;\n    --input: 20 5.9% 90%;\n    --ring: 20 14.3% 4.1%;\n    --chart-1: 12 76% 61%;\n    --chart-2: 173 58% 39%;\n    --chart-3: 197 37% 24%;\n    --chart-4: 43 74% 66%;\n    --chart-5: 27 87% 67%;\n    --radius: 0.5rem;\n  }\n  .dark {\n    --background: 20 14.3% 4.1%;\n    --foreground: 60 9.1% 97.8%;\n    --card: 20 14.3% 4.1%;\n    --card-foreground: 60 9.1% 97.8%;\n    --popover: 20 14.3% 4.1%;\n    --popover-foreground: 60 9.1% 97.8%;\n    --primary: 60 9.1% 97.8%;\n    --primary-foreground: 24 9.8% 10%;\n    --secondary: 60 2% 22%;\n    --secondary-foreground: 60 9.1% 97.8%;\n    --muted: 12 6.5% 15.1%;\n    --muted-foreground: 24 5.4% 63.9%;\n    --accent: 12 6.5% 15.1%;\n    --accent-foreground: 60 9.1% 97.8%;\n    --destructive: 0 62.8% 30.6%;\n    --destructive-foreground: 60 9.1% 97.8%;\n    --border: 12 6.5% 15.1%;\n    --input: 12 6.5% 15.1%;\n    --ring: 24 5.7% 82.9%;\n    --chart-1: 220 70% 50%;\n    --chart-2: 160 60% 45%;\n    --chart-3: 30 80% 55%;\n    --chart-4: 280 65% 60%;\n    --chart-5: 340 75% 55%;\n  }\n}\n\n@layer base {\n  * {\n    @apply border-border;\n  }\n  body {\n    @apply bg-background text-foreground;\n  }\n}\n"
  },
  {
    "path": "src/styles/history.scss",
    "content": ".history-container {\n  padding: 1px;\n  margin: 2px 0px;\n  overflow: hidden;\n\n  button {\n    background: none;\n    font-size: 20px;\n    border: none;\n  }\n\n  button#forward {\n    padding-left: 0px;\n  }\n\n  .history-menu {\n    position: absolute;\n    background-color: #666666;\n    box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.2);\n    border-radius: 4px;\n    padding: 3px 0px;\n    z-index: 1000;\n\n    ul {\n      list-style-type: none;\n      padding: 0;\n      margin: 0;\n\n      li {\n        padding: 4px 8px;\n        cursor: pointer;\n        background-color: none;\n\n        &:hover {\n          background-color: #7f7f7f;\n        }\n\n        div {\n          color: #eeeeee;\n          font-size: 12px;\n          margin: 2px auto;\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "src/styles/styles.d.ts",
    "content": "declare module '*.module.css'\n"
  },
  {
    "path": "src/styles/tiptap.scss",
    "content": ".tiptap {\n  color: rgb(197, 196, 196);\n  height: 100%;\n  outline: none;\n  padding: 0.5rem;\n  padding-left: 1rem;\n  > * + * {\n    margin-top: 0.75em;\n  }\n\n  ul,\n  ol {\n    padding: 0 1rem;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    line-height: 1.1;\n  }\n\n  code {\n    background-color: rgba(#616161, 0.1);\n    color: #616161;\n  }\n\n  pre {\n    background: #0d0d0d;\n    color: #fff;\n    font-family: 'JetBrainsMono', monospace;\n    padding: 0.75rem 1rem;\n    border-radius: 0.5rem;\n\n    code {\n      color: inherit;\n      padding: 0;\n      background: none;\n      font-size: 0.8rem;\n    }\n  }\n\n  img {\n    max-width: 100%;\n    height: auto;\n  }\n\n  blockquote {\n    padding-left: 1rem;\n    border-left: 2px solid rgba(#0d0d0d, 0.1);\n  }\n\n  hr {\n    border: none;\n    border-top: 2px solid rgba(#0d0d0d, 0.1);\n    margin: 2rem 0;\n  }\n}\n\nul[data-type='taskList'] {\n  list-style: none;\n  padding: 0;\n\n  p {\n    margin: 0;\n  }\n\n  li {\n    display: flex;\n\n    > label {\n      flex: 0 0 auto;\n      margin-right: 0.5rem;\n      user-select: none;\n    }\n\n    > div {\n      flex: 1 1 auto;\n    }\n\n    ul li,\n    ol li {\n      display: list-item;\n    }\n\n    ul[data-type='taskList'] > li {\n      display: flex;\n    }\n  }\n}\n"
  },
  {
    "path": "tailwind.config.js",
    "content": "/** @type {import('tailwindcss').Config} */\nexport default {\n  darkMode: ['class'],\n  content: ['./index.html', './src/**/*.{js,ts,jsx,tsx}'],\n  theme: {\n    extend: {\n      colors: {\n        'deep-blue': '#002b36',\n        'dark-gray-c-one': '#121212',\n        'dark-gray-c-two': '#1e1e1e',\n        'dark-gray-c-three': '#222222',\n        'dark-gray-c-four': '#242424',\n        'dark-gray-c-five': '#272727',\n        'dark-gray-c-six': '#2c2c2c',\n        'dark-gray-c-seven': '#2e2e2e',\n        'dark-gray-c-eight': '#333333',\n        'dark-gray-c-nine': '#343434',\n        'dark-gray-c-ten': '#383838',\n        'dark-gray-c-eleven': '#191919',\n        'dark-slate-gray': '#2F4F4F',\n        'light-arsenic': '#182c44',\n        'distinct-dark-purple': '#3a395e',\n        'moodly-blue': '#7f7dcb',\n        'bg-000': 'hsl(var(--bg-000) / 1.0)',\n        'text-gen-100': 'hsl(var(--gen-100) / 1.0)',\n        background: 'hsl(var(--background))',\n        foreground: 'hsl(var(--foreground))',\n        card: {\n          DEFAULT: 'hsl(var(--card))',\n          foreground: 'hsl(var(--card-foreground))',\n        },\n        popover: {\n          DEFAULT: 'hsl(var(--popover))',\n          foreground: 'hsl(var(--popover-foreground))',\n        },\n        primary: {\n          DEFAULT: 'hsl(var(--primary))',\n          foreground: 'hsl(var(--primary-foreground))',\n        },\n        secondary: {\n          DEFAULT: 'hsl(var(--secondary))',\n          foreground: 'hsl(var(--secondary-foreground))',\n        },\n        muted: {\n          DEFAULT: 'hsl(var(--muted))',\n          foreground: 'hsl(var(--muted-foreground))',\n        },\n        accent: {\n          DEFAULT: 'hsl(var(--accent))',\n          foreground: 'hsl(var(--accent-foreground))',\n        },\n        destructive: {\n          DEFAULT: 'hsl(var(--destructive))',\n          foreground: 'hsl(var(--destructive-foreground))',\n        },\n        border: 'hsl(var(--border))',\n        input: 'hsl(var(--input))',\n        ring: 'hsl(var(--ring))',\n        chart: {\n          1: 'hsl(var(--chart-1))',\n          2: 'hsl(var(--chart-2))',\n          3: 'hsl(var(--chart-3))',\n          4: 'hsl(var(--chart-4))',\n          5: 'hsl(var(--chart-5))',\n        },\n      },\n      height: {\n        titlebar: '30px',\n        'below-titlebar': 'calc(100vh - 30px)',\n      },\n      minHeight: {\n        'below-titlebar-min': 'calc(100vh - 30px)',\n      },\n      transitionProperty: {\n        height: 'height',\n        spacing: 'margin, padding',\n        transform: 'transform',\n      },\n      transitionDuration: {\n        400: '400ms',\n      },\n      fontSize: {\n        '2lg': '1.0rem',\n      },\n      keyframes: {\n        slideIn: {\n          '0%': {\n            transform: 'translateX(100%)',\n            opacity: '0',\n            width: '0',\n          },\n          '100%': {\n            transform: 'translateX(0)',\n            opacity: '1',\n            width: '100%',\n          },\n        },\n        bounce: {\n          '0%, 20%, 50%, 80%, 100%': {\n            opacity: '1',\n          },\n          '40%, 60%': {\n            opacity: '0',\n          },\n        },\n        shiftInDown: {\n          '0%': { transform: 'translateY(-100%)', opacity: '0', height: '0' },\n          '100%': { transform: 'translateY(0)', opacity: '1', height: '100%' },\n        },\n        slideDown: {\n          '0%': { maxHeight: '0', opacity: '0' },\n          '100%': { maxHeight: '300px', opacity: '1' },\n        }\n      },\n      animation: {\n        'slide-in': 'slideIn 0.5s ease-out',\n        bounce: 'bounce 1.4s infinite both',\n        'shift-in-down': 'shiftInDown 0.15s ease-in-out',\n        'slide-down': 'slideDown 0.30s ease-in-out forwards',    \n      },\n      borderRadius: {\n        lg: 'var(--radius)',\n        md: 'calc(var(--radius) - 2px)',\n        sm: 'calc(var(--radius) - 4px)',\n      },\n    },\n  },\n  corePlugins: {\n    preflight: false,\n  },\n  plugins: [require('tailwind-scrollbar'), require('tailwindcss-animate'), require('tailwind-scrollbar')],\n}\n"
  },
  {
    "path": "tamagui.config.ts",
    "content": "import config from '@/components/Editor/ui/src/tamagui/tamagui.config'\n\ntype Conf = typeof config\n\ndeclare module 'tamagui' {\n  interface TamaguiCustomConfig extends Conf {}\n\n  interface TypeOverride {\n    groupNames(): 'header' | 'item' | 'blocknode' | 'pathitem' | 'icon'\n  }\n\n  export interface ThemeNameOverrides {\n    fileSidebar: true\n  }\n}\n\nexport default config\n"
  },
  {
    "path": "tsconfig.json",
    "content": "{\n  \"compilerOptions\": {\n    \"target\": \"ESNext\",\n    \"useDefineForClassFields\": true,\n    \"lib\": [\"DOM\", \"DOM.Iterable\", \"ESNext\"],\n    \"allowJs\": true,\n    \"skipLibCheck\": true,\n    \"esModuleInterop\": true,\n    \"allowSyntheticDefaultImports\": true,\n    \"strict\": true,\n    \"forceConsistentCasingInFileNames\": true,\n    \"module\": \"CommonJS\",\n    \"moduleResolution\": \"node\",\n    \"resolveJsonModule\": true,\n    \"isolatedModules\": true,\n    \"noEmit\": true,\n    \"jsx\": \"react-jsx\",\n    \"baseUrl\": \".\",\n    \"paths\": {\n      \"@/*\": [\"./src/*\"],\n      \"@shared/*\": [\"./shared/*\"],\n      \"@blocknote/*\": [\"./src/lib/blocknote/*\"],\n      \"@blocknote/core/*\": [\"./src/lib/blocknote/core/*\"],\n      \"@lib/*\": [\"./src/lib/*\"]\n    }\n  },\n  \"include\": [\"src\", \"electron\", \"shared\"],\n  \"exclude\": [\"node_modules\", \"src/components/Editor/ui/src/generated-themes.ts\"],\n  \"references\": [{ \"path\": \"./tsconfig.node.json\" }]\n}\n"
  },
  {
    "path": "tsconfig.node.json",
    "content": "{\n  \"compilerOptions\": {\n    \"composite\": true,\n    \"module\": \"ESNext\",\n    \"moduleResolution\": \"Node\",\n    \"resolveJsonModule\": true,\n    \"allowSyntheticDefaultImports\": true\n  },\n  \"include\": [\"vite.config.mts\", \"package.json\"]\n}\n"
  },
  {
    "path": "vite",
    "content": ""
  },
  {
    "path": "vite.config.mts",
    "content": "import { rmSync } from 'node:fs'\nimport path from 'node:path'\nimport { fileURLToPath } from 'url'\nimport react from '@vitejs/plugin-react'\nimport { defineConfig } from 'vite'\nimport electron from 'vite-plugin-electron'\nimport renderer from 'vite-plugin-electron-renderer'\nimport { sentryVitePlugin } from '@sentry/vite-plugin'\nimport { tamaguiPlugin } from '@tamagui/vite-plugin'\nimport tailwindcss from 'tailwindcss'\nimport autoprefixer from 'autoprefixer'\n\n// For CommonJS compatibility\nimport { createRequire } from 'module'\nconst require = createRequire(import.meta.url)\nconst pkg = require('./package.json')\nconst __dirname = path.dirname(fileURLToPath(import.meta.url))\n\nexport default defineConfig(({ command }) => {\n  rmSync('dist-electron', { recursive: true, force: true })\n\n  const isBuild = command === 'build'\n  const sourcemap = true\n\n  return {\n    resolve: {\n      alias: {\n        '@': path.join(__dirname, './src'),\n        '@shared': path.join(__dirname, './shared'),\n      },\n      extensions: ['.ts', '.tsx', '.js', '.jsx', '.json', '.mjs'],\n    },\n    plugins: [\n      tamaguiPlugin({\n        config: 'tamagui.config.ts',\n        components: ['tamagui'],\n        useReactNativeWebLite: true,\n      }),\n      // tamaguiExtractPlugin(),\n      react(),\n      electron([\n        {\n          entry: 'electron/main/index.ts',\n          onstart(options) {\n            if (process.env.VSCODE_DEBUG) {\n              console.log('[startup] Electron App')\n            } else {\n              options.startup()\n            }\n          },\n          vite: {\n            build: {\n              sourcemap,\n              minify: isBuild,\n              outDir: 'dist-electron/main',\n              rollupOptions: {\n                external: [...Object.keys('dependencies' in pkg ? pkg.dependencies : {}), '@shared/utils'],\n              },\n            },\n            resolve: {\n              alias: {\n                '@shared': path.join(__dirname, 'shared'),\n                'react-native-svg': 'react-native-svg-web',\n              },\n            },\n          },\n        },\n        {\n          entry: 'electron/preload/index.ts',\n          onstart(options) {\n            options.reload()\n          },\n          vite: {\n            build: {\n              sourcemap: sourcemap ? 'inline' : undefined,\n              minify: isBuild,\n              outDir: 'dist-electron/preload',\n              rollupOptions: {\n                external: [...Object.keys('dependencies' in pkg ? pkg.dependencies : {}), '@shared/utils'],\n              },\n            },\n            resolve: {\n              alias: {\n                '@shared': path.join(__dirname, 'shared'),\n                'react-native-svg': 'react-native-svg-web',\n              },\n            },\n          },\n        },\n      ]),\n      renderer(),\n      sentryVitePlugin({\n        authToken: process.env.SENTRY_AUTH_TOKEN,\n        org: 'reor',\n        project: 'electron',\n      }),\n    ],\n    css: {\n      postcss: {\n        plugins: [tailwindcss, autoprefixer],\n      },\n    },\n    server:\n      process.env.VSCODE_DEBUG &&\n      (() => {\n        const url = new URL(pkg.debug.env.VITE_DEV_SERVER_URL)\n        return {\n          host: url.hostname,\n          port: +url.port,\n        }\n      })(),\n    clearScreen: false,\n    build: {\n      sourcemap: true,\n    },\n  }\n})\n"
  },
  {
    "path": "vite.config.mts.timestamp-1743614084858-7c68f1a6e1bea.mjs",
    "content": "// vite.config.mts\nimport { rmSync } from \"node:fs\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"url\";\nimport react from \"file:///Users/mohamed/Documents/reor/node_modules/@vitejs/plugin-react/dist/index.mjs\";\nimport { defineConfig } from \"file:///Users/mohamed/Documents/reor/node_modules/vite/dist/node/index.js\";\nimport electron from \"file:///Users/mohamed/Documents/reor/node_modules/vite-plugin-electron/dist/index.mjs\";\nimport renderer from \"file:///Users/mohamed/Documents/reor/node_modules/vite-plugin-electron-renderer/dist/index.mjs\";\nimport { sentryVitePlugin } from \"file:///Users/mohamed/Documents/reor/node_modules/@sentry/vite-plugin/dist/esm/index.mjs\";\nimport { tamaguiPlugin } from \"file:///Users/mohamed/Documents/reor/node_modules/@tamagui/vite-plugin/dist/esm/index.mjs\";\nimport tailwindcss from \"file:///Users/mohamed/Documents/reor/node_modules/tailwindcss/lib/index.js\";\nimport autoprefixer from \"file:///Users/mohamed/Documents/reor/node_modules/autoprefixer/lib/autoprefixer.js\";\nimport { createRequire } from \"module\";\nvar __vite_injected_original_import_meta_url = \"file:///Users/mohamed/Documents/reor/vite.config.mts\";\nvar require2 = createRequire(__vite_injected_original_import_meta_url);\nvar pkg = require2(\"./package.json\");\nvar __dirname = path.dirname(fileURLToPath(__vite_injected_original_import_meta_url));\nvar vite_config_default = defineConfig(({ command }) => {\n  rmSync(\"dist-electron\", { recursive: true, force: true });\n  const isBuild = command === \"build\";\n  const sourcemap = true;\n  return {\n    resolve: {\n      alias: {\n        \"@\": path.join(__dirname, \"./src\"),\n        \"@shared\": path.join(__dirname, \"./shared\")\n      },\n      extensions: [\".ts\", \".tsx\", \".js\", \".jsx\", \".json\", \".mjs\"]\n    },\n    plugins: [\n      tamaguiPlugin({\n        config: \"tamagui.config.ts\",\n        components: [\"tamagui\"],\n        useReactNativeWebLite: true\n      }),\n      // tamaguiExtractPlugin(),\n      react(),\n      electron([\n        {\n          entry: \"electron/main/index.ts\",\n          onstart(options) {\n            if (process.env.VSCODE_DEBUG) {\n              console.log(\"[startup] Electron App\");\n            } else {\n              options.startup();\n            }\n          },\n          vite: {\n            build: {\n              sourcemap,\n              minify: isBuild,\n              outDir: \"dist-electron/main\",\n              rollupOptions: {\n                external: [...Object.keys(\"dependencies\" in pkg ? pkg.dependencies : {}), \"@shared/utils\"]\n              }\n            },\n            resolve: {\n              alias: {\n                \"@shared\": path.join(__dirname, \"shared\"),\n                \"react-native-svg\": \"react-native-svg-web\"\n              }\n            }\n          }\n        },\n        {\n          entry: \"electron/preload/index.ts\",\n          onstart(options) {\n            options.reload();\n          },\n          vite: {\n            build: {\n              sourcemap: sourcemap ? \"inline\" : void 0,\n              minify: isBuild,\n              outDir: \"dist-electron/preload\",\n              rollupOptions: {\n                external: [...Object.keys(\"dependencies\" in pkg ? pkg.dependencies : {}), \"@shared/utils\"]\n              }\n            },\n            resolve: {\n              alias: {\n                \"@shared\": path.join(__dirname, \"shared\"),\n                \"react-native-svg\": \"react-native-svg-web\"\n              }\n            }\n          }\n        }\n      ]),\n      renderer(),\n      sentryVitePlugin({\n        authToken: process.env.SENTRY_AUTH_TOKEN,\n        org: \"reor\",\n        project: \"electron\"\n      })\n    ],\n    css: {\n      postcss: {\n        plugins: [tailwindcss, autoprefixer]\n      }\n    },\n    server: process.env.VSCODE_DEBUG && (() => {\n      const url = new URL(pkg.debug.env.VITE_DEV_SERVER_URL);\n      return {\n        host: url.hostname,\n        port: +url.port\n      };\n    })(),\n    clearScreen: false,\n    build: {\n      sourcemap: true\n    }\n  };\n});\nexport {\n  vite_config_default as default\n};\n//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcubXRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL1VzZXJzL21vaGFtZWQvRG9jdW1lbnRzL3Jlb3JcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIi9Vc2Vycy9tb2hhbWVkL0RvY3VtZW50cy9yZW9yL3ZpdGUuY29uZmlnLm10c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vVXNlcnMvbW9oYW1lZC9Eb2N1bWVudHMvcmVvci92aXRlLmNvbmZpZy5tdHNcIjtpbXBvcnQgeyBybVN5bmMgfSBmcm9tICdub2RlOmZzJ1xuaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJ1xuaW1wb3J0IHsgZmlsZVVSTFRvUGF0aCB9IGZyb20gJ3VybCdcbmltcG9ydCByZWFjdCBmcm9tICdAdml0ZWpzL3BsdWdpbi1yZWFjdCdcbmltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gJ3ZpdGUnXG5pbXBvcnQgZWxlY3Ryb24gZnJvbSAndml0ZS1wbHVnaW4tZWxlY3Ryb24nXG5pbXBvcnQgcmVuZGVyZXIgZnJvbSAndml0ZS1wbHVnaW4tZWxlY3Ryb24tcmVuZGVyZXInXG5pbXBvcnQgeyBzZW50cnlWaXRlUGx1Z2luIH0gZnJvbSAnQHNlbnRyeS92aXRlLXBsdWdpbidcbmltcG9ydCB7IHRhbWFndWlQbHVnaW4gfSBmcm9tICdAdGFtYWd1aS92aXRlLXBsdWdpbidcbmltcG9ydCB0YWlsd2luZGNzcyBmcm9tICd0YWlsd2luZGNzcydcbmltcG9ydCBhdXRvcHJlZml4ZXIgZnJvbSAnYXV0b3ByZWZpeGVyJ1xuXG4vLyBGb3IgQ29tbW9uSlMgY29tcGF0aWJpbGl0eVxuaW1wb3J0IHsgY3JlYXRlUmVxdWlyZSB9IGZyb20gJ21vZHVsZSdcbmNvbnN0IHJlcXVpcmUgPSBjcmVhdGVSZXF1aXJlKGltcG9ydC5tZXRhLnVybClcbmNvbnN0IHBrZyA9IHJlcXVpcmUoJy4vcGFja2FnZS5qc29uJylcbmNvbnN0IF9fZGlybmFtZSA9IHBhdGguZGlybmFtZShmaWxlVVJMVG9QYXRoKGltcG9ydC5tZXRhLnVybCkpXG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZUNvbmZpZygoeyBjb21tYW5kIH0pID0+IHtcbiAgcm1TeW5jKCdkaXN0LWVsZWN0cm9uJywgeyByZWN1cnNpdmU6IHRydWUsIGZvcmNlOiB0cnVlIH0pXG5cbiAgY29uc3QgaXNCdWlsZCA9IGNvbW1hbmQgPT09ICdidWlsZCdcbiAgY29uc3Qgc291cmNlbWFwID0gdHJ1ZVxuXG4gIHJldHVybiB7XG4gICAgcmVzb2x2ZToge1xuICAgICAgYWxpYXM6IHtcbiAgICAgICAgJ0AnOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9zcmMnKSxcbiAgICAgICAgJ0BzaGFyZWQnOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9zaGFyZWQnKSxcbiAgICAgIH0sXG4gICAgICBleHRlbnNpb25zOiBbJy50cycsICcudHN4JywgJy5qcycsICcuanN4JywgJy5qc29uJywgJy5tanMnXSxcbiAgICB9LFxuICAgIHBsdWdpbnM6IFtcbiAgICAgIHRhbWFndWlQbHVnaW4oe1xuICAgICAgICBjb25maWc6ICd0YW1hZ3VpLmNvbmZpZy50cycsXG4gICAgICAgIGNvbXBvbmVudHM6IFsndGFtYWd1aSddLFxuICAgICAgICB1c2VSZWFjdE5hdGl2ZVdlYkxpdGU6IHRydWUsXG4gICAgICB9KSxcbiAgICAgIC8vIHRhbWFndWlFeHRyYWN0UGx1Z2luKCksXG4gICAgICByZWFjdCgpLFxuICAgICAgZWxlY3Ryb24oW1xuICAgICAgICB7XG4gICAgICAgICAgZW50cnk6ICdlbGVjdHJvbi9tYWluL2luZGV4LnRzJyxcbiAgICAgICAgICBvbnN0YXJ0KG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5WU0NPREVfREVCVUcpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coJ1tzdGFydHVwXSBFbGVjdHJvbiBBcHAnKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgb3B0aW9ucy5zdGFydHVwKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHZpdGU6IHtcbiAgICAgICAgICAgIGJ1aWxkOiB7XG4gICAgICAgICAgICAgIHNvdXJjZW1hcCxcbiAgICAgICAgICAgICAgbWluaWZ5OiBpc0J1aWxkLFxuICAgICAgICAgICAgICBvdXREaXI6ICdkaXN0LWVsZWN0cm9uL21haW4nLFxuICAgICAgICAgICAgICByb2xsdXBPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZXh0ZXJuYWw6IFsuLi5PYmplY3Qua2V5cygnZGVwZW5kZW5jaWVzJyBpbiBwa2cgPyBwa2cuZGVwZW5kZW5jaWVzIDoge30pLCAnQHNoYXJlZC91dGlscyddLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc29sdmU6IHtcbiAgICAgICAgICAgICAgYWxpYXM6IHtcbiAgICAgICAgICAgICAgICAnQHNoYXJlZCc6IHBhdGguam9pbihfX2Rpcm5hbWUsICdzaGFyZWQnKSxcbiAgICAgICAgICAgICAgICAncmVhY3QtbmF0aXZlLXN2Zyc6ICdyZWFjdC1uYXRpdmUtc3ZnLXdlYicsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBlbnRyeTogJ2VsZWN0cm9uL3ByZWxvYWQvaW5kZXgudHMnLFxuICAgICAgICAgIG9uc3RhcnQob3B0aW9ucykge1xuICAgICAgICAgICAgb3B0aW9ucy5yZWxvYWQoKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgdml0ZToge1xuICAgICAgICAgICAgYnVpbGQ6IHtcbiAgICAgICAgICAgICAgc291cmNlbWFwOiBzb3VyY2VtYXAgPyAnaW5saW5lJyA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgbWluaWZ5OiBpc0J1aWxkLFxuICAgICAgICAgICAgICBvdXREaXI6ICdkaXN0LWVsZWN0cm9uL3ByZWxvYWQnLFxuICAgICAgICAgICAgICByb2xsdXBPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZXh0ZXJuYWw6IFsuLi5PYmplY3Qua2V5cygnZGVwZW5kZW5jaWVzJyBpbiBwa2cgPyBwa2cuZGVwZW5kZW5jaWVzIDoge30pLCAnQHNoYXJlZC91dGlscyddLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc29sdmU6IHtcbiAgICAgICAgICAgICAgYWxpYXM6IHtcbiAgICAgICAgICAgICAgICAnQHNoYXJlZCc6IHBhdGguam9pbihfX2Rpcm5hbWUsICdzaGFyZWQnKSxcbiAgICAgICAgICAgICAgICAncmVhY3QtbmF0aXZlLXN2Zyc6ICdyZWFjdC1uYXRpdmUtc3ZnLXdlYicsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdKSxcbiAgICAgIHJlbmRlcmVyKCksXG4gICAgICBzZW50cnlWaXRlUGx1Z2luKHtcbiAgICAgICAgYXV0aFRva2VuOiBwcm9jZXNzLmVudi5TRU5UUllfQVVUSF9UT0tFTixcbiAgICAgICAgb3JnOiAncmVvcicsXG4gICAgICAgIHByb2plY3Q6ICdlbGVjdHJvbicsXG4gICAgICB9KSxcbiAgICBdLFxuICAgIGNzczoge1xuICAgICAgcG9zdGNzczoge1xuICAgICAgICBwbHVnaW5zOiBbdGFpbHdpbmRjc3MsIGF1dG9wcmVmaXhlcl0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgc2VydmVyOlxuICAgICAgcHJvY2Vzcy5lbnYuVlNDT0RFX0RFQlVHICYmXG4gICAgICAoKCkgPT4ge1xuICAgICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHBrZy5kZWJ1Zy5lbnYuVklURV9ERVZfU0VSVkVSX1VSTClcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBob3N0OiB1cmwuaG9zdG5hbWUsXG4gICAgICAgICAgcG9ydDogK3VybC5wb3J0LFxuICAgICAgICB9XG4gICAgICB9KSgpLFxuICAgIGNsZWFyU2NyZWVuOiBmYWxzZSxcbiAgICBidWlsZDoge1xuICAgICAgc291cmNlbWFwOiB0cnVlLFxuICAgIH0sXG4gIH1cbn0pXG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQTJRLFNBQVMsY0FBYztBQUNsUyxPQUFPLFVBQVU7QUFDakIsU0FBUyxxQkFBcUI7QUFDOUIsT0FBTyxXQUFXO0FBQ2xCLFNBQVMsb0JBQW9CO0FBQzdCLE9BQU8sY0FBYztBQUNyQixPQUFPLGNBQWM7QUFDckIsU0FBUyx3QkFBd0I7QUFDakMsU0FBUyxxQkFBcUI7QUFDOUIsT0FBTyxpQkFBaUI7QUFDeEIsT0FBTyxrQkFBa0I7QUFHekIsU0FBUyxxQkFBcUI7QUFicUksSUFBTSwyQ0FBMkM7QUFjcE4sSUFBTUEsV0FBVSxjQUFjLHdDQUFlO0FBQzdDLElBQU0sTUFBTUEsU0FBUSxnQkFBZ0I7QUFDcEMsSUFBTSxZQUFZLEtBQUssUUFBUSxjQUFjLHdDQUFlLENBQUM7QUFFN0QsSUFBTyxzQkFBUSxhQUFhLENBQUMsRUFBRSxRQUFRLE1BQU07QUFDM0MsU0FBTyxpQkFBaUIsRUFBRSxXQUFXLE1BQU0sT0FBTyxLQUFLLENBQUM7QUFFeEQsUUFBTSxVQUFVLFlBQVk7QUFDNUIsUUFBTSxZQUFZO0FBRWxCLFNBQU87QUFBQSxJQUNMLFNBQVM7QUFBQSxNQUNQLE9BQU87QUFBQSxRQUNMLEtBQUssS0FBSyxLQUFLLFdBQVcsT0FBTztBQUFBLFFBQ2pDLFdBQVcsS0FBSyxLQUFLLFdBQVcsVUFBVTtBQUFBLE1BQzVDO0FBQUEsTUFDQSxZQUFZLENBQUMsT0FBTyxRQUFRLE9BQU8sUUFBUSxTQUFTLE1BQU07QUFBQSxJQUM1RDtBQUFBLElBQ0EsU0FBUztBQUFBLE1BQ1AsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLFNBQVM7QUFBQSxRQUN0Qix1QkFBdUI7QUFBQSxNQUN6QixDQUFDO0FBQUE7QUFBQSxNQUVELE1BQU07QUFBQSxNQUNOLFNBQVM7QUFBQSxRQUNQO0FBQUEsVUFDRSxPQUFPO0FBQUEsVUFDUCxRQUFRLFNBQVM7QUFDZixnQkFBSSxRQUFRLElBQUksY0FBYztBQUM1QixzQkFBUSxJQUFJLHdCQUF3QjtBQUFBLFlBQ3RDLE9BQU87QUFDTCxzQkFBUSxRQUFRO0FBQUEsWUFDbEI7QUFBQSxVQUNGO0FBQUEsVUFDQSxNQUFNO0FBQUEsWUFDSixPQUFPO0FBQUEsY0FDTDtBQUFBLGNBQ0EsUUFBUTtBQUFBLGNBQ1IsUUFBUTtBQUFBLGNBQ1IsZUFBZTtBQUFBLGdCQUNiLFVBQVUsQ0FBQyxHQUFHLE9BQU8sS0FBSyxrQkFBa0IsTUFBTSxJQUFJLGVBQWUsQ0FBQyxDQUFDLEdBQUcsZUFBZTtBQUFBLGNBQzNGO0FBQUEsWUFDRjtBQUFBLFlBQ0EsU0FBUztBQUFBLGNBQ1AsT0FBTztBQUFBLGdCQUNMLFdBQVcsS0FBSyxLQUFLLFdBQVcsUUFBUTtBQUFBLGdCQUN4QyxvQkFBb0I7QUFBQSxjQUN0QjtBQUFBLFlBQ0Y7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUFBLFFBQ0E7QUFBQSxVQUNFLE9BQU87QUFBQSxVQUNQLFFBQVEsU0FBUztBQUNmLG9CQUFRLE9BQU87QUFBQSxVQUNqQjtBQUFBLFVBQ0EsTUFBTTtBQUFBLFlBQ0osT0FBTztBQUFBLGNBQ0wsV0FBVyxZQUFZLFdBQVc7QUFBQSxjQUNsQyxRQUFRO0FBQUEsY0FDUixRQUFRO0FBQUEsY0FDUixlQUFlO0FBQUEsZ0JBQ2IsVUFBVSxDQUFDLEdBQUcsT0FBTyxLQUFLLGtCQUFrQixNQUFNLElBQUksZUFBZSxDQUFDLENBQUMsR0FBRyxlQUFlO0FBQUEsY0FDM0Y7QUFBQSxZQUNGO0FBQUEsWUFDQSxTQUFTO0FBQUEsY0FDUCxPQUFPO0FBQUEsZ0JBQ0wsV0FBVyxLQUFLLEtBQUssV0FBVyxRQUFRO0FBQUEsZ0JBQ3hDLG9CQUFvQjtBQUFBLGNBQ3RCO0FBQUEsWUFDRjtBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBQUEsTUFDRixDQUFDO0FBQUEsTUFDRCxTQUFTO0FBQUEsTUFDVCxpQkFBaUI7QUFBQSxRQUNmLFdBQVcsUUFBUSxJQUFJO0FBQUEsUUFDdkIsS0FBSztBQUFBLFFBQ0wsU0FBUztBQUFBLE1BQ1gsQ0FBQztBQUFBLElBQ0g7QUFBQSxJQUNBLEtBQUs7QUFBQSxNQUNILFNBQVM7QUFBQSxRQUNQLFNBQVMsQ0FBQyxhQUFhLFlBQVk7QUFBQSxNQUNyQztBQUFBLElBQ0Y7QUFBQSxJQUNBLFFBQ0UsUUFBUSxJQUFJLGlCQUNYLE1BQU07QUFDTCxZQUFNLE1BQU0sSUFBSSxJQUFJLElBQUksTUFBTSxJQUFJLG1CQUFtQjtBQUNyRCxhQUFPO0FBQUEsUUFDTCxNQUFNLElBQUk7QUFBQSxRQUNWLE1BQU0sQ0FBQyxJQUFJO0FBQUEsTUFDYjtBQUFBLElBQ0YsR0FBRztBQUFBLElBQ0wsYUFBYTtBQUFBLElBQ2IsT0FBTztBQUFBLE1BQ0wsV0FBVztBQUFBLElBQ2I7QUFBQSxFQUNGO0FBQ0YsQ0FBQzsiLAogICJuYW1lcyI6IFsicmVxdWlyZSJdCn0K\n"
  }
]