Add number & setting API endpoints, StorageManager caches, and a Settings
dialog (tabs for settings keys and number ranges) reachable from the user
menu. Show Kundennummer and creation date in the Kunde list, and refactor
Neuer Kunde to show an auto-generated number with group select.
- Update patchArticleInLists reducer to add/remove articles from category lists
- Articles are now correctly added to rootArticles and current category's articles
- Articles are correctly removed when no longer in a category
- Remove unnecessary loadCategoryTree dispatch (reducer handles sync now)
- Add setCategories API method for PUT /api/article/:sku/categories
- Create CategoryPickerDialog component for selecting categories
- Add CategoryPills component with add/remove functionality
- Category changes are now draft-based (like name editing)
- Save button commits both name and category changes together
- Delete icons hidden when only one category remains
- Plus button only visible in edit mode
Implements category assignment flow similar to name editing pattern.
- Remove 'Artikel angelegt.' snackbar from NewArticleTile
- Remove 'Kategorie angelegt.' snackbar from NewCategoryTile
- Remove dead handleEnableAllCategories method and binding from CompanySettingsDialog
- Add category image API methods (upload/delete) to src/api/index.js
- Add uploadCategoryImage/deleteCategoryImage thunks and extraReducers in categorySlice
- Add CategoryBackdrop component showing ThumbHash placeholder with full thumb overlay
- Add photo upload/delete tab to CategoryEditTile settings cycle
- Category tile label band uses semi-transparent black overlay with white text
- Pass thumbHash/fullHash to both CategoryTile and CategoryEditTile
After toggling a POS category, update the category's posterminalIds array
in-place rather than re-fetching the entire tree. This keeps the settings
cycle open on the same terminal. Also fix off-by-one in terminal cycling
and ensure posterminals load on category page mount.