feat(ui): rest-of-nav 1 — Viktiga datum, Skattekonto, Periodiseringar, Import to the concept language (#1140)
* feat(ui): concept scenes 17/24/32/33 for Viktiga datum, Skattekonto, Periodiseringar and Import (rest-of-nav 1) Viktiga datum: thread rows with type-icon circles behind a type seg (Alla/Skatt/Fakturering/Egna), Narmast countdown pane, Ny deadline lifted to the page header, both banners replaced by one AttnLine, mark-done via ConfirmDialog. DeadlineCard/DeadlineFilters die; DeadlineRow is the row. Skattekonto: card-less saldo hero with OCR + quiet copy, shortfall AttnLine computed from the next drain date with a betalningsuppgifter dialog (bankgiro 5050-1055 + OCR), one dry-table with Kommande/Forfallna/ Genomforda band rows, chips only on unbooked genomforda rows, quiet hover actions. Tabs and per-row badge noise are gone; the concept's Saldo column is dropped because SKV stores no per-row running balance. Periodiseringar: banner becomes an AttnLine with inline Bokfor forfallna (now confirm-first), house seg with Aktiva count, dry-table with muted normal states and animated RowFoldout for installments, Los upp nu as a quiet hover link through the shared ConfirmDialog. Import: tabs collapse into one two-column row list (Importera | Exportera) in the concept row language; SIE export moves into a small dialog and Molnsynkronisering folds the CloudBackupCard open in place. The /import?view=export#sie-export and /import#cloud-backup deep links keep working. Sandbox notice is an AttnLine. All four pages get stagger-enter, a help popover behind ? and sv+en keys for every new string. 9189 tests green, lint clean, guards pass. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * chore(ui): align dashboard loading skeletons with the migrated page silhouettes Folds in the parallel WIP from this checkout at the founder's request: every loading.tsx under (dashboard) now mirrors its migrated page row-for-row (24px title block, pill actions, borderless table heads, single-line rows), and the shared (dashboard)/loading.tsx takes Hem's greeting + Att gora silhouette. Also lands the pending DECISIONS.md lines (onboarding swap plan note + rest-of-nav 1 deviations). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * polish(ui): authority logos, stat-tile skattekonto hero, quieter type on rest-of-nav 1 Viktiga datum: statutory deadlines wear the receiving authority's mark (Skatteverket for tax dates, Bolagsverket for arsredovisning/arsstamma) as a small badge on white; other deadlines keep the neutral type icons. Row dates go muted, titles drop font-medium, the Narmast countdown steps down to the house text-4xl display scale. Skattekonto: the 32px serif hero becomes two compact metric tiles in the KPIHeroCards idiom (saldo with the Skatteverket mark + OCR meta, nasta dragning with date and event count), matching how numbers read on the migrated pages. Periodiseringar: chevron column dropped; rows expand on click exactly like the verifikat list. Import: provider logo chips return on Hamta fran annat system (live- version parity) and Koppla bank carries the Enable Banking mark. Adds skatteverket(_color), bolagsverket, enable-banking plus claude/ anthropic marks (for future use) under public/logos/. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * polish(ui): keep Importera and Exportera as separate tabs on the import page Founder feedback: the merged two-column landing goes back to the familiar split. The house seg switches between the Importera rows and the Exportera rows (SIE 4 dialog + Molnsynkronisering fold), ?view=export selects the export tab again and the hash deep links flip to it before opening their surface. Row language and logo chips stay. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(ui): readable Enable Banking mark and full-width skattekonto The enable-banking.webp is the full stacked logo in white-on-transparent: invisible on the light chip and mush at 16px. The chip now uses a cropped 368px icon square (enable-banking-icon.png) with the marketing site's grayscale+brightness treatment in light mode and a white lift in dark. Skattekonto loses its max-w-3xl cap so the table stretches the content column exactly like Bokforing and Transaktioner; the saldo tiles take KPI-card width (lg:grid-cols-4). Import's tab columns stretch too. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(ui): address review-bot findings on rest-of-nav 1 CodeRabbit triage, all three confirmed real: the Bokfor forfallna attn action is hidden for read-only users instead of rendering a no-op link; a failed deadline edit rethrows so the form stays open with the user's input; authority marks are reserved for statutory (system-generated) deadlines: a manual tax-category deadline keeps the neutral icon. Compliance swarm's two high findings verified clean, no change needed: /api/bookkeeping/accruals/:id/dissolve and /api/deadlines/:id (+ /complete) all run through withRouteContext with company_id scoping and 404 on miss. 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
d840257c0c
commit
2bec5acedb
+66
-13
@@ -537,7 +537,7 @@
|
||||
"history_reason": "reason: \"{reason}\""
|
||||
},
|
||||
"deadlines": {
|
||||
"title": "Deadlines",
|
||||
"title": "Key dates",
|
||||
"load_failed_title": "Could not load deadlines",
|
||||
"load_failed_description": "Check your connection and try again.",
|
||||
"created_title": "Deadline created",
|
||||
@@ -570,7 +570,32 @@
|
||||
"group_mark_done": "Mark as done",
|
||||
"group_confirm_question": "Mark <hl>{title}</hl> as done?",
|
||||
"group_cancel": "Cancel",
|
||||
"group_confirm": "Confirm"
|
||||
"group_confirm": "Confirm",
|
||||
"new_deadline": "New deadline",
|
||||
"read_only_tooltip": "You have read-only access in this company",
|
||||
"generating": "Generating…",
|
||||
"help_text": "Deadlines for VAT, employer declarations and F-tax are generated automatically from your company's tax settings. Add your own with New deadline; click a row to edit it.",
|
||||
"overdue_invoices_action": "View the invoices",
|
||||
"seg_all": "All",
|
||||
"seg_tax": "Tax",
|
||||
"seg_invoicing": "Invoicing",
|
||||
"seg_own": "Your own",
|
||||
"section_overdue": "Overdue",
|
||||
"section_today": "Today",
|
||||
"section_upcoming": "Upcoming",
|
||||
"section_completed": "Done",
|
||||
"nearest_title": "Next up",
|
||||
"nearest_days_to": "days until {title}",
|
||||
"nearest_empty": "Nothing coming up.",
|
||||
"nearest_overdue": "{count, plural, one {1 overdue} other {# overdue}}",
|
||||
"rel_today": "Today",
|
||||
"rel_tomorrow": "Tomorrow",
|
||||
"rel_days_ago": "{count, plural, one {1 day ago} other {# days ago}}",
|
||||
"rel_in_days": "{count, plural, one {In 1 day} other {In # days}}",
|
||||
"mark_not_done": "Undo done",
|
||||
"empty_title": "No deadlines yet.",
|
||||
"empty_filtered": "No deadlines match the filter.",
|
||||
"confirm_done_title": "Mark as done?"
|
||||
},
|
||||
"bureau": {
|
||||
"title": "Bureau",
|
||||
@@ -5851,7 +5876,7 @@
|
||||
"missing_rate": "Missing rate"
|
||||
},
|
||||
"import": {
|
||||
"title": "Import",
|
||||
"title": "Import / export",
|
||||
"subtitle": "Import bank transactions or bookkeeping data into your company",
|
||||
"export_title": "Export",
|
||||
"export_subtitle": "Download your bookkeeping as a SIE file or back it up to Google Drive",
|
||||
@@ -5862,28 +5887,33 @@
|
||||
"psd2_title": "Connect bank",
|
||||
"psd2_recommended": "Recommended",
|
||||
"psd2_requires_subscription": "Requires subscription",
|
||||
"psd2_description": "Connect your bank account directly and sync transactions automatically via PSD2.",
|
||||
"psd2_description": "Automatic bank transaction sync via PSD2",
|
||||
"migration_title": "Import from another system",
|
||||
"migration_description": "Nothing changes in your existing system.",
|
||||
"bankfile_title": "Bank transactions",
|
||||
"bankfile_description": "Import statements from your bank. Supports most Swedish banks.",
|
||||
"csv_data_title": "Import CSV / Excel data",
|
||||
"csv_data_description": "Import opening balances, customers, suppliers, or articles.",
|
||||
"bankfile_title": "Bank file",
|
||||
"bankfile_description": "CSV, OFX or your bank's own formats: SEB, Swedbank, Nordea",
|
||||
"csv_data_title": "CSV or Excel",
|
||||
"csv_data_description": "Opening balances, customers, suppliers and articles",
|
||||
"csv_chip_opening_balances": "Opening balances",
|
||||
"csv_chip_customers": "Customers",
|
||||
"csv_chip_suppliers": "Suppliers",
|
||||
"csv_chip_articles": "Articles",
|
||||
"sie_title": "Bookkeeping data (SIE)",
|
||||
"sie_description": "Import journal entries and chart of accounts from another bookkeeping system.",
|
||||
"sie_title": "SIE file",
|
||||
"sie_description": "Bookkeeping from another system or from your accountant",
|
||||
"loading_migration": "Loading migration tool...",
|
||||
"export_heading": "Export",
|
||||
"export_sie_title": "Export SIE file",
|
||||
"export_sie_description": "Export your bookkeeping as a SIE4 file for your accountant or for migrating to another system.",
|
||||
"export_sie_title": "SIE 4",
|
||||
"export_sie_description": "Any fiscal year, with or without closing entries",
|
||||
"export_sie_period_label": "Fiscal year",
|
||||
"export_sie_button": "Download SIE",
|
||||
"export_sie_no_period": "Select a fiscal year to export.",
|
||||
"export_sie_exclude_closing_label": "Exclude year-end closing voucher (recommended for eDeklarera and systems that do their own year-end closing)",
|
||||
"export_cloud_title": "Cloud backup to Google Drive"
|
||||
"export_cloud_title": "Cloud backup to Google Drive",
|
||||
"export_sie_dialog_description": "Download your bookkeeping as a SIE4 file for your accountant or for moving to another system.",
|
||||
"cloud_row_title": "Cloud sync",
|
||||
"cloud_row_description": "Continuous backup of the archive to Google Drive",
|
||||
"help_text": "Every way in and out lives here: bank connections, file imports and migrations from other systems, plus SIE export and backups. Every import is reviewed before anything is booked.",
|
||||
"pgnote": "Every import goes through the same steps: upload, map columns, review, result. Nothing is booked without you seeing it first."
|
||||
},
|
||||
"annualReportStudio": {
|
||||
"choose": "Välj",
|
||||
@@ -5986,5 +6016,28 @@
|
||||
"preset_reports_description": "Reports are generated automatically once you have enough data. Start by creating invoices or importing transactions.",
|
||||
"preset_reports_action": "Create invoice",
|
||||
"preset_reports_secondary": "Import transactions"
|
||||
},
|
||||
"skattekonto": {
|
||||
"help_text": "The balance and events are fetched from Skatteverket and synced automatically every night. Completed events are booked against 1630 Skattekonto, usually automatically; anything that cannot be matched is flagged in the list. Pay in via bankgiro 5050-1055 with your OCR number.",
|
||||
"copy": "copy",
|
||||
"attn_reconnect_action": "Reconnect",
|
||||
"attn_shortfall": "The charge on {date} is {charge}. The balance is {missing} short.",
|
||||
"attn_show_payment": "Show payment details",
|
||||
"band_upcoming": "Upcoming",
|
||||
"band_overdue": "Overdue",
|
||||
"band_booked": "Completed",
|
||||
"no_transactions": "No transactions yet. Sync to fetch the tax account.",
|
||||
"chip_not_booked": "Not booked",
|
||||
"chip_possible_duplicate": "Possible duplicate of {voucher}",
|
||||
"chip_draft": "draft",
|
||||
"action_show_voucher": "Show voucher",
|
||||
"action_match": "Match",
|
||||
"action_book": "Book",
|
||||
"action_booking": "Booking…",
|
||||
"payment_title": "Payment details",
|
||||
"payment_description": "The charge on {date} is {charge}.",
|
||||
"payment_bankgiro_label": "Bankgiro (Skatteverket)",
|
||||
"payment_shortfall_label": "Missing on the account",
|
||||
"pgnote": "Synced automatically every night. Completed events are booked against 1630 Skattekonto, usually automatically, and deviations are flagged here. Kronofogden: {amount}."
|
||||
}
|
||||
}
|
||||
|
||||
+66
-13
@@ -537,7 +537,7 @@
|
||||
"history_reason": "orsak: \"{reason}\""
|
||||
},
|
||||
"deadlines": {
|
||||
"title": "Deadlines",
|
||||
"title": "Viktiga datum",
|
||||
"load_failed_title": "Kunde inte ladda deadlines",
|
||||
"load_failed_description": "Kontrollera din anslutning och försök igen.",
|
||||
"created_title": "Deadline skapad",
|
||||
@@ -570,7 +570,32 @@
|
||||
"group_mark_done": "Markera klar",
|
||||
"group_confirm_question": "Markera <hl>{title}</hl> som klar?",
|
||||
"group_cancel": "Avbryt",
|
||||
"group_confirm": "Bekräfta"
|
||||
"group_confirm": "Bekräfta",
|
||||
"new_deadline": "Ny deadline",
|
||||
"read_only_tooltip": "Du har endast läsbehörighet i detta företag",
|
||||
"generating": "Genererar…",
|
||||
"help_text": "Deadlines för moms, arbetsgivardeklaration och F-skatt skapas automatiskt från företagets skatteinställningar. Egna deadlines lägger du till med Ny deadline; klicka på en rad för att ändra den.",
|
||||
"overdue_invoices_action": "Visa fakturorna",
|
||||
"seg_all": "Alla",
|
||||
"seg_tax": "Skatt",
|
||||
"seg_invoicing": "Fakturering",
|
||||
"seg_own": "Egna",
|
||||
"section_overdue": "Förfallna",
|
||||
"section_today": "Idag",
|
||||
"section_upcoming": "Kommande",
|
||||
"section_completed": "Klara",
|
||||
"nearest_title": "Närmast",
|
||||
"nearest_days_to": "dagar till {title}",
|
||||
"nearest_empty": "Inget på gång.",
|
||||
"nearest_overdue": "{count, plural, one {1 förfallen} other {# förfallna}}",
|
||||
"rel_today": "Idag",
|
||||
"rel_tomorrow": "Imorgon",
|
||||
"rel_days_ago": "{count, plural, one {1 dag sedan} other {# dagar sedan}}",
|
||||
"rel_in_days": "{count, plural, one {Om 1 dag} other {Om # dagar}}",
|
||||
"mark_not_done": "Ångra klar",
|
||||
"empty_title": "Inga deadlines ännu.",
|
||||
"empty_filtered": "Inga deadlines matchar filtret.",
|
||||
"confirm_done_title": "Markera som klar?"
|
||||
},
|
||||
"bureau": {
|
||||
"title": "Byrå",
|
||||
@@ -5851,7 +5876,7 @@
|
||||
"missing_rate": "Saknar timpris"
|
||||
},
|
||||
"import": {
|
||||
"title": "Importera",
|
||||
"title": "Importera / exportera",
|
||||
"subtitle": "Importera banktransaktioner eller bokföringsdata till ditt företag",
|
||||
"export_title": "Exportera",
|
||||
"export_subtitle": "Ladda ner bokföringen som SIE-fil eller säkerhetskopia till Google Drive",
|
||||
@@ -5862,28 +5887,33 @@
|
||||
"psd2_title": "Koppla bank",
|
||||
"psd2_recommended": "Rekommenderat",
|
||||
"psd2_requires_subscription": "Kräver abonnemang",
|
||||
"psd2_description": "Anslut ditt bankkonto direkt och synka transaktioner automatiskt via PSD2.",
|
||||
"psd2_description": "Automatisk hämtning av banktransaktioner via PSD2",
|
||||
"migration_title": "Hämta från annat system",
|
||||
"migration_description": "Inget ändras i ditt befintliga system.",
|
||||
"bankfile_title": "Banktransaktioner",
|
||||
"bankfile_description": "Importera kontoutdrag från din bank. Stöder de flesta svenska banker.",
|
||||
"csv_data_title": "Importera CSV/Excel-data",
|
||||
"csv_data_description": "Importera ingående balanser, kunder, leverantörer eller artiklar.",
|
||||
"bankfile_title": "Bankfil",
|
||||
"bankfile_description": "CSV, OFX eller bankens egna format: SEB, Swedbank, Nordea",
|
||||
"csv_data_title": "CSV eller Excel",
|
||||
"csv_data_description": "Ingående balanser, kunder, leverantörer och artiklar",
|
||||
"csv_chip_opening_balances": "Ingående balanser",
|
||||
"csv_chip_customers": "Kunder",
|
||||
"csv_chip_suppliers": "Leverantörer",
|
||||
"csv_chip_articles": "Artiklar",
|
||||
"sie_title": "Bokföringsdata (SIE)",
|
||||
"sie_description": "Importera verifikationer och kontoplan från ett annat bokföringsprogram.",
|
||||
"sie_title": "SIE-fil",
|
||||
"sie_description": "Bokföring från ett annat system eller från revisorn",
|
||||
"loading_migration": "Laddar migreringsverktyg...",
|
||||
"export_heading": "Exportera",
|
||||
"export_sie_title": "Exportera SIE-fil",
|
||||
"export_sie_description": "Exportera bokföringen som SIE4-fil för revisor eller programmigrering.",
|
||||
"export_sie_title": "SIE 4",
|
||||
"export_sie_description": "Valfritt räkenskapsår, med eller utan bokslutsposter",
|
||||
"export_sie_period_label": "Räkenskapsår",
|
||||
"export_sie_button": "Ladda ner SIE",
|
||||
"export_sie_no_period": "Välj ett räkenskapsår för att exportera.",
|
||||
"export_sie_exclude_closing_label": "Exkludera bokslutsverifikat (rekommenderas för eDeklarera och system som gör eget bokslut)",
|
||||
"export_cloud_title": "Säkerhetskopia till Google Drive"
|
||||
"export_cloud_title": "Säkerhetskopia till Google Drive",
|
||||
"export_sie_dialog_description": "Ladda ner bokföringen som SIE4-fil för revisorn eller för flytt till ett annat system.",
|
||||
"cloud_row_title": "Molnsynkronisering",
|
||||
"cloud_row_description": "Löpande säkerhetskopia av arkivet till Google Drive",
|
||||
"help_text": "Här samlas alla vägar in och ut: bankkoppling, filimporter och flytt från andra system, samt export av SIE och säkerhetskopior. Varje import granskas innan något bokförs.",
|
||||
"pgnote": "Varje import går genom samma steg: ladda upp, mappa kolumner, granska, resultat. Inget bokförs utan att du ser det först."
|
||||
},
|
||||
"annualReportStudio": {
|
||||
"choose": "Välj",
|
||||
@@ -5986,5 +6016,28 @@
|
||||
"preset_reports_description": "Rapporter genereras automatiskt när du har tillräckligt med data. Börja med att skapa fakturor eller importera transaktioner.",
|
||||
"preset_reports_action": "Skapa faktura",
|
||||
"preset_reports_secondary": "Importera transaktioner"
|
||||
},
|
||||
"skattekonto": {
|
||||
"help_text": "Saldot och händelserna hämtas från Skatteverket och synkas automatiskt varje natt. Genomförda händelser bokförs mot 1630 Skattekonto, oftast automatiskt; det som inte kan matchas flaggas i listan. Betala in via bankgiro 5050-1055 med ditt OCR-nummer.",
|
||||
"copy": "kopiera",
|
||||
"attn_reconnect_action": "Anslut igen",
|
||||
"attn_shortfall": "Dragningen {date} är {charge}. Saldot saknar {missing}.",
|
||||
"attn_show_payment": "Visa betalningsuppgifter",
|
||||
"band_upcoming": "Kommande",
|
||||
"band_overdue": "Förfallna",
|
||||
"band_booked": "Genomförda",
|
||||
"no_transactions": "Inga transaktioner ännu. Synkronisera för att hämta skattekontot.",
|
||||
"chip_not_booked": "Ej bokförd",
|
||||
"chip_possible_duplicate": "Möjlig dublett av {voucher}",
|
||||
"chip_draft": "utkast",
|
||||
"action_show_voucher": "Visa verifikat",
|
||||
"action_match": "Matcha",
|
||||
"action_book": "Bokför",
|
||||
"action_booking": "Bokför…",
|
||||
"payment_title": "Betalningsuppgifter",
|
||||
"payment_description": "Dragningen {date} är {charge}.",
|
||||
"payment_bankgiro_label": "Bankgiro (Skatteverket)",
|
||||
"payment_shortfall_label": "Saknas på kontot",
|
||||
"pgnote": "Synkas automatiskt varje natt. Genomförda händelser bokförs mot 1630 Skattekonto, oftast automatiskt, och avvikelser flaggas här. Kronofogden: {amount}."
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user