@spaceinvoices/react-ui 0.1.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli/dist/index.js +1 -1
- package/package.json +1 -1
- package/registry.json +287 -122
- package/src/components/activities/activity-timeline.tsx +8 -1
- package/src/components/activities/locales/es.ts +30 -0
- package/src/components/activities/locales/fr.ts +30 -0
- package/src/components/activities/locales/hr.ts +30 -0
- package/src/components/activities/locales/it.ts +30 -0
- package/src/components/activities/locales/nl.ts +30 -0
- package/src/components/activities/locales/pl.ts +30 -0
- package/src/components/activities/locales/pt.ts +30 -0
- package/src/components/advance-invoices/create/create-advance-invoice-form.tsx +21 -7
- package/src/components/advance-invoices/create/locales/es.ts +29 -0
- package/src/components/advance-invoices/create/locales/fr.ts +28 -0
- package/src/components/advance-invoices/create/locales/hr.ts +27 -0
- package/src/components/advance-invoices/create/locales/it.ts +29 -0
- package/src/components/advance-invoices/create/locales/nl.ts +28 -0
- package/src/components/advance-invoices/create/locales/pl.ts +28 -0
- package/src/components/advance-invoices/create/locales/pt.ts +29 -0
- package/src/components/advance-invoices/create/prepare-advance-invoice-submission.ts +3 -3
- package/src/components/advance-invoices/list/list-table.tsx +20 -3
- package/src/components/advance-invoices/list/locales/de.ts +9 -0
- package/src/components/advance-invoices/list/locales/en.ts +8 -0
- package/src/components/advance-invoices/list/locales/es.ts +41 -0
- package/src/components/advance-invoices/list/locales/fr.ts +41 -0
- package/src/components/advance-invoices/list/locales/hr.ts +41 -0
- package/src/components/advance-invoices/list/locales/it.ts +41 -0
- package/src/components/advance-invoices/list/locales/nl.ts +41 -0
- package/src/components/advance-invoices/list/locales/pl.ts +41 -0
- package/src/components/advance-invoices/list/locales/pt.ts +41 -0
- package/src/components/advance-invoices/list/locales/sl.ts +9 -0
- package/src/components/credit-notes/create/create-credit-note-form.tsx +19 -5
- package/src/components/credit-notes/create/locales/es.ts +68 -0
- package/src/components/credit-notes/create/locales/fr.ts +69 -0
- package/src/components/credit-notes/create/locales/hr.ts +68 -0
- package/src/components/credit-notes/create/locales/it.ts +68 -0
- package/src/components/credit-notes/create/locales/nl.ts +69 -0
- package/src/components/credit-notes/create/locales/pl.ts +68 -0
- package/src/components/credit-notes/create/locales/pt.ts +68 -0
- package/src/components/credit-notes/list/list-table.tsx +25 -8
- package/src/components/credit-notes/list/locales/de.ts +10 -2
- package/src/components/credit-notes/list/locales/en.ts +8 -0
- package/src/components/credit-notes/list/locales/es.ts +41 -0
- package/src/components/credit-notes/list/locales/fr.ts +41 -0
- package/src/components/credit-notes/list/locales/hr.ts +41 -0
- package/src/components/credit-notes/list/locales/it.ts +41 -0
- package/src/components/credit-notes/list/locales/nl.ts +41 -0
- package/src/components/credit-notes/list/locales/pl.ts +41 -0
- package/src/components/credit-notes/list/locales/pt.ts +41 -0
- package/src/components/credit-notes/list/locales/sl.ts +10 -2
- package/src/components/customers/create-customer-form/create-customer-form.tsx +21 -3
- package/src/components/customers/create-customer-form/locales/de.ts +1 -0
- package/src/components/customers/create-customer-form/locales/es.ts +21 -0
- package/src/components/customers/create-customer-form/locales/fr.ts +21 -0
- package/src/components/customers/create-customer-form/locales/hr.ts +21 -0
- package/src/components/customers/create-customer-form/locales/it.ts +21 -0
- package/src/components/customers/create-customer-form/locales/nl.ts +21 -0
- package/src/components/customers/create-customer-form/locales/pl.ts +21 -0
- package/src/components/customers/create-customer-form/locales/pt.ts +21 -0
- package/src/components/customers/create-customer-form/locales/sl.ts +1 -0
- package/src/components/customers/customer-list-table/customer-list-row-actions.tsx +72 -16
- package/src/components/customers/customer-list-table/customer-list-table.tsx +35 -2
- package/src/components/customers/customer-list-table/locales/de.ts +9 -0
- package/src/components/customers/customer-list-table/locales/en.ts +10 -0
- package/src/components/customers/customer-list-table/locales/es.ts +25 -0
- package/src/components/customers/customer-list-table/locales/fr.ts +25 -0
- package/src/components/customers/customer-list-table/locales/hr.ts +25 -0
- package/src/components/customers/customer-list-table/locales/it.ts +25 -0
- package/src/components/customers/customer-list-table/locales/nl.ts +25 -0
- package/src/components/customers/customer-list-table/locales/pl.ts +25 -0
- package/src/components/customers/customer-list-table/locales/pt.ts +25 -0
- package/src/components/customers/customer-list-table/locales/sl.ts +9 -0
- package/src/components/customers/customers.hooks.test.ts +8 -8
- package/src/components/customers/customers.hooks.ts +6 -1
- package/src/components/customers/edit-customer-form/edit-customer-form.tsx +143 -0
- package/src/components/customers/edit-customer-form/locales/de.ts +13 -0
- package/src/components/customers/edit-customer-form/locales/es.ts +13 -0
- package/src/components/customers/edit-customer-form/locales/fr.ts +13 -0
- package/src/components/customers/edit-customer-form/locales/hr.ts +13 -0
- package/src/components/customers/edit-customer-form/locales/it.ts +13 -0
- package/src/components/customers/edit-customer-form/locales/nl.ts +13 -0
- package/src/components/customers/edit-customer-form/locales/pl.ts +13 -0
- package/src/components/customers/edit-customer-form/locales/pt.ts +13 -0
- package/src/components/customers/edit-customer-form/locales/sl.ts +13 -0
- package/src/components/customers/index.ts +1 -0
- package/src/components/dashboard/collection-rate-card/collection-rate-card.tsx +9 -1
- package/src/components/dashboard/collection-rate-card/locales/de.ts +3 -0
- package/src/components/dashboard/collection-rate-card/locales/es.ts +3 -0
- package/src/components/dashboard/collection-rate-card/locales/fr.ts +3 -0
- package/src/components/dashboard/collection-rate-card/locales/hr.ts +3 -0
- package/src/components/dashboard/collection-rate-card/locales/it.ts +3 -0
- package/src/components/dashboard/collection-rate-card/locales/nl.ts +3 -0
- package/src/components/dashboard/collection-rate-card/locales/pl.ts +3 -0
- package/src/components/dashboard/collection-rate-card/locales/pt.ts +3 -0
- package/src/components/dashboard/invoice-status-chart/invoice-status-chart.tsx +9 -1
- package/src/components/dashboard/invoice-status-chart/locales/de.ts +9 -0
- package/src/components/dashboard/invoice-status-chart/locales/es.ts +9 -0
- package/src/components/dashboard/invoice-status-chart/locales/fr.ts +9 -0
- package/src/components/dashboard/invoice-status-chart/locales/hr.ts +9 -0
- package/src/components/dashboard/invoice-status-chart/locales/it.ts +9 -0
- package/src/components/dashboard/invoice-status-chart/locales/nl.ts +9 -0
- package/src/components/dashboard/invoice-status-chart/locales/pl.ts +9 -0
- package/src/components/dashboard/invoice-status-chart/locales/pt.ts +9 -0
- package/src/components/dashboard/payment-methods-chart/locales/de.ts +12 -0
- package/src/components/dashboard/payment-methods-chart/locales/es.ts +12 -0
- package/src/components/dashboard/payment-methods-chart/locales/fr.ts +12 -0
- package/src/components/dashboard/payment-methods-chart/locales/hr.ts +12 -0
- package/src/components/dashboard/payment-methods-chart/locales/it.ts +12 -0
- package/src/components/dashboard/payment-methods-chart/locales/nl.ts +12 -0
- package/src/components/dashboard/payment-methods-chart/locales/pl.ts +12 -0
- package/src/components/dashboard/payment-methods-chart/locales/pt.ts +12 -0
- package/src/components/dashboard/payment-methods-chart/payment-methods-chart.tsx +9 -1
- package/src/components/dashboard/payment-trend-chart/locales/de.ts +5 -0
- package/src/components/dashboard/payment-trend-chart/locales/es.ts +5 -0
- package/src/components/dashboard/payment-trend-chart/locales/fr.ts +5 -0
- package/src/components/dashboard/payment-trend-chart/locales/hr.ts +5 -0
- package/src/components/dashboard/payment-trend-chart/locales/it.ts +5 -0
- package/src/components/dashboard/payment-trend-chart/locales/nl.ts +5 -0
- package/src/components/dashboard/payment-trend-chart/locales/pl.ts +5 -0
- package/src/components/dashboard/payment-trend-chart/locales/pt.ts +5 -0
- package/src/components/dashboard/payment-trend-chart/payment-trend-chart.tsx +10 -2
- package/src/components/dashboard/revenue-trend-chart/locales/de.ts +5 -0
- package/src/components/dashboard/revenue-trend-chart/locales/es.ts +5 -0
- package/src/components/dashboard/revenue-trend-chart/locales/fr.ts +5 -0
- package/src/components/dashboard/revenue-trend-chart/locales/hr.ts +5 -0
- package/src/components/dashboard/revenue-trend-chart/locales/it.ts +5 -0
- package/src/components/dashboard/revenue-trend-chart/locales/nl.ts +5 -0
- package/src/components/dashboard/revenue-trend-chart/locales/pl.ts +5 -0
- package/src/components/dashboard/revenue-trend-chart/locales/pt.ts +5 -0
- package/src/components/dashboard/revenue-trend-chart/revenue-trend-chart.tsx +10 -2
- package/src/components/dashboard/top-customers-chart/locales/de.ts +5 -0
- package/src/components/dashboard/top-customers-chart/locales/es.ts +5 -0
- package/src/components/dashboard/top-customers-chart/locales/fr.ts +5 -0
- package/src/components/dashboard/top-customers-chart/locales/hr.ts +5 -0
- package/src/components/dashboard/top-customers-chart/locales/it.ts +5 -0
- package/src/components/dashboard/top-customers-chart/locales/nl.ts +5 -0
- package/src/components/dashboard/top-customers-chart/locales/pl.ts +5 -0
- package/src/components/dashboard/top-customers-chart/locales/pt.ts +5 -0
- package/src/components/dashboard/top-customers-chart/top-customers-chart.tsx +10 -2
- package/src/components/documents/create/document-add-item-form.tsx +1 -1
- package/src/components/documents/create/form-types.ts +1 -5
- package/src/components/documents/create/mark-as-paid-section.tsx +60 -23
- package/src/components/documents/create/prepare-document-submission.test.ts +2 -2
- package/src/components/documents/create/prepare-document-submission.ts +12 -7
- package/src/components/documents/create/prepare-preview-data.test.ts +1 -1
- package/src/components/documents/view/document-actions-bar.tsx +8 -1
- package/src/components/documents/view/document-details-card.tsx +8 -1
- package/src/components/documents/view/document-payments-list.tsx +8 -1
- package/src/components/documents/view/locales/es.ts +83 -0
- package/src/components/documents/view/locales/fr.ts +83 -0
- package/src/components/documents/view/locales/hr.ts +83 -0
- package/src/components/documents/view/locales/it.ts +83 -0
- package/src/components/documents/view/locales/nl.ts +84 -0
- package/src/components/documents/view/locales/pl.ts +83 -0
- package/src/components/documents/view/locales/pt.ts +83 -0
- package/src/components/entities/create-entity-form.tsx +12 -2
- package/src/components/entities/entity-settings-form/entity-settings-form.tsx +18 -0
- package/src/components/entities/entity-settings-form/locales/de.ts +3 -1
- package/src/components/entities/entity-settings-form/locales/es.ts +197 -0
- package/src/components/entities/entity-settings-form/locales/fr.ts +196 -0
- package/src/components/entities/entity-settings-form/locales/hr.ts +189 -0
- package/src/components/entities/entity-settings-form/locales/it.ts +195 -0
- package/src/components/entities/entity-settings-form/locales/nl.ts +192 -0
- package/src/components/entities/entity-settings-form/locales/pl.ts +193 -0
- package/src/components/entities/entity-settings-form/locales/pt.ts +194 -0
- package/src/components/entities/entity-settings-form/locales/sl.ts +2 -0
- package/src/components/entities/fina-settings-form/fina-settings-form.tsx +461 -0
- package/src/components/entities/fina-settings-form/fina-settings.hooks.ts +215 -0
- package/src/components/entities/fina-settings-form/index.ts +3 -0
- package/src/components/entities/fina-settings-form/locales/de.ts +145 -0
- package/src/components/entities/fina-settings-form/locales/en.ts +142 -0
- package/src/components/entities/fina-settings-form/locales/es.ts +143 -0
- package/src/components/entities/fina-settings-form/locales/fr.ts +142 -0
- package/src/components/entities/fina-settings-form/locales/hr.ts +144 -0
- package/src/components/entities/fina-settings-form/locales/it.ts +144 -0
- package/src/components/entities/fina-settings-form/locales/nl.ts +144 -0
- package/src/components/entities/fina-settings-form/locales/pl.ts +142 -0
- package/src/components/entities/fina-settings-form/locales/pt.ts +144 -0
- package/src/components/entities/fina-settings-form/locales/sl.ts +144 -0
- package/src/components/entities/fina-settings-form/sections/certificate-settings-section.tsx +233 -0
- package/src/components/entities/fina-settings-form/sections/premises-management-section.tsx +363 -0
- package/src/components/entities/fina-settings-form/sections/register-premise-dialog.tsx +395 -0
- package/src/components/entities/furs-settings-form/furs-settings-form.tsx +9 -2
- package/src/components/entities/furs-settings-form/furs-settings.hooks.ts +15 -11
- package/src/components/entities/furs-settings-form/locales/de.ts +52 -88
- package/src/components/entities/furs-settings-form/locales/en.ts +3 -0
- package/src/components/entities/furs-settings-form/locales/es.ts +196 -0
- package/src/components/entities/furs-settings-form/locales/fr.ts +196 -0
- package/src/components/entities/furs-settings-form/locales/hr.ts +195 -0
- package/src/components/entities/furs-settings-form/locales/it.ts +196 -0
- package/src/components/entities/furs-settings-form/locales/nl.ts +195 -0
- package/src/components/entities/furs-settings-form/locales/pl.ts +194 -0
- package/src/components/entities/furs-settings-form/locales/pt.ts +195 -0
- package/src/components/entities/furs-settings-form/locales/sl.ts +2 -0
- package/src/components/entities/furs-settings-form/sections/certificate-settings-section.tsx +19 -4
- package/src/components/entities/furs-settings-form/sections/register-premise-dialog.tsx +17 -66
- package/src/components/entities/keys.ts +1 -1
- package/src/components/entities/settings/company-settings-form.tsx +28 -0
- package/src/components/entities/settings/pdf-template-selector/locales/es.ts +18 -0
- package/src/components/entities/settings/pdf-template-selector/locales/fr.ts +18 -0
- package/src/components/entities/settings/pdf-template-selector/locales/hr.ts +18 -0
- package/src/components/entities/settings/pdf-template-selector/locales/it.ts +18 -0
- package/src/components/entities/settings/pdf-template-selector/locales/nl.ts +17 -0
- package/src/components/entities/settings/pdf-template-selector/locales/pl.ts +18 -0
- package/src/components/entities/settings/pdf-template-selector/locales/pt.ts +18 -0
- package/src/components/estimates/create/create-estimate-form.tsx +14 -0
- package/src/components/estimates/create/locales/es.ts +57 -0
- package/src/components/estimates/create/locales/fr.ts +58 -0
- package/src/components/estimates/create/locales/hr.ts +57 -0
- package/src/components/estimates/create/locales/it.ts +57 -0
- package/src/components/estimates/create/locales/nl.ts +58 -0
- package/src/components/estimates/create/locales/pl.ts +57 -0
- package/src/components/estimates/create/locales/pt.ts +58 -0
- package/src/components/estimates/create/prepare-estimate-submission.ts +1 -1
- package/src/components/estimates/list/list-table.tsx +20 -3
- package/src/components/estimates/list/locales/de.ts +9 -0
- package/src/components/estimates/list/locales/en.ts +8 -0
- package/src/components/estimates/list/locales/es.ts +32 -0
- package/src/components/estimates/list/locales/fr.ts +32 -0
- package/src/components/estimates/list/locales/hr.ts +32 -0
- package/src/components/estimates/list/locales/it.ts +32 -0
- package/src/components/estimates/list/locales/nl.ts +32 -0
- package/src/components/estimates/list/locales/pl.ts +32 -0
- package/src/components/estimates/list/locales/pt.ts +32 -0
- package/src/components/estimates/list/locales/sl.ts +9 -0
- package/src/components/export/document-export-form.tsx +0 -2
- package/src/components/invoices/create/create-invoice-form.tsx +24 -10
- package/src/components/invoices/create/eslog-validation.test.ts +2 -0
- package/src/components/invoices/create/locales/es.ts +103 -0
- package/src/components/invoices/create/locales/fr.ts +105 -0
- package/src/components/invoices/create/locales/hr.ts +103 -0
- package/src/components/invoices/create/locales/it.ts +105 -0
- package/src/components/invoices/create/locales/nl.ts +104 -0
- package/src/components/invoices/create/locales/pl.ts +104 -0
- package/src/components/invoices/create/locales/pt.ts +105 -0
- package/src/components/invoices/create/prepare-invoice-submission.test.ts +54 -55
- package/src/components/invoices/create/prepare-invoice-submission.ts +3 -3
- package/src/components/invoices/list/list-table.tsx +20 -3
- package/src/components/invoices/list/locales/de.ts +9 -0
- package/src/components/invoices/list/locales/en.ts +8 -0
- package/src/components/invoices/list/locales/es.ts +42 -0
- package/src/components/invoices/list/locales/fr.ts +42 -0
- package/src/components/invoices/list/locales/hr.ts +42 -0
- package/src/components/invoices/list/locales/it.ts +42 -0
- package/src/components/invoices/list/locales/nl.ts +42 -0
- package/src/components/invoices/list/locales/pl.ts +42 -0
- package/src/components/invoices/list/locales/pt.ts +42 -0
- package/src/components/invoices/list/locales/sl.ts +9 -0
- package/src/components/invoices/send-email-dialog/locales/es.ts +18 -0
- package/src/components/invoices/send-email-dialog/locales/fr.ts +18 -0
- package/src/components/invoices/send-email-dialog/locales/hr.ts +17 -0
- package/src/components/invoices/send-email-dialog/locales/it.ts +18 -0
- package/src/components/invoices/send-email-dialog/locales/nl.ts +18 -0
- package/src/components/invoices/send-email-dialog/locales/pl.ts +18 -0
- package/src/components/invoices/send-email-dialog/locales/pt.ts +18 -0
- package/src/components/invoices/send-email-dialog/send-email-dialog.tsx +20 -12
- package/src/components/invoices/shared/scaled-document-preview.tsx +1 -0
- package/src/components/invoices/view/eslog-info-display.tsx +1 -0
- package/src/components/invoices/view/fina-info-display.tsx +196 -0
- package/src/components/items/create-item-form/create-item-form.tsx +14 -0
- package/src/components/items/create-item-form/locales/en.ts +5 -0
- package/src/components/items/create-item-form/locales/es.ts +14 -0
- package/src/components/items/create-item-form/locales/fr.ts +14 -0
- package/src/components/items/create-item-form/locales/hr.ts +14 -0
- package/src/components/items/create-item-form/locales/it.ts +14 -0
- package/src/components/items/create-item-form/locales/nl.ts +14 -0
- package/src/components/items/create-item-form/locales/pl.ts +14 -0
- package/src/components/items/create-item-form/locales/pt.ts +14 -0
- package/src/components/items/edit-item-form/edit-item-form.tsx +170 -0
- package/src/components/items/edit-item-form/locales/de.ts +12 -0
- package/src/components/items/edit-item-form/locales/es.ts +12 -0
- package/src/components/items/edit-item-form/locales/fr.ts +12 -0
- package/src/components/items/edit-item-form/locales/hr.ts +12 -0
- package/src/components/items/edit-item-form/locales/it.ts +12 -0
- package/src/components/items/edit-item-form/locales/nl.ts +12 -0
- package/src/components/items/edit-item-form/locales/pl.ts +12 -0
- package/src/components/items/edit-item-form/locales/pt.ts +12 -0
- package/src/components/items/edit-item-form/locales/sl.ts +12 -0
- package/src/components/items/item-list-table/item-list-table.tsx +20 -13
- package/src/components/items/item-list-table/locales/de.ts +6 -0
- package/src/components/items/item-list-table/locales/en.ts +5 -0
- package/src/components/items/item-list-table/locales/es.ts +16 -0
- package/src/components/items/item-list-table/locales/fr.ts +16 -0
- package/src/components/items/item-list-table/locales/hr.ts +16 -0
- package/src/components/items/item-list-table/locales/it.ts +16 -0
- package/src/components/items/item-list-table/locales/nl.ts +16 -0
- package/src/components/items/item-list-table/locales/pl.ts +16 -0
- package/src/components/items/item-list-table/locales/pt.ts +16 -0
- package/src/components/items/item-list-table/locales/sl.ts +6 -0
- package/src/components/items/items.hooks.ts +7 -2
- package/src/components/payments/create-payment-form/create-payment-form.tsx +14 -0
- package/src/components/payments/create-payment-form/locales/es.ts +20 -0
- package/src/components/payments/create-payment-form/locales/fr.ts +20 -0
- package/src/components/payments/create-payment-form/locales/hr.ts +20 -0
- package/src/components/payments/create-payment-form/locales/it.ts +20 -0
- package/src/components/payments/create-payment-form/locales/nl.ts +20 -0
- package/src/components/payments/create-payment-form/locales/pl.ts +20 -0
- package/src/components/payments/create-payment-form/locales/pt.ts +20 -0
- package/src/components/payments/edit-payment-form/edit-payment-form.tsx +18 -2
- package/src/components/payments/edit-payment-form/locales/es.ts +20 -0
- package/src/components/payments/edit-payment-form/locales/fr.ts +20 -0
- package/src/components/payments/edit-payment-form/locales/hr.ts +20 -0
- package/src/components/payments/edit-payment-form/locales/it.ts +20 -0
- package/src/components/payments/edit-payment-form/locales/nl.ts +20 -0
- package/src/components/payments/edit-payment-form/locales/pl.ts +20 -0
- package/src/components/payments/edit-payment-form/locales/pt.ts +20 -0
- package/src/components/payments/list/list-row-actions.tsx +14 -0
- package/src/components/payments/list/list-table.tsx +21 -2
- package/src/components/payments/list/locales/de.ts +6 -0
- package/src/components/payments/list/locales/en.ts +7 -0
- package/src/components/payments/list/locales/es.ts +25 -0
- package/src/components/payments/list/locales/fr.ts +25 -0
- package/src/components/payments/list/locales/hr.ts +25 -0
- package/src/components/payments/list/locales/it.ts +25 -0
- package/src/components/payments/list/locales/nl.ts +25 -0
- package/src/components/payments/list/locales/pl.ts +25 -0
- package/src/components/payments/list/locales/pt.ts +25 -0
- package/src/components/payments/list/locales/sl.ts +6 -0
- package/src/components/payments/payments.hooks.ts +7 -2
- package/src/components/request-logs/index.ts +1 -1
- package/src/components/table/data-table.tsx +8 -3
- package/src/components/table/filter-panel.tsx +4 -4
- package/src/components/table/hooks/use-table-query.ts +3 -0
- package/src/components/table/table-empty-state.tsx +11 -4
- package/src/components/table/table-no-results.tsx +6 -4
- package/src/components/table/types.ts +2 -2
- package/src/components/tax-reports/kir-export-form.tsx +0 -1
- package/src/components/taxes/create-tax-form/create-tax-form.tsx +14 -0
- package/src/components/taxes/create-tax-form/locales/en.ts +1 -0
- package/src/components/taxes/create-tax-form/locales/es.ts +8 -0
- package/src/components/taxes/create-tax-form/locales/fr.ts +8 -0
- package/src/components/taxes/create-tax-form/locales/hr.ts +8 -0
- package/src/components/taxes/create-tax-form/locales/it.ts +8 -0
- package/src/components/taxes/create-tax-form/locales/nl.ts +8 -0
- package/src/components/taxes/create-tax-form/locales/pl.ts +8 -0
- package/src/components/taxes/create-tax-form/locales/pt.ts +8 -0
- package/src/components/taxes/edit-tax-form/edit-tax-form.tsx +119 -0
- package/src/components/taxes/edit-tax-form/locales/de.ts +6 -0
- package/src/components/taxes/edit-tax-form/locales/es.ts +6 -0
- package/src/components/taxes/edit-tax-form/locales/fr.ts +6 -0
- package/src/components/taxes/edit-tax-form/locales/hr.ts +6 -0
- package/src/components/taxes/edit-tax-form/locales/it.ts +6 -0
- package/src/components/taxes/edit-tax-form/locales/nl.ts +6 -0
- package/src/components/taxes/edit-tax-form/locales/pl.ts +6 -0
- package/src/components/taxes/edit-tax-form/locales/pt.ts +6 -0
- package/src/components/taxes/edit-tax-form/locales/sl.ts +6 -0
- package/src/components/taxes/tax-list-table/locales/de.ts +6 -0
- package/src/components/taxes/tax-list-table/locales/en.ts +6 -0
- package/src/components/taxes/tax-list-table/locales/es.ts +17 -0
- package/src/components/taxes/tax-list-table/locales/fr.ts +17 -0
- package/src/components/taxes/tax-list-table/locales/hr.ts +17 -0
- package/src/components/taxes/tax-list-table/locales/it.ts +17 -0
- package/src/components/taxes/tax-list-table/locales/nl.ts +17 -0
- package/src/components/taxes/tax-list-table/locales/pl.ts +17 -0
- package/src/components/taxes/tax-list-table/locales/pt.ts +17 -0
- package/src/components/taxes/tax-list-table/locales/sl.ts +6 -0
- package/src/components/taxes/tax-list-table/tax-list-table.tsx +18 -0
- package/src/components/taxes/taxes.hooks.ts +12 -7
- package/src/components/ui/tooltip.tsx +2 -2
- package/src/components/wl-subscription/locked-feature.tsx +1 -0
- package/src/components/wl-subscription/upgrade-modal.tsx +1 -0
- package/src/generated/schemas/acceptentityinvitation_body.ts +17 -0
- package/src/generated/schemas/addentityuser_body.ts +18 -0
- package/src/generated/schemas/advanceinvoice.ts +184 -12
- package/src/generated/schemas/creditnote.ts +96 -127
- package/src/generated/schemas/customadvanceinvoice.ts +246 -0
- package/src/generated/schemas/customcreditnote.ts +237 -0
- package/src/generated/schemas/customer.ts +26 -0
- package/src/generated/schemas/customestimate.ts +181 -0
- package/src/generated/schemas/custominvoice.ts +237 -0
- package/src/generated/schemas/entity.ts +66 -7
- package/src/generated/schemas/entityuserrole.ts +19 -0
- package/src/generated/schemas/estimate.ts +149 -1
- package/src/generated/schemas/finasettings.ts +25 -0
- package/src/generated/schemas/furssettings.ts +1 -2
- package/src/generated/schemas/index.ts +24 -5
- package/src/generated/schemas/invoice.ts +224 -22
- package/src/generated/schemas/me.ts +22 -0
- package/src/generated/schemas/registerfinamovablepremise_body.ts +26 -0
- package/src/generated/schemas/registerfinarealestatepremise_body.ts +37 -0
- package/src/generated/schemas/renderadvanceinvoicepreview_body.ts +342 -0
- package/src/generated/schemas/rendercreditnotepreview_body.ts +344 -0
- package/src/generated/schemas/renderestimatepreview_body.ts +284 -0
- package/src/generated/schemas/renderinvoicepreview_body.ts +344 -0
- package/src/generated/schemas/senddocument_body.ts +23 -0
- package/src/generated/schemas/sendemail_body.ts +8 -10
- package/src/generated/schemas/stripeappconnect_body.ts +18 -0
- package/src/generated/schemas/stripeappcreateinvoice_body.ts +20 -0
- package/src/generated/schemas/stripeappupdatesettings_body.ts +26 -0
- package/src/generated/schemas/webhook.ts +143 -0
- package/src/hooks/create-resource-hooks.ts +85 -1
- package/src/hooks/use-next-document-number.ts +1 -1
- package/src/hooks/use-resource-mutation.ts +4 -3
- package/src/lib/browser-cookies.ts +12 -1
- package/src/lib/cookies.ts +2 -2
- package/src/lib/translation.ts +1 -1
- package/src/providers/entities-provider.tsx +84 -39
- package/src/providers/sdk-provider.tsx +7 -3
- package/src/providers/white-label-provider.tsx +5 -2
- package/src/providers/wl-subscription-provider.tsx +1 -0
package/src/components/entities/furs-settings-form/sections/certificate-settings-section.tsx
CHANGED
|
@@ -41,11 +41,15 @@ export const CertificateSettingsSection: FC<CertificateSettingsSectionProps> = (
|
|
|
41
41
|
}
|
|
42
42
|
}, [fursSettings, hasCertificate]);
|
|
43
43
|
|
|
44
|
-
const {
|
|
44
|
+
const {
|
|
45
|
+
mutate: uploadCertificate,
|
|
46
|
+
isPending,
|
|
47
|
+
isSuccess: uploadSuccess,
|
|
48
|
+
} = useUploadFursCertificate({
|
|
45
49
|
onSuccess: () => {
|
|
46
50
|
setCertificateFile(null);
|
|
47
51
|
setPassphrase("");
|
|
48
|
-
setShowUploadForm(false);
|
|
52
|
+
setShowUploadForm(false);
|
|
49
53
|
onSuccess?.();
|
|
50
54
|
},
|
|
51
55
|
onError: (error) => {
|
|
@@ -84,8 +88,8 @@ export const CertificateSettingsSection: FC<CertificateSettingsSectionProps> = (
|
|
|
84
88
|
|
|
85
89
|
const certificateStatus = fursSettings?.certificate_status || "missing";
|
|
86
90
|
|
|
87
|
-
// Show upload form if: no certificate exists OR user clicked "Change Certificate"
|
|
88
|
-
const shouldShowUploadForm = !hasCertificate || showUploadForm;
|
|
91
|
+
// Show upload form if: no certificate exists (and didn't just upload) OR user clicked "Change Certificate"
|
|
92
|
+
const shouldShowUploadForm = (!hasCertificate && !uploadSuccess) || showUploadForm;
|
|
89
93
|
|
|
90
94
|
// Status display configuration with dark mode support
|
|
91
95
|
const statusConfig = {
|
|
@@ -131,6 +135,17 @@ export const CertificateSettingsSection: FC<CertificateSettingsSectionProps> = (
|
|
|
131
135
|
</div>
|
|
132
136
|
|
|
133
137
|
<div className="space-y-6">
|
|
138
|
+
{/* Upload success - Show briefly while settings refetch */}
|
|
139
|
+
{!hasCertificate && uploadSuccess && (
|
|
140
|
+
<div className="space-y-4">
|
|
141
|
+
<Alert>
|
|
142
|
+
<CheckCircle2 className="h-4 w-4 text-green-600 dark:text-green-400" />
|
|
143
|
+
<AlertTitle>{t("Certificate uploaded successfully")}</AlertTitle>
|
|
144
|
+
<AlertDescription>{t("Loading certificate details...")}</AlertDescription>
|
|
145
|
+
</Alert>
|
|
146
|
+
</div>
|
|
147
|
+
)}
|
|
148
|
+
|
|
134
149
|
{/* Certificate Status - Show when certificate exists */}
|
|
135
150
|
{hasCertificate && (
|
|
136
151
|
<div className="space-y-4">
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { zodResolver } from "@hookform/resolvers/zod";
|
|
2
2
|
import type { Entity } from "@spaceinvoices/js-sdk";
|
|
3
3
|
import type { FC } from "react";
|
|
4
|
+
import type { Resolver } from "react-hook-form";
|
|
4
5
|
import { useForm } from "react-hook-form";
|
|
5
6
|
import type { z } from "zod";
|
|
6
7
|
import { Button } from "@/ui/components/ui/button";
|
|
@@ -57,7 +58,7 @@ export const RegisterPremiseDialog: FC<RegisterPremiseDialogProps> = ({
|
|
|
57
58
|
|
|
58
59
|
// Real Estate Form
|
|
59
60
|
const realEstateForm = useForm<RealEstatePremiseForm>({
|
|
60
|
-
resolver: zodResolver(realEstatePremiseSchema)
|
|
61
|
+
resolver: zodResolver(realEstatePremiseSchema) as Resolver<RealEstatePremiseForm>,
|
|
61
62
|
defaultValues: {
|
|
62
63
|
business_premise_name: "",
|
|
63
64
|
real_estate: {
|
|
@@ -71,19 +72,17 @@ export const RegisterPremiseDialog: FC<RegisterPremiseDialogProps> = ({
|
|
|
71
72
|
house_number_additional: "",
|
|
72
73
|
postal_code: "",
|
|
73
74
|
},
|
|
74
|
-
numbering_strategy: "C",
|
|
75
75
|
},
|
|
76
76
|
});
|
|
77
77
|
|
|
78
78
|
// Movable Form
|
|
79
79
|
const movableForm = useForm<MovablePremiseForm>({
|
|
80
|
-
resolver: zodResolver(movablePremiseSchema)
|
|
80
|
+
resolver: zodResolver(movablePremiseSchema) as Resolver<MovablePremiseForm>,
|
|
81
81
|
defaultValues: {
|
|
82
82
|
business_premise_name: "",
|
|
83
83
|
movable_premise: {
|
|
84
84
|
premise_type: "A",
|
|
85
85
|
},
|
|
86
|
-
numbering_strategy: "C",
|
|
87
86
|
},
|
|
88
87
|
});
|
|
89
88
|
|
|
@@ -133,10 +132,10 @@ export const RegisterPremiseDialog: FC<RegisterPremiseDialogProps> = ({
|
|
|
133
132
|
|
|
134
133
|
{isRealEstate ? (
|
|
135
134
|
<Form {...realEstateForm}>
|
|
136
|
-
<form onSubmit={realEstateForm.handleSubmit(handleRealEstateSubmit)} className="space-y-4">
|
|
135
|
+
<form onSubmit={realEstateForm.handleSubmit(handleRealEstateSubmit as any)} className="space-y-4">
|
|
137
136
|
{/* Premise Name */}
|
|
138
137
|
<FormField
|
|
139
|
-
control={realEstateForm.control}
|
|
138
|
+
control={realEstateForm.control as any}
|
|
140
139
|
name="business_premise_name"
|
|
141
140
|
render={({ field }) => (
|
|
142
141
|
<FormItem>
|
|
@@ -152,7 +151,7 @@ export const RegisterPremiseDialog: FC<RegisterPremiseDialogProps> = ({
|
|
|
152
151
|
|
|
153
152
|
{/* Property Information */}
|
|
154
153
|
<FormField
|
|
155
|
-
control={realEstateForm.control}
|
|
154
|
+
control={realEstateForm.control as any}
|
|
156
155
|
name="real_estate.cadastral_number"
|
|
157
156
|
render={({ field }) => (
|
|
158
157
|
<FormItem>
|
|
@@ -169,7 +168,7 @@ export const RegisterPremiseDialog: FC<RegisterPremiseDialogProps> = ({
|
|
|
169
168
|
{/* Building Information */}
|
|
170
169
|
<div className="grid grid-cols-2 gap-4">
|
|
171
170
|
<FormField
|
|
172
|
-
control={realEstateForm.control}
|
|
171
|
+
control={realEstateForm.control as any}
|
|
173
172
|
name="real_estate.building_number"
|
|
174
173
|
render={({ field }) => (
|
|
175
174
|
<FormItem>
|
|
@@ -190,7 +189,7 @@ export const RegisterPremiseDialog: FC<RegisterPremiseDialogProps> = ({
|
|
|
190
189
|
)}
|
|
191
190
|
/>
|
|
192
191
|
<FormField
|
|
193
|
-
control={realEstateForm.control}
|
|
192
|
+
control={realEstateForm.control as any}
|
|
194
193
|
name="real_estate.building_section"
|
|
195
194
|
render={({ field }) => (
|
|
196
195
|
<FormItem>
|
|
@@ -214,7 +213,7 @@ export const RegisterPremiseDialog: FC<RegisterPremiseDialogProps> = ({
|
|
|
214
213
|
|
|
215
214
|
{/* Community */}
|
|
216
215
|
<FormField
|
|
217
|
-
control={realEstateForm.control}
|
|
216
|
+
control={realEstateForm.control as any}
|
|
218
217
|
name="real_estate.community"
|
|
219
218
|
render={({ field }) => (
|
|
220
219
|
<FormItem>
|
|
@@ -230,7 +229,7 @@ export const RegisterPremiseDialog: FC<RegisterPremiseDialogProps> = ({
|
|
|
230
229
|
|
|
231
230
|
{/* Address */}
|
|
232
231
|
<FormField
|
|
233
|
-
control={realEstateForm.control}
|
|
232
|
+
control={realEstateForm.control as any}
|
|
234
233
|
name="real_estate.street"
|
|
235
234
|
render={({ field }) => (
|
|
236
235
|
<FormItem>
|
|
@@ -245,7 +244,7 @@ export const RegisterPremiseDialog: FC<RegisterPremiseDialogProps> = ({
|
|
|
245
244
|
|
|
246
245
|
<div className="grid grid-cols-2 gap-4">
|
|
247
246
|
<FormField
|
|
248
|
-
control={realEstateForm.control}
|
|
247
|
+
control={realEstateForm.control as any}
|
|
249
248
|
name="real_estate.house_number"
|
|
250
249
|
render={({ field }) => (
|
|
251
250
|
<FormItem>
|
|
@@ -258,7 +257,7 @@ export const RegisterPremiseDialog: FC<RegisterPremiseDialogProps> = ({
|
|
|
258
257
|
)}
|
|
259
258
|
/>
|
|
260
259
|
<FormField
|
|
261
|
-
control={realEstateForm.control}
|
|
260
|
+
control={realEstateForm.control as any}
|
|
262
261
|
name="real_estate.house_number_additional"
|
|
263
262
|
render={({ field }) => (
|
|
264
263
|
<FormItem>
|
|
@@ -274,7 +273,7 @@ export const RegisterPremiseDialog: FC<RegisterPremiseDialogProps> = ({
|
|
|
274
273
|
|
|
275
274
|
<div className="grid grid-cols-2 gap-4">
|
|
276
275
|
<FormField
|
|
277
|
-
control={realEstateForm.control}
|
|
276
|
+
control={realEstateForm.control as any}
|
|
278
277
|
name="real_estate.city"
|
|
279
278
|
render={({ field }) => (
|
|
280
279
|
<FormItem>
|
|
@@ -287,7 +286,7 @@ export const RegisterPremiseDialog: FC<RegisterPremiseDialogProps> = ({
|
|
|
287
286
|
)}
|
|
288
287
|
/>
|
|
289
288
|
<FormField
|
|
290
|
-
control={realEstateForm.control}
|
|
289
|
+
control={realEstateForm.control as any}
|
|
291
290
|
name="real_estate.postal_code"
|
|
292
291
|
render={({ field }) => (
|
|
293
292
|
<FormItem>
|
|
@@ -301,30 +300,6 @@ export const RegisterPremiseDialog: FC<RegisterPremiseDialogProps> = ({
|
|
|
301
300
|
/>
|
|
302
301
|
</div>
|
|
303
302
|
|
|
304
|
-
{/* Numbering Strategy */}
|
|
305
|
-
<FormField
|
|
306
|
-
control={realEstateForm.control}
|
|
307
|
-
name="numbering_strategy"
|
|
308
|
-
render={({ field }) => (
|
|
309
|
-
<FormItem>
|
|
310
|
-
<FormLabel>{t("Numbering Strategy")}</FormLabel>
|
|
311
|
-
<Select onValueChange={field.onChange} value={field.value}>
|
|
312
|
-
<FormControl>
|
|
313
|
-
<SelectTrigger>
|
|
314
|
-
<SelectValue placeholder="Select strategy" />
|
|
315
|
-
</SelectTrigger>
|
|
316
|
-
</FormControl>
|
|
317
|
-
<SelectContent>
|
|
318
|
-
<SelectItem value="B">{t("Strategy B (Device-level)")}</SelectItem>
|
|
319
|
-
<SelectItem value="C">{t("Strategy C (Centralized)")}</SelectItem>
|
|
320
|
-
</SelectContent>
|
|
321
|
-
</Select>
|
|
322
|
-
<FormDescription>{t("Choose how invoice numbers are generated")}</FormDescription>
|
|
323
|
-
<FormMessage />
|
|
324
|
-
</FormItem>
|
|
325
|
-
)}
|
|
326
|
-
/>
|
|
327
|
-
|
|
328
303
|
<DialogFooter>
|
|
329
304
|
<Button type="button" variant="outline" onClick={() => onOpenChange(false)} disabled={isPending}>
|
|
330
305
|
{t("Cancel")}
|
|
@@ -337,10 +312,10 @@ export const RegisterPremiseDialog: FC<RegisterPremiseDialogProps> = ({
|
|
|
337
312
|
</Form>
|
|
338
313
|
) : (
|
|
339
314
|
<Form {...movableForm}>
|
|
340
|
-
<form onSubmit={movableForm.handleSubmit(handleMovableSubmit)} className="space-y-4">
|
|
315
|
+
<form onSubmit={movableForm.handleSubmit(handleMovableSubmit as any)} className="space-y-4">
|
|
341
316
|
{/* Premise Name */}
|
|
342
317
|
<FormField
|
|
343
|
-
control={movableForm.control}
|
|
318
|
+
control={movableForm.control as any}
|
|
344
319
|
name="business_premise_name"
|
|
345
320
|
render={({ field }) => (
|
|
346
321
|
<FormItem>
|
|
@@ -356,7 +331,7 @@ export const RegisterPremiseDialog: FC<RegisterPremiseDialogProps> = ({
|
|
|
356
331
|
|
|
357
332
|
{/* Premise Type */}
|
|
358
333
|
<FormField
|
|
359
|
-
control={movableForm.control}
|
|
334
|
+
control={movableForm.control as any}
|
|
360
335
|
name="movable_premise.premise_type"
|
|
361
336
|
render={({ field }) => (
|
|
362
337
|
<FormItem>
|
|
@@ -379,30 +354,6 @@ export const RegisterPremiseDialog: FC<RegisterPremiseDialogProps> = ({
|
|
|
379
354
|
)}
|
|
380
355
|
/>
|
|
381
356
|
|
|
382
|
-
{/* Numbering Strategy */}
|
|
383
|
-
<FormField
|
|
384
|
-
control={movableForm.control}
|
|
385
|
-
name="numbering_strategy"
|
|
386
|
-
render={({ field }) => (
|
|
387
|
-
<FormItem>
|
|
388
|
-
<FormLabel>{t("Numbering Strategy")}</FormLabel>
|
|
389
|
-
<Select onValueChange={field.onChange} value={field.value}>
|
|
390
|
-
<FormControl>
|
|
391
|
-
<SelectTrigger>
|
|
392
|
-
<SelectValue placeholder="Select strategy" />
|
|
393
|
-
</SelectTrigger>
|
|
394
|
-
</FormControl>
|
|
395
|
-
<SelectContent>
|
|
396
|
-
<SelectItem value="B">{t("Strategy B (Device-level)")}</SelectItem>
|
|
397
|
-
<SelectItem value="C">{t("Strategy C (Centralized)")}</SelectItem>
|
|
398
|
-
</SelectContent>
|
|
399
|
-
</Select>
|
|
400
|
-
<FormDescription>{t("Choose how invoice numbers are generated")}</FormDescription>
|
|
401
|
-
<FormMessage />
|
|
402
|
-
</FormItem>
|
|
403
|
-
)}
|
|
404
|
-
/>
|
|
405
|
-
|
|
406
357
|
<DialogFooter>
|
|
407
358
|
<Button type="button" variant="outline" onClick={() => onOpenChange(false)} disabled={isPending}>
|
|
408
359
|
{t("Cancel")}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const ACTIVE_ENTITY_COOKIE = "l.
|
|
1
|
+
export const ACTIVE_ENTITY_COOKIE = "l.eid" as const;
|
|
2
2
|
export const ACTIVE_ENVIRONMENT_COOKIE = "l.env" as const;
|
|
@@ -24,6 +24,7 @@ const translations = { sl, de } as const;
|
|
|
24
24
|
const companySettingsSchema = z.object({
|
|
25
25
|
name: z.string().min(1, "Name is required"),
|
|
26
26
|
tax_number: z.union([z.string(), z.null()]).optional(),
|
|
27
|
+
tax_number_2: z.union([z.string(), z.null()]).optional(),
|
|
27
28
|
address: z.union([z.string(), z.null()]).optional(),
|
|
28
29
|
address_2: z.union([z.string(), z.null()]).optional(),
|
|
29
30
|
post_code: z.union([z.string(), z.null()]).optional(),
|
|
@@ -54,6 +55,7 @@ export function CompanySettingsForm({
|
|
|
54
55
|
defaultValues: {
|
|
55
56
|
name: entity.name || "",
|
|
56
57
|
tax_number: (entity as any).tax_number || null,
|
|
58
|
+
tax_number_2: (entity as any).tax_number_2 || null,
|
|
57
59
|
address: (entity as any).address || null,
|
|
58
60
|
address_2: (entity as any).address_2 || null,
|
|
59
61
|
post_code: (entity as any).post_code || null,
|
|
@@ -83,6 +85,7 @@ export function CompanySettingsForm({
|
|
|
83
85
|
|
|
84
86
|
if (values.name !== entity.name) updatePayload.name = values.name;
|
|
85
87
|
if (values.tax_number !== (entity as any).tax_number) updatePayload.tax_number = values.tax_number;
|
|
88
|
+
if (values.tax_number_2 !== (entity as any).tax_number_2) updatePayload.tax_number_2 = values.tax_number_2;
|
|
86
89
|
if (values.address !== (entity as any).address) updatePayload.address = values.address;
|
|
87
90
|
if (values.address_2 !== (entity as any).address_2) updatePayload.address_2 = values.address_2;
|
|
88
91
|
if (values.post_code !== (entity as any).post_code) updatePayload.post_code = values.post_code;
|
|
@@ -135,6 +138,31 @@ export function CompanySettingsForm({
|
|
|
135
138
|
)}
|
|
136
139
|
/>
|
|
137
140
|
|
|
141
|
+
{(entity as any).country_rules?.features?.includes("tax_number_2") && (
|
|
142
|
+
<FormField
|
|
143
|
+
control={form.control}
|
|
144
|
+
name="tax_number_2"
|
|
145
|
+
render={({ field }) => (
|
|
146
|
+
<FormItem className="max-w-xs">
|
|
147
|
+
<FormLabel className="font-medium text-base">{t("Tax ID 2")}</FormLabel>
|
|
148
|
+
<FormControl>
|
|
149
|
+
<Input
|
|
150
|
+
{...field}
|
|
151
|
+
value={field.value || ""}
|
|
152
|
+
onChange={(e) => field.onChange(e.target.value || null)}
|
|
153
|
+
placeholder="12/345/67890"
|
|
154
|
+
className="h-10"
|
|
155
|
+
/>
|
|
156
|
+
</FormControl>
|
|
157
|
+
<FormDescription className="text-xs">
|
|
158
|
+
{t("Secondary tax identification number (optional)")}
|
|
159
|
+
</FormDescription>
|
|
160
|
+
<FormMessage />
|
|
161
|
+
</FormItem>
|
|
162
|
+
)}
|
|
163
|
+
/>
|
|
164
|
+
)}
|
|
165
|
+
|
|
138
166
|
<div className="border-t pt-6">
|
|
139
167
|
<FormField
|
|
140
168
|
control={form.control}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
"PDF Template": "Plantilla PDF",
|
|
3
|
+
"Choose the design template for your invoices and documents":
|
|
4
|
+
"Elija la plantilla de diseño para sus facturas y documentos",
|
|
5
|
+
Preview: "Vista previa",
|
|
6
|
+
Template: "Plantilla",
|
|
7
|
+
Modern: "Moderna",
|
|
8
|
+
"Modern template description": "Diseño limpio y profesional adecuado para la mayoría de las empresas",
|
|
9
|
+
Classic: "Clásica",
|
|
10
|
+
"Classic template description": "Diseño tradicional de factura con fuentes serif y bordes",
|
|
11
|
+
Minimal: "Minimalista",
|
|
12
|
+
"Minimal template description": "Diseño centrado en la tipografía con una estética limpia",
|
|
13
|
+
Fashion: "Fashion",
|
|
14
|
+
"Fashion template description": "Estilo editorial con títulos elegantes para empresas creativas",
|
|
15
|
+
"Save Template": "Guardar plantilla",
|
|
16
|
+
"Template saved successfully": "Plantilla guardada con éxito",
|
|
17
|
+
"Failed to save template": "Error al guardar la plantilla",
|
|
18
|
+
} as const;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
"PDF Template": "Modèle PDF",
|
|
3
|
+
"Choose the design template for your invoices and documents":
|
|
4
|
+
"Choisissez le modèle de design pour vos factures et documents",
|
|
5
|
+
Preview: "Aperçu",
|
|
6
|
+
Template: "Modèle",
|
|
7
|
+
Modern: "Moderne",
|
|
8
|
+
"Modern template description": "Design épuré et professionnel adapté à la plupart des entreprises",
|
|
9
|
+
Classic: "Classique",
|
|
10
|
+
"Classic template description": "Mise en page traditionnelle avec polices à empattements et bordures",
|
|
11
|
+
Minimal: "Minimaliste",
|
|
12
|
+
"Minimal template description": "Design axé sur la typographie avec une esthétique épurée",
|
|
13
|
+
Fashion: "Fashion",
|
|
14
|
+
"Fashion template description": "Style éditorial avec des titres élégants pour les entreprises créatives",
|
|
15
|
+
"Save Template": "Enregistrer le modèle",
|
|
16
|
+
"Template saved successfully": "Modèle enregistré avec succès",
|
|
17
|
+
"Failed to save template": "Échec de l'enregistrement du modèle",
|
|
18
|
+
} as const;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
"PDF Template": "PDF predložak",
|
|
3
|
+
"Choose the design template for your invoices and documents":
|
|
4
|
+
"Odaberite predložak dizajna za svoje račune i dokumente",
|
|
5
|
+
Preview: "Pregled",
|
|
6
|
+
Template: "Predložak",
|
|
7
|
+
Modern: "Moderan",
|
|
8
|
+
"Modern template description": "Čist, profesionalan dizajn prikladan za većinu tvrtki",
|
|
9
|
+
Classic: "Klasičan",
|
|
10
|
+
"Classic template description": "Tradicionalni raspored računa sa serifnim fontovima i okvirima",
|
|
11
|
+
Minimal: "Minimalistički",
|
|
12
|
+
"Minimal template description": "Tipografski usmjeren dizajn s čistom estetikom",
|
|
13
|
+
Fashion: "Fashion",
|
|
14
|
+
"Fashion template description": "Urednički stil s elegantnim naslovima za kreativne tvrtke",
|
|
15
|
+
"Save Template": "Spremi predložak",
|
|
16
|
+
"Template saved successfully": "Predložak uspješno spremljen",
|
|
17
|
+
"Failed to save template": "Spremanje predloška nije uspjelo",
|
|
18
|
+
} as const;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
"PDF Template": "Modello PDF",
|
|
3
|
+
"Choose the design template for your invoices and documents":
|
|
4
|
+
"Scegli il modello di design per le tue fatture e documenti",
|
|
5
|
+
Preview: "Anteprima",
|
|
6
|
+
Template: "Modello",
|
|
7
|
+
Modern: "Moderno",
|
|
8
|
+
"Modern template description": "Design pulito e professionale adatto alla maggior parte delle aziende",
|
|
9
|
+
Classic: "Classico",
|
|
10
|
+
"Classic template description": "Layout tradizionale per fatture con caratteri serif e bordi",
|
|
11
|
+
Minimal: "Minimale",
|
|
12
|
+
"Minimal template description": "Design incentrato sulla tipografia con un'estetica pulita",
|
|
13
|
+
Fashion: "Fashion",
|
|
14
|
+
"Fashion template description": "Stile editoriale con titoli eleganti per aziende creative",
|
|
15
|
+
"Save Template": "Salva modello",
|
|
16
|
+
"Template saved successfully": "Modello salvato con successo",
|
|
17
|
+
"Failed to save template": "Salvataggio del modello non riuscito",
|
|
18
|
+
} as const;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
"PDF Template": "PDF-sjabloon",
|
|
3
|
+
"Choose the design template for your invoices and documents": "Kies het ontwerp voor uw facturen en documenten",
|
|
4
|
+
Preview: "Voorbeeld",
|
|
5
|
+
Template: "Sjabloon",
|
|
6
|
+
Modern: "Modern",
|
|
7
|
+
"Modern template description": "Strak, professioneel ontwerp geschikt voor de meeste bedrijven",
|
|
8
|
+
Classic: "Klassiek",
|
|
9
|
+
"Classic template description": "Traditionele factuurindeling met schreeflettertypen en kaders",
|
|
10
|
+
Minimal: "Minimalistisch",
|
|
11
|
+
"Minimal template description": "Typografisch gericht ontwerp met een strakke esthetiek",
|
|
12
|
+
Fashion: "Fashion",
|
|
13
|
+
"Fashion template description": "Redactionele stijl met elegante koppen voor creatieve bedrijven",
|
|
14
|
+
"Save Template": "Sjabloon opslaan",
|
|
15
|
+
"Template saved successfully": "Sjabloon succesvol opgeslagen",
|
|
16
|
+
"Failed to save template": "Sjabloon opslaan mislukt",
|
|
17
|
+
} as const;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
"PDF Template": "Szablon PDF",
|
|
3
|
+
"Choose the design template for your invoices and documents":
|
|
4
|
+
"Wybierz szablon projektu dla swoich faktur i dokumentów",
|
|
5
|
+
Preview: "Podgląd",
|
|
6
|
+
Template: "Szablon",
|
|
7
|
+
Modern: "Nowoczesny",
|
|
8
|
+
"Modern template description": "Czysty, profesjonalny design odpowiedni dla większości firm",
|
|
9
|
+
Classic: "Klasyczny",
|
|
10
|
+
"Classic template description": "Tradycyjny układ faktury z czcionkami szeryfowymi i ramkami",
|
|
11
|
+
Minimal: "Minimalistyczny",
|
|
12
|
+
"Minimal template description": "Design skoncentrowany na typografii z czystą estetyką",
|
|
13
|
+
Fashion: "Fashion",
|
|
14
|
+
"Fashion template description": "Styl redakcyjny z eleganckimi nagłówkami dla firm kreatywnych",
|
|
15
|
+
"Save Template": "Zapisz szablon",
|
|
16
|
+
"Template saved successfully": "Szablon zapisany pomyślnie",
|
|
17
|
+
"Failed to save template": "Nie udało się zapisać szablonu",
|
|
18
|
+
} as const;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
"PDF Template": "Modelo PDF",
|
|
3
|
+
"Choose the design template for your invoices and documents":
|
|
4
|
+
"Escolha o modelo de design para as suas faturas e documentos",
|
|
5
|
+
Preview: "Pré-visualização",
|
|
6
|
+
Template: "Modelo",
|
|
7
|
+
Modern: "Moderno",
|
|
8
|
+
"Modern template description": "Design limpo e profissional adequado para a maioria das empresas",
|
|
9
|
+
Classic: "Clássico",
|
|
10
|
+
"Classic template description": "Layout tradicional de fatura com fontes serifadas e bordas",
|
|
11
|
+
Minimal: "Minimalista",
|
|
12
|
+
"Minimal template description": "Design focado na tipografia com uma estética limpa",
|
|
13
|
+
Fashion: "Fashion",
|
|
14
|
+
"Fashion template description": "Estilo editorial com títulos elegantes para empresas criativas",
|
|
15
|
+
"Save Template": "Guardar modelo",
|
|
16
|
+
"Template saved successfully": "Modelo guardado com sucesso",
|
|
17
|
+
"Failed to save template": "Falha ao guardar o modelo",
|
|
18
|
+
} as const;
|
|
@@ -26,6 +26,13 @@ import { DocumentRecipientSection } from "../../documents/create/document-recipi
|
|
|
26
26
|
import type { DocumentTypes } from "../../documents/types";
|
|
27
27
|
import { useCreateEstimate } from "../estimates.hooks";
|
|
28
28
|
import de from "./locales/de";
|
|
29
|
+
import es from "./locales/es";
|
|
30
|
+
import fr from "./locales/fr";
|
|
31
|
+
import hr from "./locales/hr";
|
|
32
|
+
import it from "./locales/it";
|
|
33
|
+
import nl from "./locales/nl";
|
|
34
|
+
import pl from "./locales/pl";
|
|
35
|
+
import pt from "./locales/pt";
|
|
29
36
|
import sl from "./locales/sl";
|
|
30
37
|
import { prepareEstimateSubmission } from "./prepare-estimate-submission";
|
|
31
38
|
import { useEstimateCustomerForm } from "./use-estimate-customer-form";
|
|
@@ -33,6 +40,13 @@ import { useEstimateCustomerForm } from "./use-estimate-customer-form";
|
|
|
33
40
|
const translations = {
|
|
34
41
|
sl,
|
|
35
42
|
de,
|
|
43
|
+
it,
|
|
44
|
+
fr,
|
|
45
|
+
es,
|
|
46
|
+
pt,
|
|
47
|
+
nl,
|
|
48
|
+
pl,
|
|
49
|
+
hr,
|
|
36
50
|
} as const;
|
|
37
51
|
|
|
38
52
|
// Form values: extend schema with local-only fields (number is for display, not sent to API)
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
"Create Estimate": "Crear presupuesto",
|
|
3
|
+
"Create Quote": "Crear oferta",
|
|
4
|
+
Estimate: "Presupuesto",
|
|
5
|
+
Quote: "Oferta",
|
|
6
|
+
"Click to switch to Quote": "Haga clic para cambiar a Oferta",
|
|
7
|
+
"Click to switch to Estimate": "Haga clic para cambiar a Presupuesto",
|
|
8
|
+
Details: "Detalles",
|
|
9
|
+
Number: "Número",
|
|
10
|
+
Date: "Fecha",
|
|
11
|
+
"Due Date": "Fecha de vencimiento",
|
|
12
|
+
"Valid Until": "Válido hasta",
|
|
13
|
+
Recipient: "Destinatario",
|
|
14
|
+
"Search or create customer...": "Buscar o crear cliente...",
|
|
15
|
+
Clear: "Limpiar",
|
|
16
|
+
Name: "Nombre",
|
|
17
|
+
Address: "Dirección",
|
|
18
|
+
"Address 2": "Dirección 2",
|
|
19
|
+
"Post Code": "Código postal",
|
|
20
|
+
City: "Ciudad",
|
|
21
|
+
State: "Provincia",
|
|
22
|
+
Country: "País",
|
|
23
|
+
"Tax Number": "Número fiscal",
|
|
24
|
+
Items: "Artículos",
|
|
25
|
+
"Add item": "Añadir artículo",
|
|
26
|
+
Tax: "Impuesto",
|
|
27
|
+
"Tax rate": "Tasa de impuesto",
|
|
28
|
+
"Add tax": "Añadir impuesto",
|
|
29
|
+
"Select tax...": "Seleccionar impuesto...",
|
|
30
|
+
"Loading...": "Cargando...",
|
|
31
|
+
"No taxes found": "No se encontraron impuestos",
|
|
32
|
+
"Add new tax...": "Añadir nuevo impuesto...",
|
|
33
|
+
Note: "Nota",
|
|
34
|
+
"Insert variable": "Insertar variable",
|
|
35
|
+
"Add payment instructions, terms, or other notes...": "Añada instrucciones de pago, condiciones u otras notas...",
|
|
36
|
+
"Payment Terms": "Condiciones de pago",
|
|
37
|
+
"Add payment terms...": "Añada condiciones de pago...",
|
|
38
|
+
Quantity: "Cantidad",
|
|
39
|
+
Price: "Precio",
|
|
40
|
+
Unit: "Unidad",
|
|
41
|
+
Discount: "Descuento",
|
|
42
|
+
Description: "Descripción",
|
|
43
|
+
Save: "Guardar",
|
|
44
|
+
"Save as Draft": "Guardar como borrador",
|
|
45
|
+
"Pick a date": "Seleccionar una fecha",
|
|
46
|
+
Currency: "Moneda",
|
|
47
|
+
"Select currency": "Seleccionar moneda",
|
|
48
|
+
"Percentage discount": "Descuento porcentual",
|
|
49
|
+
"Fixed amount discount": "Descuento fijo",
|
|
50
|
+
Percentage: "Porcentaje",
|
|
51
|
+
"Fixed amount": "Importe fijo",
|
|
52
|
+
"Taxes disabled": "Impuestos desactivados",
|
|
53
|
+
"Gross price": "Precio bruto",
|
|
54
|
+
"Net price": "Precio neto",
|
|
55
|
+
"Gross price (tax included)": "Precio bruto (impuestos incluidos)",
|
|
56
|
+
"Net price (before tax)": "Precio neto (antes de impuestos)",
|
|
57
|
+
} as const;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
"Create Estimate": "Créer un devis",
|
|
3
|
+
"Create Quote": "Créer une offre",
|
|
4
|
+
Estimate: "Devis",
|
|
5
|
+
Quote: "Offre",
|
|
6
|
+
"Click to switch to Quote": "Cliquez pour passer à Offre",
|
|
7
|
+
"Click to switch to Estimate": "Cliquez pour passer à Devis",
|
|
8
|
+
Details: "Détails",
|
|
9
|
+
Number: "Numéro",
|
|
10
|
+
Date: "Date",
|
|
11
|
+
"Due Date": "Date d'échéance",
|
|
12
|
+
"Valid Until": "Valable jusqu'au",
|
|
13
|
+
Recipient: "Destinataire",
|
|
14
|
+
"Search or create customer...": "Rechercher ou créer un client...",
|
|
15
|
+
Clear: "Effacer",
|
|
16
|
+
Name: "Nom",
|
|
17
|
+
Address: "Adresse",
|
|
18
|
+
"Address 2": "Adresse 2",
|
|
19
|
+
"Post Code": "Code postal",
|
|
20
|
+
City: "Ville",
|
|
21
|
+
State: "Région",
|
|
22
|
+
Country: "Pays",
|
|
23
|
+
"Tax Number": "Numéro de TVA",
|
|
24
|
+
Items: "Articles",
|
|
25
|
+
"Add item": "Ajouter un article",
|
|
26
|
+
Tax: "Taxe",
|
|
27
|
+
"Tax rate": "Taux de taxe",
|
|
28
|
+
"Add tax": "Ajouter une taxe",
|
|
29
|
+
"Select tax...": "Sélectionner une taxe...",
|
|
30
|
+
"Loading...": "Chargement...",
|
|
31
|
+
"No taxes found": "Aucune taxe trouvée",
|
|
32
|
+
"Add new tax...": "Ajouter une nouvelle taxe...",
|
|
33
|
+
Note: "Note",
|
|
34
|
+
"Insert variable": "Insérer une variable",
|
|
35
|
+
"Add payment instructions, terms, or other notes...":
|
|
36
|
+
"Ajoutez des instructions de paiement, des conditions ou d'autres notes...",
|
|
37
|
+
"Payment Terms": "Conditions de paiement",
|
|
38
|
+
"Add payment terms...": "Ajoutez des conditions de paiement...",
|
|
39
|
+
Quantity: "Quantité",
|
|
40
|
+
Price: "Prix",
|
|
41
|
+
Unit: "Unité",
|
|
42
|
+
Discount: "Remise",
|
|
43
|
+
Description: "Description",
|
|
44
|
+
Save: "Enregistrer",
|
|
45
|
+
"Save as Draft": "Enregistrer comme brouillon",
|
|
46
|
+
"Pick a date": "Choisir une date",
|
|
47
|
+
Currency: "Devise",
|
|
48
|
+
"Select currency": "Sélectionner la devise",
|
|
49
|
+
"Percentage discount": "Remise en pourcentage",
|
|
50
|
+
"Fixed amount discount": "Remise fixe",
|
|
51
|
+
Percentage: "Pourcentage",
|
|
52
|
+
"Fixed amount": "Montant fixe",
|
|
53
|
+
"Taxes disabled": "Taxes désactivées",
|
|
54
|
+
"Gross price": "Prix brut",
|
|
55
|
+
"Net price": "Prix net",
|
|
56
|
+
"Gross price (tax included)": "Prix brut (taxes incluses)",
|
|
57
|
+
"Net price (before tax)": "Prix net (avant taxes)",
|
|
58
|
+
} as const;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
"Create Estimate": "Kreiraj predračun",
|
|
3
|
+
"Create Quote": "Kreiraj ponudu",
|
|
4
|
+
Estimate: "Predračun",
|
|
5
|
+
Quote: "Ponuda",
|
|
6
|
+
"Click to switch to Quote": "Kliknite za prebacivanje na Ponudu",
|
|
7
|
+
"Click to switch to Estimate": "Kliknite za prebacivanje na Predračun",
|
|
8
|
+
Details: "Pojedinosti",
|
|
9
|
+
Number: "Broj",
|
|
10
|
+
Date: "Datum",
|
|
11
|
+
"Due Date": "Rok plaćanja",
|
|
12
|
+
"Valid Until": "Vrijedi do",
|
|
13
|
+
Recipient: "Primatelj",
|
|
14
|
+
"Search or create customer...": "Pretraži ili kreiraj kupca...",
|
|
15
|
+
Clear: "Očisti",
|
|
16
|
+
Name: "Naziv",
|
|
17
|
+
Address: "Adresa",
|
|
18
|
+
"Address 2": "Adresa 2",
|
|
19
|
+
"Post Code": "Poštanski broj",
|
|
20
|
+
City: "Grad",
|
|
21
|
+
State: "Županija",
|
|
22
|
+
Country: "Država",
|
|
23
|
+
"Tax Number": "OIB",
|
|
24
|
+
Items: "Stavke",
|
|
25
|
+
"Add item": "Dodaj stavku",
|
|
26
|
+
Tax: "Porez",
|
|
27
|
+
"Tax rate": "Porezna stopa",
|
|
28
|
+
"Add tax": "Dodaj porez",
|
|
29
|
+
"Select tax...": "Odaberi porez...",
|
|
30
|
+
"Loading...": "Učitavanje...",
|
|
31
|
+
"No taxes found": "Nisu pronađeni porezi",
|
|
32
|
+
"Add new tax...": "Dodaj novi porez...",
|
|
33
|
+
Note: "Napomena",
|
|
34
|
+
"Insert variable": "Umetni varijablu",
|
|
35
|
+
"Add payment instructions, terms, or other notes...": "Dodajte upute za plaćanje, uvjete ili druge napomene...",
|
|
36
|
+
"Payment Terms": "Uvjeti plaćanja",
|
|
37
|
+
"Add payment terms...": "Dodajte uvjete plaćanja...",
|
|
38
|
+
Quantity: "Količina",
|
|
39
|
+
Price: "Cijena",
|
|
40
|
+
Unit: "Jedinica",
|
|
41
|
+
Discount: "Popust",
|
|
42
|
+
Description: "Opis",
|
|
43
|
+
Save: "Spremi",
|
|
44
|
+
"Save as Draft": "Spremi kao skicu",
|
|
45
|
+
"Pick a date": "Odaberite datum",
|
|
46
|
+
Currency: "Valuta",
|
|
47
|
+
"Select currency": "Odaberi valutu",
|
|
48
|
+
"Percentage discount": "Postotni popust",
|
|
49
|
+
"Fixed amount discount": "Fiksni popust",
|
|
50
|
+
Percentage: "Postotak",
|
|
51
|
+
"Fixed amount": "Fiksni iznos",
|
|
52
|
+
"Taxes disabled": "Porezi onemogućeni",
|
|
53
|
+
"Gross price": "Bruto cijena",
|
|
54
|
+
"Net price": "Neto cijena",
|
|
55
|
+
"Gross price (tax included)": "Bruto cijena (s porezom)",
|
|
56
|
+
"Net price (before tax)": "Neto cijena (prije poreza)",
|
|
57
|
+
} as const;
|