mirror of
https://github.com/go-vikunja/vikunja.git
synced 2026-04-24 22:25:15 +00:00
This fixes a checkbox persistence bug where toggling one checkbox would affect others with identical text. To make this work, a new unique `data-task-id` attribute was added to each task list item for reliable identification. Fixes #293, #563 🐰 With nanoid's magic and IDs so fine, Each checkbox now knows which line is mine, No more lost state when the page reloads— Tasks persist through every browser node!
172 lines
5.4 KiB
JSON
172 lines
5.4 KiB
JSON
{
|
|
"name": "vikunja-frontend",
|
|
"description": "The todo app to organize your life.",
|
|
"private": true,
|
|
"version": "0.10.0",
|
|
"license": "AGPL-3.0-or-later",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://kolaente.dev/vikunja/vikunja"
|
|
},
|
|
"bugs": {
|
|
"url": "https://kolaente.dev/vikunja/vikunja/issues"
|
|
},
|
|
"homepage": "https://vikunja.io/",
|
|
"funding": "https://opencollective.com/vikunja",
|
|
"packageManager": "pnpm@10.26.0",
|
|
"engines": {
|
|
"node": ">=24.0.0"
|
|
},
|
|
"keywords": [
|
|
"todo",
|
|
"productivity",
|
|
"task management",
|
|
"organisation",
|
|
"gantt",
|
|
"kanban"
|
|
],
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"serve": "pnpm run dev",
|
|
"preview": "vite preview --port 4173",
|
|
"preview:dev": "vite preview --outDir dist-dev --mode development --port 4173",
|
|
"preview:vikunja": "../vikunja",
|
|
"build": "vite build && workbox copyLibraries dist/",
|
|
"build:dev": "vite build --mode development --outDir dist-dev/",
|
|
"lint": "eslint 'src/**/*.{js,ts,vue}'",
|
|
"lint:fix": "pnpm run lint --fix",
|
|
"lint:styles": "stylelint 'src/**/*.{css,scss,vue}'",
|
|
"lint:styles:fix": "pnpm run lint:styles --fix",
|
|
"test:e2e": "playwright test",
|
|
"test:e2e:headed": "playwright test --headed",
|
|
"test:e2e:ui": "playwright test --ui-host=0.0.0.0",
|
|
"test:unit": "vitest --dir ./src",
|
|
"typecheck": "vue-tsc --build --force",
|
|
"fonts:update": "pnpm fonts:download && pnpm fonts:subset",
|
|
"fonts:download": "./scripts/fonts-download.sh",
|
|
"fonts:subset": "./scripts/fonts-subset.sh",
|
|
"story:dev": "histoire dev",
|
|
"story:build": "histoire build",
|
|
"story:preview": "histoire preview"
|
|
},
|
|
"dependencies": {
|
|
"@floating-ui/dom": "1.7.4",
|
|
"@fortawesome/fontawesome-svg-core": "7.1.0",
|
|
"@fortawesome/free-regular-svg-icons": "7.1.0",
|
|
"@fortawesome/free-solid-svg-icons": "7.1.0",
|
|
"@fortawesome/vue-fontawesome": "3.1.2",
|
|
"@github/hotkey": "3.1.1",
|
|
"@intlify/unplugin-vue-i18n": "11.0.3",
|
|
"@kyvg/vue3-notification": "3.4.2",
|
|
"@sentry/vue": "10.30.0",
|
|
"@tiptap/core": "3.8.0",
|
|
"@tiptap/extension-code-block-lowlight": "3.8.0",
|
|
"@tiptap/extension-hard-break": "3.8.0",
|
|
"@tiptap/extension-image": "3.8.0",
|
|
"@tiptap/extension-link": "3.8.0",
|
|
"@tiptap/extension-list": "3.8.0",
|
|
"@tiptap/extension-mention": "3.8.0",
|
|
"@tiptap/extension-table": "3.8.0",
|
|
"@tiptap/extension-typography": "3.8.0",
|
|
"@tiptap/extension-underline": "3.8.0",
|
|
"@tiptap/extensions": "3.8.0",
|
|
"@tiptap/pm": "3.8.0",
|
|
"@tiptap/starter-kit": "3.8.0",
|
|
"@tiptap/suggestion": "3.8.0",
|
|
"@tiptap/vue-3": "3.8.0",
|
|
"@vueuse/core": "14.1.0",
|
|
"@vueuse/router": "14.1.0",
|
|
"axios": "1.13.2",
|
|
"blurhash": "2.0.5",
|
|
"bulma-css-variables": "0.9.33",
|
|
"change-case": "5.4.4",
|
|
"dayjs": "1.11.19",
|
|
"dompurify": "3.3.1",
|
|
"fast-deep-equal": "3.1.3",
|
|
"flatpickr": "4.6.13",
|
|
"flexsearch": "0.7.43",
|
|
"floating-vue": "5.2.2",
|
|
"is-touch-device": "1.0.1",
|
|
"klona": "2.0.6",
|
|
"lowlight": "3.3.0",
|
|
"marked": "17.0.1",
|
|
"nanoid": "^5.1.6",
|
|
"pinia": "3.0.4",
|
|
"register-service-worker": "1.7.2",
|
|
"sortablejs": "1.15.6",
|
|
"tailwindcss": "3.4.19",
|
|
"ufo": "1.6.1",
|
|
"vue": "3.5.25",
|
|
"vue-advanced-cropper": "2.8.9",
|
|
"vue-flatpickr-component": "11.0.5",
|
|
"vue-i18n": "11.2.2",
|
|
"vue-router": "4.6.4",
|
|
"vuemoji-picker": "0.3.2",
|
|
"workbox-precaching": "7.4.0",
|
|
"zhyswan-vuedraggable": "4.1.3"
|
|
},
|
|
"devDependencies": {
|
|
"@faker-js/faker": "9.9.0",
|
|
"@histoire/plugin-screenshot": "1.0.0-alpha.5",
|
|
"@histoire/plugin-vue": "1.0.0-alpha.5",
|
|
"@playwright/test": "1.57.0",
|
|
"@tsconfig/node24": "24.0.3",
|
|
"@types/codemirror": "5.60.17",
|
|
"@types/is-touch-device": "1.0.3",
|
|
"@types/node": "22.19.3",
|
|
"@types/sortablejs": "1.15.9",
|
|
"@typescript-eslint/eslint-plugin": "8.49.0",
|
|
"@typescript-eslint/parser": "8.49.0",
|
|
"@vitejs/plugin-vue": "6.0.3",
|
|
"@vue/eslint-config-typescript": "14.6.0",
|
|
"@vue/test-utils": "2.4.6",
|
|
"@vue/tsconfig": "0.8.1",
|
|
"@vueuse/shared": "14.1.0",
|
|
"autoprefixer": "10.4.23",
|
|
"browserslist": "4.28.1",
|
|
"caniuse-lite": "1.0.30001760",
|
|
"csstype": "3.2.3",
|
|
"esbuild": "0.27.1",
|
|
"eslint": "9.39.2",
|
|
"eslint-plugin-vue": "10.6.2",
|
|
"happy-dom": "20.0.11",
|
|
"histoire": "1.0.0-alpha.5",
|
|
"postcss": "8.5.6",
|
|
"postcss-easing-gradients": "3.0.1",
|
|
"postcss-preset-env": "10.5.0",
|
|
"rollup": "4.53.3",
|
|
"rollup-plugin-visualizer": "6.0.5",
|
|
"sass-embedded": "1.96.0",
|
|
"stylelint": "16.26.1",
|
|
"stylelint-config-property-sort-order-smacss": "10.0.0",
|
|
"stylelint-config-recommended-vue": "1.6.1",
|
|
"stylelint-config-standard-scss": "15.0.1",
|
|
"stylelint-use-logical": "2.1.2",
|
|
"typescript": "5.9.3",
|
|
"unplugin-inject-preload": "3.0.0",
|
|
"vite": "7.2.7",
|
|
"vite-plugin-pwa": "1.2.0",
|
|
"vite-plugin-sentry": "1.4.1",
|
|
"vite-plugin-vue-devtools": "8.0.5",
|
|
"vite-svg-loader": "5.1.0",
|
|
"vitest": "3.2.4",
|
|
"vue-tsc": "3.1.8",
|
|
"wait-on": "8.0.5",
|
|
"workbox-cli": "7.4.0"
|
|
},
|
|
"pnpm": {
|
|
"patchedDependencies": {
|
|
"@github/hotkey@3.1.1": "patches/@github__hotkey@3.1.1.patch",
|
|
"flexsearch@0.7.43": "patches/flexsearch@0.7.43.patch"
|
|
},
|
|
"onlyBuiltDependencies": [
|
|
"@parcel/watcher",
|
|
"@sentry/cli",
|
|
"esbuild",
|
|
"puppeteer",
|
|
"vue-demi"
|
|
]
|
|
}
|
|
}
|