diff --git a/package-lock.json b/package-lock.json
index 9baa2bf..a4ae9ca 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -16,6 +16,15 @@
"devDependencies": {
"@tsconfig/node22": "^22.0.5",
"@types/node": "^26.1.1",
+ "@vicons/antd": "^0.13.0",
+ "@vicons/carbon": "^0.13.0",
+ "@vicons/fa": "^0.13.0",
+ "@vicons/fluent": "^0.13.0",
+ "@vicons/ionicons4": "^0.13.0",
+ "@vicons/ionicons5": "^0.13.0",
+ "@vicons/material": "^0.13.0",
+ "@vicons/tabler": "^0.13.0",
+ "@vicons/utils": "^0.1.4",
"@vitejs/plugin-vue": "^6.0.7",
"@vue/eslint-config-prettier": "^10.2.0",
"@vue/eslint-config-typescript": "^14.9.0",
@@ -23,10 +32,12 @@
"eslint": "^10.6.0",
"eslint-plugin-vue": "~10.9.2",
"jiti": "^2.7.0",
+ "naive-ui": "^2.44.1",
"npm-run-all2": "^9.0.2",
"prettier": "3.9.4",
"ts-proto": "^2.12.0",
"typescript": "~6.0.3",
+ "vfonts": "^0.0.3",
"vite": "^8.1.3",
"vite-plugin-vue-devtools": "^8.1.5",
"vue-tsc": "^3.3.6"
@@ -524,6 +535,26 @@
"dev": true,
"license": "(Apache-2.0 AND BSD-3-Clause)"
},
+ "node_modules/@css-render/plugin-bem": {
+ "version": "0.15.14",
+ "resolved": "https://registry.npmjs.org/@css-render/plugin-bem/-/plugin-bem-0.15.14.tgz",
+ "integrity": "sha512-QK513CJ7yEQxm/P3EwsI+d+ha8kSOcjGvD6SevM41neEMxdULE+18iuQK6tEChAWMOQNQPLG/Rw3Khb69r5neg==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "css-render": "~0.15.14"
+ }
+ },
+ "node_modules/@css-render/vue3-ssr": {
+ "version": "0.15.14",
+ "resolved": "https://registry.npmjs.org/@css-render/vue3-ssr/-/vue3-ssr-0.15.14.tgz",
+ "integrity": "sha512-//8027GSbxE9n3QlD73xFY6z4ZbHbvrOVB7AO6hsmrEzGbg+h2A09HboUyDgu+xsmj7JnvJD39Irt+2D0+iV8g==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "vue": "^3.0.11"
+ }
+ },
"node_modules/@emnapi/core": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz",
@@ -555,6 +586,13 @@
"tslib": "^2.4.0"
}
},
+ "node_modules/@emotion/hash": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz",
+ "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@eslint-community/eslint-utils": {
"version": "4.9.1",
"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz",
@@ -755,6 +793,13 @@
"@jridgewell/sourcemap-codec": "^1.4.14"
}
},
+ "node_modules/@juggle/resize-observer": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz",
+ "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
"node_modules/@napi-rs/wasm-runtime": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.6.tgz",
@@ -1132,6 +1177,23 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/@types/lodash": {
+ "version": "4.17.24",
+ "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.24.tgz",
+ "integrity": "sha512-gIW7lQLZbue7lRSWEFql49QJJWThrTFFeIMJdp3eH4tKoxm1OvEPg02rm4wCCSHS0cL3/Fizimb35b7k8atwsQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/lodash-es": {
+ "version": "4.17.12",
+ "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz",
+ "integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/lodash": "*"
+ }
+ },
"node_modules/@types/node": {
"version": "26.1.1",
"resolved": "https://registry.npmjs.org/@types/node/-/node-26.1.1.tgz",
@@ -1385,6 +1447,75 @@
"url": "https://opencollective.com/eslint"
}
},
+ "node_modules/@vicons/antd": {
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/@vicons/antd/-/antd-0.13.0.tgz",
+ "integrity": "sha512-yrUGoUSz2BbGupk9ghQOahc04n5H3MwUDM9pVPsLh9U1uqB47oRWZvYRiZaT1JKPqgTgSE6BXcVw4i9MOF4M+g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@vicons/carbon": {
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/@vicons/carbon/-/carbon-0.13.0.tgz",
+ "integrity": "sha512-Z/jExyyS4gsXJc66oTqV/j98nsaiX2JlQ0IUwu9Ms3rztf8VOHEQRuX8Jey1/zbxJpFY/tU+bWvKPRFYGIvCWQ==",
+ "dev": true,
+ "license": "Apache 2.0"
+ },
+ "node_modules/@vicons/fa": {
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/@vicons/fa/-/fa-0.13.0.tgz",
+ "integrity": "sha512-BFcDewcT78fSn4Y/fOgqlswbLUEW3+qJK2iJiNtgmkMzadBVpDXhNyVKsYM3V2uKPvDUrZT0JCWDWVRCiBXJZA==",
+ "dev": true,
+ "license": "CC BY 4.0"
+ },
+ "node_modules/@vicons/fluent": {
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/@vicons/fluent/-/fluent-0.13.0.tgz",
+ "integrity": "sha512-bYGZsOE3qzvm3Cm43e7tybgGlr5ZUpYqtRZq0g0Tfupe8jIzLolpvQLNUt1zS8Mgt6goTbUk5YH7Fkv16jkykg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@vicons/ionicons4": {
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/@vicons/ionicons4/-/ionicons4-0.13.0.tgz",
+ "integrity": "sha512-5WHIl/4R5a4i9GONa+hIQWxg/WczrbsCdqxawHZvdd3drsEr+Q3yzlfS+NNRO4WS3uDW2uWLCwoW+yp5TgcKeQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@vicons/ionicons5": {
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/@vicons/ionicons5/-/ionicons5-0.13.0.tgz",
+ "integrity": "sha512-zvZKBPjEXKN7AXNo2Na2uy+nvuv6SP4KAMQxpKL2vfHMj0fSvuw7JZcOPCjQC3e7ayssKnaoFVAhbYcW6v41qQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@vicons/material": {
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/@vicons/material/-/material-0.13.0.tgz",
+ "integrity": "sha512-lKVxFNprM+CaBkUH3gt6VjIeiMsKQl2zARQMwTCZruQl2vRHzyeZiKeCflWS99CEfv2JzX/6y697smxlzyxcVw==",
+ "dev": true,
+ "license": "Apache 2.0"
+ },
+ "node_modules/@vicons/tabler": {
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/@vicons/tabler/-/tabler-0.13.0.tgz",
+ "integrity": "sha512-AykuhiqjszkIoAL/7knIFm6RDOBS1ZmQdJfQ+RNLEah0fVsxykUFCfMBSNZh8lOzC85EtdD1k5g/sv5GYk0Ohg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@vicons/utils": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/@vicons/utils/-/utils-0.1.4.tgz",
+ "integrity": "sha512-OHI19qVNN6i+uPQ+Y3f2s0dUxwsYnOCcKBW7XOU4yXXO1aU3ZoKpblCc3+4N0qmgoJs5rWKRAaMisipqEXJwAg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@xicons/utils": "^0.1.4"
+ },
+ "peerDependencies": {
+ "vue": "^3.0.6"
+ }
+ },
"node_modules/@vitejs/plugin-vue": {
"version": "6.0.7",
"resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.7.tgz",
@@ -1776,6 +1907,42 @@
}
}
},
+ "node_modules/@xicons/utils": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/@xicons/utils/-/utils-0.1.4.tgz",
+ "integrity": "sha512-uXxKDLz9abr80yJC05XSTq6wlyFcdW+N/1IYJkeHjzzXVc4VQ0sEYMoMMTjAH7HQBOyOkzOB4pf5NGF72lwa8Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "css-render": "^0.13.2"
+ }
+ },
+ "node_modules/@xicons/utils/node_modules/@types/node": {
+ "version": "14.14.45",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.45.tgz",
+ "integrity": "sha512-DssMqTV9UnnoxDWu959sDLZzfvqCF0qDNRjaWeYSui9xkFe61kKo4l1TWNTQONpuXEm+gLMRvdlzvNHBamzmEw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@xicons/utils/node_modules/css-render": {
+ "version": "0.13.9",
+ "resolved": "https://registry.npmjs.org/css-render/-/css-render-0.13.9.tgz",
+ "integrity": "sha512-n3C4ZH59rveBrUlAD7n0Ze9/gUMKa4dlH1C9CWKpGcIHR/xRcIVXzBGy1iw8WWq2ySmn2/ZqOpySQNAK5Pb6sw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@emotion/hash": "~0.8.0",
+ "@types/node": "~14.14.31",
+ "csstype": "~3.0.5"
+ }
+ },
+ "node_modules/@xicons/utils/node_modules/csstype": {
+ "version": "3.0.11",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.11.tgz",
+ "integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/acorn": {
"version": "8.17.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.17.0.tgz",
@@ -1877,6 +2044,13 @@
"url": "https://github.com/sponsors/sxzz"
}
},
+ "node_modules/async-validator": {
+ "version": "4.2.5",
+ "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz",
+ "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
@@ -2125,6 +2299,24 @@
"node": ">= 8"
}
},
+ "node_modules/css-render": {
+ "version": "0.15.14",
+ "resolved": "https://registry.npmjs.org/css-render/-/css-render-0.15.14.tgz",
+ "integrity": "sha512-9nF4PdUle+5ta4W5SyZdLCCmFd37uVimSjg1evcTqKJCyvCEEj12WKzOSBNak6r4im4J4iYXKH1OWpUV5LBYFg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@emotion/hash": "~0.8.0",
+ "csstype": "~3.0.5"
+ }
+ },
+ "node_modules/css-render/node_modules/csstype": {
+ "version": "3.0.11",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.11.tgz",
+ "integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/cssesc": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
@@ -2144,6 +2336,27 @@
"integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
"license": "MIT"
},
+ "node_modules/date-fns": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.4.0.tgz",
+ "integrity": "sha512-+1UMbeh68lH1SegH83CGWwpb6OHHbpSgr3+s5Eww5M4CAgswBpoWS0AjTOfEJ33HiYKz1hdj/KTFprzXHmq/6w==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/kossnocorp"
+ }
+ },
+ "node_modules/date-fns-tz": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/date-fns-tz/-/date-fns-tz-3.2.0.tgz",
+ "integrity": "sha512-sg8HqoTEulcbbbVXeg84u5UnlsQa8GS5QXMqjjYIhS4abEVVKIUwe0/l/UhrZdKaL/W5eWZNlbTeEIiOXTcsBQ==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "date-fns": "^3.0.0 || ^4.0.0"
+ }
+ },
"node_modules/debug": {
"version": "4.4.3",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
@@ -2631,6 +2844,13 @@
"node": ">=0.10.0"
}
},
+ "node_modules/evtd": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/evtd/-/evtd-0.2.4.tgz",
+ "integrity": "sha512-qaeGN5bx63s/AXgQo8gj6fBkxge+OoLddLniox5qtLAEY5HSnuSlISXVPxnSae1dWblvTh4/HoMIB+mbMsvZzw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/exsolve": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.1.0.tgz",
@@ -2932,6 +3152,16 @@
"node": ">= 0.4"
}
},
+ "node_modules/highlight.js": {
+ "version": "11.11.1",
+ "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.11.1.tgz",
+ "integrity": "sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
"node_modules/hookable": {
"version": "5.5.3",
"resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz",
@@ -3464,6 +3694,20 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/lodash": {
+ "version": "4.18.1",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz",
+ "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lodash-es": {
+ "version": "4.18.1",
+ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.18.1.tgz",
+ "integrity": "sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/lru-cache": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
@@ -3632,6 +3876,39 @@
"resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz",
"integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ=="
},
+ "node_modules/naive-ui": {
+ "version": "2.44.1",
+ "resolved": "https://registry.npmjs.org/naive-ui/-/naive-ui-2.44.1.tgz",
+ "integrity": "sha512-reo8Esw0p58liZwbUutC7meW24Xbn3EwNv91zReWKm2W4JPu+zfgJRn/F7aO0BFmvN+h2brA2M5lRvYqLq4kuA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@css-render/plugin-bem": "^0.15.14",
+ "@css-render/vue3-ssr": "^0.15.14",
+ "@types/lodash": "^4.17.20",
+ "@types/lodash-es": "^4.17.12",
+ "async-validator": "^4.2.5",
+ "css-render": "^0.15.14",
+ "csstype": "^3.1.3",
+ "date-fns": "^4.1.0",
+ "date-fns-tz": "^3.2.0",
+ "evtd": "^0.2.4",
+ "highlight.js": "^11.8.0",
+ "lodash": "^4.17.21",
+ "lodash-es": "^4.17.21",
+ "seemly": "^0.3.10",
+ "treemate": "^0.3.11",
+ "vdirs": "^0.1.8",
+ "vooks": "^0.2.12",
+ "vueuc": "^0.4.65"
+ },
+ "engines": {
+ "node": ">=20"
+ },
+ "peerDependencies": {
+ "vue": "^3.0.0"
+ }
+ },
"node_modules/nanoid": {
"version": "3.3.15",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.15.tgz",
@@ -4225,6 +4502,13 @@
"integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==",
"license": "MIT"
},
+ "node_modules/seemly": {
+ "version": "0.3.10",
+ "resolved": "https://registry.npmjs.org/seemly/-/seemly-0.3.10.tgz",
+ "integrity": "sha512-2+SMxtG1PcsL0uyhkumlOU6Qo9TAQ/WyH7tthnPIOQB05/12jz9naq6GZ6iZ6ApVsO3rr2gsnTf3++OV63kE1Q==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/semver": {
"version": "7.8.5",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz",
@@ -4401,6 +4685,13 @@
"node": ">=6"
}
},
+ "node_modules/treemate": {
+ "version": "0.3.11",
+ "resolved": "https://registry.npmjs.org/treemate/-/treemate-0.3.11.tgz",
+ "integrity": "sha512-M8RGFoKtZ8dF+iwJfAJTOH/SM4KluKOKRJpjCMhI8bG3qB74zrFoArKZ62ll0Fr3mqkMJiQOmWYkdYgDeITYQg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/ts-api-utils": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz",
@@ -4661,6 +4952,26 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/vdirs": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/vdirs/-/vdirs-0.1.8.tgz",
+ "integrity": "sha512-H9V1zGRLQZg9b+GdMk8MXDN2Lva0zx72MPahDKc30v+DtwKjfyOSXWRIX4t2mhDubM1H09gPhWeth/BJWPHGUw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "evtd": "^0.2.2"
+ },
+ "peerDependencies": {
+ "vue": "^3.0.11"
+ }
+ },
+ "node_modules/vfonts": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/vfonts/-/vfonts-0.0.3.tgz",
+ "integrity": "sha512-nguyw8L6Un8eelg1vQ31vIU2ESxqid7EYmy8V+MDeMaHBqaRSkg3dTBToC1PR00D89UzS/SLkfYPnx0Wf23IQQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/vite": {
"version": "8.1.3",
"resolved": "https://registry.npmjs.org/vite/-/vite-8.1.3.tgz",
@@ -4900,6 +5211,19 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
+ "node_modules/vooks": {
+ "version": "0.2.12",
+ "resolved": "https://registry.npmjs.org/vooks/-/vooks-0.2.12.tgz",
+ "integrity": "sha512-iox0I3RZzxtKlcgYaStQYKEzWWGAduMmq+jS7OrNdQo1FgGfPMubGL3uGHOU9n97NIvfFDBGnpSvkWyb/NSn/Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "evtd": "^0.2.2"
+ },
+ "peerDependencies": {
+ "vue": "^3.0.0"
+ }
+ },
"node_modules/vscode-uri": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz",
@@ -5139,6 +5463,25 @@
"typescript": ">=5.0.0"
}
},
+ "node_modules/vueuc": {
+ "version": "0.4.65",
+ "resolved": "https://registry.npmjs.org/vueuc/-/vueuc-0.4.65.tgz",
+ "integrity": "sha512-lXuMl+8gsBmruudfxnMF9HW4be8rFziylXFu1VHVNbLVhRTXXV4njvpRuJapD/8q+oFEMSfQMH16E/85VoWRyQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@css-render/vue3-ssr": "^0.15.10",
+ "@juggle/resize-observer": "^3.3.1",
+ "css-render": "^0.15.10",
+ "evtd": "^0.2.4",
+ "seemly": "^0.3.6",
+ "vdirs": "^0.1.4",
+ "vooks": "^0.2.4"
+ },
+ "peerDependencies": {
+ "vue": "^3.0.11"
+ }
+ },
"node_modules/webpack-virtual-modules": {
"version": "0.6.2",
"resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz",
diff --git a/package.json b/package.json
index d6bc22e..2411978 100644
--- a/package.json
+++ b/package.json
@@ -22,6 +22,15 @@
"devDependencies": {
"@tsconfig/node22": "^22.0.5",
"@types/node": "^26.1.1",
+ "@vicons/antd": "^0.13.0",
+ "@vicons/carbon": "^0.13.0",
+ "@vicons/fa": "^0.13.0",
+ "@vicons/fluent": "^0.13.0",
+ "@vicons/ionicons4": "^0.13.0",
+ "@vicons/ionicons5": "^0.13.0",
+ "@vicons/material": "^0.13.0",
+ "@vicons/tabler": "^0.13.0",
+ "@vicons/utils": "^0.1.4",
"@vitejs/plugin-vue": "^6.0.7",
"@vue/eslint-config-prettier": "^10.2.0",
"@vue/eslint-config-typescript": "^14.9.0",
@@ -29,10 +38,12 @@
"eslint": "^10.6.0",
"eslint-plugin-vue": "~10.9.2",
"jiti": "^2.7.0",
+ "naive-ui": "^2.44.1",
"npm-run-all2": "^9.0.2",
"prettier": "3.9.4",
"ts-proto": "^2.12.0",
"typescript": "~6.0.3",
+ "vfonts": "^0.0.3",
"vite": "^8.1.3",
"vite-plugin-vue-devtools": "^8.1.5",
"vue-tsc": "^3.3.6"
diff --git a/src/App.vue b/src/App.vue
index 84e41c3..f732692 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -1,9 +1,12 @@
-
+
+
+
diff --git a/src/assets/fonts/a_OldTyper.ttf b/src/assets/fonts/a_OldTyper.ttf
new file mode 100644
index 0000000..5247583
Binary files /dev/null and b/src/assets/fonts/a_OldTyper.ttf differ
diff --git a/src/assets/main.css b/src/assets/main.css
index 0b99a0c..3913ce2 100644
--- a/src/assets/main.css
+++ b/src/assets/main.css
@@ -1,5 +1,10 @@
@import './base.css';
+@font-face {
+ font-family: font_old_typer;
+ src: url('@/assets/fonts/a_OldTyper.ttf');
+}
+
#app {
max-width: 1280px;
margin: 0 auto;
diff --git a/src/components/MainPage.vue b/src/components/MainPage.vue
deleted file mode 100644
index 605f0f6..0000000
--- a/src/components/MainPage.vue
+++ /dev/null
@@ -1,7 +0,0 @@
-
- Вечерний детектив
-
-
-
-
-
diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue
index 6cce296..9000c08 100644
--- a/src/views/HomeView.vue
+++ b/src/views/HomeView.vue
@@ -1,15 +1,69 @@
-
+
+ Вечерний детектив
+
+
+ Дело №0
+
+
+ Поиграем?
+
+
+
+
@@ -26,6 +80,33 @@ import MainPage from '@/components/MainPage.vue';
top: 0;
right: 0;
padding: 8px 14px;
- color: #ffffff
+ color: #ffffff;
+ cursor: pointer;
+ user-select: none;
+}
+
+.font-text {
+ font-family: font_old_typer;
+}
+
+.content-text {
+ position: relative;
+ top: 100px;
+ right: -500px;
+}
+
+.key-icon {
+ position: relative;
+ top: 3px;
+ cursor: pointer;
+}
+
+.door-icon {
+ position: relative;
+ top: 3px;
+}
+
+.gold-color {
+ color: gold;
}