Release Notes Architecture - Component refactor: removed monoliths (`Calendar.vue`, `CalendarGrid.vue`); expanded granular view + header/control components. - Dialog system introduced (`BaseDialog`, `SettingsDialog`). State & Data - Store redesigned: Map-based events + recurrence map; mutation counters. - Local persistence + undo/redo history (custom plugins). Date & Holidays - Migrated all date logic to `date-fns` (+ tz). - Added national holiday support (toggle + loading utilities). Recurrence & Events - Consolidated recurrence handling; fixes for monthly edge days (29–31), annual, multi‑day, and complex weekly repeats. - Reliable splitting/moving/resizing/deletion of repeating and multi‑day events. Interaction & UX - Double‑tap to create events; improved drag (multi‑day + position retention). - Scroll & inertial/momentum navigation; year change via numeric scroller. - Movable event dialog; live settings application. Performance - Progressive / virtual week rendering, reduced off‑screen buffer. - Targeted repaint strategy; minimized full re-renders. Plugins Added - History, undo normalization, persistence, scroll manager, virtual weeks. Styling & Layout - Responsive + compact layout refinements; header restructured. - Simplified visual elements (removed dots/overflow text); holiday styling adjustments. Reliability / Fixes - Numerous recurrence, deletion, orientation/rotation, and event indexing corrections. - Cross-browser fallback (Firefox week info). Dependencies Added - date-fns, date-fns-tz, date-holidays, pinia-plugin-persistedstate. Net Change - 28 files modified; ~4.4K insertions / ~2.2K deletions (major refactor + feature set).
42 lines
1.1 KiB
JSON
42 lines
1.1 KiB
JSON
{
|
|
"name": "calendar",
|
|
"version": "0.0.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"engines": {
|
|
"node": "^20.19.0 || >=22.12.0"
|
|
},
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "vite build",
|
|
"preview": "vite preview",
|
|
"lint:oxlint": "oxlint . --fix -D correctness --ignore-path .gitignore",
|
|
"lint:eslint": "eslint . --fix",
|
|
"lint": "run-s lint:*",
|
|
"format": "prettier --write src/"
|
|
},
|
|
"dependencies": {
|
|
"date-fns": "^3.6.0",
|
|
"date-fns-tz": "^3.0.0",
|
|
"date-holidays": "^3.25.1",
|
|
"pinia": "^3.0.3",
|
|
"pinia-plugin-persistedstate": "^4.5.0",
|
|
"vue": "^3.5.18"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/js": "^9.31.0",
|
|
"@prettier/plugin-oxc": "^0.0.4",
|
|
"@vitejs/plugin-vue": "^6.0.1",
|
|
"@vue/eslint-config-prettier": "^10.2.0",
|
|
"eslint": "^9.31.0",
|
|
"eslint-plugin-oxlint": "~1.8.0",
|
|
"eslint-plugin-vue": "~10.3.0",
|
|
"globals": "^16.3.0",
|
|
"npm-run-all2": "^8.0.4",
|
|
"oxlint": "~1.8.0",
|
|
"prettier": "3.6.2",
|
|
"vite": "npm:rolldown-vite@latest",
|
|
"vite-plugin-vue-devtools": "^8.0.0"
|
|
}
|
|
}
|