- Unified PDF/TXT parsing to single POST /api/delivery/parse endpoint
- Added supplier article lookup with SKU/EAN matching in delivery lines
- Added "Artikel anlegen" button to create articles from missing SKUs
- Fixed delivery line taxrate field (was sending 'tax', now 'taxrate')
- Extended TXT file support for rescan functionality
- Updated ApiClient with getArticles method for supplier article lookup
- Added supplier article state management to deliveryEditorAutomat
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
- replace Redux deliveryEditorSlice with deliveryEditorAutomat using automat
- add Attachment and AttachmentList components in Kopfdaten
- extract PDF text via pdftotext-wasm and render PDF thumbnails with pdfjs-dist
- add TextEditorDialog to view and edit extracted text files (preformatted monospace, no wrap)
- configure Vite server.fs.allow for pdftotext.wasm
- ApiClient: add getSuppliers, addSupplier, updateSupplier,
orderSuppliers, deleteSupplier on article namespace
- api/index.js: expose same methods in legacy http client
- StorageManager: add #supplierWatchers Map and watchArticleSuppliers()
backed by article-<sku> SSE signal; wired up as article.supplierWatch
- ArticleTileTab: pass article prop to ArticleSupplierTab
- ArticleSupplierDialog (new): dialog to assign / edit a supplier link
(supplier autocomplete, Lief.-SKU, VPE, stock, EK Netto + MwSt.)
- ArticleSupplierTab: full supplier management table with reordering
(up/down arrows → PUT /supplier/order), inline edit and delete,
stock badge, purchase price display and empty state
- Fix SSE 'result' event handling in delivery creation and stop circular progress
- Directly populate deliveryEditorSlice with parsed header, line items, and notes
- Simplify ManifestPdfDialog to display LLM protocol log and status only
- Render PDF analysis notes at the bottom of the delivery page
- Keep article lines visible when imported items exist even if partyId is not yet selected
- Bind handleEdit and handleDelete in ManifestList constructor to fix row click TypeError
- Support delivery columns (name, pu, netprice, taxrate) in ManifestForm and lineFromApi
- Remove obsolete Unit column from delivery lines
Wrap the article search results list in FillSpace (from dashgui) so it
becomes a scrollable middle section that fills to the bottom of the
viewport. The pagination box is referenced via paginationRef as the
anchor above the spacer; measureElement is temporarily a debug unit to
visualize the repeating fill.
Replace duplicated table/list markup in the Kunde list page and Manifest
list with the shared dashgui RecordList component, and document dashgui/lists
in the README.
Move reusable GUI primitives (PanelTile, EditablePanelTile, base Tile,
ElevatedPill, SingleLineTextEdit) into the shared dashgui package and
consume them via a file: dependency. EditablePanelTile now accepts an
onError prop so error notification stays app-side.