feat(transactions): concept shell and row language (UI migration PR 5) (#1124)
* feat(transactions): concept shell for scene 10 (header, toolbar, footer)
- Header: title + Importera SplitButton (import guide / manual entry,
last-used mode persisted via ui_state.create_mode.transactions),
replacing the three-button row
- Toolbar in concept order: [Att bokföra/Alla seg with count chip]
[search] [Välj flera as quiet toggle] ... [source ContextPicker far
right merging the old in-list source dropdown (bank/Skatteverket)]
- Bank sync status + sync-now + Bankavstämning move to the concept's
footer status line together with the honest visible-row counter
("n att hantera")
- skv-reconnect banner and all dialogs/actions untouched
Row cards -> concept dry-table conversion follows separately.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* feat(transactions): concept row language for the inbox cards
Rows read like the scene 10 table: date as the first tabular column,
description on one line, amount right (+income in sage), auto-detected
invoice matches as beige suggestion chips instead of primary pills,
tighter hairline rows at 13px. Every action unchanged: Bokför pill,
match/assistant/overflow menu, batch checkboxes, exit animations,
extraction status.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* refactor(transactions): de-bloat rows and chrome to match the concept
- Rows carry only the essentials: date, description, amount, Bokför and
one overflow menu. The inline match and ask-assistant icon buttons
fold into the overflow menu (all actions still one click away)
- The "n nya banktransaktioner sen ditt senaste besök" banner is removed;
the footer sync line covers it
- The Skatteverket reconnect banner becomes the one-ochre-sentence
AttnLine with an inline action (convention 6)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* refactor(ui): extract dry-table primitives into components/ui/dry-table
The concept table styles (TH/TD/VTH/VTD classes, quiet links, RowFoldout)
move out of JournalEntryList so the transaction inbox can render the exact
same table language.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* feat(transactions): Synka bank nu in the Importera menu
Extracts the per-connection sync/reconnect logic into a shared useBankSync()
hook (BankSyncNowButton keeps using it) and adds the concept's first menu row
to the Importera split button: sync all active connections, with the
last-synced age as the row description. Hidden without a connection or the
bank_sync capability; the footer button stays the gated conversion surface.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* feat(transactions): per-account source picker with balances
The context chip becomes the concept's account chooser: always visible in
inbox mode, one row per enabled cash account (PSD2 balance annotation),
an Övriga bucket for bank rows without a registered account, and a
Skattekonto row annotated with the cached saldo. The trigger reads
'Alla källor · <sum>' where the sum covers SEK ledgers + skattekonto.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* feat(transactions): concept dry-table for the inbox
The inbox list becomes the exact Bokforing table: borderless dry-table with
hover-revealed checkboxes and chevrons, one-line rows (date, description,
amount, quiet primary pill + overflow + foldout), and a RowFoldout expansion
carrying the row detail and the full action set as quiet links. Skattekonto
rows render as chip-marked table rows with inline actions. The 'Valj flera'
toggle and the floating batch bar are replaced by the concept bulkbar that
pops in above the table once a row is selected.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* fix(i18n): singular form for bulkbar selection count
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* feat(transactions): suggestion-first Bokfor flow (concept scene 10)
Bokfor on a row with a suggestion now goes straight to the compact
kontering confirm (QuickReview) showing the proposed verifikat; the full
template picker becomes the fallback and the 'Byt mall' path. Rows carry
the concept's 'Forslag: <mall>' chip (with D/K in the tooltip and the
foldout meta). The picker dialog is de-bloated: alternate paths (manuellt,
matcha, ignorera) collapse into quiet links. Modal scroll containers
(DialogContent, SlideOverBody) keep a visible scrollbar thumb: with the
app-wide auto-hide, a long dialog read as cut off at the fold.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* refactor(transactions): drop suggestion UI and foldout action links
Founder direction: no booking suggestions in the list for now (logic comes
later), and the foldout duplicated the overflow menu: the three dots are
the clearer surface. The foldout keeps row detail only (FX conversion,
original bank name, 1930/1630 hint, extraction status) and rows without
any detail no longer expand. The Skattekonto picker row drops its saldo
annotation; the Alla kallor sum covers bank ledgers only.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* feat(transactions): dry-table for the Alla view + pill chips app-wide
The history list joins the inbox's table language: Datum, Beskrivning,
Belopp, Status columns with Bokford as muted text + Visa verifikat quiet
link (normal state) and Ej bokford as the beige exception chip with an
inline Bokfor pill; the business/private tabs become the house seg and the
KALLA header row becomes the standard chip-picker. Skattekonto rows get
the same treatment. SEK conversion moves to a tooltip (one-line rows).
Badge itself becomes the concept chip: pill radius (99px), 11.5px, quiet
padding, replacing the boxy rounded-md look the founder flagged on the
Underlag saknas badge.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* fix(ui): audit round: viewer-disabled split options, touch fallback
Regression-audit fixes: SplitButton options support disabled+disabledTitle
so viewer-gated create paths render inert with the viewer tooltip instead
of silently no-opping (wired on Ny transaktion); the history list gets its
Kopplad till faktura indicator back; dead transactionsWithMatches memo
removed; and coarse-pointer devices now always show hover-revealed
controls (checkboxes, chevrons, quiet row actions) since touch has no
hover.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
aa72a75dfc
commit
1ccf7ab81f
+32
-5
@@ -2661,7 +2661,11 @@
|
||||
"possible_duplicate": "Possible duplicate",
|
||||
"link": "Link",
|
||||
"match": "Match",
|
||||
"view_voucher_short": "View voucher"
|
||||
"view_voucher_short": "View voucher",
|
||||
"th_date": "Date",
|
||||
"th_description": "Description",
|
||||
"th_amount": "Amount",
|
||||
"th_status": "Status"
|
||||
},
|
||||
"tx_categories": {
|
||||
"expense_representation": "Representation",
|
||||
@@ -4476,11 +4480,9 @@
|
||||
"action_import": "Import",
|
||||
"action_review_all": "Review all",
|
||||
"action_review_loading": "Loading...",
|
||||
"action_select_multi_start": "Select several",
|
||||
"action_select_multi_end": "Done",
|
||||
"action_new_transaction": "New transaction",
|
||||
"viewer_disabled_tooltip": "You only have viewer access in this company",
|
||||
"mode_inbox": "To post",
|
||||
"mode_inbox": "To record",
|
||||
"mode_history": "All transactions",
|
||||
"source_label": "Source:",
|
||||
"source_all": "All ({count})",
|
||||
@@ -4553,7 +4555,32 @@
|
||||
"bank_sync_session_expired": "Bank connection expired",
|
||||
"bank_sync_session_expired_desc": "Reconnect to keep syncing transactions.",
|
||||
"import_psd2_active_warning_title": "PSD2 is active for {bankName}",
|
||||
"import_psd2_active_warning_body": "Transactions sync automatically each night. File imports are only needed for older history or when PSD2 isn't working; otherwise duplicates may occur."
|
||||
"import_psd2_active_warning_body": "Transactions sync automatically each night. File imports are only needed for older history or when PSD2 isn't working; otherwise duplicates may occur.",
|
||||
"create_import_desc": "CSV or SIE file from your bank",
|
||||
"create_manual_desc": "Cash, personal outlays",
|
||||
"create_synka": "Sync bank now",
|
||||
"create_synka_desc": "Fetches new transactions from your bank",
|
||||
"create_synka_desc_last": "Last synced {age}",
|
||||
"source_all_label": "All sources",
|
||||
"source_bank_label": "Bank",
|
||||
"source_bank_other": "Other bank items",
|
||||
"source_skatteverket_label": "Skattekonto",
|
||||
"source_account_fallback": "Account",
|
||||
"th_date": "Date",
|
||||
"th_description": "Description",
|
||||
"th_amount": "Amount",
|
||||
"th_status": "Status",
|
||||
"bulkbar_selected": "selected",
|
||||
"batch_book": "Book",
|
||||
"batch_bulk_book": "Book as one voucher",
|
||||
"batch_bulk_book_hint": "Select at least two transactions from the same date and the same direction",
|
||||
"batch_ignore": "Ignore",
|
||||
"batch_delete": "Delete",
|
||||
"batch_select_all": "Select all ({count})",
|
||||
"batch_clear": "Clear selection",
|
||||
"batch_progress": "Booking {done} of {total}…",
|
||||
"mode_all": "All",
|
||||
"footer_to_handle": "{count, plural, =0 {Nothing to handle} =1 {1 to handle} other {# to handle}}"
|
||||
},
|
||||
"bookkeeping": {
|
||||
"edit_draft_dialog_title": "Edit draft",
|
||||
|
||||
+32
-5
@@ -2661,7 +2661,11 @@
|
||||
"possible_duplicate": "Möjlig dublett",
|
||||
"link": "Koppla",
|
||||
"match": "Matcha",
|
||||
"view_voucher_short": "Visa verifikat"
|
||||
"view_voucher_short": "Visa verifikat",
|
||||
"th_date": "Datum",
|
||||
"th_description": "Beskrivning",
|
||||
"th_amount": "Belopp",
|
||||
"th_status": "Status"
|
||||
},
|
||||
"tx_categories": {
|
||||
"expense_representation": "Representation",
|
||||
@@ -3828,7 +3832,7 @@
|
||||
"confirm_post_title": "Bokför verifikat",
|
||||
"confirm_post_description": "Bokförs som verifikat {voucher}: {description}, {amount}. Verifikatet kan inte ändras i efterhand, bara rättas eller stornas.",
|
||||
"confirm_post_description_generic": "Verifikatet \"{description}\" bokförs med nästa lediga verifikationsnummer och kan därefter inte ändras, bara rättas eller stornas.",
|
||||
"bulkbar_selected": "markerade"
|
||||
"bulkbar_selected": "{count, plural, one {markerad} other {markerade}}"
|
||||
},
|
||||
"attachment_preview_sheet": {
|
||||
"title": "Bilagor",
|
||||
@@ -4476,8 +4480,6 @@
|
||||
"action_import": "Importera",
|
||||
"action_review_all": "Gå igenom alla",
|
||||
"action_review_loading": "Laddar...",
|
||||
"action_select_multi_start": "Välj flera",
|
||||
"action_select_multi_end": "Avsluta",
|
||||
"action_new_transaction": "Ny transaktion",
|
||||
"viewer_disabled_tooltip": "Du har endast läsbehörighet i detta företag",
|
||||
"mode_inbox": "Att bokföra",
|
||||
@@ -4553,7 +4555,32 @@
|
||||
"bank_sync_session_expired": "Bankanslutningen har löpt ut",
|
||||
"bank_sync_session_expired_desc": "Förnya anslutningen för att fortsätta synka transaktioner.",
|
||||
"import_psd2_active_warning_title": "PSD2 är aktivt för {bankName}",
|
||||
"import_psd2_active_warning_body": "Transaktioner synkas automatiskt varje natt. Filimport behövs bara för äldre historik eller om PSD2 inte fungerar; annars kan dubbletter uppstå."
|
||||
"import_psd2_active_warning_body": "Transaktioner synkas automatiskt varje natt. Filimport behövs bara för äldre historik eller om PSD2 inte fungerar; annars kan dubbletter uppstå.",
|
||||
"create_import_desc": "CSV- eller SIE-fil från banken",
|
||||
"create_manual_desc": "Kontanter, egna utlägg",
|
||||
"create_synka": "Synka bank nu",
|
||||
"create_synka_desc": "Hämtar nya transaktioner från banken",
|
||||
"create_synka_desc_last": "Senast synkad {age}",
|
||||
"source_all_label": "Alla källor",
|
||||
"source_bank_label": "Bank",
|
||||
"source_bank_other": "Övriga bankhändelser",
|
||||
"source_skatteverket_label": "Skattekonto",
|
||||
"source_account_fallback": "Konto",
|
||||
"th_date": "Datum",
|
||||
"th_description": "Beskrivning",
|
||||
"th_amount": "Belopp",
|
||||
"th_status": "Status",
|
||||
"bulkbar_selected": "{count, plural, one {markerad} other {markerade}}",
|
||||
"batch_book": "Bokför",
|
||||
"batch_bulk_book": "Bokför i klump",
|
||||
"batch_bulk_book_hint": "Välj minst två transaktioner från samma datum och samma riktning",
|
||||
"batch_ignore": "Ignorera",
|
||||
"batch_delete": "Ta bort",
|
||||
"batch_select_all": "Markera alla ({count})",
|
||||
"batch_clear": "Avmarkera",
|
||||
"batch_progress": "Bokför {done} av {total}…",
|
||||
"mode_all": "Alla",
|
||||
"footer_to_handle": "{count, plural, =0 {Inget att hantera} =1 {1 att hantera} other {# att hantera}}"
|
||||
},
|
||||
"bookkeeping": {
|
||||
"edit_draft_dialog_title": "Redigera utkast",
|
||||
|
||||
Reference in New Issue
Block a user