UNPKG

@accounter/client

Version:
770 lines (667 loc) 521 kB
# @accounter/client ## 0.1.0-alpha-20260726170304-a8f28680bb8a1caff7ea293c8dd4b42714b2ae88 ### Minor Changes - [#3851](https://github.com/Urigo/accounter-fullstack/pull/3851) [`a91e4a0`](https://github.com/Urigo/accounter-fullstack/commit/a91e4a0726fed53dda22dfb57b6919411bbeaba3) Thanks [@gilgardosh](https://github.com/gilgardosh)! - Add the Charge Matching Review Screen: a guided side-by-side UI for pairing document-based and transaction-based charges and merging them one by one. - Server: new `chargesAwaitingMatchQueue` GraphQL query that returns a paginated queue of unmatched base charges with on-the-fly match suggestions, filterable by business, date range and mode (`DOC_BASE`/`TRANSACTION_BASE`) and sortable `BY_DATE` or `BY_SCORE` (score evaluation capped at the 100 most recent unmatched charges). - Client: new `/charges/matching` screen with a filter/sort header, collapsible queue sidebar with per-item pending/matched/skipped status, side-by-side base-vs-suggestion comparison cards, alternative-suggestion switching, and accept (merge) / skip actions. ### Patch Changes - [#3738](https://github.com/Urigo/accounter-fullstack/pull/3738) [`670f7cc`](https://github.com/Urigo/accounter-fullstack/commit/670f7cc2bd58c04da5dd151e4878382916700a8e) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`html2canvas-pro@2.1.1` ↗︎](https://www.npmjs.com/package/html2canvas-pro/v/2.1.1) (from `2.0.4`, in `dependencies`) - [#3752](https://github.com/Urigo/accounter-fullstack/pull/3752) [`d8c66d8`](https://github.com/Urigo/accounter-fullstack/commit/d8c66d8d62a2c1d4e66c93a05936ea8d6200b40e) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`@mui/material@9.1.2` ↗︎](https://www.npmjs.com/package/@mui/material/v/9.1.2) (from `9.1.1`, in `dependencies`) - [#3756](https://github.com/Urigo/accounter-fullstack/pull/3756) [`490027a`](https://github.com/Urigo/accounter-fullstack/commit/490027a8b4e38a09cc92f802f0808ac46749a213) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`recharts@3.9.0` ↗︎](https://www.npmjs.com/package/recharts/v/3.9.0) (from `3.8.1`, in `dependencies`) - [#3762](https://github.com/Urigo/accounter-fullstack/pull/3762) [`50ca939`](https://github.com/Urigo/accounter-fullstack/commit/50ca939661d9eb5b31e134c54d12015e524fac1c) Thanks [@gilgardosh](https://github.com/gilgardosh)! - dependencies updates: - Updated dependency [`@mui/material@9.1.2` ↗︎](https://www.npmjs.com/package/@mui/material/v/9.1.2) (from `9.1.1`, in `dependencies`) - Updated dependency [`html2canvas-pro@2.1.1` ↗︎](https://www.npmjs.com/package/html2canvas-pro/v/2.1.1) (from `2.0.4`, in `dependencies`) - [#3767](https://github.com/Urigo/accounter-fullstack/pull/3767) [`a82d2ac`](https://github.com/Urigo/accounter-fullstack/commit/a82d2ac553d553453b905a1f76e935c944957710) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`html2canvas-pro@2.2.0` ↗︎](https://www.npmjs.com/package/html2canvas-pro/v/2.2.0) (from `2.1.1`, in `dependencies`) - [#3768](https://github.com/Urigo/accounter-fullstack/pull/3768) [`7a7dc71`](https://github.com/Urigo/accounter-fullstack/commit/7a7dc71ba2dc9a660f150340f2352704d571f367) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`@tanstack/react-query@5.101.1` ↗︎](https://www.npmjs.com/package/@tanstack/react-query/v/5.101.1) (from `5.101.0`, in `dependencies`) - [#3788](https://github.com/Urigo/accounter-fullstack/pull/3788) [`fb88ebd`](https://github.com/Urigo/accounter-fullstack/commit/fb88ebd891a2d5a9a9b0f2f020f951d878898b93) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`pdfjs-dist@6.1.200` ↗︎](https://www.npmjs.com/package/pdfjs-dist/v/6.1.200) (from `6.0.227`, in `dependencies`) - [#3789](https://github.com/Urigo/accounter-fullstack/pull/3789) [`e26256c`](https://github.com/Urigo/accounter-fullstack/commit/e26256c2e4cd3ba51042446a4617b996d49a9e0c) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`@tanstack/react-query@5.101.2` ↗︎](https://www.npmjs.com/package/@tanstack/react-query/v/5.101.2) (from `5.101.1`, in `dependencies`) - Updated dependency [`html2canvas-pro@2.2.1` ↗︎](https://www.npmjs.com/package/html2canvas-pro/v/2.2.1) (from `2.2.0`, in `dependencies`) - Updated dependency [`radix-ui@1.6.1` ↗︎](https://www.npmjs.com/package/radix-ui/v/1.6.1) (from `1.6.0`, in `dependencies`) - Updated dependency [`react-router-dom@7.18.1` ↗︎](https://www.npmjs.com/package/react-router-dom/v/7.18.1) (from `7.18.0`, in `dependencies`) - Updated dependency [`recharts@3.9.1` ↗︎](https://www.npmjs.com/package/recharts/v/3.9.1) (from `3.9.0`, in `dependencies`) - [#3796](https://github.com/Urigo/accounter-fullstack/pull/3796) [`82f3633`](https://github.com/Urigo/accounter-fullstack/commit/82f3633115db06acd7ec3cbf7aabde918c190594) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`lucide-react@1.22.0` ↗︎](https://www.npmjs.com/package/lucide-react/v/1.22.0) (from `1.21.0`, in `dependencies`) - [#3820](https://github.com/Urigo/accounter-fullstack/pull/3820) [`ad67ff7`](https://github.com/Urigo/accounter-fullstack/commit/ad67ff7e50482f14cfd6cc1d5e19b8b725a8f327) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`lucide-react@1.23.0` ↗︎](https://www.npmjs.com/package/lucide-react/v/1.23.0) (from `1.22.0`, in `dependencies`) - [#3823](https://github.com/Urigo/accounter-fullstack/pull/3823) [`ae69959`](https://github.com/Urigo/accounter-fullstack/commit/ae69959ae45007553e075c4a6689d5cfbb800e14) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`@auth0/auth0-react@2.20.0` ↗︎](https://www.npmjs.com/package/@auth0/auth0-react/v/2.20.0) (from `2.19.0`, in `dependencies`) - [#3831](https://github.com/Urigo/accounter-fullstack/pull/3831) [`79f7a7b`](https://github.com/Urigo/accounter-fullstack/commit/79f7a7bde26b7572f562976b6e737703f7e0fdbb) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`@mui/material@9.2.0` ↗︎](https://www.npmjs.com/package/@mui/material/v/9.2.0) (from `9.1.2`, in `dependencies`) - [#3834](https://github.com/Urigo/accounter-fullstack/pull/3834) [`77222b7`](https://github.com/Urigo/accounter-fullstack/commit/77222b7052ffb094db5df5c9065ed93e9dc21bf2) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`@mui/x-charts@8.29.2` ↗︎](https://www.npmjs.com/package/@mui/x-charts/v/8.29.2) (from `8.29.0`, in `dependencies`) - Updated dependency [`csv-parse@7.0.1` ↗︎](https://www.npmjs.com/package/csv-parse/v/7.0.1) (from `7.0.0`, in `dependencies`) - [#3836](https://github.com/Urigo/accounter-fullstack/pull/3836) [`059b638`](https://github.com/Urigo/accounter-fullstack/commit/059b638702116701a5a0062a7ac3a58a28eeb004) Thanks [@gilgardosh](https://github.com/gilgardosh)! - dependencies updates: - Updated dependency [`@mui/material@9.2.0` ↗︎](https://www.npmjs.com/package/@mui/material/v/9.2.0) (from `9.1.2`, in `dependencies`) - Updated dependency [`@mui/x-charts@8.29.2` ↗︎](https://www.npmjs.com/package/@mui/x-charts/v/8.29.2) (from `8.29.0`, in `dependencies`) - Updated dependency [`csv-parse@7.0.1` ↗︎](https://www.npmjs.com/package/csv-parse/v/7.0.1) (from `7.0.0`, in `dependencies`) - Updated dependency [`react-hook-form@7.81.0` ↗︎](https://www.npmjs.com/package/react-hook-form/v/7.81.0) (from `7.80.0`, in `dependencies`) - [#3839](https://github.com/Urigo/accounter-fullstack/pull/3839) [`61c5093`](https://github.com/Urigo/accounter-fullstack/commit/61c509329fd5c72ee14ab6875042cfc575fc75df) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`react-hook-form@7.81.0` ↗︎](https://www.npmjs.com/package/react-hook-form/v/7.81.0) (from `7.80.0`, in `dependencies`) - [#3846](https://github.com/Urigo/accounter-fullstack/pull/3846) [`d382eb2`](https://github.com/Urigo/accounter-fullstack/commit/d382eb20cf27b76ef80d235080bead1ba66b1e77) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`html2canvas-pro@2.2.3` ↗︎](https://www.npmjs.com/package/html2canvas-pro/v/2.2.3) (from `2.2.1`, in `dependencies`) - Updated dependency [`iconv-lite@0.7.3` ↗︎](https://www.npmjs.com/package/iconv-lite/v/0.7.3) (from `0.7.2`, in `dependencies`) - Updated dependency [`radix-ui@1.6.2` ↗︎](https://www.npmjs.com/package/radix-ui/v/1.6.2) (from `1.6.1`, in `dependencies`) - Updated dependency [`recharts@3.9.2` ↗︎](https://www.npmjs.com/package/recharts/v/3.9.2) (from `3.9.1`, in `dependencies`) - [#3873](https://github.com/Urigo/accounter-fullstack/pull/3873) [`246b1e4`](https://github.com/Urigo/accounter-fullstack/commit/246b1e4d41a6424c4b9f251ff0b8cf36c774ab30) Thanks [@gilgardosh](https://github.com/gilgardosh)! - dependencies updates: - Updated dependency [`@auth0/auth0-react@2.21.0` ↗︎](https://www.npmjs.com/package/@auth0/auth0-react/v/2.21.0) (from `2.20.0`, in `dependencies`) - Updated dependency [`lucide-react@1.24.0` ↗︎](https://www.npmjs.com/package/lucide-react/v/1.24.0) (from `1.23.0`, in `dependencies`) - [#3905](https://github.com/Urigo/accounter-fullstack/pull/3905) [`58c6a77`](https://github.com/Urigo/accounter-fullstack/commit/58c6a77fc5ec4592e6474705b39fbf746216a261) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`lucide-react@1.24.0` ↗︎](https://www.npmjs.com/package/lucide-react/v/1.24.0) (from `1.23.0`, in `dependencies`) - [#3908](https://github.com/Urigo/accounter-fullstack/pull/3908) [`c26475a`](https://github.com/Urigo/accounter-fullstack/commit/c26475abb02712c7f70fa29d8167acda7816394e) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`@auth0/auth0-react@2.21.0` ↗︎](https://www.npmjs.com/package/@auth0/auth0-react/v/2.21.0) (from `2.20.0`, in `dependencies`) - [#3913](https://github.com/Urigo/accounter-fullstack/pull/3913) [`6d29a1e`](https://github.com/Urigo/accounter-fullstack/commit/6d29a1ecfc84e1519165e7775aaa90ed3cb4071f) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`html2canvas-pro@2.2.4` ↗︎](https://www.npmjs.com/package/html2canvas-pro/v/2.2.4) (from `2.2.3`, in `dependencies`) - [#3956](https://github.com/Urigo/accounter-fullstack/pull/3956) [`7253a34`](https://github.com/Urigo/accounter-fullstack/commit/7253a34f8cdb183774b3b2befb59b86655101d48) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`@auth0/auth0-react@2.22.0` ↗︎](https://www.npmjs.com/package/@auth0/auth0-react/v/2.22.0) (from `2.21.0`, in `dependencies`) - [#3957](https://github.com/Urigo/accounter-fullstack/pull/3957) [`e8f8f41`](https://github.com/Urigo/accounter-fullstack/commit/e8f8f41325fa6e73835c6eec40619e6ec338332d) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`lucide-react@1.25.0` ↗︎](https://www.npmjs.com/package/lucide-react/v/1.25.0) (from `1.24.0`, in `dependencies`) - [#3961](https://github.com/Urigo/accounter-fullstack/pull/3961) [`a77d758`](https://github.com/Urigo/accounter-fullstack/commit/a77d758d5e9e98491b5759a7cc421b28af54d61f) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`radix-ui@1.6.4` ↗︎](https://www.npmjs.com/package/radix-ui/v/1.6.4) (from `1.6.2`, in `dependencies`) - Updated dependency [`react-hook-form@7.82.0` ↗︎](https://www.npmjs.com/package/react-hook-form/v/7.82.0) (from `7.81.0`, in `dependencies`) - [#3964](https://github.com/Urigo/accounter-fullstack/pull/3964) [`49cd281`](https://github.com/Urigo/accounter-fullstack/commit/49cd281e9aa63832cd1eda409472d6074ad83ba4) Thanks [@gilgardosh](https://github.com/gilgardosh)! - dependencies updates: - Updated dependency [`@auth0/auth0-react@2.22.0` ↗︎](https://www.npmjs.com/package/@auth0/auth0-react/v/2.22.0) (from `2.21.0`, in `dependencies`) - Updated dependency [`lucide-react@1.25.0` ↗︎](https://www.npmjs.com/package/lucide-react/v/1.25.0) (from `1.24.0`, in `dependencies`) - [#3965](https://github.com/Urigo/accounter-fullstack/pull/3965) [`24cb271`](https://github.com/Urigo/accounter-fullstack/commit/24cb271b6c7a62d1e97e6e591fdf0c9bf4863e95) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`radix-ui@1.6.4` ↗︎](https://www.npmjs.com/package/radix-ui/v/1.6.4) (from `1.6.2`, in `dependencies`) - [#3994](https://github.com/Urigo/accounter-fullstack/pull/3994) [`00640e4`](https://github.com/Urigo/accounter-fullstack/commit/00640e4e32f47b98a8b327a31a1147e22f2476c6) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`recharts@3.10.0` ↗︎](https://www.npmjs.com/package/recharts/v/3.10.0) (from `3.9.2`, in `dependencies`) - [#4001](https://github.com/Urigo/accounter-fullstack/pull/4001) [`8b13737`](https://github.com/Urigo/accounter-fullstack/commit/8b1373701b717dd6662a9c5acff99f69b7b0cc87) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`html2canvas-pro@2.3.1` ↗︎](https://www.npmjs.com/package/html2canvas-pro/v/2.3.1) (from `2.2.4`, in `dependencies`) - [#4007](https://github.com/Urigo/accounter-fullstack/pull/4007) [`a549838`](https://github.com/Urigo/accounter-fullstack/commit/a549838ec8d2b909dadb73115171949065b6e842) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`@tanstack/react-query@5.101.4` ↗︎](https://www.npmjs.com/package/@tanstack/react-query/v/5.101.4) (from `5.101.2`, in `dependencies`) - [#4032](https://github.com/Urigo/accounter-fullstack/pull/4032) [`206a64d`](https://github.com/Urigo/accounter-fullstack/commit/206a64d6b79b04c0e41d0882f17adcaefae1c7b0) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`lucide-react@1.26.0` ↗︎](https://www.npmjs.com/package/lucide-react/v/1.26.0) (from `1.25.0`, in `dependencies`) - [#3930](https://github.com/Urigo/accounter-fullstack/pull/3930) [`06bc329`](https://github.com/Urigo/accounter-fullstack/commit/06bc329d5004555ecee18f6e46dc3b7a3bda6665) Thanks [@gilgardosh](https://github.com/gilgardosh)! - Fix a crash in the transactions balance report when a period's per-currency breakdown includes a crypto currency. Crypto currencies (`USDC`, `ETH`, `GRT`) are not valid ISO 4217 codes, so `getCurrencyFormatter` threw `RangeError: Invalid currency code` when building an `Intl.NumberFormat` with `style: 'currency'`. The formatter now falls back to decimal formatting with the currency symbol as a prefix for non-fiat currencies (placing the minus sign before the symbol for negatives, matching fiat notation), leaving fiat currency formatting unchanged. - [#3932](https://github.com/Urigo/accounter-fullstack/pull/3932) [`7a637a5`](https://github.com/Urigo/accounter-fullstack/commit/7a637a58914d8c7c47bba8749a82078779a00755) Thanks [@gilgardosh](https://github.com/gilgardosh)! - Fix the Bank Deposits screen "blinking" when reassigning a transaction, without losing the update. Previously, reassigning a transaction refetched `AllDeposits`, and the loading gate replaced the whole table on every refetch — unmounting and remounting the expanded transaction sub-tables, which is what actually refreshed their data (the urql client has no cache exchange, so mutations don't invalidate queries). This caused a jarring full-screen blink. Now the loading gates only replace the table on the initial load (`fetching && !data`), and derived rows are wrapped in a new `useStableValue` hook so the view updates only when data actually changes. To keep the data correct without the remount, a reassign bumps a token that every mounted deposit transaction table observes and re-executes its own query for — so the reassigned row leaves the source deposit and appears under the target deposit, and both deposits' balances refresh, with no blink. - [#3937](https://github.com/Urigo/accounter-fullstack/pull/3937) [`5232f8e`](https://github.com/Urigo/accounter-fullstack/commit/5232f8e1620b6ae09fb0763b2810cf147305577e) Thanks [@gilgardosh](https://github.com/gilgardosh)! - Reduce the "blinking" in the charge extended-info panel (and its sub-components) when something is updated via `onExtendedChange`. Applying the same insights as the bank-deposits and charges-table fixes: - `charge-extended-info.tsx`: the top loader now only shows on the initial load (`fetching && !charge`) instead of on every refetch. The `@defer` `FetchCharge` query is re-executed with `network-only`, and its result is merged over the previously loaded charge — a re-executed deferred query delivers its non-deferred fields first and streams the deferred fragments in later patches, so merging keeps the already-loaded accordion sections rendering their last data until each fresh patch arrives, instead of every section collapsing and re-expanding. The rendered charge is also wrapped in `useStableValue` so descendants re-render only on real changes. - `extended-info/charge-matches.tsx`: gate the loader on `fetching && !data` so the matches table stays visible during background refetches. - `extended-info/bank-deposit.tsx`: show the full-section loader only on the initial load; during background refetches and create/assign mutations the current content stays visible (mutation progress is already surfaced via the inline button states). - [#3978](https://github.com/Urigo/accounter-fullstack/pull/3978) [`3d59810`](https://github.com/Urigo/accounter-fullstack/commit/3d59810880c5e60d06074b2b71c401808cb736c7) Thanks [@gilgardosh](https://github.com/gilgardosh)! - Charge Matching screen: allow selecting a base charge from the queue sidebar. Clicking an entry pins that charge as the active item under review, so you can jump ahead to an upcoming base charge or revisit one you skipped instead of only ever seeing the first pending charge. Already-matched entries are disabled since they are merged on the backend. - [#3977](https://github.com/Urigo/accounter-fullstack/pull/3977) [`7f0196d`](https://github.com/Urigo/accounter-fullstack/commit/7f0196d291b0ff1971c437ebb9deb6bf9c58212c) Thanks [@gilgardosh](https://github.com/gilgardosh)! - Persist the Charge Matching screen filters (mode, from/to dates, business and sort-by) in the URL query string, so the current selection survives a page refresh and can be shared via link. Filter updates are merged into the existing query params, preserving any unrelated params already in the URL. - [#3940](https://github.com/Urigo/accounter-fullstack/pull/3940) [`18bda6a`](https://github.com/Urigo/accounter-fullstack/commit/18bda6a2905c3c87fb9a4574a0c5cb85abb1fb2e) Thanks [@gilgardosh](https://github.com/gilgardosh)! - Collapse an expanded charge row automatically when its accountant approval status is set to `APPROVED` from the charges table. - [#3937](https://github.com/Urigo/accounter-fullstack/pull/3937) [`5232f8e`](https://github.com/Urigo/accounter-fullstack/commit/5232f8e1620b6ae09fb0763b2810cf147305577e) Thanks [@gilgardosh](https://github.com/gilgardosh)! - Reduce the "blinking" on the All Charges screen when data is refetched. Applying the same insights as the bank deposits fix: - The loading spinner now only replaces the table on the initial load (`fetching && !data`) instead of on every background refetch, so changing filters or pages no longer blanks out the whole table — the current results stay visible until the new data arrives. During those refetches a `LoadingOverlay` dims the table with a spinner so it's still clear the charges are being reloaded. - The charge nodes are wrapped in the shared `useStableValue` hook, so the table and its rows keep a stable reference and only re-render (and reset per-row state) when the data actually changed. - Filter refetches are issued with `{ requestPolicy: 'network-only' }` to make the intent explicit. - The filters-bar effect now depends only on the page count it actually consumes, instead of the whole query result and `fetching`, so it isn't rebuilt on every refetch. Per-charge edits were already scoped to their own row query and are unaffected. - [#4030](https://github.com/Urigo/accounter-fullstack/pull/4030) [`72e1632`](https://github.com/Urigo/accounter-fullstack/commit/72e16322da219cbc9fdf7d059f7bd5b1fb91926d) Thanks [@gilgardosh](https://github.com/gilgardosh)! - - Extracted `missingInfoSuggestions` into a dedicated `ChargesTableSuggestionsFields` fragment. - Applied `@defer` to the suggestions fragment spread inside `ChargeForChargesTableFields`. - Updated `convertChargeFragmentToTableRow` to read suggestions via `getFragmentData` and handle the deferred (initially-absent) fields safely. - [#3863](https://github.com/Urigo/accounter-fullstack/pull/3863) [`35b1125`](https://github.com/Urigo/accounter-fullstack/commit/35b112532514b1447d615826943d192ed8a0d19f) Thanks [@gilgardosh](https://github.com/gilgardosh)! - Add a "Pull Deel Documents" button to the user nav menu, next to "Add Balance Charge", that triggers the `fetchDeelDocuments` mutation on demand. Also improves the underlying Deel invoice fetch/matching logic: - Distinguishes newly-seen invoices from previously-fetched invoices that are still unmatched, so a later run can pick up a payment match for an invoice it already recorded (via a new `updateDeelInvoiceRecords` update path) instead of only ever inserting. - Reuses an already-matched charge for a given receipt when creating charges from payment breakdowns, avoiding duplicate charges for invoices that share a receipt. - Extends the Deel invoice schema/table with `billing_type` and `document_type`, and refines several payment-receipt and payment-breakdown Zod schemas to match the Deel API more closely. - [#3931](https://github.com/Urigo/accounter-fullstack/pull/3931) [`3cf9ff4`](https://github.com/Urigo/accounter-fullstack/commit/3cf9ff4854f33178de6979dbfc557389cf352572) Thanks [@gilgardosh](https://github.com/gilgardosh)! - Show the deposit name instead of its ID in the Reassign Transaction dialog's target deposit selection. The currency is now rendered conditionally so no empty parentheses appear when a deposit has no currency. - [#3948](https://github.com/Urigo/accounter-fullstack/pull/3948) [`f933c8c`](https://github.com/Urigo/accounter-fullstack/commit/f933c8cdc8a9dc5378ebb24d332af11079835c1b) Thanks [@gilgardosh](https://github.com/gilgardosh)! - Pre-fill financial fields when switching an "other"/"unprocessed" document to a financial type in the edit-document modal. A document can be inserted carrying full financial data (date, amount, VAT, serial number, debtor/creditor, etc.) while still categorized as `OTHER`/`UNPROCESSED`. Previously, editing such a document and switching its type to a financial one (e.g. invoice) showed all extended attribute fields empty — the stored values only appeared after saving and reopening the modal, once the document re-resolved as a `FinancialDocument`. The financial fields were only exposed on the `FinancialDocument` GraphQL types, so the edit query could never fetch the already-stored values for `Unprocessed`/`OtherDocument`. These fields (`vat`, `serialNumber`, `date`, `amount`, `vatReportDateOverride`, `noVatAmount`, `allocationNumber`, `exchangeRateOverride`, `debtor`, `creditor`) are now exposed on the `Unprocessed` and `OtherDocument` types and fetched by the client, and the edit form reads its financial defaults from the document regardless of its current type — so switching to a financial type immediately pre-fills the stored values. - [#3937](https://github.com/Urigo/accounter-fullstack/pull/3937) [`5232f8e`](https://github.com/Urigo/accounter-fullstack/commit/5232f8e1620b6ae09fb0763b2810cf147305577e) Thanks [@gilgardosh](https://github.com/gilgardosh)! - Stop the documents table (reused under the charge extended-info panel) from "blinking" when a document is updated. The document row fields are fetched under a `@defer` fragment, so on a refetch each document streams back id-first and its other fields (amount, vat, …) arrive in later patches — which briefly rendered the rows with empty cells before the data refilled. The table now merges each incoming document's present fields over the version currently shown (matched by id), so every cell keeps its current value until the real data replaces it, and bails out of re-rendering when nothing changed. - [#3896](https://github.com/Urigo/accounter-fullstack/pull/3896) [`36f8d49`](https://github.com/Urigo/accounter-fullstack/commit/36f8d49c1fff95afea466a23b33eba7c0db004a8) Thanks [@gilgardosh](https://github.com/gilgardosh)! - - **GraphQL schema**: `ReportCommentarySubRecord` gains a `ledgerRecords: [LedgerRecord!]!` field, so the details are delegated to the client. This applies to both the Profit & Loss and Tax reports, which share these commentary types. - **Client**: `ReportSubCommentaryRow` gains a per-entity `ToggleExpansionButton` that expands into the existing `LedgerTable` component (no ledger diff view in this report). - [#3924](https://github.com/Urigo/accounter-fullstack/pull/3924) [`54d27de`](https://github.com/Urigo/accounter-fullstack/commit/54d27ded68bed447769851bf490a16fc97e864cb) Thanks [@gilgardosh](https://github.com/gilgardosh)! - Fix empty `generalContacts` handling for businesses. When inserting a business without any general contacts, an empty string was stored as the business email, which later parsed into `['']` (an invalid email) and triggered a validation error when editing the business. The insert modal now stores `undefined` instead of an empty string, and the edit form filters out empty entries when parsing the stored email. - [#4003](https://github.com/Urigo/accounter-fullstack/pull/4003) [`b2010b7`](https://github.com/Urigo/accounter-fullstack/commit/b2010b78275bb38e882b91ad935acdc734db6a2e) Thanks [@gilgardosh](https://github.com/gilgardosh)! - Fix a spurious "Error fetching extended information for this charge" flash in the charge expansion panel. The rendered `charge` is committed to state in an effect one render after `fetching` flips to `false` and the fetched data arrives, so the error gate briefly saw `!fetching && !charge` as true. The error is now also gated on `incomingCharge` (the synchronous derivation of the fetched data), suppressing the flash during that one-render gap while still surfacing genuine "no data" errors. - [#3925](https://github.com/Urigo/accounter-fullstack/pull/3925) [`547e405`](https://github.com/Urigo/accounter-fullstack/commit/547e40567b02e0e16a7f6d3cfdbf12fe5ae819b6) Thanks [@gilgardosh](https://github.com/gilgardosh)! - Fix ComboBox search input being unclickable inside PopUpDrawer (e.g. the Creditor/Debtor selects in the Edit Document modal). The drawer's underlying Radix Dialog is always modal and traps focus, so the popover — portaled to `document.body` — could not be focused. PopUpDrawer now exposes its content element via a portal-container context, and ComboBox portals its popover into it when present while keeping the default `document.body` portaling everywhere else. - [#4048](https://github.com/Urigo/accounter-fullstack/pull/4048) [`1755df4`](https://github.com/Urigo/accounter-fullstack/commit/1755df4dd5347272a16d69fd9f091ca95ca5be01) Thanks [@gilgardosh](https://github.com/gilgardosh)! - Fix form inputs being unusable inside `PopUpDrawer` (e.g. the Edit Charge, Edit Transaction and Edit Document modals). The drawer's underlying Radix Dialog is always modal and traps focus, so overlays portaled to `document.body` could not be focused and clicking them was treated as an "outside" interaction that closed the drawer. Following the same portal-container approach already used by `ComboBox`, these inputs now portal their overlays into the drawer's content element when one is present (and keep the default `document.body` portaling everywhere else): - `MultiSelect` — the tags input's options list and search were unclickable and clicking outside the options closed the drawer (fixes [#4040](https://github.com/urigo/accounter-fullstack/issues/4040)); its overflow tooltip now portals into the layer too. - `DatePickerInput` — the calendar's day buttons could not be clicked and closed the drawer. - Currency inputs (`CurrencyCodeInput` / currency search) — the currency select and search popover. - The financial-entity / document-type `Select`s in the Edit Transaction and document field forms. The shared `Select` and `Tooltip` UI primitives now accept an optional `container` prop to enable this. - [#4003](https://github.com/Urigo/accounter-fullstack/pull/4003) [`b2010b7`](https://github.com/Urigo/accounter-fullstack/commit/b2010b78275bb38e882b91ad935acdc734db6a2e) Thanks [@gilgardosh](https://github.com/gilgardosh)! - Add optional CSV export to the new charges table. When enabled, a download button on the All Charges and VAT report missing-info screens exports the currently loaded charges to CSV via a dedicated `ChargeForCsvExportFields` fragment and `convertChargesToCsv` serializer. The shared `DownloadCSVButton` now tracks a loading state, disables itself and shows a spinner while the export file is being prepared, so slow exports can no longer be re-triggered mid-download. - [#4003](https://github.com/Urigo/accounter-fullstack/pull/4003) [`b2010b7`](https://github.com/Urigo/accounter-fullstack/commit/b2010b78275bb38e882b91ad935acdc734db6a2e) Thanks [@gilgardosh](https://github.com/gilgardosh)! - Fix whole-table "expand all" in the new charges table and load the expanded rows efficiently. - `new-charges-table.tsx`: the table now accepts an `isAllOpened` prop and drives tanstack-table's `expanded` state from it (`true` expands every row, `{}` collapses them). Previously the toolbar's expand-all button toggled local `isAllOpened` state that was never passed to the table, so nothing happened; per-charge expansion via the row button was unaffected. - New `charges-extended-info-loader.tsx`: a `BatchChargesExtendedInfoProvider` that, while expand-all is active, hydrates every expanded row's extended info with a single `chargesByIDs` query instead of one `FetchCharge` query per row (which was 100 queries for a full 100-row page). Its selection set mirrors `FetchCharge`, including the same deferred fragments, so a batched charge is interchangeable with a single-charge result. - `charge-extended-info.tsx`: consumes the batch loader when it's active (pausing its own per-charge query and delegating refetch-on-change to the batch); otherwise behaves exactly as before. - Wired `isAllOpened` through the all-charges, missing-info-charges and single-charge screens. - [#4003](https://github.com/Urigo/accounter-fullstack/pull/4003) [`b2010b7`](https://github.com/Urigo/accounter-fullstack/commit/b2010b78275bb38e882b91ad935acdc734db6a2e) Thanks [@gilgardosh](https://github.com/gilgardosh)! - Introduce a new TanStack-Table-based charges table (`NewChargesTable`) on the All Charges screen, rendering charge rows from a single `ChargeForChargesTableFields` fragment split into dedicated cell components (amount, counterparty, description, tags, tax category, VAT, business trip, more-info, type). The new table is mounted under the existing `LoadingOverlay` + stable `chargeNodes` gating so background refetches no longer blink the view. - [#3927](https://github.com/Urigo/accounter-fullstack/pull/3927) [`485dae7`](https://github.com/Urigo/accounter-fullstack/commit/485dae7f363133e7c794bb2a6ae50fe50fef2b9f) Thanks [@gilgardosh](https://github.com/gilgardosh)! - Migrate the tax category sort code selector from Mantine to a reusable shadcn-based `SortCodeSelect`. Each option now shows both the sort code key and its name (e.g. `100 - Cash`), and the selector is extracted into a general component (`components/common/inputs/sort-code-select.tsx`) so it can be reused across forms — it is now also used in the business configurations section. - [#3923](https://github.com/Urigo/accounter-fullstack/pull/3923) [`9ee7ab8`](https://github.com/Urigo/accounter-fullstack/commit/9ee7ab89299fe08b12a5ac639dc84dfd25a390c7) Thanks [@gilgardosh](https://github.com/gilgardosh)! - Improve `MultiSelect` readability for large selections (closes [#3891](https://github.com/urigo/accounter-fullstack/issues/3891)). The collapsed "+N more" badge now shows the hidden selected labels in a tooltip on hover/focus, and the dropdown lists checked items at the top when opened (order is snapshotted on open so it does not reshuffle while toggling). - [#3827](https://github.com/Urigo/accounter-fullstack/pull/3827) [`6aad15e`](https://github.com/Urigo/accounter-fullstack/commit/6aad15e71959061590c91cfd9793b41147cb7640) Thanks [@gilgardosh](https://github.com/gilgardosh)! - Refactored the `/businesses` screen to use a robust `@tanstack/react-table` implementation, replacing the previous card list view. This upgrade introduces advanced data management capabilities including grouping, lazy-loading, sorting, client-side filtering, and batch operations. - **Data Table Migration**: Replaced the `BusinessHeader` card list with a comprehensive data table featuring grouped columns: Core, Main, Categorization, Extension tags, and Suggestion defaults. Added a "Columns" dropdown to toggle column visibility. - **Row Selection & Batch Actions**: Implemented row selection to enable merging businesses and a new batch update dialog for bulk-editing shared fields (country, city, zip, sort/IRS codes, tax category, and suggestion descriptions). - **Lazy-Loaded Usage Tracking**: Introduced a "Usage" column group tracking transactions, documents, expenses, and ledger records. To optimize performance, the `BusinessesUsage` query is lazy-loaded and only un-pauses when a usage column is rendered or the "unused only" filter is active. - **Advanced Filtering & Sorting**: Added sortable headers with custom null-safe comparators. Implemented robust client-side filtering, including toggles for client/admin/inactive flags, free-text code filters, and an "unused only" view. - **Guarded Deletion**: Added a per-row delete action that mirrors the server's hard-delete guard; the delete button remains strictly disabled unless the business is completely unused across all metrics. - **Architecture & Testing**: Extracted pure, dependency-free row mapping, usage merging, and filtering logic into a dedicated, unit-tested `business-rows.ts` module. - [#3836](https://github.com/Urigo/accounter-fullstack/pull/3836) [`059b638`](https://github.com/Urigo/accounter-fullstack/commit/059b638702116701a5a0062a7ac3a58a28eeb004) Thanks [@gilgardosh](https://github.com/gilgardosh)! - - Extend `batch-update-dialog.tsx`: - **Tags** — a `MultiSelect` (via `useGetTags`), merged with the existing description into a single `suggestions` input. - **Flags** — `isActive`, `isReceiptEnough`, `isDocumentsOptional` (No docs required), `optionalVAT` (Is VAT optional) and `exemptDealer` as tri-state selects (**No change / Yes / No**). A flag is only sent when the user explicitly picks Yes/No, preserving the "only fields you fill in are applied" semantics of batch update. - `isFormEmpty` is now derived from the built mutation input so the new controls correctly enable/disable the Save button. - [#3914](https://github.com/Urigo/accounter-fullstack/pull/3914) [`35a6c4d`](https://github.com/Urigo/accounter-fullstack/commit/35a6c4de58fbaea67d466b53403c232270328557) Thanks [@gilgardosh](https://github.com/gilgardosh)! - - **Schema updates**: Added `sortCode: Int` field to the `DynamicReportNodeData` GraphQL type and Zod validation schema - **GraphQL query**: Updated the dynamic report query to fetch the `sortCode` field from template data - **Tests**: Added comprehensive test coverage for parsing and validating sort-code-branch nodes with sortCode fields, plus a test verifying sortCode is read from template data (not derived from UUID IDs) - [#4043](https://github.com/Urigo/accounter-fullstack/pull/4043) [`244f33b`](https://github.com/Urigo/accounter-fullstack/commit/244f33bbfc2d334ef03ea5d8b94d937da1e1badd) Thanks [@gilgardosh](https://github.com/gilgardosh)! - Optimize the VAT monthly report and the flows backed by `getVatRecords` (monthly-VAT ledger validation, description suggestions, and PCN874 generation): - `getVatRecords` now accepts an `includeChargeBuckets` option (default `true`). The ledger-generation, monthly-VAT-suggestion and PCN874 callers read only `income`/`expenses`, so they pass `false` to skip the per-charge `validateCharge` + business-trip pass that builds the `missingInfo` / `differentMonthDoc` / `businessTrips` buckets those callers discard. - `adjustTaxRecord` passes the enriched charge row (instead of its id) to the transaction/document meta helpers, serving the precomputed aggregates from the fast path instead of firing extra DataLoader batches per record. - `validateCharge` is memoized per request (injector-keyed), so the VAT report's bucketing pass and the `Charge.validationData` field resolver share a single validation per charge rather than computing it twice. - The VAT report screen dedupes its query document once at module load, keeping a stable query reference across renders. ## 0.0.12 ### Patch Changes - [#3156](https://github.com/Urigo/accounter-fullstack/pull/3156) [`9719859`](https://github.com/Urigo/accounter-fullstack/commit/9719859e409c1f82a1ec1bf92b47d57581a206b0) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`@mui/material@9.0.1` ↗︎](https://www.npmjs.com/package/@mui/material/v/9.0.1) (from `9.0.0`, in `dependencies`) - [#3234](https://github.com/Urigo/accounter-fullstack/pull/3234) [`7dd206b`](https://github.com/Urigo/accounter-fullstack/commit/7dd206b8d1706736bcca241f87c5e288c22b5809) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`react-hook-form@7.72.1` ↗︎](https://www.npmjs.com/package/react-hook-form/v/7.72.1) (from `7.71.2`, in `dependencies`) - [#3243](https://github.com/Urigo/accounter-fullstack/pull/3243) [`cf58692`](https://github.com/Urigo/accounter-fullstack/commit/cf5869226a4551e2cf5969cec0fec3e54c29d844) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`@tanstack/react-query@5.96.2` ↗︎](https://www.npmjs.com/package/@tanstack/react-query/v/5.96.2) (from `5.94.5`, in `dependencies`) - [#3277](https://github.com/Urigo/accounter-fullstack/pull/3277) [`a584921`](https://github.com/Urigo/accounter-fullstack/commit/a58492135ab1cac146b0a04885bc968b5c5579e8) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`dotenv@17.4.1` ↗︎](https://www.npmjs.com/package/dotenv/v/17.4.1) (from `17.3.1`, in `dependencies`) - [#3281](https://github.com/Urigo/accounter-fullstack/pull/3281) [`917f31e`](https://github.com/Urigo/accounter-fullstack/commit/917f31e956d267704f6d74fb7f3a22d366062135) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`@mui/x-charts@8.28.2` ↗︎](https://www.npmjs.com/package/@mui/x-charts/v/8.28.2) (from `8.28.0`, in `dependencies`) - [`623ed2b`](https://github.com/Urigo/accounter-fullstack/commit/623ed2b39788764e206241a9c3a628dfec25889e) Thanks [@renovate[bot]](https://github.com/renovate%5Bbot%5D)! - dependencies updates: - Updated dependency [`react@19.2.5` ↗︎](https://www.npmjs.com/package/react/v/19.2.5) (from `19.2.4`, in `dependencies`) - Updated dependency [`react-dom@19.2.5` ↗︎](https://www.npmjs.com/package/react-dom/v/19.2.5) (from `19.2.4`, in `dependencies`) - [#3291](https://github.com/Urigo/accounter-fullstack/pull/3291) [`0f1a983`](https://github.com/Urigo/accounter-fullstack/commit/0f1a983134f14b01026daf17b604e5b20ea7e80d) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`@mui/material@9.0.0` ↗︎](https://www.npmjs.com/package/@mui/material/v/9.0.0) (from `7.3.9`, in `dependencies`) - [`73a6623`](https://github.com/Urigo/accounter-fullstack/commit/73a6623d4a16370b289749ffd0ac54e915d46f01) Thanks [@renovate[bot]](https://github.com/renovate%5Bbot%5D)! - dependencies updates: - Updated dependency [`lucide-react@1.8.0` ↗︎](https://www.npmjs.com/package/lucide-react/v/1.8.0) (from `1.7.0`, in `dependencies`) - [`d57236c`](https://github.com/Urigo/accounter-fullstack/commit/d57236cb11c1b2901a09b0291a981e2c468ae980) Thanks [@renovate[bot]](https://github.com/renovate%5Bbot%5D)! - dependencies updates: - Updated dependency [`@tanstack/react-query@5.97.0` ↗︎](https://www.npmjs.com/package/@tanstack/react-query/v/5.97.0) (from `5.96.2`, in `dependencies`) - [`82f07c2`](https://github.com/Urigo/accounter-fullstack/commit/82f07c25cd88fbcef8d29ef3d32230cfce168caa) Thanks [@gilgardosh](https://github.com/gilgardosh)! - dependencies updates: - Updated dependency [`lucide-react@1.8.0` ↗︎](https://www.npmjs.com/package/lucide-react/v/1.8.0) (from `1.7.0`, in `dependencies`) - [`448d0fa`](https://github.com/Urigo/accounter-fullstack/commit/448d0fa5196f83d31aa45c75c179d6b55eacaf23) Thanks [@renovate[bot]](https://github.com/renovate%5Bbot%5D)! - dependencies updates: - Updated dependency [`@tanstack/react-query@5.98.0` ↗︎](https://www.npmjs.com/package/@tanstack/react-query/v/5.98.0) (from `5.97.0`, in `dependencies`) - [#3308](https://github.com/Urigo/accounter-fullstack/pull/3308) [`5b7796f`](https://github.com/Urigo/accounter-fullstack/commit/5b7796f02da1e2ac460e03c4f0a5d38334807787) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`@tanstack/react-query@5.99.0` ↗︎](https://www.npmjs.com/package/@tanstack/react-query/v/5.99.0) (from `5.98.0`, in `dependencies`) - [#3309](https://github.com/Urigo/accounter-fullstack/pull/3309) [`7b2c89c`](https://github.com/Urigo/accounter-fullstack/commit/7b2c89c6b655a4f8337d202aecefc688ec99af14) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`dotenv@17.4.2` ↗︎](https://www.npmjs.com/package/dotenv/v/17.4.2) (from `17.4.1`, in `dependencies`) - [#3326](https://github.com/Urigo/accounter-fullstack/pull/3326) [`6aa1deb`](https://github.com/Urigo/accounter-fullstack/commit/6aa1deb6b74e02c41974172312663d3c12a959d1) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`urql@5.0.2` ↗︎](https://www.npmjs.com/package/urql/v/5.0.2) (from `5.0.1`, in `dependencies`) - [#3331](https://github.com/Urigo/accounter-fullstack/pull/3331) [`28718a0`](https://github.com/Urigo/accounter-fullstack/commit/28718a0a0985ebb2a12c6c6dce8301285d420858) Thanks [@gilgardosh](https://github.com/gilgardosh)! - dependencies updates: - Updated dependency [`dotenv@17.4.2` ↗︎](https://www.npmjs.com/package/dotenv/v/17.4.2) (from `17.4.1`, in `dependencies`) - [#3333](https://github.com/Urigo/accounter-fullstack/pull/3333) [`a5e6d19`](https://github.com/Urigo/accounter-fullstack/commit/a5e6d19bf96173dde9097985a8df0065b9c3e499) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`@auth0/auth0-react@2.16.2` ↗︎](https://www.npmjs.com/package/@auth0/auth0-react/v/2.16.2) (from `2.16.1`, in `dependencies`) - Updated dependency [`@tanstack/react-query@5.99.2` ↗︎](https://www.npmjs.com/package/@tanstack/react-query/v/5.99.2) (from `5.99.0`, in `dependencies`) - Updated dependency [`react-router-dom@7.14.1` ↗︎](https://www.npmjs.com/package/react-router-dom/v/7.14.1) (from `7.14.0`, in `dependencies`) - [#3382](https://github.com/Urigo/accounter-fullstack/pull/3382) [`824dd0c`](https://github.com/Urigo/accounter-fullstack/commit/824dd0cad47c1bc8814428ce8c34db803fc5a153) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`react-hook-form@7.73.1` ↗︎](https://www.npmjs.com/package/react-hook-form/v/7.73.1) (from `7.72.1`, in `dependencies`) - [#3384](https://github.com/Urigo/accounter-fullstack/pull/3384) [`bc2920d`](https://github.com/Urigo/accounter-fullstack/commit/bc2920d07ce3071c37ad8d3e2d733c9d8414e626) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`@atlaskit/pragmatic-drag-and-drop@1.8.1` ↗︎](https://www.npmjs.com/package/@atlaskit/pragmatic-drag-and-drop/v/1.8.1) (from `1.8.0`, in `dependencies`) - Updated dependency [`react-router-dom@7.14.2` ↗︎](https://www.npmjs.com/package/react-router-dom/v/7.14.2) (from `7.14.1`, in `dependencies`) - [#3385](https://github.com/Urigo/accounter-fullstack/pull/3385) [`ad314b8`](https://github.com/Urigo/accounter-fullstack/commit/ad314b85a198434e55aa302b09cb3581032e8b7e) Thanks [@gilgardosh](https://github.com/gilgardosh)! - dependencies updates: - Added dependency [`@atlaskit/pragmatic-drag-and-drop@1.8.0` ↗︎](https://www.npmjs.com/package/@atlaskit/pragmatic-drag-and-drop/v/1.8.0) (to `dependencies`) - Added dependency [`@atlaskit/pragmatic-drag-and-drop-hitbox@1.1.0` ↗︎](https://www.npmjs.com/package/@atlaskit/pragmatic-drag-and-drop-hitbox/v/1.1.0) (to `dependencies`) - [#3387](https://github.com/Urigo/accounter-fullstack/pull/3387) [`46f9fc5`](https://github.com/Urigo/accounter-fullstack/commit/46f9fc5592590a765770592efab440a0374e9bde) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`react-hook-form@7.73.1` ↗︎](https://www.npmjs.com/package/react-hook-form/v/7.73.1) (from `7.72.1`, in `dependencies`) - [#3385](https://github.com/Urigo/accounter-fullstack/pull/3385) [`ad314b8`](https://github.com/Urigo/accounter-fullstack/commit/ad314b85a198434e55aa302b09cb3581032e8b7e) Thanks [@gilgardosh](https://github.com/gilgardosh)! - dependencies updates: - Added dependency [`@atlaskit/pragmatic-drag-and-drop@1.8.0` ↗︎](https://www.npmjs.com/package/@atlaskit/pragmatic-drag-and-drop/v/1.8.0) (to `dependencies`) - Added dependency [`@atlaskit/pragmatic-drag-and-drop-hitbox@1.1.0` ↗︎](https://www.npmjs.com/package/@atlaskit/pragmatic-drag-and-drop-hitbox/v/1.1.0) (to `dependencies`) - [#3403](https://github.com/Urigo/accounter-fullstack/pull/3403) [`b1174ba`](https://github.com/Urigo/accounter-fullstack/commit/b1174ba5ec608a19d68dcfd5e0f60b702921280e) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`@tanstack/react-query@5.100.5` ↗︎](https://www.npmjs.com/package/@tanstack/react-query/v/5.100.5) (from `5.99.2`, in `dependencies`) - [#3404](https://github.com/Urigo/accounter-fullstack/pull/3404) [`27d1f7f`](https://github.com/Urigo/accounter-fullstack/commit/27d1f7fef3dd227d1f706d5a77867a3dbd27e3a1) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`lucide-react@1.11.0` ↗︎](https://www.npmjs.com/package/lucide-react/v/1.11.0) (from `1.8.0`, in `dependencies`) - [#3407](https://github.com/Urigo/accounter-fullstack/pull/3407) [`531e680`](https://github.com/Urigo/accounter-fullstack/commit/531e680ada0e7ce564555874ab143a9ab8b204a7) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`react-hook-form@7.74.0` ↗︎](https://www.npmjs.com/package/react-hook-form/v/7.74.0) (from `7.73.1`, in `dependencies`) - [#3423](https://github.com/Urigo/accounter-fullstack/pull/3423) [`4ca1251`](https://github.com/Urigo/accounter-fullstack/commit/4ca1251cef59fd23e1304bb8989be2d5f333a663) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`pdfjs-dist@5.7.284` ↗︎](https://www.npmjs.com/package/pdfjs-dist/v/5.7.284) (from `5.6.205`, in `dependencies`) - [#3432](https://github.com/Urigo/accounter-fullstack/pull/3432) [`0da7dac`](https://github.com/Urigo/accounter-fullstack/commit/0da7dac9b82b37685b58b02f19c32f06c4bfb636) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - Updated dependency [`lucide-react@1.12.0` ↗︎](https://www.npmjs.com