feat(word): add dictionary-based test page with randomized quiz, option display fixes, sound feedback, and pronunciation icon

This commit is contained in:
hebeihang
2025-11-23 23:58:34 +09:00
parent 1a8282088a
commit 1c50f93174
7 changed files with 321 additions and 18 deletions

52
package-lock.json generated
View File

@@ -10,6 +10,7 @@
"dependencies": {
"@imengyu/vue3-context-menu": "^1.5.1",
"@vueuse/core": "14.0.0-alpha.0",
"@zumer/snapdom": "^2.0.0",
"axios": "^1.10.0",
"compromise": "^14.14.4",
"copy-to-clipboard": "^3.3.3",
@@ -28,12 +29,14 @@
"devDependencies": {
"@alicloud/pop-core": "^1.8.0",
"@iconify-json/bx": "^1.2.2",
"@iconify-json/dinkie-icons": "^1.2.0",
"@iconify-json/eos-icons": "^1.2.4",
"@iconify-json/fluent": "^1.2.28",
"@iconify-json/icon-park-outline": "^1.2.4",
"@iconify-json/icon-park-solid": "^1.2.4",
"@iconify-json/ix": "^1.2.10",
"@iconify-json/material-symbols": "^1.2.33",
"@iconify-json/mdi": "^1.2.3",
"@iconify-json/oui": "^1.2.6",
"@iconify-json/ph": "^1.2.2",
"@iconify-json/qlementine-icons": "^1.2.11",
@@ -1095,6 +1098,16 @@
"@iconify/types": "*"
}
},
"node_modules/@iconify-json/dinkie-icons": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@iconify-json/dinkie-icons/-/dinkie-icons-1.2.0.tgz",
"integrity": "sha512-/RSAjK6twyEOKfW9FddZDP+EPMeSIocb4Y4Zq2Y2IbqUxYmNHqXtxidVioBzpv+a3JeiQ61ARlRKtCQ0BqSGpA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@iconify/types": "*"
}
},
"node_modules/@iconify-json/eos-icons": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/@iconify-json/eos-icons/-/eos-icons-1.2.4.tgz",
@@ -1150,6 +1163,16 @@
"@iconify/types": "*"
}
},
"node_modules/@iconify-json/mdi": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/@iconify-json/mdi/-/mdi-1.2.3.tgz",
"integrity": "sha512-O3cLwbDOK7NNDf2ihaQOH5F9JglnulNDFV7WprU2dSoZu3h3cWH//h74uQAB87brHmvFVxIOkuBX2sZSzYhScg==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@iconify/types": "*"
}
},
"node_modules/@iconify-json/oui": {
"version": "1.2.6",
"resolved": "https://registry.npmjs.org/@iconify-json/oui/-/oui-1.2.6.tgz",
@@ -3934,6 +3957,12 @@
"vue": "^3.5.0"
}
},
"node_modules/@zumer/snapdom": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@zumer/snapdom/-/snapdom-2.0.0.tgz",
"integrity": "sha512-e/fkm5wCUd+9CssUIyH09xTeR4DvRTmZLGVOlnXLhr4HeI7sdc6ed8cLPiZKFtiQDRiwD3EKx4RIUrpQOJQY7A==",
"license": "MIT"
},
"node_modules/acorn": {
"version": "8.15.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
@@ -13543,6 +13572,15 @@
"@iconify/types": "*"
}
},
"@iconify-json/dinkie-icons": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@iconify-json/dinkie-icons/-/dinkie-icons-1.2.0.tgz",
"integrity": "sha512-/RSAjK6twyEOKfW9FddZDP+EPMeSIocb4Y4Zq2Y2IbqUxYmNHqXtxidVioBzpv+a3JeiQ61ARlRKtCQ0BqSGpA==",
"dev": true,
"requires": {
"@iconify/types": "*"
}
},
"@iconify-json/eos-icons": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/@iconify-json/eos-icons/-/eos-icons-1.2.4.tgz",
@@ -13597,6 +13635,15 @@
"@iconify/types": "*"
}
},
"@iconify-json/mdi": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/@iconify-json/mdi/-/mdi-1.2.3.tgz",
"integrity": "sha512-O3cLwbDOK7NNDf2ihaQOH5F9JglnulNDFV7WprU2dSoZu3h3cWH//h74uQAB87brHmvFVxIOkuBX2sZSzYhScg==",
"dev": true,
"requires": {
"@iconify/types": "*"
}
},
"@iconify-json/oui": {
"version": "1.2.6",
"resolved": "https://registry.npmjs.org/@iconify-json/oui/-/oui-1.2.6.tgz",
@@ -15554,6 +15601,11 @@
"integrity": "sha512-J8cmTJkB0hAwPBXRR5U3N9FJkhPBrhyYiQm21kZ3j/o8W69Pg6JlPSxLOJtkg+AwC/r5x7Gpq2Vglv84vHotwA==",
"requires": {}
},
"@zumer/snapdom": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@zumer/snapdom/-/snapdom-2.0.0.tgz",
"integrity": "sha512-e/fkm5wCUd+9CssUIyH09xTeR4DvRTmZLGVOlnXLhr4HeI7sdc6ed8cLPiZKFtiQDRiwD3EKx4RIUrpQOJQY7A=="
},
"acorn": {
"version": "8.15.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",