├── .editorconfig
├── .env
├── .eslintignore
├── .eslintrc
├── .gitignore
├── .huskyrc
├── .lintstagedrc
├── .prettierrc
├── README.md
├── demo.download.png
├── demo.home.png
├── demo.loading.png
├── demo.result.png
├── demo.share.qr.png
├── index.html
├── package.json
├── pnpm-lock.yaml
├── public
├── android-chrome-192x192.png
├── android-chrome-512x512.png
├── apple-launch-image.png
├── apple-touch-icon.png
├── browserconfig.xml
├── favicon-16x16.png
├── favicon-32x32.png
├── favicon.ico
├── mstile-150x150.png
├── safari-pinned-tab.svg
├── site.webmanifest
└── splash
│ ├── ipad_splash.png
│ ├── ipadpro1_splash.png
│ ├── ipadpro2_splash.png
│ ├── ipadpro3_splash.png
│ ├── iphone5_splash.png
│ ├── iphone6_splash.png
│ ├── iphoneplus_splash.png
│ ├── iphonex_splash.png
│ ├── iphonexr_splash.png
│ └── iphonexsmax_splash.png
├── src
├── App.jsx
├── Global.style.js
├── assets
│ ├── img
│ │ ├── bg.love.jpg
│ │ ├── birds.bg.png
│ │ ├── heart.svg
│ │ ├── logo.png
│ │ ├── lover.bg.png
│ │ ├── noise.bg.png
│ │ └── reward.jpg
│ └── words.json
├── components
│ ├── Card.jsx
│ ├── Header.jsx
│ ├── InfoModal.jsx
│ ├── Loading.jsx
│ ├── LoadingWords.jsx
│ ├── RefreshButton.jsx
│ ├── SaveButton.jsx
│ ├── ShareQR.jsx
│ ├── StartButton.jsx
│ ├── StyledButton.jsx
│ ├── StyledWordBox.jsx
│ └── animates.js
├── main.jsx
└── utils.js
└── vite.config.js
/.editorconfig:
--------------------------------------------------------------------------------
1 | # EditorConfig is awesome: http://EditorConfig.org
2 |
3 | # top-most EditorConfig file
4 | root = true
5 |
6 | [*.md]
7 | trim_trailing_whitespace = false
8 |
9 | [*.js]
10 | trim_trailing_whitespace = true
11 |
12 | # Unix-style newlines with a newline ending every file
13 | [*]
14 | indent_style = space
15 | indent_size = 2
16 | end_of_line = lf
17 | charset = utf-8
18 | insert_final_newline = true
19 | max_line_length = 100
--------------------------------------------------------------------------------
/.env:
--------------------------------------------------------------------------------
1 | VITE_TOKEN=XXXXXXXX
--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | /scripts
2 | /node_modules
3 | /build
4 | /.vscode
5 | /public
--------------------------------------------------------------------------------
/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["eslint:recommended", "plugin:react/recommended", "prettier"],
3 | "plugins": ["react-hooks"],
4 | "rules": {
5 | "semi": 2,
6 | "no-console": "off",
7 | "react/prop-types": 0,
8 | "no-unused-vars": ["error", { "ignoreRestSiblings": true }],
9 | "react-hooks/rules-of-hooks": "error",
10 | "react-hooks/exhaustive-deps": "warn",
11 | "max-lines": ["warn", { "max": 500 }],
12 | "react/display-name": 0,
13 | "react/react-in-jsx-scope": "off"
14 | },
15 | "parser": "babel-eslint",
16 | "parserOptions": {
17 | "ecmaVersion": 2018,
18 | "sourceType": "module",
19 | "ecmaFeatures": {
20 | "jsx": true
21 | }
22 | },
23 | "globals": {
24 | "UE": true
25 | },
26 | "env": {
27 | "browser": true,
28 | "node": true,
29 | "es6": true,
30 | "serviceworker": true
31 | },
32 | "settings": {
33 | "react": {
34 | "version": "16.8"
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # dependencies
2 | /node_modules
3 | */node_modules
4 |
5 | # testing
6 | /coverage
7 |
8 | # production
9 | /build
10 | /dist
11 |
12 | # misc
13 | .DS_Store
14 | .env.local
15 | .env.development.local
16 | .env.test.local
17 | .env.production.local
18 |
19 | package-lock.json
20 | npm-debug.log*
21 | yarn-debug.log*
22 | yarn-error.log*
23 |
24 | .idea
25 |
--------------------------------------------------------------------------------
/.huskyrc:
--------------------------------------------------------------------------------
1 | {
2 | "hooks": {
3 | "commit-msg": "commitlint -E HUSKY_GIT_PARAMS",
4 | "pre-commit": "lint-staged"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/.lintstagedrc:
--------------------------------------------------------------------------------
1 | {
2 | "src/**/*.{js,jsx}": ["eslint --fix"]
3 | }
4 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 100,
3 | "singleQuote": true,
4 | "bracketSpacing": true,
5 | "jsxBracketSameLine": false,
6 | "tabWidth": 2,
7 | "semi": true,
8 | "trailingComma": "none"
9 | }
10 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |

3 |
甜(Tu)言(Wei)蜜(Qing)语(Hua)
4 |
5 |
6 | 土味情话,在线生成:[https://works.yangerxiao.com/honeyed-words-generator/](https://works.yangerxiao.com/honeyed-words-generator/)
7 |
8 | ## 应用截图
9 |
10 | ### 首页
11 |
12 | 
13 |
14 | ### 加载页
15 |
16 | 
17 |
18 | ### 结果页
19 |
20 | 
21 |
22 | ### 生成并下载的图片
23 |
24 | 
25 |
26 | ### 生成适合分享出去的二维码
27 |
28 | 
29 |
30 | ## 贡献土味情话
31 |
32 | 所有情话均存储在`src/assets/words.json`文件内,请 clone 代码然后提 PR。
33 |
34 | P.S. `|`代表换行
35 |
36 | ## 本地开发
37 |
38 | `git clone https://github.com/zerosoul/honeyed-words-generator.git`
39 |
40 | `cd honeyed-words-generator && yarn install`
41 |
42 | `yarn start`
43 |
44 | Let's rock it~
45 |
46 | ## 支持
47 |
48 | 
49 |
--------------------------------------------------------------------------------
/demo.download.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerosoul/honeyed-words-generator/34537a730a59c8b453735f6b4111390003018ab0/demo.download.png
--------------------------------------------------------------------------------
/demo.home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerosoul/honeyed-words-generator/34537a730a59c8b453735f6b4111390003018ab0/demo.home.png
--------------------------------------------------------------------------------
/demo.loading.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerosoul/honeyed-words-generator/34537a730a59c8b453735f6b4111390003018ab0/demo.loading.png
--------------------------------------------------------------------------------
/demo.result.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerosoul/honeyed-words-generator/34537a730a59c8b453735f6b4111390003018ab0/demo.result.png
--------------------------------------------------------------------------------
/demo.share.qr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerosoul/honeyed-words-generator/34537a730a59c8b453735f6b4111390003018ab0/demo.share.qr.png
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
23 |
26 |
29 |
32 |
35 |
38 |
41 |
44 |
47 |
50 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
69 |
70 | 土味情话 在线生成 - honeyed words generator
71 |
72 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "honeyed-words-generator",
3 | "version": "2.0.0",
4 | "description": "土味情话,在线生成",
5 | "main": "main.jsx",
6 | "repository": {
7 | "type": "git",
8 | "url": "git+https://github.com/zerosoul/honeyed-words-generator.git"
9 | },
10 | "keywords": [
11 | "css3",
12 | "valentine",
13 | "react",
14 | "frontend",
15 | "tool",
16 | "love"
17 | ],
18 | "author": "tristan",
19 | "license": "ISC",
20 | "bugs": {
21 | "url": "https://github.com/zerosoul/honeyed-words-generator/issues"
22 | },
23 | "homepage": "https://honey.yangerxiao.com",
24 | "dependencies": {
25 | "file-saver": "^2.0.5",
26 | "html2canvas": "^1.4.1",
27 | "qrcode.react": "^4.2.0",
28 | "react": "^19.0.0",
29 | "react-dom": "^19.0.0",
30 | "react-github-btn": "^1.4.0",
31 | "react-icons": "^5.4.0",
32 | "styled-components": "^6.1.13",
33 | "styled-reset": "^4.5.2"
34 | },
35 | "devDependencies": {
36 | "@vitejs/plugin-react": "^4.3.4",
37 | "eslint": "^8.26.0",
38 | "eslint-config-prettier": "^8.5.0",
39 | "eslint-plugin-react": "^7.31.10",
40 | "eslint-plugin-react-hooks": "^4.6.0",
41 | "husky": "^8.0.1",
42 | "lint-staged": "^13.0.3",
43 | "prettier": "^2.7.1",
44 | "vite": "^6.0.3"
45 | },
46 | "engines": {
47 | "node": ">=18.0.0",
48 | "npm": ">=7.0.0"
49 | },
50 | "scripts": {
51 | "dev": "vite",
52 | "build": "vite build",
53 | "serve": "vite preview",
54 | "prepare": "husky install"
55 | },
56 | "browserslist": {
57 | "production": [
58 | ">0.2%",
59 | "not dead",
60 | "not op_mini all"
61 | ],
62 | "development": [
63 | "last 1 chrome version",
64 | "last 1 firefox version",
65 | "last 1 safari version"
66 | ]
67 | }
68 | }
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: '9.0'
2 |
3 | settings:
4 | autoInstallPeers: true
5 | excludeLinksFromLockfile: false
6 |
7 | importers:
8 |
9 | .:
10 | dependencies:
11 | file-saver:
12 | specifier: ^2.0.5
13 | version: 2.0.5
14 | html2canvas:
15 | specifier: ^1.4.1
16 | version: 1.4.1
17 | qrcode.react:
18 | specifier: ^4.2.0
19 | version: 4.2.0(react@19.0.0)
20 | react:
21 | specifier: ^19.0.0
22 | version: 19.0.0
23 | react-dom:
24 | specifier: ^19.0.0
25 | version: 19.0.0(react@19.0.0)
26 | react-github-btn:
27 | specifier: ^1.4.0
28 | version: 1.4.0(react@19.0.0)
29 | react-icons:
30 | specifier: ^5.4.0
31 | version: 5.4.0(react@19.0.0)
32 | styled-components:
33 | specifier: ^6.1.13
34 | version: 6.1.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
35 | styled-reset:
36 | specifier: ^4.5.2
37 | version: 4.5.2(styled-components@6.1.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0))
38 | devDependencies:
39 | '@vitejs/plugin-react':
40 | specifier: ^4.3.4
41 | version: 4.3.4(vite@6.0.3)
42 | eslint:
43 | specifier: ^8.26.0
44 | version: 8.57.1
45 | eslint-config-prettier:
46 | specifier: ^8.5.0
47 | version: 8.10.0(eslint@8.57.1)
48 | eslint-plugin-react:
49 | specifier: ^7.31.10
50 | version: 7.37.2(eslint@8.57.1)
51 | eslint-plugin-react-hooks:
52 | specifier: ^4.6.0
53 | version: 4.6.2(eslint@8.57.1)
54 | husky:
55 | specifier: ^8.0.1
56 | version: 8.0.3
57 | lint-staged:
58 | specifier: ^13.0.3
59 | version: 13.3.0
60 | prettier:
61 | specifier: ^2.7.1
62 | version: 2.8.8
63 | vite:
64 | specifier: ^6.0.3
65 | version: 6.0.3
66 |
67 | packages:
68 |
69 | '@ampproject/remapping@2.3.0':
70 | resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
71 | engines: {node: '>=6.0.0'}
72 |
73 | '@babel/code-frame@7.26.2':
74 | resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==}
75 | engines: {node: '>=6.9.0'}
76 |
77 | '@babel/compat-data@7.26.3':
78 | resolution: {integrity: sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==}
79 | engines: {node: '>=6.9.0'}
80 |
81 | '@babel/core@7.26.0':
82 | resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==}
83 | engines: {node: '>=6.9.0'}
84 |
85 | '@babel/generator@7.26.3':
86 | resolution: {integrity: sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==}
87 | engines: {node: '>=6.9.0'}
88 |
89 | '@babel/helper-compilation-targets@7.25.9':
90 | resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==}
91 | engines: {node: '>=6.9.0'}
92 |
93 | '@babel/helper-module-imports@7.25.9':
94 | resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==}
95 | engines: {node: '>=6.9.0'}
96 |
97 | '@babel/helper-module-transforms@7.26.0':
98 | resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==}
99 | engines: {node: '>=6.9.0'}
100 | peerDependencies:
101 | '@babel/core': ^7.0.0
102 |
103 | '@babel/helper-plugin-utils@7.25.9':
104 | resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==}
105 | engines: {node: '>=6.9.0'}
106 |
107 | '@babel/helper-string-parser@7.25.9':
108 | resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==}
109 | engines: {node: '>=6.9.0'}
110 |
111 | '@babel/helper-validator-identifier@7.25.9':
112 | resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
113 | engines: {node: '>=6.9.0'}
114 |
115 | '@babel/helper-validator-option@7.25.9':
116 | resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==}
117 | engines: {node: '>=6.9.0'}
118 |
119 | '@babel/helpers@7.26.0':
120 | resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==}
121 | engines: {node: '>=6.9.0'}
122 |
123 | '@babel/parser@7.26.3':
124 | resolution: {integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==}
125 | engines: {node: '>=6.0.0'}
126 | hasBin: true
127 |
128 | '@babel/plugin-transform-react-jsx-self@7.25.9':
129 | resolution: {integrity: sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==}
130 | engines: {node: '>=6.9.0'}
131 | peerDependencies:
132 | '@babel/core': ^7.0.0-0
133 |
134 | '@babel/plugin-transform-react-jsx-source@7.25.9':
135 | resolution: {integrity: sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==}
136 | engines: {node: '>=6.9.0'}
137 | peerDependencies:
138 | '@babel/core': ^7.0.0-0
139 |
140 | '@babel/template@7.25.9':
141 | resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==}
142 | engines: {node: '>=6.9.0'}
143 |
144 | '@babel/traverse@7.26.4':
145 | resolution: {integrity: sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==}
146 | engines: {node: '>=6.9.0'}
147 |
148 | '@babel/types@7.26.3':
149 | resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==}
150 | engines: {node: '>=6.9.0'}
151 |
152 | '@emotion/is-prop-valid@1.2.2':
153 | resolution: {integrity: sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==}
154 |
155 | '@emotion/memoize@0.8.1':
156 | resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==}
157 |
158 | '@emotion/unitless@0.8.1':
159 | resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==}
160 |
161 | '@esbuild/aix-ppc64@0.24.0':
162 | resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==}
163 | engines: {node: '>=18'}
164 | cpu: [ppc64]
165 | os: [aix]
166 |
167 | '@esbuild/android-arm64@0.24.0':
168 | resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==}
169 | engines: {node: '>=18'}
170 | cpu: [arm64]
171 | os: [android]
172 |
173 | '@esbuild/android-arm@0.24.0':
174 | resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==}
175 | engines: {node: '>=18'}
176 | cpu: [arm]
177 | os: [android]
178 |
179 | '@esbuild/android-x64@0.24.0':
180 | resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==}
181 | engines: {node: '>=18'}
182 | cpu: [x64]
183 | os: [android]
184 |
185 | '@esbuild/darwin-arm64@0.24.0':
186 | resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==}
187 | engines: {node: '>=18'}
188 | cpu: [arm64]
189 | os: [darwin]
190 |
191 | '@esbuild/darwin-x64@0.24.0':
192 | resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==}
193 | engines: {node: '>=18'}
194 | cpu: [x64]
195 | os: [darwin]
196 |
197 | '@esbuild/freebsd-arm64@0.24.0':
198 | resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==}
199 | engines: {node: '>=18'}
200 | cpu: [arm64]
201 | os: [freebsd]
202 |
203 | '@esbuild/freebsd-x64@0.24.0':
204 | resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==}
205 | engines: {node: '>=18'}
206 | cpu: [x64]
207 | os: [freebsd]
208 |
209 | '@esbuild/linux-arm64@0.24.0':
210 | resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==}
211 | engines: {node: '>=18'}
212 | cpu: [arm64]
213 | os: [linux]
214 |
215 | '@esbuild/linux-arm@0.24.0':
216 | resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==}
217 | engines: {node: '>=18'}
218 | cpu: [arm]
219 | os: [linux]
220 |
221 | '@esbuild/linux-ia32@0.24.0':
222 | resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==}
223 | engines: {node: '>=18'}
224 | cpu: [ia32]
225 | os: [linux]
226 |
227 | '@esbuild/linux-loong64@0.24.0':
228 | resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==}
229 | engines: {node: '>=18'}
230 | cpu: [loong64]
231 | os: [linux]
232 |
233 | '@esbuild/linux-mips64el@0.24.0':
234 | resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==}
235 | engines: {node: '>=18'}
236 | cpu: [mips64el]
237 | os: [linux]
238 |
239 | '@esbuild/linux-ppc64@0.24.0':
240 | resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==}
241 | engines: {node: '>=18'}
242 | cpu: [ppc64]
243 | os: [linux]
244 |
245 | '@esbuild/linux-riscv64@0.24.0':
246 | resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==}
247 | engines: {node: '>=18'}
248 | cpu: [riscv64]
249 | os: [linux]
250 |
251 | '@esbuild/linux-s390x@0.24.0':
252 | resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==}
253 | engines: {node: '>=18'}
254 | cpu: [s390x]
255 | os: [linux]
256 |
257 | '@esbuild/linux-x64@0.24.0':
258 | resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==}
259 | engines: {node: '>=18'}
260 | cpu: [x64]
261 | os: [linux]
262 |
263 | '@esbuild/netbsd-x64@0.24.0':
264 | resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==}
265 | engines: {node: '>=18'}
266 | cpu: [x64]
267 | os: [netbsd]
268 |
269 | '@esbuild/openbsd-arm64@0.24.0':
270 | resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==}
271 | engines: {node: '>=18'}
272 | cpu: [arm64]
273 | os: [openbsd]
274 |
275 | '@esbuild/openbsd-x64@0.24.0':
276 | resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==}
277 | engines: {node: '>=18'}
278 | cpu: [x64]
279 | os: [openbsd]
280 |
281 | '@esbuild/sunos-x64@0.24.0':
282 | resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==}
283 | engines: {node: '>=18'}
284 | cpu: [x64]
285 | os: [sunos]
286 |
287 | '@esbuild/win32-arm64@0.24.0':
288 | resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==}
289 | engines: {node: '>=18'}
290 | cpu: [arm64]
291 | os: [win32]
292 |
293 | '@esbuild/win32-ia32@0.24.0':
294 | resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==}
295 | engines: {node: '>=18'}
296 | cpu: [ia32]
297 | os: [win32]
298 |
299 | '@esbuild/win32-x64@0.24.0':
300 | resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==}
301 | engines: {node: '>=18'}
302 | cpu: [x64]
303 | os: [win32]
304 |
305 | '@eslint-community/eslint-utils@4.4.1':
306 | resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==}
307 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
308 | peerDependencies:
309 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
310 |
311 | '@eslint-community/regexpp@4.12.1':
312 | resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
313 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
314 |
315 | '@eslint/eslintrc@2.1.4':
316 | resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
317 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
318 |
319 | '@eslint/js@8.57.1':
320 | resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==}
321 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
322 |
323 | '@humanwhocodes/config-array@0.13.0':
324 | resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==}
325 | engines: {node: '>=10.10.0'}
326 | deprecated: Use @eslint/config-array instead
327 |
328 | '@humanwhocodes/module-importer@1.0.1':
329 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
330 | engines: {node: '>=12.22'}
331 |
332 | '@humanwhocodes/object-schema@2.0.3':
333 | resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==}
334 | deprecated: Use @eslint/object-schema instead
335 |
336 | '@jridgewell/gen-mapping@0.3.8':
337 | resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
338 | engines: {node: '>=6.0.0'}
339 |
340 | '@jridgewell/resolve-uri@3.1.2':
341 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
342 | engines: {node: '>=6.0.0'}
343 |
344 | '@jridgewell/set-array@1.2.1':
345 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
346 | engines: {node: '>=6.0.0'}
347 |
348 | '@jridgewell/sourcemap-codec@1.5.0':
349 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
350 |
351 | '@jridgewell/trace-mapping@0.3.25':
352 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
353 |
354 | '@nodelib/fs.scandir@2.1.5':
355 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
356 | engines: {node: '>= 8'}
357 |
358 | '@nodelib/fs.stat@2.0.5':
359 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
360 | engines: {node: '>= 8'}
361 |
362 | '@nodelib/fs.walk@1.2.8':
363 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
364 | engines: {node: '>= 8'}
365 |
366 | '@rollup/rollup-android-arm-eabi@4.28.1':
367 | resolution: {integrity: sha512-2aZp8AES04KI2dy3Ss6/MDjXbwBzj+i0GqKtWXgw2/Ma6E4jJvujryO6gJAghIRVz7Vwr9Gtl/8na3nDUKpraQ==}
368 | cpu: [arm]
369 | os: [android]
370 |
371 | '@rollup/rollup-android-arm64@4.28.1':
372 | resolution: {integrity: sha512-EbkK285O+1YMrg57xVA+Dp0tDBRB93/BZKph9XhMjezf6F4TpYjaUSuPt5J0fZXlSag0LmZAsTmdGGqPp4pQFA==}
373 | cpu: [arm64]
374 | os: [android]
375 |
376 | '@rollup/rollup-darwin-arm64@4.28.1':
377 | resolution: {integrity: sha512-prduvrMKU6NzMq6nxzQw445zXgaDBbMQvmKSJaxpaZ5R1QDM8w+eGxo6Y/jhT/cLoCvnZI42oEqf9KQNYz1fqQ==}
378 | cpu: [arm64]
379 | os: [darwin]
380 |
381 | '@rollup/rollup-darwin-x64@4.28.1':
382 | resolution: {integrity: sha512-WsvbOunsUk0wccO/TV4o7IKgloJ942hVFK1CLatwv6TJspcCZb9umQkPdvB7FihmdxgaKR5JyxDjWpCOp4uZlQ==}
383 | cpu: [x64]
384 | os: [darwin]
385 |
386 | '@rollup/rollup-freebsd-arm64@4.28.1':
387 | resolution: {integrity: sha512-HTDPdY1caUcU4qK23FeeGxCdJF64cKkqajU0iBnTVxS8F7H/7BewvYoG+va1KPSL63kQ1PGNyiwKOfReavzvNA==}
388 | cpu: [arm64]
389 | os: [freebsd]
390 |
391 | '@rollup/rollup-freebsd-x64@4.28.1':
392 | resolution: {integrity: sha512-m/uYasxkUevcFTeRSM9TeLyPe2QDuqtjkeoTpP9SW0XxUWfcYrGDMkO/m2tTw+4NMAF9P2fU3Mw4ahNvo7QmsQ==}
393 | cpu: [x64]
394 | os: [freebsd]
395 |
396 | '@rollup/rollup-linux-arm-gnueabihf@4.28.1':
397 | resolution: {integrity: sha512-QAg11ZIt6mcmzpNE6JZBpKfJaKkqTm1A9+y9O+frdZJEuhQxiugM05gnCWiANHj4RmbgeVJpTdmKRmH/a+0QbA==}
398 | cpu: [arm]
399 | os: [linux]
400 |
401 | '@rollup/rollup-linux-arm-musleabihf@4.28.1':
402 | resolution: {integrity: sha512-dRP9PEBfolq1dmMcFqbEPSd9VlRuVWEGSmbxVEfiq2cs2jlZAl0YNxFzAQS2OrQmsLBLAATDMb3Z6MFv5vOcXg==}
403 | cpu: [arm]
404 | os: [linux]
405 |
406 | '@rollup/rollup-linux-arm64-gnu@4.28.1':
407 | resolution: {integrity: sha512-uGr8khxO+CKT4XU8ZUH1TTEUtlktK6Kgtv0+6bIFSeiSlnGJHG1tSFSjm41uQ9sAO/5ULx9mWOz70jYLyv1QkA==}
408 | cpu: [arm64]
409 | os: [linux]
410 |
411 | '@rollup/rollup-linux-arm64-musl@4.28.1':
412 | resolution: {integrity: sha512-QF54q8MYGAqMLrX2t7tNpi01nvq5RI59UBNx+3+37zoKX5KViPo/gk2QLhsuqok05sSCRluj0D00LzCwBikb0A==}
413 | cpu: [arm64]
414 | os: [linux]
415 |
416 | '@rollup/rollup-linux-loongarch64-gnu@4.28.1':
417 | resolution: {integrity: sha512-vPul4uodvWvLhRco2w0GcyZcdyBfpfDRgNKU+p35AWEbJ/HPs1tOUrkSueVbBS0RQHAf/A+nNtDpvw95PeVKOA==}
418 | cpu: [loong64]
419 | os: [linux]
420 |
421 | '@rollup/rollup-linux-powerpc64le-gnu@4.28.1':
422 | resolution: {integrity: sha512-pTnTdBuC2+pt1Rmm2SV7JWRqzhYpEILML4PKODqLz+C7Ou2apEV52h19CR7es+u04KlqplggmN9sqZlekg3R1A==}
423 | cpu: [ppc64]
424 | os: [linux]
425 |
426 | '@rollup/rollup-linux-riscv64-gnu@4.28.1':
427 | resolution: {integrity: sha512-vWXy1Nfg7TPBSuAncfInmAI/WZDd5vOklyLJDdIRKABcZWojNDY0NJwruY2AcnCLnRJKSaBgf/GiJfauu8cQZA==}
428 | cpu: [riscv64]
429 | os: [linux]
430 |
431 | '@rollup/rollup-linux-s390x-gnu@4.28.1':
432 | resolution: {integrity: sha512-/yqC2Y53oZjb0yz8PVuGOQQNOTwxcizudunl/tFs1aLvObTclTwZ0JhXF2XcPT/zuaymemCDSuuUPXJJyqeDOg==}
433 | cpu: [s390x]
434 | os: [linux]
435 |
436 | '@rollup/rollup-linux-x64-gnu@4.28.1':
437 | resolution: {integrity: sha512-fzgeABz7rrAlKYB0y2kSEiURrI0691CSL0+KXwKwhxvj92VULEDQLpBYLHpF49MSiPG4sq5CK3qHMnb9tlCjBw==}
438 | cpu: [x64]
439 | os: [linux]
440 |
441 | '@rollup/rollup-linux-x64-musl@4.28.1':
442 | resolution: {integrity: sha512-xQTDVzSGiMlSshpJCtudbWyRfLaNiVPXt1WgdWTwWz9n0U12cI2ZVtWe/Jgwyv/6wjL7b66uu61Vg0POWVfz4g==}
443 | cpu: [x64]
444 | os: [linux]
445 |
446 | '@rollup/rollup-win32-arm64-msvc@4.28.1':
447 | resolution: {integrity: sha512-wSXmDRVupJstFP7elGMgv+2HqXelQhuNf+IS4V+nUpNVi/GUiBgDmfwD0UGN3pcAnWsgKG3I52wMOBnk1VHr/A==}
448 | cpu: [arm64]
449 | os: [win32]
450 |
451 | '@rollup/rollup-win32-ia32-msvc@4.28.1':
452 | resolution: {integrity: sha512-ZkyTJ/9vkgrE/Rk9vhMXhf8l9D+eAhbAVbsGsXKy2ohmJaWg0LPQLnIxRdRp/bKyr8tXuPlXhIoGlEB5XpJnGA==}
453 | cpu: [ia32]
454 | os: [win32]
455 |
456 | '@rollup/rollup-win32-x64-msvc@4.28.1':
457 | resolution: {integrity: sha512-ZvK2jBafvttJjoIdKm/Q/Bh7IJ1Ose9IBOwpOXcOvW3ikGTQGmKDgxTC6oCAzW6PynbkKP8+um1du81XJHZ0JA==}
458 | cpu: [x64]
459 | os: [win32]
460 |
461 | '@types/babel__core@7.20.5':
462 | resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
463 |
464 | '@types/babel__generator@7.6.8':
465 | resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==}
466 |
467 | '@types/babel__template@7.4.4':
468 | resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
469 |
470 | '@types/babel__traverse@7.20.6':
471 | resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==}
472 |
473 | '@types/estree@1.0.6':
474 | resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
475 |
476 | '@types/stylis@4.2.5':
477 | resolution: {integrity: sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==}
478 |
479 | '@ungap/structured-clone@1.2.1':
480 | resolution: {integrity: sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA==}
481 |
482 | '@vitejs/plugin-react@4.3.4':
483 | resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==}
484 | engines: {node: ^14.18.0 || >=16.0.0}
485 | peerDependencies:
486 | vite: ^4.2.0 || ^5.0.0 || ^6.0.0
487 |
488 | acorn-jsx@5.3.2:
489 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
490 | peerDependencies:
491 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
492 |
493 | acorn@8.14.0:
494 | resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==}
495 | engines: {node: '>=0.4.0'}
496 | hasBin: true
497 |
498 | ajv@6.12.6:
499 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
500 |
501 | ansi-escapes@5.0.0:
502 | resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==}
503 | engines: {node: '>=12'}
504 |
505 | ansi-regex@5.0.1:
506 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
507 | engines: {node: '>=8'}
508 |
509 | ansi-regex@6.1.0:
510 | resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==}
511 | engines: {node: '>=12'}
512 |
513 | ansi-styles@4.3.0:
514 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
515 | engines: {node: '>=8'}
516 |
517 | ansi-styles@6.2.1:
518 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
519 | engines: {node: '>=12'}
520 |
521 | argparse@2.0.1:
522 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
523 |
524 | array-buffer-byte-length@1.0.1:
525 | resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==}
526 | engines: {node: '>= 0.4'}
527 |
528 | array-includes@3.1.8:
529 | resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==}
530 | engines: {node: '>= 0.4'}
531 |
532 | array.prototype.findlast@1.2.5:
533 | resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==}
534 | engines: {node: '>= 0.4'}
535 |
536 | array.prototype.flat@1.3.3:
537 | resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==}
538 | engines: {node: '>= 0.4'}
539 |
540 | array.prototype.flatmap@1.3.2:
541 | resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==}
542 | engines: {node: '>= 0.4'}
543 |
544 | array.prototype.tosorted@1.1.4:
545 | resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==}
546 | engines: {node: '>= 0.4'}
547 |
548 | arraybuffer.prototype.slice@1.0.4:
549 | resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==}
550 | engines: {node: '>= 0.4'}
551 |
552 | available-typed-arrays@1.0.7:
553 | resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
554 | engines: {node: '>= 0.4'}
555 |
556 | balanced-match@1.0.2:
557 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
558 |
559 | base64-arraybuffer@1.0.2:
560 | resolution: {integrity: sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==}
561 | engines: {node: '>= 0.6.0'}
562 |
563 | brace-expansion@1.1.11:
564 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
565 |
566 | braces@3.0.3:
567 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
568 | engines: {node: '>=8'}
569 |
570 | browserslist@4.24.3:
571 | resolution: {integrity: sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==}
572 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
573 | hasBin: true
574 |
575 | call-bind-apply-helpers@1.0.1:
576 | resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==}
577 | engines: {node: '>= 0.4'}
578 |
579 | call-bind@1.0.8:
580 | resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==}
581 | engines: {node: '>= 0.4'}
582 |
583 | call-bound@1.0.2:
584 | resolution: {integrity: sha512-0lk0PHFe/uz0vl527fG9CgdE9WdafjDbCXvBbs+LUv000TVt2Jjhqbs4Jwm8gz070w8xXyEAxrPOMullsxXeGg==}
585 | engines: {node: '>= 0.4'}
586 |
587 | callsites@3.1.0:
588 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
589 | engines: {node: '>=6'}
590 |
591 | camelize@1.0.1:
592 | resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==}
593 |
594 | caniuse-lite@1.0.30001688:
595 | resolution: {integrity: sha512-Nmqpru91cuABu/DTCXbM2NSRHzM2uVHfPnhJ/1zEAJx/ILBRVmz3pzH4N7DZqbdG0gWClsCC05Oj0mJ/1AWMbA==}
596 |
597 | chalk@4.1.2:
598 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
599 | engines: {node: '>=10'}
600 |
601 | chalk@5.3.0:
602 | resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
603 | engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
604 |
605 | cli-cursor@4.0.0:
606 | resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==}
607 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
608 |
609 | cli-truncate@3.1.0:
610 | resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==}
611 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
612 |
613 | color-convert@2.0.1:
614 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
615 | engines: {node: '>=7.0.0'}
616 |
617 | color-name@1.1.4:
618 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
619 |
620 | colorette@2.0.20:
621 | resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
622 |
623 | commander@11.0.0:
624 | resolution: {integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==}
625 | engines: {node: '>=16'}
626 |
627 | concat-map@0.0.1:
628 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
629 |
630 | convert-source-map@2.0.0:
631 | resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
632 |
633 | cross-spawn@7.0.6:
634 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
635 | engines: {node: '>= 8'}
636 |
637 | css-color-keywords@1.0.0:
638 | resolution: {integrity: sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==}
639 | engines: {node: '>=4'}
640 |
641 | css-line-break@2.1.0:
642 | resolution: {integrity: sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==}
643 |
644 | css-to-react-native@3.2.0:
645 | resolution: {integrity: sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==}
646 |
647 | csstype@3.1.3:
648 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
649 |
650 | data-view-buffer@1.0.1:
651 | resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==}
652 | engines: {node: '>= 0.4'}
653 |
654 | data-view-byte-length@1.0.1:
655 | resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==}
656 | engines: {node: '>= 0.4'}
657 |
658 | data-view-byte-offset@1.0.0:
659 | resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==}
660 | engines: {node: '>= 0.4'}
661 |
662 | debug@4.3.4:
663 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
664 | engines: {node: '>=6.0'}
665 | peerDependencies:
666 | supports-color: '*'
667 | peerDependenciesMeta:
668 | supports-color:
669 | optional: true
670 |
671 | debug@4.4.0:
672 | resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
673 | engines: {node: '>=6.0'}
674 | peerDependencies:
675 | supports-color: '*'
676 | peerDependenciesMeta:
677 | supports-color:
678 | optional: true
679 |
680 | deep-is@0.1.4:
681 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
682 |
683 | define-data-property@1.1.4:
684 | resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
685 | engines: {node: '>= 0.4'}
686 |
687 | define-properties@1.2.1:
688 | resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
689 | engines: {node: '>= 0.4'}
690 |
691 | doctrine@2.1.0:
692 | resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
693 | engines: {node: '>=0.10.0'}
694 |
695 | doctrine@3.0.0:
696 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
697 | engines: {node: '>=6.0.0'}
698 |
699 | dunder-proto@1.0.0:
700 | resolution: {integrity: sha512-9+Sj30DIu+4KvHqMfLUGLFYL2PkURSYMVXJyXe92nFRvlYq5hBjLEhblKB+vkd/WVlUYMWigiY07T91Fkk0+4A==}
701 | engines: {node: '>= 0.4'}
702 |
703 | eastasianwidth@0.2.0:
704 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
705 |
706 | electron-to-chromium@1.5.73:
707 | resolution: {integrity: sha512-8wGNxG9tAG5KhGd3eeA0o6ixhiNdgr0DcHWm85XPCphwZgD1lIEoi6t3VERayWao7SF7AAZTw6oARGJeVjH8Kg==}
708 |
709 | emoji-regex@9.2.2:
710 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
711 |
712 | es-abstract@1.23.5:
713 | resolution: {integrity: sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==}
714 | engines: {node: '>= 0.4'}
715 |
716 | es-define-property@1.0.1:
717 | resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
718 | engines: {node: '>= 0.4'}
719 |
720 | es-errors@1.3.0:
721 | resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
722 | engines: {node: '>= 0.4'}
723 |
724 | es-iterator-helpers@1.2.0:
725 | resolution: {integrity: sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q==}
726 | engines: {node: '>= 0.4'}
727 |
728 | es-object-atoms@1.0.0:
729 | resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==}
730 | engines: {node: '>= 0.4'}
731 |
732 | es-set-tostringtag@2.0.3:
733 | resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==}
734 | engines: {node: '>= 0.4'}
735 |
736 | es-shim-unscopables@1.0.2:
737 | resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==}
738 |
739 | es-to-primitive@1.3.0:
740 | resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==}
741 | engines: {node: '>= 0.4'}
742 |
743 | esbuild@0.24.0:
744 | resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==}
745 | engines: {node: '>=18'}
746 | hasBin: true
747 |
748 | escalade@3.2.0:
749 | resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
750 | engines: {node: '>=6'}
751 |
752 | escape-string-regexp@4.0.0:
753 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
754 | engines: {node: '>=10'}
755 |
756 | eslint-config-prettier@8.10.0:
757 | resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==}
758 | hasBin: true
759 | peerDependencies:
760 | eslint: '>=7.0.0'
761 |
762 | eslint-plugin-react-hooks@4.6.2:
763 | resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==}
764 | engines: {node: '>=10'}
765 | peerDependencies:
766 | eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
767 |
768 | eslint-plugin-react@7.37.2:
769 | resolution: {integrity: sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==}
770 | engines: {node: '>=4'}
771 | peerDependencies:
772 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
773 |
774 | eslint-scope@7.2.2:
775 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
776 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
777 |
778 | eslint-visitor-keys@3.4.3:
779 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
780 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
781 |
782 | eslint@8.57.1:
783 | resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==}
784 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
785 | deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options.
786 | hasBin: true
787 |
788 | espree@9.6.1:
789 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
790 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
791 |
792 | esquery@1.6.0:
793 | resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
794 | engines: {node: '>=0.10'}
795 |
796 | esrecurse@4.3.0:
797 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
798 | engines: {node: '>=4.0'}
799 |
800 | estraverse@5.3.0:
801 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
802 | engines: {node: '>=4.0'}
803 |
804 | esutils@2.0.3:
805 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
806 | engines: {node: '>=0.10.0'}
807 |
808 | eventemitter3@5.0.1:
809 | resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==}
810 |
811 | execa@7.2.0:
812 | resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==}
813 | engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0}
814 |
815 | fast-deep-equal@3.1.3:
816 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
817 |
818 | fast-json-stable-stringify@2.1.0:
819 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
820 |
821 | fast-levenshtein@2.0.6:
822 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
823 |
824 | fastq@1.17.1:
825 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
826 |
827 | file-entry-cache@6.0.1:
828 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
829 | engines: {node: ^10.12.0 || >=12.0.0}
830 |
831 | file-saver@2.0.5:
832 | resolution: {integrity: sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==}
833 |
834 | fill-range@7.1.1:
835 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
836 | engines: {node: '>=8'}
837 |
838 | find-up@5.0.0:
839 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
840 | engines: {node: '>=10'}
841 |
842 | flat-cache@3.2.0:
843 | resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
844 | engines: {node: ^10.12.0 || >=12.0.0}
845 |
846 | flatted@3.3.2:
847 | resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==}
848 |
849 | for-each@0.3.3:
850 | resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
851 |
852 | fs.realpath@1.0.0:
853 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
854 |
855 | fsevents@2.3.3:
856 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
857 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
858 | os: [darwin]
859 |
860 | function-bind@1.1.2:
861 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
862 |
863 | function.prototype.name@1.1.7:
864 | resolution: {integrity: sha512-2g4x+HqTJKM9zcJqBSpjoRmdcPFtJM60J3xJisTQSXBWka5XqyBN/2tNUgma1mztTXyDuUsEtYe5qcs7xYzYQA==}
865 | engines: {node: '>= 0.4'}
866 |
867 | functions-have-names@1.2.3:
868 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
869 |
870 | gensync@1.0.0-beta.2:
871 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
872 | engines: {node: '>=6.9.0'}
873 |
874 | get-intrinsic@1.2.6:
875 | resolution: {integrity: sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==}
876 | engines: {node: '>= 0.4'}
877 |
878 | get-stream@6.0.1:
879 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
880 | engines: {node: '>=10'}
881 |
882 | get-symbol-description@1.0.2:
883 | resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==}
884 | engines: {node: '>= 0.4'}
885 |
886 | github-buttons@2.29.1:
887 | resolution: {integrity: sha512-TV3YgAKda5hPz75n7QXmGCsSzgVya1vvmBieebg3EB5ScmashTZ0FldViG1aU2d4V5rcAGrtQ7k5uAaCo0A4PA==}
888 |
889 | glob-parent@6.0.2:
890 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
891 | engines: {node: '>=10.13.0'}
892 |
893 | glob@7.2.3:
894 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
895 | deprecated: Glob versions prior to v9 are no longer supported
896 |
897 | globals@11.12.0:
898 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
899 | engines: {node: '>=4'}
900 |
901 | globals@13.24.0:
902 | resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
903 | engines: {node: '>=8'}
904 |
905 | globalthis@1.0.4:
906 | resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
907 | engines: {node: '>= 0.4'}
908 |
909 | gopd@1.2.0:
910 | resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
911 | engines: {node: '>= 0.4'}
912 |
913 | graphemer@1.4.0:
914 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
915 |
916 | has-bigints@1.0.2:
917 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
918 |
919 | has-flag@4.0.0:
920 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
921 | engines: {node: '>=8'}
922 |
923 | has-property-descriptors@1.0.2:
924 | resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
925 |
926 | has-proto@1.2.0:
927 | resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==}
928 | engines: {node: '>= 0.4'}
929 |
930 | has-symbols@1.1.0:
931 | resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
932 | engines: {node: '>= 0.4'}
933 |
934 | has-tostringtag@1.0.2:
935 | resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
936 | engines: {node: '>= 0.4'}
937 |
938 | hasown@2.0.2:
939 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
940 | engines: {node: '>= 0.4'}
941 |
942 | html2canvas@1.4.1:
943 | resolution: {integrity: sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==}
944 | engines: {node: '>=8.0.0'}
945 |
946 | human-signals@4.3.1:
947 | resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==}
948 | engines: {node: '>=14.18.0'}
949 |
950 | husky@8.0.3:
951 | resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==}
952 | engines: {node: '>=14'}
953 | hasBin: true
954 |
955 | ignore@5.3.2:
956 | resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
957 | engines: {node: '>= 4'}
958 |
959 | import-fresh@3.3.0:
960 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
961 | engines: {node: '>=6'}
962 |
963 | imurmurhash@0.1.4:
964 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
965 | engines: {node: '>=0.8.19'}
966 |
967 | inflight@1.0.6:
968 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
969 | deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
970 |
971 | inherits@2.0.4:
972 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
973 |
974 | internal-slot@1.1.0:
975 | resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==}
976 | engines: {node: '>= 0.4'}
977 |
978 | is-array-buffer@3.0.4:
979 | resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==}
980 | engines: {node: '>= 0.4'}
981 |
982 | is-async-function@2.0.0:
983 | resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==}
984 | engines: {node: '>= 0.4'}
985 |
986 | is-bigint@1.1.0:
987 | resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==}
988 | engines: {node: '>= 0.4'}
989 |
990 | is-boolean-object@1.2.1:
991 | resolution: {integrity: sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==}
992 | engines: {node: '>= 0.4'}
993 |
994 | is-callable@1.2.7:
995 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
996 | engines: {node: '>= 0.4'}
997 |
998 | is-core-module@2.16.0:
999 | resolution: {integrity: sha512-urTSINYfAYgcbLb0yDQ6egFm6h3Mo1DcF9EkyXSRjjzdHbsulg01qhwWuXdOoUBuTkbQ80KDboXa0vFJ+BDH+g==}
1000 | engines: {node: '>= 0.4'}
1001 |
1002 | is-data-view@1.0.2:
1003 | resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==}
1004 | engines: {node: '>= 0.4'}
1005 |
1006 | is-date-object@1.1.0:
1007 | resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==}
1008 | engines: {node: '>= 0.4'}
1009 |
1010 | is-extglob@2.1.1:
1011 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
1012 | engines: {node: '>=0.10.0'}
1013 |
1014 | is-finalizationregistry@1.1.0:
1015 | resolution: {integrity: sha512-qfMdqbAQEwBw78ZyReKnlA8ezmPdb9BemzIIip/JkjaZUhitfXDkkr+3QTboW0JrSXT1QWyYShpvnNHGZ4c4yA==}
1016 | engines: {node: '>= 0.4'}
1017 |
1018 | is-fullwidth-code-point@4.0.0:
1019 | resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==}
1020 | engines: {node: '>=12'}
1021 |
1022 | is-generator-function@1.0.10:
1023 | resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==}
1024 | engines: {node: '>= 0.4'}
1025 |
1026 | is-glob@4.0.3:
1027 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
1028 | engines: {node: '>=0.10.0'}
1029 |
1030 | is-map@2.0.3:
1031 | resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
1032 | engines: {node: '>= 0.4'}
1033 |
1034 | is-negative-zero@2.0.3:
1035 | resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==}
1036 | engines: {node: '>= 0.4'}
1037 |
1038 | is-number-object@1.1.0:
1039 | resolution: {integrity: sha512-KVSZV0Dunv9DTPkhXwcZ3Q+tUc9TsaE1ZwX5J2WMvsSGS6Md8TFPun5uwh0yRdrNerI6vf/tbJxqSx4c1ZI1Lw==}
1040 | engines: {node: '>= 0.4'}
1041 |
1042 | is-number@7.0.0:
1043 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
1044 | engines: {node: '>=0.12.0'}
1045 |
1046 | is-path-inside@3.0.3:
1047 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
1048 | engines: {node: '>=8'}
1049 |
1050 | is-regex@1.2.1:
1051 | resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
1052 | engines: {node: '>= 0.4'}
1053 |
1054 | is-set@2.0.3:
1055 | resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==}
1056 | engines: {node: '>= 0.4'}
1057 |
1058 | is-shared-array-buffer@1.0.3:
1059 | resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==}
1060 | engines: {node: '>= 0.4'}
1061 |
1062 | is-stream@3.0.0:
1063 | resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
1064 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
1065 |
1066 | is-string@1.1.0:
1067 | resolution: {integrity: sha512-PlfzajuF9vSo5wErv3MJAKD/nqf9ngAs1NFQYm16nUYFO2IzxJ2hcm+IOCg+EEopdykNNUhVq5cz35cAUxU8+g==}
1068 | engines: {node: '>= 0.4'}
1069 |
1070 | is-symbol@1.1.1:
1071 | resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==}
1072 | engines: {node: '>= 0.4'}
1073 |
1074 | is-typed-array@1.1.13:
1075 | resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==}
1076 | engines: {node: '>= 0.4'}
1077 |
1078 | is-weakmap@2.0.2:
1079 | resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
1080 | engines: {node: '>= 0.4'}
1081 |
1082 | is-weakref@1.1.0:
1083 | resolution: {integrity: sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==}
1084 | engines: {node: '>= 0.4'}
1085 |
1086 | is-weakset@2.0.3:
1087 | resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==}
1088 | engines: {node: '>= 0.4'}
1089 |
1090 | isarray@2.0.5:
1091 | resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
1092 |
1093 | isexe@2.0.0:
1094 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
1095 |
1096 | iterator.prototype@1.1.4:
1097 | resolution: {integrity: sha512-x4WH0BWmrMmg4oHHl+duwubhrvczGlyuGAZu3nvrf0UXOfPu8IhZObFEr7DE/iv01YgVZrsOiRcqw2srkKEDIA==}
1098 | engines: {node: '>= 0.4'}
1099 |
1100 | js-tokens@4.0.0:
1101 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
1102 |
1103 | js-yaml@4.1.0:
1104 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
1105 | hasBin: true
1106 |
1107 | jsesc@3.1.0:
1108 | resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
1109 | engines: {node: '>=6'}
1110 | hasBin: true
1111 |
1112 | json-buffer@3.0.1:
1113 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
1114 |
1115 | json-schema-traverse@0.4.1:
1116 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
1117 |
1118 | json-stable-stringify-without-jsonify@1.0.1:
1119 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
1120 |
1121 | json5@2.2.3:
1122 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
1123 | engines: {node: '>=6'}
1124 | hasBin: true
1125 |
1126 | jsx-ast-utils@3.3.5:
1127 | resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==}
1128 | engines: {node: '>=4.0'}
1129 |
1130 | keyv@4.5.4:
1131 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
1132 |
1133 | levn@0.4.1:
1134 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
1135 | engines: {node: '>= 0.8.0'}
1136 |
1137 | lilconfig@2.1.0:
1138 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
1139 | engines: {node: '>=10'}
1140 |
1141 | lint-staged@13.3.0:
1142 | resolution: {integrity: sha512-mPRtrYnipYYv1FEE134ufbWpeggNTo+O/UPzngoaKzbzHAthvR55am+8GfHTnqNRQVRRrYQLGW9ZyUoD7DsBHQ==}
1143 | engines: {node: ^16.14.0 || >=18.0.0}
1144 | hasBin: true
1145 |
1146 | listr2@6.6.1:
1147 | resolution: {integrity: sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==}
1148 | engines: {node: '>=16.0.0'}
1149 | peerDependencies:
1150 | enquirer: '>= 2.3.0 < 3'
1151 | peerDependenciesMeta:
1152 | enquirer:
1153 | optional: true
1154 |
1155 | locate-path@6.0.0:
1156 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
1157 | engines: {node: '>=10'}
1158 |
1159 | lodash.merge@4.6.2:
1160 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
1161 |
1162 | log-update@5.0.1:
1163 | resolution: {integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==}
1164 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
1165 |
1166 | loose-envify@1.4.0:
1167 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
1168 | hasBin: true
1169 |
1170 | lru-cache@5.1.1:
1171 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
1172 |
1173 | math-intrinsics@1.0.0:
1174 | resolution: {integrity: sha512-4MqMiKP90ybymYvsut0CH2g4XWbfLtmlCkXmtmdcDCxNB+mQcu1w/1+L/VD7vi/PSv7X2JYV7SCcR+jiPXnQtA==}
1175 | engines: {node: '>= 0.4'}
1176 |
1177 | merge-stream@2.0.0:
1178 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
1179 |
1180 | micromatch@4.0.5:
1181 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
1182 | engines: {node: '>=8.6'}
1183 |
1184 | mimic-fn@2.1.0:
1185 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
1186 | engines: {node: '>=6'}
1187 |
1188 | mimic-fn@4.0.0:
1189 | resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
1190 | engines: {node: '>=12'}
1191 |
1192 | minimatch@3.1.2:
1193 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
1194 |
1195 | ms@2.1.2:
1196 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
1197 |
1198 | ms@2.1.3:
1199 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
1200 |
1201 | nanoid@3.3.8:
1202 | resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==}
1203 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
1204 | hasBin: true
1205 |
1206 | natural-compare@1.4.0:
1207 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
1208 |
1209 | node-releases@2.0.19:
1210 | resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
1211 |
1212 | npm-run-path@5.3.0:
1213 | resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==}
1214 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
1215 |
1216 | object-assign@4.1.1:
1217 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
1218 | engines: {node: '>=0.10.0'}
1219 |
1220 | object-inspect@1.13.3:
1221 | resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==}
1222 | engines: {node: '>= 0.4'}
1223 |
1224 | object-keys@1.1.1:
1225 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
1226 | engines: {node: '>= 0.4'}
1227 |
1228 | object.assign@4.1.5:
1229 | resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==}
1230 | engines: {node: '>= 0.4'}
1231 |
1232 | object.entries@1.1.8:
1233 | resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==}
1234 | engines: {node: '>= 0.4'}
1235 |
1236 | object.fromentries@2.0.8:
1237 | resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==}
1238 | engines: {node: '>= 0.4'}
1239 |
1240 | object.values@1.2.0:
1241 | resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==}
1242 | engines: {node: '>= 0.4'}
1243 |
1244 | once@1.4.0:
1245 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
1246 |
1247 | onetime@5.1.2:
1248 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
1249 | engines: {node: '>=6'}
1250 |
1251 | onetime@6.0.0:
1252 | resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==}
1253 | engines: {node: '>=12'}
1254 |
1255 | optionator@0.9.4:
1256 | resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
1257 | engines: {node: '>= 0.8.0'}
1258 |
1259 | p-limit@3.1.0:
1260 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
1261 | engines: {node: '>=10'}
1262 |
1263 | p-locate@5.0.0:
1264 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
1265 | engines: {node: '>=10'}
1266 |
1267 | parent-module@1.0.1:
1268 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
1269 | engines: {node: '>=6'}
1270 |
1271 | path-exists@4.0.0:
1272 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
1273 | engines: {node: '>=8'}
1274 |
1275 | path-is-absolute@1.0.1:
1276 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
1277 | engines: {node: '>=0.10.0'}
1278 |
1279 | path-key@3.1.1:
1280 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
1281 | engines: {node: '>=8'}
1282 |
1283 | path-key@4.0.0:
1284 | resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==}
1285 | engines: {node: '>=12'}
1286 |
1287 | path-parse@1.0.7:
1288 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
1289 |
1290 | picocolors@1.1.1:
1291 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
1292 |
1293 | picomatch@2.3.1:
1294 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
1295 | engines: {node: '>=8.6'}
1296 |
1297 | pidtree@0.6.0:
1298 | resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==}
1299 | engines: {node: '>=0.10'}
1300 | hasBin: true
1301 |
1302 | possible-typed-array-names@1.0.0:
1303 | resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==}
1304 | engines: {node: '>= 0.4'}
1305 |
1306 | postcss-value-parser@4.2.0:
1307 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
1308 |
1309 | postcss@8.4.38:
1310 | resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==}
1311 | engines: {node: ^10 || ^12 || >=14}
1312 |
1313 | postcss@8.4.49:
1314 | resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==}
1315 | engines: {node: ^10 || ^12 || >=14}
1316 |
1317 | prelude-ls@1.2.1:
1318 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
1319 | engines: {node: '>= 0.8.0'}
1320 |
1321 | prettier@2.8.8:
1322 | resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==}
1323 | engines: {node: '>=10.13.0'}
1324 | hasBin: true
1325 |
1326 | prop-types@15.8.1:
1327 | resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
1328 |
1329 | punycode@2.3.1:
1330 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
1331 | engines: {node: '>=6'}
1332 |
1333 | qrcode.react@4.2.0:
1334 | resolution: {integrity: sha512-QpgqWi8rD9DsS9EP3z7BT+5lY5SFhsqGjpgW5DY/i3mK4M9DTBNz3ErMi8BWYEfI3L0d8GIbGmcdFAS1uIRGjA==}
1335 | peerDependencies:
1336 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
1337 |
1338 | queue-microtask@1.2.3:
1339 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
1340 |
1341 | react-dom@19.0.0:
1342 | resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==}
1343 | peerDependencies:
1344 | react: ^19.0.0
1345 |
1346 | react-github-btn@1.4.0:
1347 | resolution: {integrity: sha512-lV4FYClAfjWnBfv0iNlJUGhamDgIq6TayD0kPZED6VzHWdpcHmPfsYOZ/CFwLfPv4Zp+F4m8QKTj0oy2HjiGXg==}
1348 | peerDependencies:
1349 | react: '>=16.3.0'
1350 |
1351 | react-icons@5.4.0:
1352 | resolution: {integrity: sha512-7eltJxgVt7X64oHh6wSWNwwbKTCtMfK35hcjvJS0yxEAhPM8oUKdS3+kqaW1vicIltw+kR2unHaa12S9pPALoQ==}
1353 | peerDependencies:
1354 | react: '*'
1355 |
1356 | react-is@16.13.1:
1357 | resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
1358 |
1359 | react-refresh@0.14.2:
1360 | resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==}
1361 | engines: {node: '>=0.10.0'}
1362 |
1363 | react@19.0.0:
1364 | resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==}
1365 | engines: {node: '>=0.10.0'}
1366 |
1367 | reflect.getprototypeof@1.0.8:
1368 | resolution: {integrity: sha512-B5dj6usc5dkk8uFliwjwDHM8To5/QwdKz9JcBZ8Ic4G1f0YmeeJTtE/ZTdgRFPAfxZFiUaPhZ1Jcs4qeagItGQ==}
1369 | engines: {node: '>= 0.4'}
1370 |
1371 | regexp.prototype.flags@1.5.3:
1372 | resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==}
1373 | engines: {node: '>= 0.4'}
1374 |
1375 | resolve-from@4.0.0:
1376 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
1377 | engines: {node: '>=4'}
1378 |
1379 | resolve@2.0.0-next.5:
1380 | resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==}
1381 | hasBin: true
1382 |
1383 | restore-cursor@4.0.0:
1384 | resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==}
1385 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
1386 |
1387 | reusify@1.0.4:
1388 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
1389 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
1390 |
1391 | rfdc@1.4.1:
1392 | resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==}
1393 |
1394 | rimraf@3.0.2:
1395 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
1396 | deprecated: Rimraf versions prior to v4 are no longer supported
1397 | hasBin: true
1398 |
1399 | rollup@4.28.1:
1400 | resolution: {integrity: sha512-61fXYl/qNVinKmGSTHAZ6Yy8I3YIJC/r2m9feHo6SwVAVcLT5MPwOUFe7EuURA/4m0NR8lXG4BBXuo/IZEsjMg==}
1401 | engines: {node: '>=18.0.0', npm: '>=8.0.0'}
1402 | hasBin: true
1403 |
1404 | run-parallel@1.2.0:
1405 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
1406 |
1407 | safe-array-concat@1.1.3:
1408 | resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==}
1409 | engines: {node: '>=0.4'}
1410 |
1411 | safe-regex-test@1.1.0:
1412 | resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==}
1413 | engines: {node: '>= 0.4'}
1414 |
1415 | scheduler@0.25.0:
1416 | resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==}
1417 |
1418 | semver@6.3.1:
1419 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
1420 | hasBin: true
1421 |
1422 | set-function-length@1.2.2:
1423 | resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
1424 | engines: {node: '>= 0.4'}
1425 |
1426 | set-function-name@2.0.2:
1427 | resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
1428 | engines: {node: '>= 0.4'}
1429 |
1430 | shallowequal@1.1.0:
1431 | resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==}
1432 |
1433 | shebang-command@2.0.0:
1434 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
1435 | engines: {node: '>=8'}
1436 |
1437 | shebang-regex@3.0.0:
1438 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
1439 | engines: {node: '>=8'}
1440 |
1441 | side-channel-list@1.0.0:
1442 | resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
1443 | engines: {node: '>= 0.4'}
1444 |
1445 | side-channel-map@1.0.1:
1446 | resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==}
1447 | engines: {node: '>= 0.4'}
1448 |
1449 | side-channel-weakmap@1.0.2:
1450 | resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==}
1451 | engines: {node: '>= 0.4'}
1452 |
1453 | side-channel@1.1.0:
1454 | resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
1455 | engines: {node: '>= 0.4'}
1456 |
1457 | signal-exit@3.0.7:
1458 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
1459 |
1460 | slice-ansi@5.0.0:
1461 | resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==}
1462 | engines: {node: '>=12'}
1463 |
1464 | source-map-js@1.2.1:
1465 | resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
1466 | engines: {node: '>=0.10.0'}
1467 |
1468 | string-argv@0.3.2:
1469 | resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==}
1470 | engines: {node: '>=0.6.19'}
1471 |
1472 | string-width@5.1.2:
1473 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
1474 | engines: {node: '>=12'}
1475 |
1476 | string.prototype.matchall@4.0.11:
1477 | resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==}
1478 | engines: {node: '>= 0.4'}
1479 |
1480 | string.prototype.repeat@1.0.0:
1481 | resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==}
1482 |
1483 | string.prototype.trim@1.2.10:
1484 | resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==}
1485 | engines: {node: '>= 0.4'}
1486 |
1487 | string.prototype.trimend@1.0.9:
1488 | resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==}
1489 | engines: {node: '>= 0.4'}
1490 |
1491 | string.prototype.trimstart@1.0.8:
1492 | resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
1493 | engines: {node: '>= 0.4'}
1494 |
1495 | strip-ansi@6.0.1:
1496 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
1497 | engines: {node: '>=8'}
1498 |
1499 | strip-ansi@7.1.0:
1500 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
1501 | engines: {node: '>=12'}
1502 |
1503 | strip-final-newline@3.0.0:
1504 | resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
1505 | engines: {node: '>=12'}
1506 |
1507 | strip-json-comments@3.1.1:
1508 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
1509 | engines: {node: '>=8'}
1510 |
1511 | styled-components@6.1.13:
1512 | resolution: {integrity: sha512-M0+N2xSnAtwcVAQeFEsGWFFxXDftHUD7XrKla06QbpUMmbmtFBMMTcKWvFXtWxuD5qQkB8iU5gk6QASlx2ZRMw==}
1513 | engines: {node: '>= 16'}
1514 | peerDependencies:
1515 | react: '>= 16.8.0'
1516 | react-dom: '>= 16.8.0'
1517 |
1518 | styled-reset@4.5.2:
1519 | resolution: {integrity: sha512-dbAaaVEhweBs2FGfqGBdW6oMcMK8238C2X5KCxBhUQJX92m/QyUfzRADOXhdXiXNkIPELtMCd72YY9eCdORfIw==}
1520 | engines: {node: '>=18.0.0'}
1521 | peerDependencies:
1522 | styled-components: '>=4.0.0 || >=5.0.0 || >=6.0.0'
1523 |
1524 | stylis@4.3.2:
1525 | resolution: {integrity: sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==}
1526 |
1527 | supports-color@7.2.0:
1528 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
1529 | engines: {node: '>=8'}
1530 |
1531 | supports-preserve-symlinks-flag@1.0.0:
1532 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
1533 | engines: {node: '>= 0.4'}
1534 |
1535 | text-segmentation@1.0.3:
1536 | resolution: {integrity: sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==}
1537 |
1538 | text-table@0.2.0:
1539 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
1540 |
1541 | to-regex-range@5.0.1:
1542 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
1543 | engines: {node: '>=8.0'}
1544 |
1545 | tslib@2.6.2:
1546 | resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
1547 |
1548 | type-check@0.4.0:
1549 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
1550 | engines: {node: '>= 0.8.0'}
1551 |
1552 | type-fest@0.20.2:
1553 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
1554 | engines: {node: '>=10'}
1555 |
1556 | type-fest@1.4.0:
1557 | resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==}
1558 | engines: {node: '>=10'}
1559 |
1560 | typed-array-buffer@1.0.2:
1561 | resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==}
1562 | engines: {node: '>= 0.4'}
1563 |
1564 | typed-array-byte-length@1.0.1:
1565 | resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==}
1566 | engines: {node: '>= 0.4'}
1567 |
1568 | typed-array-byte-offset@1.0.3:
1569 | resolution: {integrity: sha512-GsvTyUHTriq6o/bHcTd0vM7OQ9JEdlvluu9YISaA7+KzDzPaIzEeDFNkTfhdE3MYcNhNi0vq/LlegYgIs5yPAw==}
1570 | engines: {node: '>= 0.4'}
1571 |
1572 | typed-array-length@1.0.7:
1573 | resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==}
1574 | engines: {node: '>= 0.4'}
1575 |
1576 | unbox-primitive@1.0.2:
1577 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
1578 |
1579 | update-browserslist-db@1.1.1:
1580 | resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==}
1581 | hasBin: true
1582 | peerDependencies:
1583 | browserslist: '>= 4.21.0'
1584 |
1585 | uri-js@4.4.1:
1586 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
1587 |
1588 | utrie@1.0.2:
1589 | resolution: {integrity: sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==}
1590 |
1591 | vite@6.0.3:
1592 | resolution: {integrity: sha512-Cmuo5P0ENTN6HxLSo6IHsjCLn/81Vgrp81oaiFFMRa8gGDj5xEjIcEpf2ZymZtZR8oU0P2JX5WuUp/rlXcHkAw==}
1593 | engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
1594 | hasBin: true
1595 | peerDependencies:
1596 | '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
1597 | jiti: '>=1.21.0'
1598 | less: '*'
1599 | lightningcss: ^1.21.0
1600 | sass: '*'
1601 | sass-embedded: '*'
1602 | stylus: '*'
1603 | sugarss: '*'
1604 | terser: ^5.16.0
1605 | tsx: ^4.8.1
1606 | yaml: ^2.4.2
1607 | peerDependenciesMeta:
1608 | '@types/node':
1609 | optional: true
1610 | jiti:
1611 | optional: true
1612 | less:
1613 | optional: true
1614 | lightningcss:
1615 | optional: true
1616 | sass:
1617 | optional: true
1618 | sass-embedded:
1619 | optional: true
1620 | stylus:
1621 | optional: true
1622 | sugarss:
1623 | optional: true
1624 | terser:
1625 | optional: true
1626 | tsx:
1627 | optional: true
1628 | yaml:
1629 | optional: true
1630 |
1631 | which-boxed-primitive@1.1.0:
1632 | resolution: {integrity: sha512-Ei7Miu/AXe2JJ4iNF5j/UphAgRoma4trE6PtisM09bPygb3egMH3YLW/befsWb1A1AxvNSFidOFTB18XtnIIng==}
1633 | engines: {node: '>= 0.4'}
1634 |
1635 | which-builtin-type@1.2.1:
1636 | resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==}
1637 | engines: {node: '>= 0.4'}
1638 |
1639 | which-collection@1.0.2:
1640 | resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
1641 | engines: {node: '>= 0.4'}
1642 |
1643 | which-typed-array@1.1.16:
1644 | resolution: {integrity: sha512-g+N+GAWiRj66DngFwHvISJd+ITsyphZvD1vChfVg6cEdnzy53GzB3oy0fUNlvhz7H7+MiqhYr26qxQShCpKTTQ==}
1645 | engines: {node: '>= 0.4'}
1646 |
1647 | which@2.0.2:
1648 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
1649 | engines: {node: '>= 8'}
1650 | hasBin: true
1651 |
1652 | word-wrap@1.2.5:
1653 | resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
1654 | engines: {node: '>=0.10.0'}
1655 |
1656 | wrap-ansi@8.1.0:
1657 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
1658 | engines: {node: '>=12'}
1659 |
1660 | wrappy@1.0.2:
1661 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
1662 |
1663 | yallist@3.1.1:
1664 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
1665 |
1666 | yaml@2.3.1:
1667 | resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==}
1668 | engines: {node: '>= 14'}
1669 |
1670 | yocto-queue@0.1.0:
1671 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
1672 | engines: {node: '>=10'}
1673 |
1674 | snapshots:
1675 |
1676 | '@ampproject/remapping@2.3.0':
1677 | dependencies:
1678 | '@jridgewell/gen-mapping': 0.3.8
1679 | '@jridgewell/trace-mapping': 0.3.25
1680 |
1681 | '@babel/code-frame@7.26.2':
1682 | dependencies:
1683 | '@babel/helper-validator-identifier': 7.25.9
1684 | js-tokens: 4.0.0
1685 | picocolors: 1.1.1
1686 |
1687 | '@babel/compat-data@7.26.3': {}
1688 |
1689 | '@babel/core@7.26.0':
1690 | dependencies:
1691 | '@ampproject/remapping': 2.3.0
1692 | '@babel/code-frame': 7.26.2
1693 | '@babel/generator': 7.26.3
1694 | '@babel/helper-compilation-targets': 7.25.9
1695 | '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0)
1696 | '@babel/helpers': 7.26.0
1697 | '@babel/parser': 7.26.3
1698 | '@babel/template': 7.25.9
1699 | '@babel/traverse': 7.26.4
1700 | '@babel/types': 7.26.3
1701 | convert-source-map: 2.0.0
1702 | debug: 4.4.0
1703 | gensync: 1.0.0-beta.2
1704 | json5: 2.2.3
1705 | semver: 6.3.1
1706 | transitivePeerDependencies:
1707 | - supports-color
1708 |
1709 | '@babel/generator@7.26.3':
1710 | dependencies:
1711 | '@babel/parser': 7.26.3
1712 | '@babel/types': 7.26.3
1713 | '@jridgewell/gen-mapping': 0.3.8
1714 | '@jridgewell/trace-mapping': 0.3.25
1715 | jsesc: 3.1.0
1716 |
1717 | '@babel/helper-compilation-targets@7.25.9':
1718 | dependencies:
1719 | '@babel/compat-data': 7.26.3
1720 | '@babel/helper-validator-option': 7.25.9
1721 | browserslist: 4.24.3
1722 | lru-cache: 5.1.1
1723 | semver: 6.3.1
1724 |
1725 | '@babel/helper-module-imports@7.25.9':
1726 | dependencies:
1727 | '@babel/traverse': 7.26.4
1728 | '@babel/types': 7.26.3
1729 | transitivePeerDependencies:
1730 | - supports-color
1731 |
1732 | '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)':
1733 | dependencies:
1734 | '@babel/core': 7.26.0
1735 | '@babel/helper-module-imports': 7.25.9
1736 | '@babel/helper-validator-identifier': 7.25.9
1737 | '@babel/traverse': 7.26.4
1738 | transitivePeerDependencies:
1739 | - supports-color
1740 |
1741 | '@babel/helper-plugin-utils@7.25.9': {}
1742 |
1743 | '@babel/helper-string-parser@7.25.9': {}
1744 |
1745 | '@babel/helper-validator-identifier@7.25.9': {}
1746 |
1747 | '@babel/helper-validator-option@7.25.9': {}
1748 |
1749 | '@babel/helpers@7.26.0':
1750 | dependencies:
1751 | '@babel/template': 7.25.9
1752 | '@babel/types': 7.26.3
1753 |
1754 | '@babel/parser@7.26.3':
1755 | dependencies:
1756 | '@babel/types': 7.26.3
1757 |
1758 | '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.0)':
1759 | dependencies:
1760 | '@babel/core': 7.26.0
1761 | '@babel/helper-plugin-utils': 7.25.9
1762 |
1763 | '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.26.0)':
1764 | dependencies:
1765 | '@babel/core': 7.26.0
1766 | '@babel/helper-plugin-utils': 7.25.9
1767 |
1768 | '@babel/template@7.25.9':
1769 | dependencies:
1770 | '@babel/code-frame': 7.26.2
1771 | '@babel/parser': 7.26.3
1772 | '@babel/types': 7.26.3
1773 |
1774 | '@babel/traverse@7.26.4':
1775 | dependencies:
1776 | '@babel/code-frame': 7.26.2
1777 | '@babel/generator': 7.26.3
1778 | '@babel/parser': 7.26.3
1779 | '@babel/template': 7.25.9
1780 | '@babel/types': 7.26.3
1781 | debug: 4.4.0
1782 | globals: 11.12.0
1783 | transitivePeerDependencies:
1784 | - supports-color
1785 |
1786 | '@babel/types@7.26.3':
1787 | dependencies:
1788 | '@babel/helper-string-parser': 7.25.9
1789 | '@babel/helper-validator-identifier': 7.25.9
1790 |
1791 | '@emotion/is-prop-valid@1.2.2':
1792 | dependencies:
1793 | '@emotion/memoize': 0.8.1
1794 |
1795 | '@emotion/memoize@0.8.1': {}
1796 |
1797 | '@emotion/unitless@0.8.1': {}
1798 |
1799 | '@esbuild/aix-ppc64@0.24.0':
1800 | optional: true
1801 |
1802 | '@esbuild/android-arm64@0.24.0':
1803 | optional: true
1804 |
1805 | '@esbuild/android-arm@0.24.0':
1806 | optional: true
1807 |
1808 | '@esbuild/android-x64@0.24.0':
1809 | optional: true
1810 |
1811 | '@esbuild/darwin-arm64@0.24.0':
1812 | optional: true
1813 |
1814 | '@esbuild/darwin-x64@0.24.0':
1815 | optional: true
1816 |
1817 | '@esbuild/freebsd-arm64@0.24.0':
1818 | optional: true
1819 |
1820 | '@esbuild/freebsd-x64@0.24.0':
1821 | optional: true
1822 |
1823 | '@esbuild/linux-arm64@0.24.0':
1824 | optional: true
1825 |
1826 | '@esbuild/linux-arm@0.24.0':
1827 | optional: true
1828 |
1829 | '@esbuild/linux-ia32@0.24.0':
1830 | optional: true
1831 |
1832 | '@esbuild/linux-loong64@0.24.0':
1833 | optional: true
1834 |
1835 | '@esbuild/linux-mips64el@0.24.0':
1836 | optional: true
1837 |
1838 | '@esbuild/linux-ppc64@0.24.0':
1839 | optional: true
1840 |
1841 | '@esbuild/linux-riscv64@0.24.0':
1842 | optional: true
1843 |
1844 | '@esbuild/linux-s390x@0.24.0':
1845 | optional: true
1846 |
1847 | '@esbuild/linux-x64@0.24.0':
1848 | optional: true
1849 |
1850 | '@esbuild/netbsd-x64@0.24.0':
1851 | optional: true
1852 |
1853 | '@esbuild/openbsd-arm64@0.24.0':
1854 | optional: true
1855 |
1856 | '@esbuild/openbsd-x64@0.24.0':
1857 | optional: true
1858 |
1859 | '@esbuild/sunos-x64@0.24.0':
1860 | optional: true
1861 |
1862 | '@esbuild/win32-arm64@0.24.0':
1863 | optional: true
1864 |
1865 | '@esbuild/win32-ia32@0.24.0':
1866 | optional: true
1867 |
1868 | '@esbuild/win32-x64@0.24.0':
1869 | optional: true
1870 |
1871 | '@eslint-community/eslint-utils@4.4.1(eslint@8.57.1)':
1872 | dependencies:
1873 | eslint: 8.57.1
1874 | eslint-visitor-keys: 3.4.3
1875 |
1876 | '@eslint-community/regexpp@4.12.1': {}
1877 |
1878 | '@eslint/eslintrc@2.1.4':
1879 | dependencies:
1880 | ajv: 6.12.6
1881 | debug: 4.4.0
1882 | espree: 9.6.1
1883 | globals: 13.24.0
1884 | ignore: 5.3.2
1885 | import-fresh: 3.3.0
1886 | js-yaml: 4.1.0
1887 | minimatch: 3.1.2
1888 | strip-json-comments: 3.1.1
1889 | transitivePeerDependencies:
1890 | - supports-color
1891 |
1892 | '@eslint/js@8.57.1': {}
1893 |
1894 | '@humanwhocodes/config-array@0.13.0':
1895 | dependencies:
1896 | '@humanwhocodes/object-schema': 2.0.3
1897 | debug: 4.4.0
1898 | minimatch: 3.1.2
1899 | transitivePeerDependencies:
1900 | - supports-color
1901 |
1902 | '@humanwhocodes/module-importer@1.0.1': {}
1903 |
1904 | '@humanwhocodes/object-schema@2.0.3': {}
1905 |
1906 | '@jridgewell/gen-mapping@0.3.8':
1907 | dependencies:
1908 | '@jridgewell/set-array': 1.2.1
1909 | '@jridgewell/sourcemap-codec': 1.5.0
1910 | '@jridgewell/trace-mapping': 0.3.25
1911 |
1912 | '@jridgewell/resolve-uri@3.1.2': {}
1913 |
1914 | '@jridgewell/set-array@1.2.1': {}
1915 |
1916 | '@jridgewell/sourcemap-codec@1.5.0': {}
1917 |
1918 | '@jridgewell/trace-mapping@0.3.25':
1919 | dependencies:
1920 | '@jridgewell/resolve-uri': 3.1.2
1921 | '@jridgewell/sourcemap-codec': 1.5.0
1922 |
1923 | '@nodelib/fs.scandir@2.1.5':
1924 | dependencies:
1925 | '@nodelib/fs.stat': 2.0.5
1926 | run-parallel: 1.2.0
1927 |
1928 | '@nodelib/fs.stat@2.0.5': {}
1929 |
1930 | '@nodelib/fs.walk@1.2.8':
1931 | dependencies:
1932 | '@nodelib/fs.scandir': 2.1.5
1933 | fastq: 1.17.1
1934 |
1935 | '@rollup/rollup-android-arm-eabi@4.28.1':
1936 | optional: true
1937 |
1938 | '@rollup/rollup-android-arm64@4.28.1':
1939 | optional: true
1940 |
1941 | '@rollup/rollup-darwin-arm64@4.28.1':
1942 | optional: true
1943 |
1944 | '@rollup/rollup-darwin-x64@4.28.1':
1945 | optional: true
1946 |
1947 | '@rollup/rollup-freebsd-arm64@4.28.1':
1948 | optional: true
1949 |
1950 | '@rollup/rollup-freebsd-x64@4.28.1':
1951 | optional: true
1952 |
1953 | '@rollup/rollup-linux-arm-gnueabihf@4.28.1':
1954 | optional: true
1955 |
1956 | '@rollup/rollup-linux-arm-musleabihf@4.28.1':
1957 | optional: true
1958 |
1959 | '@rollup/rollup-linux-arm64-gnu@4.28.1':
1960 | optional: true
1961 |
1962 | '@rollup/rollup-linux-arm64-musl@4.28.1':
1963 | optional: true
1964 |
1965 | '@rollup/rollup-linux-loongarch64-gnu@4.28.1':
1966 | optional: true
1967 |
1968 | '@rollup/rollup-linux-powerpc64le-gnu@4.28.1':
1969 | optional: true
1970 |
1971 | '@rollup/rollup-linux-riscv64-gnu@4.28.1':
1972 | optional: true
1973 |
1974 | '@rollup/rollup-linux-s390x-gnu@4.28.1':
1975 | optional: true
1976 |
1977 | '@rollup/rollup-linux-x64-gnu@4.28.1':
1978 | optional: true
1979 |
1980 | '@rollup/rollup-linux-x64-musl@4.28.1':
1981 | optional: true
1982 |
1983 | '@rollup/rollup-win32-arm64-msvc@4.28.1':
1984 | optional: true
1985 |
1986 | '@rollup/rollup-win32-ia32-msvc@4.28.1':
1987 | optional: true
1988 |
1989 | '@rollup/rollup-win32-x64-msvc@4.28.1':
1990 | optional: true
1991 |
1992 | '@types/babel__core@7.20.5':
1993 | dependencies:
1994 | '@babel/parser': 7.26.3
1995 | '@babel/types': 7.26.3
1996 | '@types/babel__generator': 7.6.8
1997 | '@types/babel__template': 7.4.4
1998 | '@types/babel__traverse': 7.20.6
1999 |
2000 | '@types/babel__generator@7.6.8':
2001 | dependencies:
2002 | '@babel/types': 7.26.3
2003 |
2004 | '@types/babel__template@7.4.4':
2005 | dependencies:
2006 | '@babel/parser': 7.26.3
2007 | '@babel/types': 7.26.3
2008 |
2009 | '@types/babel__traverse@7.20.6':
2010 | dependencies:
2011 | '@babel/types': 7.26.3
2012 |
2013 | '@types/estree@1.0.6': {}
2014 |
2015 | '@types/stylis@4.2.5': {}
2016 |
2017 | '@ungap/structured-clone@1.2.1': {}
2018 |
2019 | '@vitejs/plugin-react@4.3.4(vite@6.0.3)':
2020 | dependencies:
2021 | '@babel/core': 7.26.0
2022 | '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0)
2023 | '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0)
2024 | '@types/babel__core': 7.20.5
2025 | react-refresh: 0.14.2
2026 | vite: 6.0.3
2027 | transitivePeerDependencies:
2028 | - supports-color
2029 |
2030 | acorn-jsx@5.3.2(acorn@8.14.0):
2031 | dependencies:
2032 | acorn: 8.14.0
2033 |
2034 | acorn@8.14.0: {}
2035 |
2036 | ajv@6.12.6:
2037 | dependencies:
2038 | fast-deep-equal: 3.1.3
2039 | fast-json-stable-stringify: 2.1.0
2040 | json-schema-traverse: 0.4.1
2041 | uri-js: 4.4.1
2042 |
2043 | ansi-escapes@5.0.0:
2044 | dependencies:
2045 | type-fest: 1.4.0
2046 |
2047 | ansi-regex@5.0.1: {}
2048 |
2049 | ansi-regex@6.1.0: {}
2050 |
2051 | ansi-styles@4.3.0:
2052 | dependencies:
2053 | color-convert: 2.0.1
2054 |
2055 | ansi-styles@6.2.1: {}
2056 |
2057 | argparse@2.0.1: {}
2058 |
2059 | array-buffer-byte-length@1.0.1:
2060 | dependencies:
2061 | call-bind: 1.0.8
2062 | is-array-buffer: 3.0.4
2063 |
2064 | array-includes@3.1.8:
2065 | dependencies:
2066 | call-bind: 1.0.8
2067 | define-properties: 1.2.1
2068 | es-abstract: 1.23.5
2069 | es-object-atoms: 1.0.0
2070 | get-intrinsic: 1.2.6
2071 | is-string: 1.1.0
2072 |
2073 | array.prototype.findlast@1.2.5:
2074 | dependencies:
2075 | call-bind: 1.0.8
2076 | define-properties: 1.2.1
2077 | es-abstract: 1.23.5
2078 | es-errors: 1.3.0
2079 | es-object-atoms: 1.0.0
2080 | es-shim-unscopables: 1.0.2
2081 |
2082 | array.prototype.flat@1.3.3:
2083 | dependencies:
2084 | call-bind: 1.0.8
2085 | define-properties: 1.2.1
2086 | es-abstract: 1.23.5
2087 | es-shim-unscopables: 1.0.2
2088 |
2089 | array.prototype.flatmap@1.3.2:
2090 | dependencies:
2091 | call-bind: 1.0.8
2092 | define-properties: 1.2.1
2093 | es-abstract: 1.23.5
2094 | es-shim-unscopables: 1.0.2
2095 |
2096 | array.prototype.tosorted@1.1.4:
2097 | dependencies:
2098 | call-bind: 1.0.8
2099 | define-properties: 1.2.1
2100 | es-abstract: 1.23.5
2101 | es-errors: 1.3.0
2102 | es-shim-unscopables: 1.0.2
2103 |
2104 | arraybuffer.prototype.slice@1.0.4:
2105 | dependencies:
2106 | array-buffer-byte-length: 1.0.1
2107 | call-bind: 1.0.8
2108 | define-properties: 1.2.1
2109 | es-abstract: 1.23.5
2110 | es-errors: 1.3.0
2111 | get-intrinsic: 1.2.6
2112 | is-array-buffer: 3.0.4
2113 |
2114 | available-typed-arrays@1.0.7:
2115 | dependencies:
2116 | possible-typed-array-names: 1.0.0
2117 |
2118 | balanced-match@1.0.2: {}
2119 |
2120 | base64-arraybuffer@1.0.2: {}
2121 |
2122 | brace-expansion@1.1.11:
2123 | dependencies:
2124 | balanced-match: 1.0.2
2125 | concat-map: 0.0.1
2126 |
2127 | braces@3.0.3:
2128 | dependencies:
2129 | fill-range: 7.1.1
2130 |
2131 | browserslist@4.24.3:
2132 | dependencies:
2133 | caniuse-lite: 1.0.30001688
2134 | electron-to-chromium: 1.5.73
2135 | node-releases: 2.0.19
2136 | update-browserslist-db: 1.1.1(browserslist@4.24.3)
2137 |
2138 | call-bind-apply-helpers@1.0.1:
2139 | dependencies:
2140 | es-errors: 1.3.0
2141 | function-bind: 1.1.2
2142 |
2143 | call-bind@1.0.8:
2144 | dependencies:
2145 | call-bind-apply-helpers: 1.0.1
2146 | es-define-property: 1.0.1
2147 | get-intrinsic: 1.2.6
2148 | set-function-length: 1.2.2
2149 |
2150 | call-bound@1.0.2:
2151 | dependencies:
2152 | call-bind: 1.0.8
2153 | get-intrinsic: 1.2.6
2154 |
2155 | callsites@3.1.0: {}
2156 |
2157 | camelize@1.0.1: {}
2158 |
2159 | caniuse-lite@1.0.30001688: {}
2160 |
2161 | chalk@4.1.2:
2162 | dependencies:
2163 | ansi-styles: 4.3.0
2164 | supports-color: 7.2.0
2165 |
2166 | chalk@5.3.0: {}
2167 |
2168 | cli-cursor@4.0.0:
2169 | dependencies:
2170 | restore-cursor: 4.0.0
2171 |
2172 | cli-truncate@3.1.0:
2173 | dependencies:
2174 | slice-ansi: 5.0.0
2175 | string-width: 5.1.2
2176 |
2177 | color-convert@2.0.1:
2178 | dependencies:
2179 | color-name: 1.1.4
2180 |
2181 | color-name@1.1.4: {}
2182 |
2183 | colorette@2.0.20: {}
2184 |
2185 | commander@11.0.0: {}
2186 |
2187 | concat-map@0.0.1: {}
2188 |
2189 | convert-source-map@2.0.0: {}
2190 |
2191 | cross-spawn@7.0.6:
2192 | dependencies:
2193 | path-key: 3.1.1
2194 | shebang-command: 2.0.0
2195 | which: 2.0.2
2196 |
2197 | css-color-keywords@1.0.0: {}
2198 |
2199 | css-line-break@2.1.0:
2200 | dependencies:
2201 | utrie: 1.0.2
2202 |
2203 | css-to-react-native@3.2.0:
2204 | dependencies:
2205 | camelize: 1.0.1
2206 | css-color-keywords: 1.0.0
2207 | postcss-value-parser: 4.2.0
2208 |
2209 | csstype@3.1.3: {}
2210 |
2211 | data-view-buffer@1.0.1:
2212 | dependencies:
2213 | call-bind: 1.0.8
2214 | es-errors: 1.3.0
2215 | is-data-view: 1.0.2
2216 |
2217 | data-view-byte-length@1.0.1:
2218 | dependencies:
2219 | call-bind: 1.0.8
2220 | es-errors: 1.3.0
2221 | is-data-view: 1.0.2
2222 |
2223 | data-view-byte-offset@1.0.0:
2224 | dependencies:
2225 | call-bind: 1.0.8
2226 | es-errors: 1.3.0
2227 | is-data-view: 1.0.2
2228 |
2229 | debug@4.3.4:
2230 | dependencies:
2231 | ms: 2.1.2
2232 |
2233 | debug@4.4.0:
2234 | dependencies:
2235 | ms: 2.1.3
2236 |
2237 | deep-is@0.1.4: {}
2238 |
2239 | define-data-property@1.1.4:
2240 | dependencies:
2241 | es-define-property: 1.0.1
2242 | es-errors: 1.3.0
2243 | gopd: 1.2.0
2244 |
2245 | define-properties@1.2.1:
2246 | dependencies:
2247 | define-data-property: 1.1.4
2248 | has-property-descriptors: 1.0.2
2249 | object-keys: 1.1.1
2250 |
2251 | doctrine@2.1.0:
2252 | dependencies:
2253 | esutils: 2.0.3
2254 |
2255 | doctrine@3.0.0:
2256 | dependencies:
2257 | esutils: 2.0.3
2258 |
2259 | dunder-proto@1.0.0:
2260 | dependencies:
2261 | call-bind-apply-helpers: 1.0.1
2262 | es-errors: 1.3.0
2263 | gopd: 1.2.0
2264 |
2265 | eastasianwidth@0.2.0: {}
2266 |
2267 | electron-to-chromium@1.5.73: {}
2268 |
2269 | emoji-regex@9.2.2: {}
2270 |
2271 | es-abstract@1.23.5:
2272 | dependencies:
2273 | array-buffer-byte-length: 1.0.1
2274 | arraybuffer.prototype.slice: 1.0.4
2275 | available-typed-arrays: 1.0.7
2276 | call-bind: 1.0.8
2277 | data-view-buffer: 1.0.1
2278 | data-view-byte-length: 1.0.1
2279 | data-view-byte-offset: 1.0.0
2280 | es-define-property: 1.0.1
2281 | es-errors: 1.3.0
2282 | es-object-atoms: 1.0.0
2283 | es-set-tostringtag: 2.0.3
2284 | es-to-primitive: 1.3.0
2285 | function.prototype.name: 1.1.7
2286 | get-intrinsic: 1.2.6
2287 | get-symbol-description: 1.0.2
2288 | globalthis: 1.0.4
2289 | gopd: 1.2.0
2290 | has-property-descriptors: 1.0.2
2291 | has-proto: 1.2.0
2292 | has-symbols: 1.1.0
2293 | hasown: 2.0.2
2294 | internal-slot: 1.1.0
2295 | is-array-buffer: 3.0.4
2296 | is-callable: 1.2.7
2297 | is-data-view: 1.0.2
2298 | is-negative-zero: 2.0.3
2299 | is-regex: 1.2.1
2300 | is-shared-array-buffer: 1.0.3
2301 | is-string: 1.1.0
2302 | is-typed-array: 1.1.13
2303 | is-weakref: 1.1.0
2304 | object-inspect: 1.13.3
2305 | object-keys: 1.1.1
2306 | object.assign: 4.1.5
2307 | regexp.prototype.flags: 1.5.3
2308 | safe-array-concat: 1.1.3
2309 | safe-regex-test: 1.1.0
2310 | string.prototype.trim: 1.2.10
2311 | string.prototype.trimend: 1.0.9
2312 | string.prototype.trimstart: 1.0.8
2313 | typed-array-buffer: 1.0.2
2314 | typed-array-byte-length: 1.0.1
2315 | typed-array-byte-offset: 1.0.3
2316 | typed-array-length: 1.0.7
2317 | unbox-primitive: 1.0.2
2318 | which-typed-array: 1.1.16
2319 |
2320 | es-define-property@1.0.1: {}
2321 |
2322 | es-errors@1.3.0: {}
2323 |
2324 | es-iterator-helpers@1.2.0:
2325 | dependencies:
2326 | call-bind: 1.0.8
2327 | define-properties: 1.2.1
2328 | es-abstract: 1.23.5
2329 | es-errors: 1.3.0
2330 | es-set-tostringtag: 2.0.3
2331 | function-bind: 1.1.2
2332 | get-intrinsic: 1.2.6
2333 | globalthis: 1.0.4
2334 | gopd: 1.2.0
2335 | has-property-descriptors: 1.0.2
2336 | has-proto: 1.2.0
2337 | has-symbols: 1.1.0
2338 | internal-slot: 1.1.0
2339 | iterator.prototype: 1.1.4
2340 | safe-array-concat: 1.1.3
2341 |
2342 | es-object-atoms@1.0.0:
2343 | dependencies:
2344 | es-errors: 1.3.0
2345 |
2346 | es-set-tostringtag@2.0.3:
2347 | dependencies:
2348 | get-intrinsic: 1.2.6
2349 | has-tostringtag: 1.0.2
2350 | hasown: 2.0.2
2351 |
2352 | es-shim-unscopables@1.0.2:
2353 | dependencies:
2354 | hasown: 2.0.2
2355 |
2356 | es-to-primitive@1.3.0:
2357 | dependencies:
2358 | is-callable: 1.2.7
2359 | is-date-object: 1.1.0
2360 | is-symbol: 1.1.1
2361 |
2362 | esbuild@0.24.0:
2363 | optionalDependencies:
2364 | '@esbuild/aix-ppc64': 0.24.0
2365 | '@esbuild/android-arm': 0.24.0
2366 | '@esbuild/android-arm64': 0.24.0
2367 | '@esbuild/android-x64': 0.24.0
2368 | '@esbuild/darwin-arm64': 0.24.0
2369 | '@esbuild/darwin-x64': 0.24.0
2370 | '@esbuild/freebsd-arm64': 0.24.0
2371 | '@esbuild/freebsd-x64': 0.24.0
2372 | '@esbuild/linux-arm': 0.24.0
2373 | '@esbuild/linux-arm64': 0.24.0
2374 | '@esbuild/linux-ia32': 0.24.0
2375 | '@esbuild/linux-loong64': 0.24.0
2376 | '@esbuild/linux-mips64el': 0.24.0
2377 | '@esbuild/linux-ppc64': 0.24.0
2378 | '@esbuild/linux-riscv64': 0.24.0
2379 | '@esbuild/linux-s390x': 0.24.0
2380 | '@esbuild/linux-x64': 0.24.0
2381 | '@esbuild/netbsd-x64': 0.24.0
2382 | '@esbuild/openbsd-arm64': 0.24.0
2383 | '@esbuild/openbsd-x64': 0.24.0
2384 | '@esbuild/sunos-x64': 0.24.0
2385 | '@esbuild/win32-arm64': 0.24.0
2386 | '@esbuild/win32-ia32': 0.24.0
2387 | '@esbuild/win32-x64': 0.24.0
2388 |
2389 | escalade@3.2.0: {}
2390 |
2391 | escape-string-regexp@4.0.0: {}
2392 |
2393 | eslint-config-prettier@8.10.0(eslint@8.57.1):
2394 | dependencies:
2395 | eslint: 8.57.1
2396 |
2397 | eslint-plugin-react-hooks@4.6.2(eslint@8.57.1):
2398 | dependencies:
2399 | eslint: 8.57.1
2400 |
2401 | eslint-plugin-react@7.37.2(eslint@8.57.1):
2402 | dependencies:
2403 | array-includes: 3.1.8
2404 | array.prototype.findlast: 1.2.5
2405 | array.prototype.flatmap: 1.3.2
2406 | array.prototype.tosorted: 1.1.4
2407 | doctrine: 2.1.0
2408 | es-iterator-helpers: 1.2.0
2409 | eslint: 8.57.1
2410 | estraverse: 5.3.0
2411 | hasown: 2.0.2
2412 | jsx-ast-utils: 3.3.5
2413 | minimatch: 3.1.2
2414 | object.entries: 1.1.8
2415 | object.fromentries: 2.0.8
2416 | object.values: 1.2.0
2417 | prop-types: 15.8.1
2418 | resolve: 2.0.0-next.5
2419 | semver: 6.3.1
2420 | string.prototype.matchall: 4.0.11
2421 | string.prototype.repeat: 1.0.0
2422 |
2423 | eslint-scope@7.2.2:
2424 | dependencies:
2425 | esrecurse: 4.3.0
2426 | estraverse: 5.3.0
2427 |
2428 | eslint-visitor-keys@3.4.3: {}
2429 |
2430 | eslint@8.57.1:
2431 | dependencies:
2432 | '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1)
2433 | '@eslint-community/regexpp': 4.12.1
2434 | '@eslint/eslintrc': 2.1.4
2435 | '@eslint/js': 8.57.1
2436 | '@humanwhocodes/config-array': 0.13.0
2437 | '@humanwhocodes/module-importer': 1.0.1
2438 | '@nodelib/fs.walk': 1.2.8
2439 | '@ungap/structured-clone': 1.2.1
2440 | ajv: 6.12.6
2441 | chalk: 4.1.2
2442 | cross-spawn: 7.0.6
2443 | debug: 4.4.0
2444 | doctrine: 3.0.0
2445 | escape-string-regexp: 4.0.0
2446 | eslint-scope: 7.2.2
2447 | eslint-visitor-keys: 3.4.3
2448 | espree: 9.6.1
2449 | esquery: 1.6.0
2450 | esutils: 2.0.3
2451 | fast-deep-equal: 3.1.3
2452 | file-entry-cache: 6.0.1
2453 | find-up: 5.0.0
2454 | glob-parent: 6.0.2
2455 | globals: 13.24.0
2456 | graphemer: 1.4.0
2457 | ignore: 5.3.2
2458 | imurmurhash: 0.1.4
2459 | is-glob: 4.0.3
2460 | is-path-inside: 3.0.3
2461 | js-yaml: 4.1.0
2462 | json-stable-stringify-without-jsonify: 1.0.1
2463 | levn: 0.4.1
2464 | lodash.merge: 4.6.2
2465 | minimatch: 3.1.2
2466 | natural-compare: 1.4.0
2467 | optionator: 0.9.4
2468 | strip-ansi: 6.0.1
2469 | text-table: 0.2.0
2470 | transitivePeerDependencies:
2471 | - supports-color
2472 |
2473 | espree@9.6.1:
2474 | dependencies:
2475 | acorn: 8.14.0
2476 | acorn-jsx: 5.3.2(acorn@8.14.0)
2477 | eslint-visitor-keys: 3.4.3
2478 |
2479 | esquery@1.6.0:
2480 | dependencies:
2481 | estraverse: 5.3.0
2482 |
2483 | esrecurse@4.3.0:
2484 | dependencies:
2485 | estraverse: 5.3.0
2486 |
2487 | estraverse@5.3.0: {}
2488 |
2489 | esutils@2.0.3: {}
2490 |
2491 | eventemitter3@5.0.1: {}
2492 |
2493 | execa@7.2.0:
2494 | dependencies:
2495 | cross-spawn: 7.0.6
2496 | get-stream: 6.0.1
2497 | human-signals: 4.3.1
2498 | is-stream: 3.0.0
2499 | merge-stream: 2.0.0
2500 | npm-run-path: 5.3.0
2501 | onetime: 6.0.0
2502 | signal-exit: 3.0.7
2503 | strip-final-newline: 3.0.0
2504 |
2505 | fast-deep-equal@3.1.3: {}
2506 |
2507 | fast-json-stable-stringify@2.1.0: {}
2508 |
2509 | fast-levenshtein@2.0.6: {}
2510 |
2511 | fastq@1.17.1:
2512 | dependencies:
2513 | reusify: 1.0.4
2514 |
2515 | file-entry-cache@6.0.1:
2516 | dependencies:
2517 | flat-cache: 3.2.0
2518 |
2519 | file-saver@2.0.5: {}
2520 |
2521 | fill-range@7.1.1:
2522 | dependencies:
2523 | to-regex-range: 5.0.1
2524 |
2525 | find-up@5.0.0:
2526 | dependencies:
2527 | locate-path: 6.0.0
2528 | path-exists: 4.0.0
2529 |
2530 | flat-cache@3.2.0:
2531 | dependencies:
2532 | flatted: 3.3.2
2533 | keyv: 4.5.4
2534 | rimraf: 3.0.2
2535 |
2536 | flatted@3.3.2: {}
2537 |
2538 | for-each@0.3.3:
2539 | dependencies:
2540 | is-callable: 1.2.7
2541 |
2542 | fs.realpath@1.0.0: {}
2543 |
2544 | fsevents@2.3.3:
2545 | optional: true
2546 |
2547 | function-bind@1.1.2: {}
2548 |
2549 | function.prototype.name@1.1.7:
2550 | dependencies:
2551 | call-bind: 1.0.8
2552 | define-properties: 1.2.1
2553 | functions-have-names: 1.2.3
2554 | hasown: 2.0.2
2555 | is-callable: 1.2.7
2556 |
2557 | functions-have-names@1.2.3: {}
2558 |
2559 | gensync@1.0.0-beta.2: {}
2560 |
2561 | get-intrinsic@1.2.6:
2562 | dependencies:
2563 | call-bind-apply-helpers: 1.0.1
2564 | dunder-proto: 1.0.0
2565 | es-define-property: 1.0.1
2566 | es-errors: 1.3.0
2567 | es-object-atoms: 1.0.0
2568 | function-bind: 1.1.2
2569 | gopd: 1.2.0
2570 | has-symbols: 1.1.0
2571 | hasown: 2.0.2
2572 | math-intrinsics: 1.0.0
2573 |
2574 | get-stream@6.0.1: {}
2575 |
2576 | get-symbol-description@1.0.2:
2577 | dependencies:
2578 | call-bind: 1.0.8
2579 | es-errors: 1.3.0
2580 | get-intrinsic: 1.2.6
2581 |
2582 | github-buttons@2.29.1: {}
2583 |
2584 | glob-parent@6.0.2:
2585 | dependencies:
2586 | is-glob: 4.0.3
2587 |
2588 | glob@7.2.3:
2589 | dependencies:
2590 | fs.realpath: 1.0.0
2591 | inflight: 1.0.6
2592 | inherits: 2.0.4
2593 | minimatch: 3.1.2
2594 | once: 1.4.0
2595 | path-is-absolute: 1.0.1
2596 |
2597 | globals@11.12.0: {}
2598 |
2599 | globals@13.24.0:
2600 | dependencies:
2601 | type-fest: 0.20.2
2602 |
2603 | globalthis@1.0.4:
2604 | dependencies:
2605 | define-properties: 1.2.1
2606 | gopd: 1.2.0
2607 |
2608 | gopd@1.2.0: {}
2609 |
2610 | graphemer@1.4.0: {}
2611 |
2612 | has-bigints@1.0.2: {}
2613 |
2614 | has-flag@4.0.0: {}
2615 |
2616 | has-property-descriptors@1.0.2:
2617 | dependencies:
2618 | es-define-property: 1.0.1
2619 |
2620 | has-proto@1.2.0:
2621 | dependencies:
2622 | dunder-proto: 1.0.0
2623 |
2624 | has-symbols@1.1.0: {}
2625 |
2626 | has-tostringtag@1.0.2:
2627 | dependencies:
2628 | has-symbols: 1.1.0
2629 |
2630 | hasown@2.0.2:
2631 | dependencies:
2632 | function-bind: 1.1.2
2633 |
2634 | html2canvas@1.4.1:
2635 | dependencies:
2636 | css-line-break: 2.1.0
2637 | text-segmentation: 1.0.3
2638 |
2639 | human-signals@4.3.1: {}
2640 |
2641 | husky@8.0.3: {}
2642 |
2643 | ignore@5.3.2: {}
2644 |
2645 | import-fresh@3.3.0:
2646 | dependencies:
2647 | parent-module: 1.0.1
2648 | resolve-from: 4.0.0
2649 |
2650 | imurmurhash@0.1.4: {}
2651 |
2652 | inflight@1.0.6:
2653 | dependencies:
2654 | once: 1.4.0
2655 | wrappy: 1.0.2
2656 |
2657 | inherits@2.0.4: {}
2658 |
2659 | internal-slot@1.1.0:
2660 | dependencies:
2661 | es-errors: 1.3.0
2662 | hasown: 2.0.2
2663 | side-channel: 1.1.0
2664 |
2665 | is-array-buffer@3.0.4:
2666 | dependencies:
2667 | call-bind: 1.0.8
2668 | get-intrinsic: 1.2.6
2669 |
2670 | is-async-function@2.0.0:
2671 | dependencies:
2672 | has-tostringtag: 1.0.2
2673 |
2674 | is-bigint@1.1.0:
2675 | dependencies:
2676 | has-bigints: 1.0.2
2677 |
2678 | is-boolean-object@1.2.1:
2679 | dependencies:
2680 | call-bound: 1.0.2
2681 | has-tostringtag: 1.0.2
2682 |
2683 | is-callable@1.2.7: {}
2684 |
2685 | is-core-module@2.16.0:
2686 | dependencies:
2687 | hasown: 2.0.2
2688 |
2689 | is-data-view@1.0.2:
2690 | dependencies:
2691 | call-bound: 1.0.2
2692 | get-intrinsic: 1.2.6
2693 | is-typed-array: 1.1.13
2694 |
2695 | is-date-object@1.1.0:
2696 | dependencies:
2697 | call-bound: 1.0.2
2698 | has-tostringtag: 1.0.2
2699 |
2700 | is-extglob@2.1.1: {}
2701 |
2702 | is-finalizationregistry@1.1.0:
2703 | dependencies:
2704 | call-bind: 1.0.8
2705 |
2706 | is-fullwidth-code-point@4.0.0: {}
2707 |
2708 | is-generator-function@1.0.10:
2709 | dependencies:
2710 | has-tostringtag: 1.0.2
2711 |
2712 | is-glob@4.0.3:
2713 | dependencies:
2714 | is-extglob: 2.1.1
2715 |
2716 | is-map@2.0.3: {}
2717 |
2718 | is-negative-zero@2.0.3: {}
2719 |
2720 | is-number-object@1.1.0:
2721 | dependencies:
2722 | call-bind: 1.0.8
2723 | has-tostringtag: 1.0.2
2724 |
2725 | is-number@7.0.0: {}
2726 |
2727 | is-path-inside@3.0.3: {}
2728 |
2729 | is-regex@1.2.1:
2730 | dependencies:
2731 | call-bound: 1.0.2
2732 | gopd: 1.2.0
2733 | has-tostringtag: 1.0.2
2734 | hasown: 2.0.2
2735 |
2736 | is-set@2.0.3: {}
2737 |
2738 | is-shared-array-buffer@1.0.3:
2739 | dependencies:
2740 | call-bind: 1.0.8
2741 |
2742 | is-stream@3.0.0: {}
2743 |
2744 | is-string@1.1.0:
2745 | dependencies:
2746 | call-bind: 1.0.8
2747 | has-tostringtag: 1.0.2
2748 |
2749 | is-symbol@1.1.1:
2750 | dependencies:
2751 | call-bound: 1.0.2
2752 | has-symbols: 1.1.0
2753 | safe-regex-test: 1.1.0
2754 |
2755 | is-typed-array@1.1.13:
2756 | dependencies:
2757 | which-typed-array: 1.1.16
2758 |
2759 | is-weakmap@2.0.2: {}
2760 |
2761 | is-weakref@1.1.0:
2762 | dependencies:
2763 | call-bound: 1.0.2
2764 |
2765 | is-weakset@2.0.3:
2766 | dependencies:
2767 | call-bind: 1.0.8
2768 | get-intrinsic: 1.2.6
2769 |
2770 | isarray@2.0.5: {}
2771 |
2772 | isexe@2.0.0: {}
2773 |
2774 | iterator.prototype@1.1.4:
2775 | dependencies:
2776 | define-data-property: 1.1.4
2777 | es-object-atoms: 1.0.0
2778 | get-intrinsic: 1.2.6
2779 | has-symbols: 1.1.0
2780 | reflect.getprototypeof: 1.0.8
2781 | set-function-name: 2.0.2
2782 |
2783 | js-tokens@4.0.0: {}
2784 |
2785 | js-yaml@4.1.0:
2786 | dependencies:
2787 | argparse: 2.0.1
2788 |
2789 | jsesc@3.1.0: {}
2790 |
2791 | json-buffer@3.0.1: {}
2792 |
2793 | json-schema-traverse@0.4.1: {}
2794 |
2795 | json-stable-stringify-without-jsonify@1.0.1: {}
2796 |
2797 | json5@2.2.3: {}
2798 |
2799 | jsx-ast-utils@3.3.5:
2800 | dependencies:
2801 | array-includes: 3.1.8
2802 | array.prototype.flat: 1.3.3
2803 | object.assign: 4.1.5
2804 | object.values: 1.2.0
2805 |
2806 | keyv@4.5.4:
2807 | dependencies:
2808 | json-buffer: 3.0.1
2809 |
2810 | levn@0.4.1:
2811 | dependencies:
2812 | prelude-ls: 1.2.1
2813 | type-check: 0.4.0
2814 |
2815 | lilconfig@2.1.0: {}
2816 |
2817 | lint-staged@13.3.0:
2818 | dependencies:
2819 | chalk: 5.3.0
2820 | commander: 11.0.0
2821 | debug: 4.3.4
2822 | execa: 7.2.0
2823 | lilconfig: 2.1.0
2824 | listr2: 6.6.1
2825 | micromatch: 4.0.5
2826 | pidtree: 0.6.0
2827 | string-argv: 0.3.2
2828 | yaml: 2.3.1
2829 | transitivePeerDependencies:
2830 | - enquirer
2831 | - supports-color
2832 |
2833 | listr2@6.6.1:
2834 | dependencies:
2835 | cli-truncate: 3.1.0
2836 | colorette: 2.0.20
2837 | eventemitter3: 5.0.1
2838 | log-update: 5.0.1
2839 | rfdc: 1.4.1
2840 | wrap-ansi: 8.1.0
2841 |
2842 | locate-path@6.0.0:
2843 | dependencies:
2844 | p-locate: 5.0.0
2845 |
2846 | lodash.merge@4.6.2: {}
2847 |
2848 | log-update@5.0.1:
2849 | dependencies:
2850 | ansi-escapes: 5.0.0
2851 | cli-cursor: 4.0.0
2852 | slice-ansi: 5.0.0
2853 | strip-ansi: 7.1.0
2854 | wrap-ansi: 8.1.0
2855 |
2856 | loose-envify@1.4.0:
2857 | dependencies:
2858 | js-tokens: 4.0.0
2859 |
2860 | lru-cache@5.1.1:
2861 | dependencies:
2862 | yallist: 3.1.1
2863 |
2864 | math-intrinsics@1.0.0: {}
2865 |
2866 | merge-stream@2.0.0: {}
2867 |
2868 | micromatch@4.0.5:
2869 | dependencies:
2870 | braces: 3.0.3
2871 | picomatch: 2.3.1
2872 |
2873 | mimic-fn@2.1.0: {}
2874 |
2875 | mimic-fn@4.0.0: {}
2876 |
2877 | minimatch@3.1.2:
2878 | dependencies:
2879 | brace-expansion: 1.1.11
2880 |
2881 | ms@2.1.2: {}
2882 |
2883 | ms@2.1.3: {}
2884 |
2885 | nanoid@3.3.8: {}
2886 |
2887 | natural-compare@1.4.0: {}
2888 |
2889 | node-releases@2.0.19: {}
2890 |
2891 | npm-run-path@5.3.0:
2892 | dependencies:
2893 | path-key: 4.0.0
2894 |
2895 | object-assign@4.1.1: {}
2896 |
2897 | object-inspect@1.13.3: {}
2898 |
2899 | object-keys@1.1.1: {}
2900 |
2901 | object.assign@4.1.5:
2902 | dependencies:
2903 | call-bind: 1.0.8
2904 | define-properties: 1.2.1
2905 | has-symbols: 1.1.0
2906 | object-keys: 1.1.1
2907 |
2908 | object.entries@1.1.8:
2909 | dependencies:
2910 | call-bind: 1.0.8
2911 | define-properties: 1.2.1
2912 | es-object-atoms: 1.0.0
2913 |
2914 | object.fromentries@2.0.8:
2915 | dependencies:
2916 | call-bind: 1.0.8
2917 | define-properties: 1.2.1
2918 | es-abstract: 1.23.5
2919 | es-object-atoms: 1.0.0
2920 |
2921 | object.values@1.2.0:
2922 | dependencies:
2923 | call-bind: 1.0.8
2924 | define-properties: 1.2.1
2925 | es-object-atoms: 1.0.0
2926 |
2927 | once@1.4.0:
2928 | dependencies:
2929 | wrappy: 1.0.2
2930 |
2931 | onetime@5.1.2:
2932 | dependencies:
2933 | mimic-fn: 2.1.0
2934 |
2935 | onetime@6.0.0:
2936 | dependencies:
2937 | mimic-fn: 4.0.0
2938 |
2939 | optionator@0.9.4:
2940 | dependencies:
2941 | deep-is: 0.1.4
2942 | fast-levenshtein: 2.0.6
2943 | levn: 0.4.1
2944 | prelude-ls: 1.2.1
2945 | type-check: 0.4.0
2946 | word-wrap: 1.2.5
2947 |
2948 | p-limit@3.1.0:
2949 | dependencies:
2950 | yocto-queue: 0.1.0
2951 |
2952 | p-locate@5.0.0:
2953 | dependencies:
2954 | p-limit: 3.1.0
2955 |
2956 | parent-module@1.0.1:
2957 | dependencies:
2958 | callsites: 3.1.0
2959 |
2960 | path-exists@4.0.0: {}
2961 |
2962 | path-is-absolute@1.0.1: {}
2963 |
2964 | path-key@3.1.1: {}
2965 |
2966 | path-key@4.0.0: {}
2967 |
2968 | path-parse@1.0.7: {}
2969 |
2970 | picocolors@1.1.1: {}
2971 |
2972 | picomatch@2.3.1: {}
2973 |
2974 | pidtree@0.6.0: {}
2975 |
2976 | possible-typed-array-names@1.0.0: {}
2977 |
2978 | postcss-value-parser@4.2.0: {}
2979 |
2980 | postcss@8.4.38:
2981 | dependencies:
2982 | nanoid: 3.3.8
2983 | picocolors: 1.1.1
2984 | source-map-js: 1.2.1
2985 |
2986 | postcss@8.4.49:
2987 | dependencies:
2988 | nanoid: 3.3.8
2989 | picocolors: 1.1.1
2990 | source-map-js: 1.2.1
2991 |
2992 | prelude-ls@1.2.1: {}
2993 |
2994 | prettier@2.8.8: {}
2995 |
2996 | prop-types@15.8.1:
2997 | dependencies:
2998 | loose-envify: 1.4.0
2999 | object-assign: 4.1.1
3000 | react-is: 16.13.1
3001 |
3002 | punycode@2.3.1: {}
3003 |
3004 | qrcode.react@4.2.0(react@19.0.0):
3005 | dependencies:
3006 | react: 19.0.0
3007 |
3008 | queue-microtask@1.2.3: {}
3009 |
3010 | react-dom@19.0.0(react@19.0.0):
3011 | dependencies:
3012 | react: 19.0.0
3013 | scheduler: 0.25.0
3014 |
3015 | react-github-btn@1.4.0(react@19.0.0):
3016 | dependencies:
3017 | github-buttons: 2.29.1
3018 | react: 19.0.0
3019 |
3020 | react-icons@5.4.0(react@19.0.0):
3021 | dependencies:
3022 | react: 19.0.0
3023 |
3024 | react-is@16.13.1: {}
3025 |
3026 | react-refresh@0.14.2: {}
3027 |
3028 | react@19.0.0: {}
3029 |
3030 | reflect.getprototypeof@1.0.8:
3031 | dependencies:
3032 | call-bind: 1.0.8
3033 | define-properties: 1.2.1
3034 | dunder-proto: 1.0.0
3035 | es-abstract: 1.23.5
3036 | es-errors: 1.3.0
3037 | get-intrinsic: 1.2.6
3038 | gopd: 1.2.0
3039 | which-builtin-type: 1.2.1
3040 |
3041 | regexp.prototype.flags@1.5.3:
3042 | dependencies:
3043 | call-bind: 1.0.8
3044 | define-properties: 1.2.1
3045 | es-errors: 1.3.0
3046 | set-function-name: 2.0.2
3047 |
3048 | resolve-from@4.0.0: {}
3049 |
3050 | resolve@2.0.0-next.5:
3051 | dependencies:
3052 | is-core-module: 2.16.0
3053 | path-parse: 1.0.7
3054 | supports-preserve-symlinks-flag: 1.0.0
3055 |
3056 | restore-cursor@4.0.0:
3057 | dependencies:
3058 | onetime: 5.1.2
3059 | signal-exit: 3.0.7
3060 |
3061 | reusify@1.0.4: {}
3062 |
3063 | rfdc@1.4.1: {}
3064 |
3065 | rimraf@3.0.2:
3066 | dependencies:
3067 | glob: 7.2.3
3068 |
3069 | rollup@4.28.1:
3070 | dependencies:
3071 | '@types/estree': 1.0.6
3072 | optionalDependencies:
3073 | '@rollup/rollup-android-arm-eabi': 4.28.1
3074 | '@rollup/rollup-android-arm64': 4.28.1
3075 | '@rollup/rollup-darwin-arm64': 4.28.1
3076 | '@rollup/rollup-darwin-x64': 4.28.1
3077 | '@rollup/rollup-freebsd-arm64': 4.28.1
3078 | '@rollup/rollup-freebsd-x64': 4.28.1
3079 | '@rollup/rollup-linux-arm-gnueabihf': 4.28.1
3080 | '@rollup/rollup-linux-arm-musleabihf': 4.28.1
3081 | '@rollup/rollup-linux-arm64-gnu': 4.28.1
3082 | '@rollup/rollup-linux-arm64-musl': 4.28.1
3083 | '@rollup/rollup-linux-loongarch64-gnu': 4.28.1
3084 | '@rollup/rollup-linux-powerpc64le-gnu': 4.28.1
3085 | '@rollup/rollup-linux-riscv64-gnu': 4.28.1
3086 | '@rollup/rollup-linux-s390x-gnu': 4.28.1
3087 | '@rollup/rollup-linux-x64-gnu': 4.28.1
3088 | '@rollup/rollup-linux-x64-musl': 4.28.1
3089 | '@rollup/rollup-win32-arm64-msvc': 4.28.1
3090 | '@rollup/rollup-win32-ia32-msvc': 4.28.1
3091 | '@rollup/rollup-win32-x64-msvc': 4.28.1
3092 | fsevents: 2.3.3
3093 |
3094 | run-parallel@1.2.0:
3095 | dependencies:
3096 | queue-microtask: 1.2.3
3097 |
3098 | safe-array-concat@1.1.3:
3099 | dependencies:
3100 | call-bind: 1.0.8
3101 | call-bound: 1.0.2
3102 | get-intrinsic: 1.2.6
3103 | has-symbols: 1.1.0
3104 | isarray: 2.0.5
3105 |
3106 | safe-regex-test@1.1.0:
3107 | dependencies:
3108 | call-bound: 1.0.2
3109 | es-errors: 1.3.0
3110 | is-regex: 1.2.1
3111 |
3112 | scheduler@0.25.0: {}
3113 |
3114 | semver@6.3.1: {}
3115 |
3116 | set-function-length@1.2.2:
3117 | dependencies:
3118 | define-data-property: 1.1.4
3119 | es-errors: 1.3.0
3120 | function-bind: 1.1.2
3121 | get-intrinsic: 1.2.6
3122 | gopd: 1.2.0
3123 | has-property-descriptors: 1.0.2
3124 |
3125 | set-function-name@2.0.2:
3126 | dependencies:
3127 | define-data-property: 1.1.4
3128 | es-errors: 1.3.0
3129 | functions-have-names: 1.2.3
3130 | has-property-descriptors: 1.0.2
3131 |
3132 | shallowequal@1.1.0: {}
3133 |
3134 | shebang-command@2.0.0:
3135 | dependencies:
3136 | shebang-regex: 3.0.0
3137 |
3138 | shebang-regex@3.0.0: {}
3139 |
3140 | side-channel-list@1.0.0:
3141 | dependencies:
3142 | es-errors: 1.3.0
3143 | object-inspect: 1.13.3
3144 |
3145 | side-channel-map@1.0.1:
3146 | dependencies:
3147 | call-bound: 1.0.2
3148 | es-errors: 1.3.0
3149 | get-intrinsic: 1.2.6
3150 | object-inspect: 1.13.3
3151 |
3152 | side-channel-weakmap@1.0.2:
3153 | dependencies:
3154 | call-bound: 1.0.2
3155 | es-errors: 1.3.0
3156 | get-intrinsic: 1.2.6
3157 | object-inspect: 1.13.3
3158 | side-channel-map: 1.0.1
3159 |
3160 | side-channel@1.1.0:
3161 | dependencies:
3162 | es-errors: 1.3.0
3163 | object-inspect: 1.13.3
3164 | side-channel-list: 1.0.0
3165 | side-channel-map: 1.0.1
3166 | side-channel-weakmap: 1.0.2
3167 |
3168 | signal-exit@3.0.7: {}
3169 |
3170 | slice-ansi@5.0.0:
3171 | dependencies:
3172 | ansi-styles: 6.2.1
3173 | is-fullwidth-code-point: 4.0.0
3174 |
3175 | source-map-js@1.2.1: {}
3176 |
3177 | string-argv@0.3.2: {}
3178 |
3179 | string-width@5.1.2:
3180 | dependencies:
3181 | eastasianwidth: 0.2.0
3182 | emoji-regex: 9.2.2
3183 | strip-ansi: 7.1.0
3184 |
3185 | string.prototype.matchall@4.0.11:
3186 | dependencies:
3187 | call-bind: 1.0.8
3188 | define-properties: 1.2.1
3189 | es-abstract: 1.23.5
3190 | es-errors: 1.3.0
3191 | es-object-atoms: 1.0.0
3192 | get-intrinsic: 1.2.6
3193 | gopd: 1.2.0
3194 | has-symbols: 1.1.0
3195 | internal-slot: 1.1.0
3196 | regexp.prototype.flags: 1.5.3
3197 | set-function-name: 2.0.2
3198 | side-channel: 1.1.0
3199 |
3200 | string.prototype.repeat@1.0.0:
3201 | dependencies:
3202 | define-properties: 1.2.1
3203 | es-abstract: 1.23.5
3204 |
3205 | string.prototype.trim@1.2.10:
3206 | dependencies:
3207 | call-bind: 1.0.8
3208 | call-bound: 1.0.2
3209 | define-data-property: 1.1.4
3210 | define-properties: 1.2.1
3211 | es-abstract: 1.23.5
3212 | es-object-atoms: 1.0.0
3213 | has-property-descriptors: 1.0.2
3214 |
3215 | string.prototype.trimend@1.0.9:
3216 | dependencies:
3217 | call-bind: 1.0.8
3218 | call-bound: 1.0.2
3219 | define-properties: 1.2.1
3220 | es-object-atoms: 1.0.0
3221 |
3222 | string.prototype.trimstart@1.0.8:
3223 | dependencies:
3224 | call-bind: 1.0.8
3225 | define-properties: 1.2.1
3226 | es-object-atoms: 1.0.0
3227 |
3228 | strip-ansi@6.0.1:
3229 | dependencies:
3230 | ansi-regex: 5.0.1
3231 |
3232 | strip-ansi@7.1.0:
3233 | dependencies:
3234 | ansi-regex: 6.1.0
3235 |
3236 | strip-final-newline@3.0.0: {}
3237 |
3238 | strip-json-comments@3.1.1: {}
3239 |
3240 | styled-components@6.1.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0):
3241 | dependencies:
3242 | '@emotion/is-prop-valid': 1.2.2
3243 | '@emotion/unitless': 0.8.1
3244 | '@types/stylis': 4.2.5
3245 | css-to-react-native: 3.2.0
3246 | csstype: 3.1.3
3247 | postcss: 8.4.38
3248 | react: 19.0.0
3249 | react-dom: 19.0.0(react@19.0.0)
3250 | shallowequal: 1.1.0
3251 | stylis: 4.3.2
3252 | tslib: 2.6.2
3253 |
3254 | styled-reset@4.5.2(styled-components@6.1.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0)):
3255 | dependencies:
3256 | styled-components: 6.1.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
3257 |
3258 | stylis@4.3.2: {}
3259 |
3260 | supports-color@7.2.0:
3261 | dependencies:
3262 | has-flag: 4.0.0
3263 |
3264 | supports-preserve-symlinks-flag@1.0.0: {}
3265 |
3266 | text-segmentation@1.0.3:
3267 | dependencies:
3268 | utrie: 1.0.2
3269 |
3270 | text-table@0.2.0: {}
3271 |
3272 | to-regex-range@5.0.1:
3273 | dependencies:
3274 | is-number: 7.0.0
3275 |
3276 | tslib@2.6.2: {}
3277 |
3278 | type-check@0.4.0:
3279 | dependencies:
3280 | prelude-ls: 1.2.1
3281 |
3282 | type-fest@0.20.2: {}
3283 |
3284 | type-fest@1.4.0: {}
3285 |
3286 | typed-array-buffer@1.0.2:
3287 | dependencies:
3288 | call-bind: 1.0.8
3289 | es-errors: 1.3.0
3290 | is-typed-array: 1.1.13
3291 |
3292 | typed-array-byte-length@1.0.1:
3293 | dependencies:
3294 | call-bind: 1.0.8
3295 | for-each: 0.3.3
3296 | gopd: 1.2.0
3297 | has-proto: 1.2.0
3298 | is-typed-array: 1.1.13
3299 |
3300 | typed-array-byte-offset@1.0.3:
3301 | dependencies:
3302 | available-typed-arrays: 1.0.7
3303 | call-bind: 1.0.8
3304 | for-each: 0.3.3
3305 | gopd: 1.2.0
3306 | has-proto: 1.2.0
3307 | is-typed-array: 1.1.13
3308 | reflect.getprototypeof: 1.0.8
3309 |
3310 | typed-array-length@1.0.7:
3311 | dependencies:
3312 | call-bind: 1.0.8
3313 | for-each: 0.3.3
3314 | gopd: 1.2.0
3315 | is-typed-array: 1.1.13
3316 | possible-typed-array-names: 1.0.0
3317 | reflect.getprototypeof: 1.0.8
3318 |
3319 | unbox-primitive@1.0.2:
3320 | dependencies:
3321 | call-bind: 1.0.8
3322 | has-bigints: 1.0.2
3323 | has-symbols: 1.1.0
3324 | which-boxed-primitive: 1.1.0
3325 |
3326 | update-browserslist-db@1.1.1(browserslist@4.24.3):
3327 | dependencies:
3328 | browserslist: 4.24.3
3329 | escalade: 3.2.0
3330 | picocolors: 1.1.1
3331 |
3332 | uri-js@4.4.1:
3333 | dependencies:
3334 | punycode: 2.3.1
3335 |
3336 | utrie@1.0.2:
3337 | dependencies:
3338 | base64-arraybuffer: 1.0.2
3339 |
3340 | vite@6.0.3:
3341 | dependencies:
3342 | esbuild: 0.24.0
3343 | postcss: 8.4.49
3344 | rollup: 4.28.1
3345 | optionalDependencies:
3346 | fsevents: 2.3.3
3347 |
3348 | which-boxed-primitive@1.1.0:
3349 | dependencies:
3350 | is-bigint: 1.1.0
3351 | is-boolean-object: 1.2.1
3352 | is-number-object: 1.1.0
3353 | is-string: 1.1.0
3354 | is-symbol: 1.1.1
3355 |
3356 | which-builtin-type@1.2.1:
3357 | dependencies:
3358 | call-bound: 1.0.2
3359 | function.prototype.name: 1.1.7
3360 | has-tostringtag: 1.0.2
3361 | is-async-function: 2.0.0
3362 | is-date-object: 1.1.0
3363 | is-finalizationregistry: 1.1.0
3364 | is-generator-function: 1.0.10
3365 | is-regex: 1.2.1
3366 | is-weakref: 1.1.0
3367 | isarray: 2.0.5
3368 | which-boxed-primitive: 1.1.0
3369 | which-collection: 1.0.2
3370 | which-typed-array: 1.1.16
3371 |
3372 | which-collection@1.0.2:
3373 | dependencies:
3374 | is-map: 2.0.3
3375 | is-set: 2.0.3
3376 | is-weakmap: 2.0.2
3377 | is-weakset: 2.0.3
3378 |
3379 | which-typed-array@1.1.16:
3380 | dependencies:
3381 | available-typed-arrays: 1.0.7
3382 | call-bind: 1.0.8
3383 | for-each: 0.3.3
3384 | gopd: 1.2.0
3385 | has-tostringtag: 1.0.2
3386 |
3387 | which@2.0.2:
3388 | dependencies:
3389 | isexe: 2.0.0
3390 |
3391 | word-wrap@1.2.5: {}
3392 |
3393 | wrap-ansi@8.1.0:
3394 | dependencies:
3395 | ansi-styles: 6.2.1
3396 | string-width: 5.1.2
3397 | strip-ansi: 7.1.0
3398 |
3399 | wrappy@1.0.2: {}
3400 |
3401 | yallist@3.1.1: {}
3402 |
3403 | yaml@2.3.1: {}
3404 |
3405 | yocto-queue@0.1.0: {}
3406 |
--------------------------------------------------------------------------------
/public/android-chrome-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerosoul/honeyed-words-generator/34537a730a59c8b453735f6b4111390003018ab0/public/android-chrome-192x192.png
--------------------------------------------------------------------------------
/public/android-chrome-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerosoul/honeyed-words-generator/34537a730a59c8b453735f6b4111390003018ab0/public/android-chrome-512x512.png
--------------------------------------------------------------------------------
/public/apple-launch-image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerosoul/honeyed-words-generator/34537a730a59c8b453735f6b4111390003018ab0/public/apple-launch-image.png
--------------------------------------------------------------------------------
/public/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerosoul/honeyed-words-generator/34537a730a59c8b453735f6b4111390003018ab0/public/apple-touch-icon.png
--------------------------------------------------------------------------------
/public/browserconfig.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | #da532c
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/public/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerosoul/honeyed-words-generator/34537a730a59c8b453735f6b4111390003018ab0/public/favicon-16x16.png
--------------------------------------------------------------------------------
/public/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerosoul/honeyed-words-generator/34537a730a59c8b453735f6b4111390003018ab0/public/favicon-32x32.png
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerosoul/honeyed-words-generator/34537a730a59c8b453735f6b4111390003018ab0/public/favicon.ico
--------------------------------------------------------------------------------
/public/mstile-150x150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerosoul/honeyed-words-generator/34537a730a59c8b453735f6b4111390003018ab0/public/mstile-150x150.png
--------------------------------------------------------------------------------
/public/safari-pinned-tab.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
24 |
--------------------------------------------------------------------------------
/public/site.webmanifest:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Honey",
3 | "short_name": "Honey",
4 | "icons": [
5 | {
6 | "src": "/android-chrome-192x192.png",
7 | "sizes": "192x192",
8 | "type": "image/png"
9 | },
10 | {
11 | "src": "/android-chrome-512x512.png",
12 | "sizes": "512x512",
13 | "type": "image/png"
14 | }
15 | ],
16 | "theme_color": "#ffffff",
17 | "background_color": "#ffffff",
18 | "display": "standalone"
19 | }
20 |
--------------------------------------------------------------------------------
/public/splash/ipad_splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerosoul/honeyed-words-generator/34537a730a59c8b453735f6b4111390003018ab0/public/splash/ipad_splash.png
--------------------------------------------------------------------------------
/public/splash/ipadpro1_splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerosoul/honeyed-words-generator/34537a730a59c8b453735f6b4111390003018ab0/public/splash/ipadpro1_splash.png
--------------------------------------------------------------------------------
/public/splash/ipadpro2_splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerosoul/honeyed-words-generator/34537a730a59c8b453735f6b4111390003018ab0/public/splash/ipadpro2_splash.png
--------------------------------------------------------------------------------
/public/splash/ipadpro3_splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerosoul/honeyed-words-generator/34537a730a59c8b453735f6b4111390003018ab0/public/splash/ipadpro3_splash.png
--------------------------------------------------------------------------------
/public/splash/iphone5_splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerosoul/honeyed-words-generator/34537a730a59c8b453735f6b4111390003018ab0/public/splash/iphone5_splash.png
--------------------------------------------------------------------------------
/public/splash/iphone6_splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerosoul/honeyed-words-generator/34537a730a59c8b453735f6b4111390003018ab0/public/splash/iphone6_splash.png
--------------------------------------------------------------------------------
/public/splash/iphoneplus_splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerosoul/honeyed-words-generator/34537a730a59c8b453735f6b4111390003018ab0/public/splash/iphoneplus_splash.png
--------------------------------------------------------------------------------
/public/splash/iphonex_splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerosoul/honeyed-words-generator/34537a730a59c8b453735f6b4111390003018ab0/public/splash/iphonex_splash.png
--------------------------------------------------------------------------------
/public/splash/iphonexr_splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerosoul/honeyed-words-generator/34537a730a59c8b453735f6b4111390003018ab0/public/splash/iphonexr_splash.png
--------------------------------------------------------------------------------
/public/splash/iphonexsmax_splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerosoul/honeyed-words-generator/34537a730a59c8b453735f6b4111390003018ab0/public/splash/iphonexsmax_splash.png
--------------------------------------------------------------------------------
/src/App.jsx:
--------------------------------------------------------------------------------
1 | import { lazy, Suspense, useEffect, useState } from 'react';
2 | import styled from 'styled-components';
3 |
4 | import { getQueryValue } from './utils';
5 | import Loading from './components/Loading';
6 | import Words from './assets/words';
7 |
8 | // const Card = lazy(() => import('./components/Card'));
9 | const Card = lazy(() => import('./components/Card'));
10 | const LoadingWords = lazy(() => import('./components/LoadingWords'));
11 | const StartButton = lazy(() => import('./components/StartButton'));
12 | const RefreshButton = lazy(() => import('./components/RefreshButton'));
13 | const SaveButton = lazy(() => import('./components/SaveButton'));
14 | const ShareQR = lazy(() => import('./components/ShareQR'));
15 | const Header = lazy(() => import('./components/Header'));
16 |
17 | const InfoModal = lazy(() => import('./components/InfoModal'));
18 | const MetooButton = styled(StartButton)`
19 | z-index: 998;
20 | position: fixed;
21 | bottom: 0.6rem;
22 | left: 50%;
23 | width: 14rem;
24 | margin-left: -7rem;
25 | animation-delay: ${({ wordCount }) => `${wordCount * 0.3}s`};
26 | `;
27 | const wordsIdx = getQueryValue('idx');
28 | const hasWords = wordsIdx !== '';
29 | const App = () => {
30 | let count = wordsIdx !== '' ? Words[wordsIdx].length : 0;
31 |
32 | const [start, setStart] = useState(hasWords);
33 | const [loading, setLoading] = useState(!hasWords);
34 | const handleStart = () => {
35 | setStart(true);
36 | setLoading(true);
37 | };
38 | const handleDone = () => {
39 | setLoading(false);
40 | };
41 | const handleUpdate = () => {
42 | setLoading(true);
43 | };
44 |
45 | return (
46 | }>
47 | {!hasWords && }
48 | {start && !loading && !hasWords && }
49 |
50 |
51 | {!start && }
52 |
53 |
54 | {start && !loading && hasWords && (
55 | {
58 | location.href = location.href.split('?')[0];
59 | }}
60 | >
61 | 我也要生成
62 |
63 | )}
64 |
65 | );
66 | };
67 | export default App;
68 |
--------------------------------------------------------------------------------
/src/Global.style.js:
--------------------------------------------------------------------------------
1 | import { createGlobalStyle } from 'styled-components';
2 | import reset from 'styled-reset';
3 | import ImageBg from './assets/img/bg.love.jpg';
4 | const GlobalStyle = createGlobalStyle`
5 | ${reset}
6 | *{
7 | box-sizing:border-box;
8 | outline:none;
9 | -webkit-text-size-adjust: none;
10 | -webkit-tap-highlight-color: rgba(0,0,0,0);
11 | color:#ffffeb;
12 | }
13 | html{
14 | -webkit-font-smoothing: antialiased;
15 | -moz-osx-font-smoothing: grayscale;
16 | font-family:"Hiragino Sans GB", "Heiti SC", "Microsoft YaHei", "WenQuanYi Micro Hei";
17 | }
18 | body{
19 | -webkit-overflow-scrolling: touch;
20 | overflow:scroll;
21 | margin:0 auto;
22 | min-height:100vh;
23 | position: relative;
24 | }
25 | #root{
26 | min-height:100vh;
27 | background-image:url(${ImageBg});
28 | background-size: cover;
29 | background-repeat: no-repeat;
30 | background-position: center;
31 | }
32 | .hidden{
33 | visibility:hidden;
34 | }
35 | .visibile{
36 | visibility:visible;
37 | }
38 | @media screen and (min-width: 320px){
39 | html {
40 | font-size: 12px;
41 | }
42 | }
43 | @media screen and (min-width: 375px){
44 | html {
45 | font-size: 14px;
46 | }
47 | }
48 | @media screen and (min-width: 480px){
49 | html {
50 | font-size: 20px;
51 | }
52 | }
53 | @media screen and (min-width: 768px){
54 | html {
55 | font-size: 24px;
56 | }
57 | }
58 | `;
59 |
60 | export default GlobalStyle;
61 |
--------------------------------------------------------------------------------
/src/assets/img/bg.love.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerosoul/honeyed-words-generator/34537a730a59c8b453735f6b4111390003018ab0/src/assets/img/bg.love.jpg
--------------------------------------------------------------------------------
/src/assets/img/birds.bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerosoul/honeyed-words-generator/34537a730a59c8b453735f6b4111390003018ab0/src/assets/img/birds.bg.png
--------------------------------------------------------------------------------
/src/assets/img/heart.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/img/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerosoul/honeyed-words-generator/34537a730a59c8b453735f6b4111390003018ab0/src/assets/img/logo.png
--------------------------------------------------------------------------------
/src/assets/img/lover.bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerosoul/honeyed-words-generator/34537a730a59c8b453735f6b4111390003018ab0/src/assets/img/lover.bg.png
--------------------------------------------------------------------------------
/src/assets/img/noise.bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerosoul/honeyed-words-generator/34537a730a59c8b453735f6b4111390003018ab0/src/assets/img/noise.bg.png
--------------------------------------------------------------------------------
/src/assets/img/reward.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerosoul/honeyed-words-generator/34537a730a59c8b453735f6b4111390003018ab0/src/assets/img/reward.jpg
--------------------------------------------------------------------------------
/src/assets/words.json:
--------------------------------------------------------------------------------
1 | [
2 | "有趣的地方都想去|比如你的世界",
3 | "我想在你那里买一块地 | 买什么地?|买你的死心塌地",
4 | "你知道你和星星有什么区别吗?|星星在天上 | 而你在我心里",
5 | "我十拿九稳 | 就只差你一吻了",
6 | "可爱不是长久之计 | 可爱我是",
7 | "小猪佩奇 | 你配我",
8 | "有谣言说我喜欢你 | 我澄清一下 | 那不是谣言",
9 | "只许州官放火 | 不许…|不许你离开我",
10 | "你昨天晚上应该很累吧 | 因为你在我梦里一直跑个不停",
11 | "我觉得你接近我就是在害我 | 害得我好喜欢你呀",
12 | "你今天好奇怪 | 怪!可!爱!的!",
13 | "我觉得我好花心 | 你每天的样子我都好喜欢",
14 | "你有打火机嘛?|没有?|那你是如何点燃我的心的",
15 | "我说不清我为什么爱你 | 我只知道 | 只要有你 | 我就不可能爱上别人",
16 | "我喜欢你 | 像你妈打你 | 不讲道理",
17 | "知道你为什么这么冷吗?|因为你没有像我这么暖的对象在身边啊。",
18 | "无事献殷勤 | 非…|非常喜欢你",
19 | "子曰:三思而后行|1、2、3、|嗯~我喜欢你。",
20 | "小女子不才 | 掐指一算 | 公子今生缺我",
21 | "你有地图吗?|我在你的眼睛里迷路了。",
22 | "饭在锅里 | 我在床上",
23 | "你知道我最喜欢什么神吗?|是你的眼神",
24 | "你要是丑点 | 我或许可以带你逛街看电影吃西餐散步看星星看月亮 | 从诗词歌赋谈到人生哲学 | 可你长的那么好看,让我只想和你恋爱",
25 | "我房租到期了 | 可以去你心里住吗?",
26 | "要是我和你生一个孩子你觉得他会是什么座?|什么座?双子座?|不,我们的杰作。",
27 | "你可以笑一个吗?|为什么啊?|因为我的咖啡忘加糖了",
28 | "你想喝点什么?|我想呵护你。",
29 | "我觉得你长得像我一个亲戚|???|我妈的儿媳妇",
30 | "你知道情人眼里出什么吗?|西施?!|不,出现你。",
31 | "你最近是不是又胖了?|没有啊,为什么这么说?|那你为什么在我心里的分量越来越重了呢?",
32 | "落叶归根 | 你归我",
33 | "苦海无涯 | 回头是我",
34 | "不想撞南墙了 | 只想撞撞先生胸膛",
35 | "你上辈子一定是碳酸饮料吧 | 不然我怎么一看到你就开心地冒泡呢",
36 | "你会弹钢琴吗?|不会 | 那你是怎么撩动我的心弦的呢",
37 | "第一次见到你时 | 上帝在我耳旁说了几个字 | 在劫难逃",
38 | "你知道喝什么酒最容易醉吗?|是你的天长地久",
39 | "你属什么?|我属虎。|你不要再骗人了,你属于我。",
40 | "你是什么星座?双子座吗?|不是,我是为你量身定做。",
41 | "你知道我最大的缺点是什么吗?|是缺点你",
42 | "如果我把你推到花园里面 | 我就会找不到你 | 因为你像花儿一样美丽|",
43 | "有时候生活有些苦难 | 你不要去抱怨 | 抱我就好了",
44 | "我点的东西怎么还没来?|什么东西?|我们的未来。",
45 | "你的脸上有点东西 | 有什么?|有点漂亮",
46 | "我一点也不想你 | 一点半再想你",
47 | "你知道我的心在哪边么?|左边啊 | 不,在你那边",
48 | "我们来玩木头人不许动吧 | 好!我输了 | 为什么?|因为我心动了",
49 | "莫文蔚的阴天 | 孙燕姿的雨天 | 周杰伦的晴天 | 都不如你和我聊天",
50 | "我想你应该很忙 | 所以你看到前三个字就好了",
51 | "甜有 100 种方式 | 吃糖 | 蛋糕 | 还有 98 次想你",
52 | "你知道我喜欢吃什么吗?|不知道 | 我喜欢痴痴地望着你",
53 | "你猜一下我是什么星座?|不知道 | 我是什么都想为你做!",
54 | "你是什么血型?|A 型啊 | 不,你是我的理想型",
55 | "我知道有三个人喜欢你 | 谁呀 | 我呀!我呀!我呀!",
56 | "我刚发现我们有一个共同好友!|是谁?|丘比特!",
57 | "我和你没什么好谈的 | 除了谈恋爱",
58 | "不思进取 | 思你",
59 | "众生皆苦 | 你是草莓味!",
60 | "见什么世面 | 见见你就好了!",
61 | "好好照顾自己|不行就让我来照顾你",
62 | "眼里都是你 | 亿万星辰犹不及",
63 | "最近手头有点紧 | 想借你的手牵一牵",
64 | "人总是会变的 | 从一开始的喜欢你 | 到后来的更喜欢你",
65 | "一想到昨天的我也喜欢你 | 今天的我就吃醋了",
66 | "希望有一天 | 你来到这个城市 | 是因为想起了我",
67 | "你为什么要害我?|我害你?|害我这么喜欢你",
68 | "游乐园里有个可以骑在上面旋转的,那个叫旋转什么?|木马|Mua~",
69 | "你知道牛肉要怎么吃才好吃吗?|我喂你吃",
70 | "我觉得你这个人不适合谈恋爱 | 为什么?|你适合结婚",
71 | "一生无定 | 遇你之所 | 是为乡",
72 | "要不我们去喝酒吧 | 喝我们的喜酒",
73 | "你一定很孤独吧 | 因为你一直住在我心里",
74 | "你眼瞎吗 | 撞我心口上了",
75 | "遍地都是月光 | 可月亮就你一个",
76 | "你是哪里人 | 杭州人 | 不,你是我的心上人",
77 | "我还是喜欢你 | 像小时候吃辣条 | 不看日期",
78 | "“你能不能闭嘴” | “我没有说话啊” | “那为什么我满脑子都是你…”",
79 | "你闻到什么味道了吗?|没有啊 | 怎么你一出来空气都是甜的了",
80 | "我有罪!|什么?|我正在你的芳心纵火",
81 | "你是书吧?|越看越想睡",
82 | "海上月是天上月 | 眼前人是心上人",
83 | "我觉得你好像一款游戏 | 什么游戏?|我的世界",
84 | "我身体很好 | 可以扛米袋子,扛煤气罐 | 可就是扛不住想你",
85 | "你知道我最珍贵的是什么吗?|是上一句话的第一个字",
86 | "今天不是你死就是我死 | 你可爱死了 | 我爱死你了",
87 | "“洁白的婚纱,手捧着鲜花”这首歌歌名是什么?|咱们结婚吧 | 好啊!",
88 | "你可以帮我洗一个东西吗 | 洗什么?|喜欢我啊",
89 | "天气这么冷,你知道怎么取暖吗?|不知道 | 我也不知道,但我知道怎么娶你",
90 | "跟你说一个坏消息 | 什么坏消息?|我对你的思想已经不单纯了",
91 | "以后你的口红我包了 | 但记得每天还我一点点",
92 | "这是校服 | 这是迷彩服 | 你是我的小幸福",
93 | "我认为我是一个直男 | 为什么?|因为我一直爱着你",
94 | "今天和喜欢的人说了一句话 | 说了啥?|“今天和喜欢的人说了一句话”",
95 | "你的眼睛真好看,里面藏着山川湖海,日月星辰 | 我的眼睛更好看 | 里面藏着你",
96 | "既见君子,云胡不喜 | 明天生动而具体 | 有且仅有一个你",
97 | "月亮不会奔向你 | 但我会 | 不负万里的那种",
98 | "你摸摸我什么面料子 | 面料怎么了?|是不是做你男友的料子",
99 | "以后我只能称呼你为您了 | 因为,你在我心上",
100 | "我的手被划了一口子 | 你也划一下 | 这样我们就是两口子了",
101 | "土豆会变成土豆泥,猜猜我会变成什么呢?|不知道诶 | 我爱泥",
102 | "我想吃碗面 | 什么面?|你的心里面",
103 | "我对你的爱 | 就像拖拉机上山 | 轰轰烈烈",
104 | "你猜我坐飞机喜欢靠走道还是靠窗 | 靠窗?|不对,我喜欢靠着你",
105 | "地球和太阳都不是宇宙的中心 | 你才是",
106 | "我小时候想成为科学家,可现在不一样了 | 现在怎么了?|现在想和你成家",
107 | "我觉得我是一个单调的人 | 为什么?|因为我只喜欢你",
108 | "你猜我爱喝酒还是爱打游戏 | 爱打游戏吧?|不,爱你",
109 | "你好宅啊 | 没有啊 | 可你呆在我的心里就没动过",
110 | "你知道什么是重要吗?|就是你无论多重 | 我都要你!"
111 | ]
--------------------------------------------------------------------------------
/src/components/Card.jsx:
--------------------------------------------------------------------------------
1 | import { useState, useEffect } from 'react';
2 | import styled from 'styled-components';
3 | import { QRCodeSVG } from 'qrcode.react';
4 |
5 | import { getQueryValue, shuffle } from '../utils';
6 | import ImageLogo from '../assets/img/logo.png';
7 | import ImageLover from '../assets/img/lover.bg.png';
8 | import ImageBirds from '../assets/img/birds.bg.png';
9 |
10 | import { AniPopIn, AniFadeIn, AniSlideInDown } from './animates';
11 | import StyledWordBox from './StyledWordBox';
12 | import ImageHeart from '../assets/img/heart.svg';
13 | import ImageNoise from '../assets/img/noise.bg.png';
14 |
15 | const StyledWrapper = styled.section`
16 | z-index: 997;
17 | position: fixed;
18 | top: 0;
19 | left: 0;
20 | right: 0;
21 | bottom: 0;
22 | display: flex;
23 | flex-direction: column;
24 | align-items: center;
25 | justify-content: center;
26 | backface-visibility: hidden;
27 |
28 | &.visible .card {
29 | animation: ${AniSlideInDown} 0.5s;
30 | }
31 | .card {
32 | position: relative;
33 | padding: 1.8rem 2rem;
34 | background-color: rgba(108, 53, 44, 0.8);
35 | margin-top: -2rem;
36 | max-width: 94vw;
37 | box-shadow: 0 0 1rem #6c352c;
38 | animation-fill-mode: both;
39 |
40 | .dbg {
41 | visibility: hidden;
42 | position: absolute;
43 | &.qr {
44 | bottom: 0;
45 | right: 0.5rem;
46 | display: flex;
47 | flex-direction: column;
48 | align-items: center;
49 | .tip {
50 | font-size: 0.5rem;
51 | color: #222;
52 | padding: 0.2rem 0;
53 | }
54 | }
55 | &.lover {
56 | bottom: 0;
57 | left: 0;
58 | width: 4rem;
59 | opacity: 0.6;
60 | }
61 | &.birds {
62 | top: 0.4rem;
63 | right: 0;
64 | width: 5rem;
65 | opacity: 0.5;
66 | }
67 | }
68 |
69 | .heart {
70 | position: absolute;
71 | animation-fill-mode: both;
72 | animation: ${AniFadeIn} 3s ease infinite alternate;
73 | opacity: 0;
74 | &.heart1 {
75 | transform: rotate(20deg);
76 | bottom: 1rem;
77 | right: 1rem;
78 | width: 3rem;
79 | }
80 | &.heart2 {
81 | transform: rotate(-20deg);
82 | bottom: 1rem;
83 | left: -1rem;
84 | width: 1rem;
85 | }
86 | &.heart3 {
87 | transform: rotate(-30deg);
88 | top: 1rem;
89 | left: 1rem;
90 | width: 2rem;
91 | }
92 | &.heart4 {
93 | transform: rotate(40deg);
94 | top: 2rem;
95 | right: 1.2rem;
96 | width: 1.5rem;
97 | }
98 | &.heart5 {
99 | transform: rotate(-10deg);
100 | bottom: 2rem;
101 | left: 1.2rem;
102 | width: 1.8rem;
103 | }
104 | }
105 | &.starting {
106 | background-image: url(${ImageNoise});
107 | background-repeat: repeat;
108 | box-shadow: none;
109 | animation: none;
110 | transform: none;
111 | .dbg {
112 | visibility: visible;
113 | &.qr {
114 | opacity: 0.8;
115 | }
116 | }
117 | .line .word {
118 | color: #222;
119 | text-shadow: none;
120 | }
121 | * {
122 | animation: none;
123 | }
124 | }
125 | &:after {
126 | content: '';
127 | position: absolute;
128 | width: 100%;
129 | height: 0.8rem;
130 | border-radius: 50%;
131 | left: 0;
132 | bottom: -1rem;
133 | box-shadow: 0 30px 20px rgba(0, 0, 0, 0.2);
134 | }
135 | .line {
136 | margin-bottom: 1.4rem;
137 | display: flex;
138 | flex-wrap: wrap;
139 | font-size: 2rem;
140 | }
141 | }
142 | `;
143 | const WordBox = styled(StyledWordBox)`
144 | text-shadow: 0 0 3px rgba(2, 2, 2, 0.5);
145 | color: #f4b0f3;
146 | padding: 0.4rem;
147 | font-weight: 800;
148 | animation: ${AniPopIn} 1s ease forwards;
149 | animation-fill-mode: both;
150 | `;
151 |
152 | const wordsIdx = getQueryValue('idx');
153 | let currWords = '';
154 |
155 | let wordCount = 0;
156 |
157 | export default function Card({ wordArr = [], visible = false }) {
158 | const [words, setWords] = useState('');
159 |
160 | useEffect(() => {
161 | if (visible && wordArr.length > 0) {
162 | if (wordsIdx) {
163 | currWords = wordArr[wordsIdx];
164 | console.log({ currWords });
165 | }
166 | const RandomWords = [...wordArr];
167 | shuffle(RandomWords);
168 | let wordSeq = currWords === '' ? 1 : RandomWords.findIndex((w) => w === currWords) + 1;
169 | let newWords = RandomWords[(wordSeq - 1) % RandomWords.length];
170 | console.log({ newWords });
171 |
172 | setWords(newWords);
173 | wordCount = 0;
174 | // 全局变量
175 | window.CUR_WORDS_IDX = wordArr.findIndex((w) => w === newWords);
176 | console.log('from card CUR_WORDS_IDX', window.CUR_WORDS_IDX);
177 |
178 | return () => {
179 | wordSeq++;
180 | };
181 | }
182 | }, [visible, wordArr]);
183 |
184 | return (
185 |
186 |
187 | {words
188 | .replaceAll(' ', '')
189 | .split('|')
190 | .map((line, lineIdx) => {
191 | let ws = line.split('');
192 | console.log({ ws });
193 |
194 | if (lineIdx !== 0) {
195 | wordCount = wordCount + words.split('|')[lineIdx - 1].length;
196 | }
197 | return (
198 |
199 | {ws.map((w, idx) => {
200 | return w !== '' ? (
201 |
206 | {w}
207 |
208 | ) : null;
209 | })}
210 |
211 | );
212 | })}
213 | {[1, 2, 3, 4, 5].map((num, idx) => (
214 |

221 | ))}
222 |
234 |

235 |

236 |
237 |
238 | );
239 | }
240 |
--------------------------------------------------------------------------------
/src/components/Header.jsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import styled from 'styled-components';
3 | import StyledWordBox from './StyledWordBox';
4 | import StartButton from './StartButton';
5 | import { AniPopIn, AniFadeDown, AniFloat } from './animates';
6 |
7 | import ImageLogo from '../assets/img/logo.png';
8 | const Wrapper = styled.header`
9 | position: fixed;
10 | top: 0;
11 | left: 0;
12 | right: 0;
13 | bottom: 0;
14 | display: flex;
15 | flex-direction: column;
16 | align-items: center;
17 | justify-content: center;
18 | .logo {
19 | width: 6rem;
20 | margin-bottom: 3rem;
21 | animation-fill-mode: both;
22 |
23 | animation: ${AniFloat} 2s ease-in infinite alternate;
24 | }
25 | .title {
26 | display: flex;
27 | font-size: 4rem;
28 | font-weight: 800;
29 | text-shadow: 0 0 4px black;
30 | }
31 | `;
32 | const WordBox = styled(StyledWordBox)`
33 | position: relative;
34 | margin: 0 0.4rem;
35 | padding: 0.3rem;
36 | border: 1px solid pink;
37 | color: #f4b0f3;
38 | animation: ${AniPopIn} 1s ease forwards;
39 | animation-fill-mode: both;
40 | .pinyin {
41 | color: #f1ad93;
42 | font-size: 1.5rem;
43 | position: absolute;
44 | left: 50%;
45 | top: -2rem;
46 | transform: translateX(-50%);
47 | .w {
48 | font-family: monospace;
49 | text-transform: capitalize;
50 | animation: ${AniFadeDown} 1s;
51 | animation-fill-mode: both;
52 | }
53 | }
54 | `;
55 |
56 | const titleWords = [
57 | { word: '甜', pinyin: 'tǔ' },
58 | { word: '言', pinyin: 'wèi' },
59 | { word: '蜜', pinyin: 'qíng' },
60 | { word: '语', pinyin: 'huà' }
61 | ];
62 | export default function Header({ handleStart }) {
63 | return (
64 |
65 |
66 |
67 | {titleWords.map((obj, idx) => {
68 | return (
69 |
70 | {obj.word}
71 |
72 |
73 | {obj.pinyin}
74 |
75 |
76 |
77 | );
78 | })}
79 |
80 | 开始
81 |
82 | );
83 | }
84 |
--------------------------------------------------------------------------------
/src/components/InfoModal.jsx:
--------------------------------------------------------------------------------
1 | /* eslint-disable react/jsx-no-target-blank */
2 | import { useState } from 'react';
3 | import styled from 'styled-components';
4 | import GitHubButton from 'react-github-btn';
5 | import StyledButton from './StyledButton';
6 | import ImageReward from '../assets/img/reward.jpg';
7 | import { AniSlideLeft } from './animates';
8 | import { MdClose, MdInfo } from 'react-icons/md';
9 | const InfoButton = styled(StyledButton)`
10 | position: fixed;
11 | right: 0.5rem;
12 | bottom: 0.5rem;
13 | margin-right: 0.5rem;
14 | padding: 5px;
15 | display: flex;
16 | align-items: center;
17 | justify-content: center;
18 | > svg {
19 | width: 28px;
20 | height: 28px;
21 | }
22 | `;
23 | const StyledModal = styled.section`
24 | z-index: 998;
25 | display: flex;
26 | flex-direction: column;
27 | box-shadow: 0 0 8px black;
28 | position: fixed;
29 | right: 0.5rem;
30 | bottom: 3rem;
31 | background: rgba(2, 2, 2, 0.6);
32 | padding: 1rem;
33 | padding: 1rem;
34 | &.visible {
35 | animation: ${AniSlideLeft} 1s;
36 | }
37 | .reward {
38 | width: 14rem;
39 | align-self: center;
40 | margin-bottom: 1.8rem;
41 | position: relative;
42 | img {
43 | width: 100%;
44 | border: 1px solid #222;
45 | }
46 | &:after {
47 | content: attr(title);
48 | display: block;
49 | position: absolute;
50 | left: 50%;
51 | transform: translateX(-50%);
52 | width: 100%;
53 | text-align: left;
54 | font-size: 0.8rem;
55 | bottom: -1rem;
56 | text-shadow: 0 0 8px #a09090;
57 | }
58 | }
59 | .line {
60 | display: flex;
61 | align-items: center;
62 | margin-bottom: 0.8rem;
63 | &.title {
64 | font-size: 1.4rem;
65 | font-weight: 800;
66 | }
67 | &.github > span {
68 | margin-right: 0.4rem;
69 | }
70 | }
71 | .copyright {
72 | font-size: 0.5rem;
73 | }
74 | `;
75 | const Modal = ({ visible = false }) => (
76 |
77 | 土味情话在线生成器
78 |
79 |
87 | Star
88 |
89 |
97 | Fork
98 |
99 |
100 |
101 |

102 |
103 |
109 |
110 | );
111 | export default function InfoModal() {
112 | const [visible, setVisible] = useState(false);
113 | const handleInfoClick = () => {
114 | setVisible((prev) => !prev);
115 | };
116 |
117 | return (
118 | <>
119 |
120 |
121 |
122 | {visible ? : }
123 |
124 | >
125 | );
126 | }
127 |
--------------------------------------------------------------------------------
/src/components/Loading.jsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import styled, { keyframes } from 'styled-components';
3 | const rotate = keyframes`
4 | 0% {
5 | transform: rotate(0deg);
6 | }
7 | 100%{
8 | transform: rotate(-360deg);
9 | }
10 | `;
11 |
12 | const rotateBall = (props) => keyframes`
13 | ${(((props.size / 2 / props.countBalls) * (props.index - 1)) / props.size) * 100}% {
14 | opacity: 0;
15 | }
16 | ${(((props.size / 2 / props.countBalls + 0.0001) * (props.index - 1)) / props.size) * 100}% {
17 | opacity: 1;
18 | transform: ${`rotateZ(${0 - (360 / props.countBalls) * (props.index - 2)}deg)`};
19 | }
20 | ${(((props.size / 2 / props.countBalls) * (props.index - 0) + 2) / props.size) * 100}% {
21 | transform: ${`rotateZ(${0 - (360 / props.countBalls) * (props.index - 1)}deg)`};
22 | }
23 | ${
24 | ((props.size / 2 + (props.size / 2 / props.countBalls) * (props.index - 0) + 2) / props.size) *
25 | 100
26 | }% {
27 | transform: ${`rotateZ(${0 - (360 / props.countBalls) * (props.index - 1)}deg)`};
28 | }
29 | 100% {
30 | transform: ${`rotateZ(${0 - (360 / props.countBalls) * (props.countBalls - 1)}deg)`};
31 | opacity: 1;
32 | }
33 | `;
34 |
35 | const getBalls = ({
36 | countBalls,
37 | radius,
38 | angle,
39 | color = '#fff',
40 | size = 40,
41 | ballSize,
42 | sizeUnit = 'px'
43 | }) => {
44 | const balls = [];
45 | const offset = ballSize / 2;
46 | for (let i = 0; i < countBalls; i++) {
47 | const y = Math.sin(angle * i * (Math.PI / 180)) * radius - offset;
48 | const x = Math.cos(angle * i * (Math.PI / 180)) * radius - offset;
49 | balls.push(
50 |
61 | );
62 | }
63 | return balls;
64 | };
65 |
66 | const Wrapper = styled.div`
67 | position: relative;
68 | display: flex;
69 | justify-content: center;
70 | align-items: center;
71 | width: 100vw;
72 | height: 100vh;
73 | animation: ${rotate} 3s infinite ease-in;
74 | `;
75 |
76 | const Ball = styled.div`
77 | position: absolute;
78 | width: ${(props) => `${props.size}${props.sizeUnit}`};
79 | height: ${(props) => `${props.size}${props.sizeUnit}`};
80 | animation: ${rotateBall} 2s infinite linear;
81 | transform: ${(props) => `rotateZ(${(360 / props.countBalls) * props.index}deg)`};
82 | opacity: 0;
83 | &:before {
84 | content: '';
85 | position: absolute;
86 | left: 50%;
87 | top: 0%;
88 | width: ${(props) => `${props.ballSize}${props.sizeUnit}`};
89 | height: ${(props) => `${props.ballSize}${props.sizeUnit}`};
90 | background-color: ${(props) => `${props.color}`};
91 | transform: translateX(-50%);
92 | border-radius: 50%;
93 | }
94 | `;
95 |
96 | const Loading = ({ size = 40, color = '#fff', sizeUnit = 'px' }) => {
97 | const radius = size / 2;
98 | const countBalls = 9;
99 | const ballSize = size / 8;
100 | const angle = 360 / countBalls;
101 | return (
102 |
103 | {getBalls({
104 | countBalls,
105 | radius,
106 | angle,
107 | color,
108 | size,
109 | ballSize,
110 | sizeUnit
111 | })}
112 |
113 | );
114 | };
115 | export default Loading;
116 |
--------------------------------------------------------------------------------
/src/components/LoadingWords.jsx:
--------------------------------------------------------------------------------
1 | import { useEffect } from 'react';
2 | import styled from 'styled-components';
3 | import Words from '../assets/words';
4 | import StyledWordBox from './StyledWordBox';
5 | import { AniBlink, AniZoomIn } from './animates';
6 | const StyledWrapper = styled.section`
7 | position: fixed;
8 | top: 0;
9 | left: 0;
10 | right: 0;
11 | bottom: 0;
12 | display: flex;
13 | align-items: center;
14 | justify-content: center;
15 | .words {
16 | background-color: rgba(108, 53, 44, 0.8);
17 | width: 20rem;
18 | min-height: 50vh;
19 | display: flex;
20 | flex-wrap: wrap;
21 | justify-content: center;
22 | clip-path: polygon(0 0, 100% 0%, 100% 75%, 75% 75%, 75% 100%, 50% 75%, 0% 75%);
23 | }
24 | &.visible .words {
25 | animation: ${AniZoomIn} 0.5s ease-in-out;
26 | }
27 | `;
28 | const WordBox = styled(StyledWordBox)`
29 | height: 100%;
30 | padding: 0.3rem;
31 | animation: ${AniBlink} 0.4s ease-in-out infinite;
32 | border-color: rgba(222, 222, 222, 0.2);
33 | &:before,
34 | &:after {
35 | opacity: 0.5;
36 | }
37 | `;
38 | const reg = /[\u4e00-\u9fa5]/g;
39 | // 去重
40 | const words = [...new Set(Words.join('').match(reg).join('').split(''))].join('').substring(0, 100);
41 | let timeInter = 0;
42 | export default function LoadingWords({ visible = false, handleDone }) {
43 | const handleUpdateWord = (evt) => {
44 | let idx = Math.floor(Math.random() * words.length);
45 | let newWord = words[idx];
46 | evt.target.innerHTML = newWord;
47 | };
48 | useEffect(() => {
49 | timeInter = setTimeout(
50 | () => {
51 | handleDone();
52 | },
53 | import.meta.env.PROD ? 1500 : 1500
54 | );
55 | return () => {
56 | clearTimeout(timeInter);
57 | };
58 | }, [handleDone]);
59 | return (
60 |
61 |
62 | {words.split('').map((word, idx) => {
63 | return (
64 |
69 | {word}
70 |
71 | );
72 | })}
73 |
74 |
75 | );
76 | }
77 |
--------------------------------------------------------------------------------
/src/components/RefreshButton.jsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import styled from 'styled-components';
3 | import StyledButton from './StyledButton';
4 | import { MdRefresh } from 'react-icons/md';
5 |
6 | const Button = styled(StyledButton)`
7 | position: fixed;
8 | left: 3rem;
9 | bottom: 0.5rem;
10 | padding: 5px;
11 | display: flex;
12 | align-items: center;
13 | justify-content: center;
14 | > svg {
15 | width: 28px;
16 | height: 28px;
17 | }
18 | `;
19 | export default function RefreshButton({ visible = false, handleUpdate }) {
20 | return (
21 |
24 | );
25 | }
26 |
--------------------------------------------------------------------------------
/src/components/SaveButton.jsx:
--------------------------------------------------------------------------------
1 | import { useState } from 'react';
2 | import styled from 'styled-components';
3 | import html2canvas from 'html2canvas';
4 | import { saveAs } from 'file-saver';
5 | // import ImageDownload from '../assets/img/download.svg';
6 | import StyledButton from './StyledButton';
7 | import { MdDownload } from 'react-icons/md';
8 |
9 | const ua = navigator.userAgent;
10 | const isiOSwebview = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(ua);
11 | const isWebview = ua.toLowerCase().indexOf('micromessenger') > -1 || isiOSwebview;
12 | const Button = styled(StyledButton)`
13 | position: fixed;
14 | left: 0.5rem;
15 | bottom: 0.5rem;
16 | padding: 5px;
17 | display: flex;
18 | align-items: center;
19 | justify-content: center;
20 | > svg {
21 | width: 28px;
22 | height: 28px;
23 | }
24 | `;
25 |
26 | export default function SaveButton({ visible }) {
27 | const [generating, setGenerating] = useState(false);
28 |
29 | const handleDownload = async () => {
30 | if (isWebview) {
31 | alert('请在浏览器打开!');
32 | }
33 | console.log('download');
34 | let ele = document.querySelector('#HONEYED_WORDS_CARD');
35 | await generateImage(ele);
36 | };
37 | const generateImage = async (ele, isWebview = false) => {
38 | setGenerating(true);
39 | html2canvas(ele, {
40 | debug: import.meta.env.DEV,
41 | onclone: (document) => {
42 | let tmp = document.querySelector('#HONEYED_WORDS_CARD');
43 | tmp.classList.add('starting');
44 | tmp.style.transform = 'none';
45 | tmp.style.boxShadow = 'none';
46 | console.log('dommmm', tmp.innerHTML);
47 | },
48 | scale: window.devicePixelRatio * (isWebview ? 2 : 1)
49 | }).then(function (canvas) {
50 | console.log(canvas);
51 | if (isWebview) {
52 | console.log('weixin');
53 | let img = document.createElement('img');
54 |
55 | canvas.toBlob((blob) => {
56 | const {
57 | URL: { createObjectURL }
58 | } = window;
59 | img.src = createObjectURL(blob);
60 | img.classList.add('downloadImg');
61 | });
62 | ele.classList.add('img');
63 | ele.appendChild(img);
64 | setGenerating(false);
65 | } else {
66 | canvas.toBlob((blob) => {
67 | saveAs(blob, `hw-${new Date().getTime()}.png`);
68 | setGenerating(false);
69 | }, 'image/png');
70 | // saveAs(canvas.toDataURL(), `${name}-${new Date().getTime()}.png`);
71 | }
72 | ele.classList.remove('starting');
73 | });
74 | };
75 | return (
76 |
83 | );
84 | }
85 |
--------------------------------------------------------------------------------
/src/components/ShareQR.jsx:
--------------------------------------------------------------------------------
1 | /* eslint-disable react/jsx-no-target-blank */
2 | import { useState, useEffect } from 'react';
3 | import styled from 'styled-components';
4 | import { QRCodeCanvas } from 'qrcode.react';
5 | import html2canvas from 'html2canvas';
6 |
7 | import StyledButton from './StyledButton';
8 | import ImageLogo from '../assets/img/logo.png';
9 | import { AniSlideInUp } from './animates';
10 | import { MdClose, MdShare } from 'react-icons/md';
11 | const ShareButton = styled(StyledButton)`
12 | padding: 5px;
13 | display: flex;
14 | align-items: center;
15 | justify-content: center;
16 | > svg {
17 | width: 28px;
18 | height: 28px;
19 | }
20 | `;
21 | const StyledBtnWrapper = styled.div`
22 | z-index: 998;
23 | position: fixed;
24 | right: 1rem;
25 | top: 1rem;
26 | margin-right: 0.5rem;
27 | `;
28 | const StyledModal = styled.section`
29 | z-index: 998;
30 | display: flex;
31 | flex-direction: column;
32 | align-items: center;
33 | justify-content: center;
34 | box-shadow: 0 0 8px black;
35 | position: fixed;
36 | top: 0;
37 | left: 0;
38 | right: 0;
39 | bottom: 0;
40 |
41 | background: rgba(2, 2, 2, 0.8);
42 | padding: 1rem;
43 | padding: 1rem;
44 | &.visible {
45 | animation: ${AniSlideInUp} 1s;
46 | }
47 | .title {
48 | font-size: 0.8rem;
49 | margin-bottom: 1rem;
50 | }
51 | .qr {
52 | width: 14rem;
53 | background: #fff;
54 | position: relative;
55 | .img {
56 | padding-bottom: 10px;
57 | display: flex;
58 | flex-direction: column;
59 | align-items: center;
60 | svg {
61 | width: 100% !important;
62 | height: 100% !important;
63 | }
64 | .tip {
65 | color: #000;
66 | font-weight: 800;
67 | font-size: 0.8rem;
68 | text-align: center;
69 | }
70 | }
71 | .download {
72 | position: absolute;
73 | top: 0;
74 | left: 0;
75 | width: 100%;
76 | height: 100%;
77 | }
78 | }
79 | `;
80 | const Modal = ({ visible = false }) => {
81 | const [imgSrc, setImgSrc] = useState('');
82 | useEffect(() => {
83 | const qrEle = document.querySelector('#QR_DOWNLOAD');
84 | if (visible) {
85 | html2canvas(qrEle, {
86 | debug: import.meta.env.DEV,
87 | onclone: (doc) => {
88 | let tmp = doc.querySelector('#QR_DOWNLOAD');
89 | tmp.classList.remove('hidden');
90 | },
91 | scale: window.devicePixelRatio * 2
92 | }).then((cvs) => {
93 | const tmp = cvs.toDataURL();
94 | setImgSrc(tmp);
95 | qrEle.classList.remove('hidden');
96 | });
97 | } else {
98 | setImgSrc('');
99 | qrEle.classList.add('hidden');
100 | }
101 | }, [visible]);
102 |
103 | return (
104 |
105 | 👇长按或右键保存,发朋友圈或发给 TA 表白👇
106 |
107 |
108 |
117 |
💓想对你说的话,就在这里!💓
118 |
119 | {imgSrc ?

: null}
120 |
121 |
122 | );
123 | };
124 | export default function ShareQR() {
125 | const [expand, setExpand] = useState(false);
126 | const handleClick = () => {
127 | setExpand((prev) => !prev);
128 | };
129 |
130 | return (
131 | <>
132 |
133 |
134 |
135 | {expand ? : }
136 |
137 |
138 | >
139 | );
140 | }
141 |
--------------------------------------------------------------------------------
/src/components/StartButton.jsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import styled from 'styled-components';
3 | import { AniBubble, AniBounceInUp } from './animates';
4 | import ImageHeart from '../assets/img/heart.svg';
5 |
6 | const StyledWrapper = styled.button`
7 | background-color: #60322b;
8 | cursor: pointer;
9 | outline: none;
10 | border: none;
11 | border-radius: 4px;
12 | box-shadow: 0 0 8px black;
13 | padding: 0.5rem 1rem;
14 | margin-top: 1.5rem;
15 | font-size: 2rem;
16 | animation: ${AniBounceInUp} 1s;
17 | animation-delay: 2.8s;
18 | animation-fill-mode: both;
19 | position: relative;
20 | font-weight: 800;
21 | .heart {
22 | animation-fill-mode: both;
23 | position: absolute;
24 | width: 0.8rem;
25 | animation: ${AniBubble} 3s ease infinite;
26 | top: 0.2rem;
27 | right: 0.2rem;
28 | }
29 | `;
30 |
31 | export default function StartButton({ children, ...rest }) {
32 | return (
33 |
34 | {children}
35 | {[1, 2, 3, 4, 5, 6].map((item, idx) => {
36 | return (
37 |
44 | );
45 | })}
46 |
47 | );
48 | }
49 |
--------------------------------------------------------------------------------
/src/components/StyledButton.jsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components';
2 | import { AniZoomIn } from './animates';
3 |
4 | const StyledButton = styled.button`
5 | z-index: 998;
6 | background-size: 1rem 1rem;
7 | background-position: center;
8 | background-repeat: no-repeat;
9 | background-color: rgba(2, 2, 2, 0.6);
10 | cursor: pointer;
11 | outline: none;
12 | border: none;
13 | border-radius: 50%;
14 | box-shadow: 0 0 8px black;
15 | padding: 1rem;
16 | transition: background-image 0.5s;
17 | &.visible {
18 | animation: ${AniZoomIn} 0.5s ease-in-out;
19 | }
20 | `;
21 |
22 | export default StyledButton;
23 |
--------------------------------------------------------------------------------
/src/components/StyledWordBox.jsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components';
2 |
3 | const StyledWordBox = styled.span`
4 | border: 2px solid #f1ad93;
5 | margin-left: -2px;
6 | margin-top: -2px;
7 | position: relative;
8 | &:before,
9 | &:after {
10 | content: '';
11 | display: block;
12 | position: absolute;
13 | z-index: -1;
14 | }
15 | &:after {
16 | background-image: linear-gradient(
17 | 90deg,
18 | #f1ad93,
19 | #f1ad93 75%,
20 | transparent 75%,
21 | transparent 100%
22 | );
23 | left: 0;
24 | top: 50%;
25 | transform: translateY(-1px);
26 | width: 100%;
27 | height: 1px;
28 | background-size: 4px 1px;
29 | }
30 | &:before {
31 | background-image: linear-gradient(
32 | 180deg,
33 | #f1ad93,
34 | #f1ad93 75%,
35 | transparent 75%,
36 | transparent 100%
37 | );
38 | left: 50%;
39 | top: 0;
40 | transform: translateX(-1px);
41 | width: 1px;
42 | height: 100%;
43 | background-size: 1px 4px;
44 | }
45 | `;
46 |
47 | export default StyledWordBox;
48 |
--------------------------------------------------------------------------------
/src/components/animates.js:
--------------------------------------------------------------------------------
1 | import { keyframes } from 'styled-components';
2 |
3 | const AniFadeIn = keyframes`
4 | from{
5 | opacity:0;
6 | }
7 | to{
8 | opacity:0.7;
9 | }
10 | `;
11 | const AniPopIn = keyframes`
12 | from{
13 | transform:rotate(-10deg) translateX(-110px);
14 | opacity:0;
15 | }
16 | to{
17 | opacity:1;
18 | transform:rotate(0) translateX(0);
19 | }
20 | `;
21 | const AniFloat = keyframes`
22 | 0%{
23 | transform: translateY(10px);
24 | opacity:0.2;
25 | }
26 | 80%,100%{
27 | opacity:1;
28 | transform: translateY(0);
29 | }
30 | `;
31 | const AniBubble = keyframes`
32 | 0%{
33 | transform: translateY(20px);
34 | opacity:0.2;
35 | }
36 | 40%,60%{
37 | opacity:1;
38 | transform: translate3d(0,0,0);
39 | }
40 | 70%{
41 | opacity:.8;
42 | transform: translate3d(5px,-20px,0);
43 | }
44 | 80%{
45 | opacity:0.6;
46 | transform: translate3d(0,-30px,0);
47 | }
48 | 90%{
49 | opacity:0.4;
50 | transform: translate3d(-5px,-40px,0);
51 | }
52 | 100%{
53 | opacity:0.2;
54 | transform: translate3d(0,-50px,0);
55 | }
56 | `;
57 | const AniFadeDown = keyframes`
58 | 0% {
59 | opacity: 0;
60 | transform: scale(0);
61 | }
62 |
63 | 50% {
64 | opacity: 0.8;
65 | transform: scale(1.4);
66 | }
67 | 100% {
68 | opacity: 1;
69 | transform: scale(1);
70 | }
71 | `;
72 | const AniBounceInUp = keyframes`
73 | from,
74 | 20%,
75 | 40%,
76 | 60%,
77 | 80%,
78 | to {
79 | animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
80 | }
81 |
82 | 0% {
83 | opacity: 0;
84 | transform: scale3d(0.3, 0.3, 0.3);
85 | }
86 |
87 | 20% {
88 | transform: scale3d(1.1, 1.1, 1.1);
89 | }
90 |
91 | 40% {
92 | transform: scale3d(0.9, 0.9, 0.9);
93 | }
94 |
95 | 60% {
96 | opacity: 1;
97 | transform: scale3d(1.03, 1.03, 1.03);
98 | }
99 |
100 | 80% {
101 | transform: scale3d(0.97, 0.97, 0.97);
102 | }
103 |
104 | to {
105 | opacity: 1;
106 | transform: scale3d(1, 1, 1);
107 | }
108 |
109 | `;
110 | const AniZoomIn = keyframes`
111 | from {
112 | opacity: .2;
113 | transform: scale3d(0.4, 0.4, 0.4);
114 | }
115 | 50% {
116 | opacity: 1;
117 | }
118 | `;
119 | const AniBlink = keyframes`
120 | 0% { opacity:0;transform: scale(0.2) rotate(0); }
121 | 50% { opacity:0.6;transform: scale(2) rotate(30deg); }
122 | 100% { opacity:1;transform: scale(0.5) rotate(-30deg); }
123 | `;
124 | const AniSlideInDown = keyframes`
125 | from {
126 | transform: translate3d(0, -100%, 0);
127 | visibility: visible;
128 | }
129 |
130 | to {
131 | transform: translate3d(0, 0, 0);
132 | }
133 |
134 | `;
135 | const AniSlideLeft = keyframes`
136 | from{
137 | transform:translateX(100%)
138 | }
139 | to{
140 | transform:translateX(0)
141 | }
142 | `;
143 | const AniSlideInUp = keyframes`
144 | from{
145 | opacity:0;
146 | transform:translateY(20px)
147 | }
148 | to{
149 | opacity:1;
150 | transform:translateY(0)
151 | }
152 | `;
153 | export {
154 | AniSlideInUp,
155 | AniBubble,
156 | AniFloat,
157 | AniSlideLeft,
158 | AniPopIn,
159 | AniSlideInDown,
160 | AniZoomIn,
161 | AniFadeIn,
162 | AniFadeDown,
163 | AniBounceInUp,
164 | AniBlink
165 | };
166 |
--------------------------------------------------------------------------------
/src/main.jsx:
--------------------------------------------------------------------------------
1 | import Client from 'react-dom/client';
2 | import App from './App';
3 | import GlobalStyle from './Global.style';
4 |
5 | const root = Client.createRoot(document.getElementById('root'));
6 | root.render(
7 | <>
8 |
9 |
10 | >
11 | );
12 |
--------------------------------------------------------------------------------
/src/utils.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable no-useless-escape */
2 |
3 | export function shuffle(array) {
4 | let counter = array.length;
5 | console.log('shuffle', array);
6 |
7 | // While there are elements in the array
8 | while (counter > 0) {
9 | // Pick a random index
10 | let index = Math.floor(Math.random() * counter);
11 |
12 | // Decrease counter by 1
13 | counter--;
14 |
15 | // And swap the last element with it
16 | let temp = array[counter];
17 | array[counter] = array[index];
18 | array[index] = temp;
19 | }
20 |
21 | return array;
22 | }
23 | export function isMobile() {
24 | let isMobile = false; //initiate as false
25 | // device detection
26 | if (
27 | /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(
28 | navigator.userAgent
29 | ) ||
30 | /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(
31 | navigator.userAgent.substr(0, 4)
32 | )
33 | ) {
34 | isMobile = true;
35 | }
36 | return isMobile;
37 | }
38 | export function getQueryValue(key = '') {
39 | const params = new URLSearchParams(location.search);
40 | const val = params.get(key) || '';
41 | return val;
42 | }
43 | export async function sleep(dur = 2) {
44 | const misDur = dur * 1000;
45 | return new Promise((resolve) => {
46 | setTimeout(() => {
47 | resolve();
48 | }, misDur);
49 | });
50 | }
51 |
--------------------------------------------------------------------------------
/vite.config.js:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'vite';
2 | import react from '@vitejs/plugin-react';
3 | import pkg from './package.json';
4 | // https://vitejs.dev/config/
5 | export default defineConfig({
6 | base: new URL(pkg.homepage).pathname,
7 | server: {
8 | port: 3010
9 | },
10 | esbuild: {
11 | drop: process.env.NODE_ENV == 'production' ? ['console', 'debugger'] : []
12 | },
13 | plugins: [react()]
14 | });
15 |
--------------------------------------------------------------------------------