Some checks failed
CI / style (push) Has been cancelled
CI / build-client (push) Has been cancelled
CI / build-amd64 (push) Has been cancelled
CI / build-tester (push) Has been cancelled
CI / test (cockroachdb) (push) Has been cancelled
CI / test (mariadb) (push) Has been cancelled
CI / test (postgres) (push) Has been cancelled
CI / test (sqlite) (push) Has been cancelled
CI / build-arm64 (push) Has been cancelled
CI / build-armv7 (push) Has been cancelled
CI / publish-images (push) Has been cancelled
CI / publish-release (push) Has been cancelled
## Batch Operations (#13) - Add POST /spool/bulk/archive, /bulk/delete, /bulk/update endpoints - Add row selection with checkboxes to spool list - Add floating BatchActionBar with archive/unarchive/delete/move actions - Add confirmation modals for all batch operations ## Dashboard Redesign (#12) - Install recharts for pie charts - Add AlertCards (low stock, pending jobs, needs weighing) - Add MaterialDistributionChart (pie chart by material) - Add QuickStats row (total spools, filaments, vendors, weight) - Refactor home page layout with new components ## Hierarchical Locations (#9) - Add Location model with self-referential parent relationship - Add migration for location table and spool.location_id FK - Add location database operations (CRUD, tree, full path) - Add location API endpoints (list, tree, CRUD) - Add LocationTreeSelect component with nested tree display - Add LocationCreateModal for inline location creation - Keep legacy location string field for backward compatibility Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
79 lines
2.2 KiB
JSON
79 lines
2.2 KiB
JSON
{
|
|
"name": "spoolman-ui",
|
|
"version": "0.23C.2",
|
|
"engines": {
|
|
"node": "20.x"
|
|
},
|
|
"private": true,
|
|
"type": "module",
|
|
"dependencies": {
|
|
"@ant-design/v5-patch-for-react-19": "^1.0.3",
|
|
"@loadable/component": "^5.16.7",
|
|
"@refinedev/antd": "^6.0.3",
|
|
"@refinedev/core": "^5.0.7",
|
|
"@refinedev/kbar": "^2.0.1",
|
|
"@refinedev/react-router": "^2.0.3",
|
|
"@refinedev/simple-rest": "^6.0.1",
|
|
"@tanstack/react-query": "^5.90.16",
|
|
"@tanstack/react-query-devtools": "^5.91.2",
|
|
"@types/loadable__component": "^5.13.10",
|
|
"@types/lodash": "^4.17.21",
|
|
"@types/uuid": "^10.0.0",
|
|
"@yudiel/react-qr-scanner": "^2.5.0",
|
|
"axios": "^1.13.2",
|
|
"html-to-image": "^1.11.13",
|
|
"i18next": "^25.7.3",
|
|
"i18next-browser-languagedetector": "^8.2.0",
|
|
"i18next-http-backend": "^3.0.2",
|
|
"lodash": "^4.17.21",
|
|
"react": "^19.2.3",
|
|
"react-dnd": "^16.0.1",
|
|
"react-dnd-html5-backend": "^16.0.1",
|
|
"react-dom": "^19.2.3",
|
|
"react-i18next": "^16.5.1",
|
|
"react-router": "^7.11.0",
|
|
"react-to-print": "^3.2.0",
|
|
"recharts": "^3.7.0",
|
|
"uuid": "^13.0.0",
|
|
"vite-plugin-svgr": "^4.5.0",
|
|
"zustand": "^5.0.9"
|
|
},
|
|
"devDependencies": {
|
|
"@refinedev/cli": "^2.16.50",
|
|
"@simbathesailor/use-what-changed": "^2.0.0",
|
|
"@types/node": "^25.0.3",
|
|
"@types/react": "^19.2.7",
|
|
"@types/react-dom": "^19.2.3",
|
|
"@typescript-eslint/eslint-plugin": "^8.52.0",
|
|
"@typescript-eslint/parser": "^8.52.0",
|
|
"@vitejs/plugin-react": "^5.1.2",
|
|
"eslint": "^9.39.2",
|
|
"eslint-plugin-react-hooks": "^7.0.1",
|
|
"eslint-plugin-react-refresh": "^0.4.26",
|
|
"typescript": "^5.9.3",
|
|
"vite": "^7.3.0",
|
|
"vite-plugin-mkcert": "^1.17.9",
|
|
"vite-plugin-pwa": "^1.2.0"
|
|
},
|
|
"scripts": {
|
|
"dev": "refine dev",
|
|
"build": "tsc && refine build",
|
|
"build.zip": "cd ./dist && zip -r spoolman-client.zip ./ ./ && cd ..",
|
|
"preview": "refine start",
|
|
"refine": "refine",
|
|
"check-i18n": "node scripts/check-i18n.js"
|
|
},
|
|
"browserslist": {
|
|
"production": [
|
|
">0.2%",
|
|
"not dead",
|
|
"not op_mini all"
|
|
],
|
|
"development": [
|
|
"last 1 chrome version",
|
|
"last 1 firefox version",
|
|
"last 1 safari version"
|
|
]
|
|
}
|
|
}
|