bb0038e0a1
Security / robustness / a11y polish on top of the color-search + tooltips work: - URL opening: route through validated backend commands (open_map_location with lat/lon bounds-checking, open_changelog_url with a fixed URL) instead of the frontend opener:allow-open-url capability, which is now removed. - EXIF GPS parsing: validate coordinate ranges and require the correct N/S/E/W hemisphere ref byte, then clamp. - Guard double-submit on album create / add-to-album (Lightbox, BulkActionBar, Sidebar) and discard stale autocomplete responses in the bulk tag editor. - Gallery tile: stop nesting <button>s — non-interactive tile div with an overlay button for open/toggle; checkbox and Similar promoted with z-index + focus rings. - Accessibility: keyboard handlers, focus-visible rings, and aria on album rows, tag-manage actions, and tile controls; Tooltip uses a block <div> wrapper in block mode and aria-hidden when hidden. - Show the destination URL in a tooltip on the "Full changelog" link so the user can see where it goes before clicking. - Toolbar "All" filter also clears the color filter; color-filtered views no longer get unfiltered newly-indexed images injected. - Sidebar reorder: bail if the album set changed mid-drag. - Tooling: add cargo fmt scripts; alphabetize package.json scripts.
51 lines
1.6 KiB
JSON
51 lines
1.6 KiB
JSON
{
|
|
"name": "phokus",
|
|
"private": true,
|
|
"version": "0.1.1",
|
|
"license": "MIT",
|
|
"type": "module",
|
|
"scripts": {
|
|
"build:app": "tauri build",
|
|
"build:app:cpu": "tauri build -- --no-default-features",
|
|
"build:app:cuda": "tauri build --config src-tauri/tauri.cuda.conf.json",
|
|
"build:vite": "tsc && vite build",
|
|
"build:web": "cd website && tsc && vite build",
|
|
"changelog:add": "node tools/changelog-add.mjs",
|
|
"clean:app": "cd src-tauri && cargo clean",
|
|
"dev:app": "tauri dev",
|
|
"dev:app:cpu": "tauri dev -- --no-default-features",
|
|
"dev:vite": "vite",
|
|
"dev:web": "cd website && pnpm dev",
|
|
"format:app": "cd src-tauri && cargo fmt",
|
|
"format:check": "cd src-tauri && cargo fmt --check",
|
|
"preview": "vite preview",
|
|
"tauri": "tauri"
|
|
},
|
|
"dependencies": {
|
|
"@tanstack/react-virtual": "^3.13.23",
|
|
"@tauri-apps/api": "^2",
|
|
"@tauri-apps/plugin-dialog": "^2.7.0",
|
|
"@tauri-apps/plugin-fs": "^2.5.0",
|
|
"@tauri-apps/plugin-notification": "^2.3.3",
|
|
"@tauri-apps/plugin-opener": "^2",
|
|
"@tauri-apps/plugin-process": "^2.3.1",
|
|
"@tauri-apps/plugin-updater": "^2.10.1",
|
|
"d3-force": "^3.0.0",
|
|
"framer-motion": "^12.38.0",
|
|
"react": "^19.1.0",
|
|
"react-dom": "^19.1.0",
|
|
"zustand": "^5.0.12"
|
|
},
|
|
"devDependencies": {
|
|
"@tailwindcss/vite": "^4.2.2",
|
|
"@tauri-apps/cli": "^2",
|
|
"@types/d3-force": "^3.0.10",
|
|
"@types/react": "^19.1.8",
|
|
"@types/react-dom": "^19.1.6",
|
|
"@vitejs/plugin-react": "^4.6.0",
|
|
"tailwindcss": "^4.2.2",
|
|
"typescript": "~5.8.3",
|
|
"vite": "^7.0.4"
|
|
}
|
|
}
|