@spaceinvoices/react-ui 0.4.2 → 0.4.4

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.
Files changed (267) hide show
  1. package/cli/dist/index.js +1 -1
  2. package/package.json +1 -1
  3. package/src/common/autocomplete.tsx +18 -2
  4. package/src/components/advance-invoices/create/create-advance-invoice-form.tsx +0 -1
  5. package/src/components/advance-invoices/create/locales/de.ts +2 -0
  6. package/src/components/advance-invoices/create/locales/es.ts +2 -0
  7. package/src/components/advance-invoices/create/locales/fr.ts +2 -0
  8. package/src/components/advance-invoices/create/locales/hr.ts +1 -0
  9. package/src/components/advance-invoices/create/locales/it.ts +2 -0
  10. package/src/components/advance-invoices/create/locales/nl.ts +2 -0
  11. package/src/components/advance-invoices/create/locales/pl.ts +1 -0
  12. package/src/components/advance-invoices/create/locales/pt.ts +1 -0
  13. package/src/components/advance-invoices/create/locales/sl.ts +1 -0
  14. package/src/components/advance-invoices/create/prepare-advance-invoice-submission.ts +0 -1
  15. package/src/components/advance-invoices/list/list-table.tsx +130 -40
  16. package/src/components/advance-invoices/list/locales/de.ts +6 -0
  17. package/src/components/advance-invoices/list/locales/en.ts +5 -0
  18. package/src/components/advance-invoices/list/locales/es.ts +6 -0
  19. package/src/components/advance-invoices/list/locales/fr.ts +6 -0
  20. package/src/components/advance-invoices/list/locales/hr.ts +6 -0
  21. package/src/components/advance-invoices/list/locales/it.ts +6 -0
  22. package/src/components/advance-invoices/list/locales/nl.ts +6 -0
  23. package/src/components/advance-invoices/list/locales/pl.ts +6 -0
  24. package/src/components/advance-invoices/list/locales/pt.ts +6 -0
  25. package/src/components/advance-invoices/list/locales/sl.ts +6 -0
  26. package/src/components/credit-notes/create/create-credit-note-form.tsx +114 -3
  27. package/src/components/credit-notes/create/locales/de.ts +2 -0
  28. package/src/components/credit-notes/create/locales/es.ts +2 -0
  29. package/src/components/credit-notes/create/locales/fr.ts +2 -0
  30. package/src/components/credit-notes/create/locales/hr.ts +1 -0
  31. package/src/components/credit-notes/create/locales/it.ts +2 -0
  32. package/src/components/credit-notes/create/locales/nl.ts +2 -0
  33. package/src/components/credit-notes/create/locales/pl.ts +1 -0
  34. package/src/components/credit-notes/create/locales/pt.ts +1 -0
  35. package/src/components/credit-notes/create/locales/sl.ts +1 -0
  36. package/src/components/credit-notes/credit-notes.hooks.ts +30 -0
  37. package/src/components/credit-notes/list/list-table.tsx +111 -36
  38. package/src/components/credit-notes/list/locales/de.ts +6 -1
  39. package/src/components/credit-notes/list/locales/en.ts +6 -0
  40. package/src/components/credit-notes/list/locales/es.ts +6 -1
  41. package/src/components/credit-notes/list/locales/fr.ts +6 -1
  42. package/src/components/credit-notes/list/locales/hr.ts +6 -1
  43. package/src/components/credit-notes/list/locales/it.ts +6 -1
  44. package/src/components/credit-notes/list/locales/nl.ts +6 -1
  45. package/src/components/credit-notes/list/locales/pl.ts +6 -1
  46. package/src/components/credit-notes/list/locales/pt.ts +6 -1
  47. package/src/components/credit-notes/list/locales/sl.ts +6 -1
  48. package/src/components/customers/customer-list-table/customer-list-table.tsx +0 -3
  49. package/src/components/customers/customer-list-table/locales/de.ts +1 -0
  50. package/src/components/customers/customer-list-table/locales/es.ts +1 -0
  51. package/src/components/customers/customer-list-table/locales/fr.ts +1 -0
  52. package/src/components/customers/customer-list-table/locales/hr.ts +1 -0
  53. package/src/components/customers/customer-list-table/locales/it.ts +1 -0
  54. package/src/components/customers/customer-list-table/locales/nl.ts +1 -0
  55. package/src/components/customers/customer-list-table/locales/pl.ts +1 -0
  56. package/src/components/customers/customer-list-table/locales/pt.ts +1 -0
  57. package/src/components/customers/customer-list-table/locales/sl.ts +1 -0
  58. package/src/components/dashboard/collection-rate-card/use-collection-rate.ts +2 -2
  59. package/src/components/dashboard/invoice-status-chart/use-invoice-status.ts +3 -3
  60. package/src/components/dashboard/payment-methods-chart/use-payment-methods.ts +1 -1
  61. package/src/components/dashboard/payment-trend-chart/use-payment-trend.ts +1 -1
  62. package/src/components/dashboard/revenue-trend-chart/use-revenue-trend.ts +1 -1
  63. package/src/components/dashboard/shared/use-revenue-data.ts +4 -4
  64. package/src/components/dashboard/shared/use-stats-counts.ts +4 -4
  65. package/src/components/dashboard/shared/use-stats-query.ts +1 -1
  66. package/src/components/dashboard/tax-collected-card/use-tax-collected.ts +2 -2
  67. package/src/components/dashboard/top-customers-chart/use-top-customers.ts +1 -1
  68. package/src/components/delivery-notes/create/create-delivery-note-form.tsx +332 -0
  69. package/src/components/delivery-notes/create/locales/de.ts +50 -0
  70. package/src/components/delivery-notes/create/locales/es.ts +49 -0
  71. package/src/components/delivery-notes/create/locales/fr.ts +50 -0
  72. package/src/components/delivery-notes/create/locales/hr.ts +49 -0
  73. package/src/components/delivery-notes/create/locales/it.ts +49 -0
  74. package/src/components/delivery-notes/create/locales/nl.ts +50 -0
  75. package/src/components/delivery-notes/create/locales/pl.ts +49 -0
  76. package/src/components/delivery-notes/create/locales/pt.ts +50 -0
  77. package/src/components/delivery-notes/create/locales/sl.ts +49 -0
  78. package/src/components/delivery-notes/create/prepare-delivery-note-submission.ts +38 -0
  79. package/src/components/delivery-notes/create/use-delivery-note-customer-form.ts +1 -0
  80. package/src/components/delivery-notes/delivery-notes.hooks.ts +15 -0
  81. package/src/components/delivery-notes/list/index.ts +3 -0
  82. package/src/components/delivery-notes/list/list-row-actions.tsx +122 -0
  83. package/src/components/delivery-notes/list/list-table.tsx +247 -0
  84. package/src/components/delivery-notes/list/locales/de.ts +13 -0
  85. package/src/components/delivery-notes/list/locales/en.ts +13 -0
  86. package/src/components/delivery-notes/list/locales/es.ts +13 -0
  87. package/src/components/delivery-notes/list/locales/fr.ts +13 -0
  88. package/src/components/delivery-notes/list/locales/hr.ts +13 -0
  89. package/src/components/delivery-notes/list/locales/it.ts +13 -0
  90. package/src/components/delivery-notes/list/locales/nl.ts +13 -0
  91. package/src/components/delivery-notes/list/locales/pl.ts +13 -0
  92. package/src/components/delivery-notes/list/locales/pt.ts +13 -0
  93. package/src/components/delivery-notes/list/locales/sl.ts +13 -0
  94. package/src/components/delivery-notes/list/use-delivery-note-download.ts +63 -0
  95. package/src/components/documents/create/document-details-section.tsx +76 -58
  96. package/src/components/documents/create/linked-documents-info.tsx +82 -0
  97. package/src/components/documents/create/live-preview.tsx +38 -11
  98. package/src/components/documents/create/prepare-document-submission.ts +1 -1
  99. package/src/components/documents/documents.hooks.ts +2 -1
  100. package/src/components/documents/shared/document-preview-display.tsx +12 -5
  101. package/src/components/documents/types.ts +12 -3
  102. package/src/components/documents/view/document-activities-list.tsx +65 -47
  103. package/src/components/documents/view/document-details-card.tsx +102 -77
  104. package/src/components/documents/view/document-payments-list.tsx +102 -68
  105. package/src/components/documents/view/document-relations-list.tsx +120 -0
  106. package/src/components/documents/view/document-sidebar.tsx +151 -0
  107. package/src/components/documents/view/index.ts +2 -0
  108. package/src/components/documents/view/locales/de.ts +23 -0
  109. package/src/components/documents/view/locales/es.ts +23 -0
  110. package/src/components/documents/view/locales/fr.ts +23 -0
  111. package/src/components/documents/view/locales/hr.ts +23 -0
  112. package/src/components/documents/view/locales/it.ts +23 -0
  113. package/src/components/documents/view/locales/nl.ts +23 -0
  114. package/src/components/documents/view/locales/pl.ts +23 -0
  115. package/src/components/documents/view/locales/pt.ts +23 -0
  116. package/src/components/documents/view/locales/sl.ts +23 -0
  117. package/src/components/documents/view/use-document-download.ts +8 -5
  118. package/src/components/entities/create-entity-form.tsx +165 -13
  119. package/src/components/entities/entity-settings-form/entity-settings-form.tsx +101 -1
  120. package/src/components/entities/entity-settings-form/locales/de.ts +9 -0
  121. package/src/components/entities/entity-settings-form/locales/es.ts +9 -0
  122. package/src/components/entities/entity-settings-form/locales/fr.ts +9 -0
  123. package/src/components/entities/entity-settings-form/locales/hr.ts +9 -0
  124. package/src/components/entities/entity-settings-form/locales/it.ts +9 -0
  125. package/src/components/entities/entity-settings-form/locales/nl.ts +9 -0
  126. package/src/components/entities/entity-settings-form/locales/pl.ts +9 -0
  127. package/src/components/entities/entity-settings-form/locales/pt.ts +9 -0
  128. package/src/components/entities/entity-settings-form/locales/sl.ts +9 -0
  129. package/src/components/entities/fina-settings-form/fina-settings-form.tsx +83 -71
  130. package/src/components/entities/fina-settings-form/fina-settings.hooks.ts +7 -2
  131. package/src/components/entities/fina-settings-form/locales/de.ts +2 -2
  132. package/src/components/entities/fina-settings-form/locales/en.ts +2 -2
  133. package/src/components/entities/fina-settings-form/locales/es.ts +2 -2
  134. package/src/components/entities/fina-settings-form/locales/fr.ts +2 -2
  135. package/src/components/entities/fina-settings-form/locales/hr.ts +2 -2
  136. package/src/components/entities/fina-settings-form/locales/it.ts +2 -2
  137. package/src/components/entities/fina-settings-form/locales/nl.ts +2 -2
  138. package/src/components/entities/fina-settings-form/locales/pl.ts +2 -2
  139. package/src/components/entities/fina-settings-form/locales/pt.ts +2 -2
  140. package/src/components/entities/fina-settings-form/locales/sl.ts +2 -2
  141. package/src/components/entities/furs-settings-form/furs-settings-form.tsx +10 -1
  142. package/src/components/entities/furs-settings-form/furs-settings.hooks.ts +7 -2
  143. package/src/components/entities/furs-settings-form/locales/en.ts +0 -1
  144. package/src/components/entities/furs-settings-form/sections/general-settings-section.tsx +12 -4
  145. package/src/components/entities/settings/pdf-template-selector/locales/de.ts +3 -1
  146. package/src/components/entities/settings/pdf-template-selector/locales/es.ts +3 -1
  147. package/src/components/entities/settings/pdf-template-selector/locales/fr.ts +4 -1
  148. package/src/components/entities/settings/pdf-template-selector/locales/hr.ts +4 -1
  149. package/src/components/entities/settings/pdf-template-selector/locales/it.ts +3 -1
  150. package/src/components/entities/settings/pdf-template-selector/locales/nl.ts +3 -1
  151. package/src/components/entities/settings/pdf-template-selector/locales/pl.ts +3 -1
  152. package/src/components/entities/settings/pdf-template-selector/locales/pt.ts +3 -1
  153. package/src/components/entities/settings/pdf-template-selector/locales/sl.ts +3 -1
  154. package/src/components/entities/settings/pdf-template-selector/pdf-template-cards.tsx +1 -0
  155. package/src/components/estimates/create/create-estimate-form.tsx +29 -2
  156. package/src/components/estimates/list/list-table.tsx +3 -6
  157. package/src/components/estimates/list/locales/de.ts +1 -0
  158. package/src/components/estimates/list/locales/es.ts +1 -0
  159. package/src/components/estimates/list/locales/fr.ts +1 -0
  160. package/src/components/estimates/list/locales/hr.ts +1 -0
  161. package/src/components/estimates/list/locales/it.ts +1 -0
  162. package/src/components/estimates/list/locales/nl.ts +1 -0
  163. package/src/components/estimates/list/locales/pl.ts +1 -0
  164. package/src/components/estimates/list/locales/pt.ts +1 -0
  165. package/src/components/estimates/list/locales/sl.ts +1 -0
  166. package/src/components/export/document-export-form.tsx +9 -2
  167. package/src/components/export/index.ts +2 -0
  168. package/src/components/export/sales-per-item-export-form.tsx +223 -0
  169. package/src/components/invoices/create/create-invoice-form.tsx +48 -1
  170. package/src/components/invoices/create/locales/de.ts +11 -0
  171. package/src/components/invoices/create/locales/es.ts +11 -0
  172. package/src/components/invoices/create/locales/fr.ts +11 -0
  173. package/src/components/invoices/create/locales/hr.ts +10 -0
  174. package/src/components/invoices/create/locales/it.ts +11 -0
  175. package/src/components/invoices/create/locales/nl.ts +11 -0
  176. package/src/components/invoices/create/locales/pl.ts +10 -0
  177. package/src/components/invoices/create/locales/pt.ts +10 -0
  178. package/src/components/invoices/create/locales/sl.ts +10 -0
  179. package/src/components/invoices/invoices-furs.hooks.ts +27 -9
  180. package/src/components/invoices/list/list-row-actions.tsx +3 -3
  181. package/src/components/invoices/list/list-table.tsx +132 -21
  182. package/src/components/invoices/list/locales/de.ts +6 -0
  183. package/src/components/invoices/list/locales/en.ts +5 -0
  184. package/src/components/invoices/list/locales/es.ts +6 -0
  185. package/src/components/invoices/list/locales/fr.ts +6 -0
  186. package/src/components/invoices/list/locales/hr.ts +6 -0
  187. package/src/components/invoices/list/locales/it.ts +6 -0
  188. package/src/components/invoices/list/locales/nl.ts +6 -0
  189. package/src/components/invoices/list/locales/pl.ts +6 -0
  190. package/src/components/invoices/list/locales/pt.ts +6 -0
  191. package/src/components/invoices/list/locales/sl.ts +6 -0
  192. package/src/components/invoices/view/fiscalization-status-card.tsx +42 -24
  193. package/src/components/items/item-combobox.tsx +5 -3
  194. package/src/components/items/item-list-table/item-list-header.tsx +4 -17
  195. package/src/components/items/item-list-table/item-list-row-actions.tsx +3 -2
  196. package/src/components/items/item-list-table/item-list-row.tsx +3 -2
  197. package/src/components/items/item-list-table/item-list-table.tsx +3 -3
  198. package/src/components/items/item-list-table/locales/de.ts +1 -0
  199. package/src/components/items/item-list-table/locales/es.ts +1 -0
  200. package/src/components/items/item-list-table/locales/fr.ts +1 -0
  201. package/src/components/items/item-list-table/locales/hr.ts +1 -0
  202. package/src/components/items/item-list-table/locales/it.ts +1 -0
  203. package/src/components/items/item-list-table/locales/nl.ts +1 -0
  204. package/src/components/items/item-list-table/locales/pl.ts +1 -0
  205. package/src/components/items/item-list-table/locales/pt.ts +1 -0
  206. package/src/components/items/item-list-table/locales/sl.ts +1 -0
  207. package/src/components/payments/list/list-table.tsx +0 -4
  208. package/src/components/payments/list/locales/de.ts +1 -0
  209. package/src/components/payments/list/locales/es.ts +1 -0
  210. package/src/components/payments/list/locales/fr.ts +1 -0
  211. package/src/components/payments/list/locales/hr.ts +1 -0
  212. package/src/components/payments/list/locales/it.ts +1 -0
  213. package/src/components/payments/list/locales/nl.ts +1 -0
  214. package/src/components/payments/list/locales/pl.ts +1 -0
  215. package/src/components/payments/list/locales/pt.ts +1 -0
  216. package/src/components/payments/list/locales/sl.ts +1 -0
  217. package/src/components/recurring-invoices/list/list-table.tsx +0 -7
  218. package/src/components/recurring-invoices/list/locales/de.ts +1 -0
  219. package/src/components/recurring-invoices/list/locales/es.ts +1 -0
  220. package/src/components/recurring-invoices/list/locales/fr.ts +1 -0
  221. package/src/components/recurring-invoices/list/locales/hr.ts +1 -0
  222. package/src/components/recurring-invoices/list/locales/it.ts +1 -0
  223. package/src/components/recurring-invoices/list/locales/nl.ts +1 -0
  224. package/src/components/recurring-invoices/list/locales/pl.ts +1 -0
  225. package/src/components/recurring-invoices/list/locales/pt.ts +1 -0
  226. package/src/components/recurring-invoices/list/locales/sl.ts +1 -0
  227. package/src/components/request-logs/request-log-list-table.tsx +0 -3
  228. package/src/components/table/README.md +14 -121
  229. package/src/components/table/data-table.tsx +22 -37
  230. package/src/components/table/hooks/use-table-state.ts +3 -27
  231. package/src/components/table/index.ts +0 -2
  232. package/src/components/table/selection-toolbar.tsx +35 -1
  233. package/src/components/table/table-empty-state.tsx +6 -3
  234. package/src/components/table/table-no-results.tsx +10 -5
  235. package/src/components/table/types.ts +0 -5
  236. package/src/components/taxes/tax-list-table/locales/de.ts +1 -0
  237. package/src/components/taxes/tax-list-table/locales/es.ts +1 -0
  238. package/src/components/taxes/tax-list-table/locales/fr.ts +1 -0
  239. package/src/components/taxes/tax-list-table/locales/hr.ts +1 -0
  240. package/src/components/taxes/tax-list-table/locales/it.ts +1 -0
  241. package/src/components/taxes/tax-list-table/locales/nl.ts +1 -0
  242. package/src/components/taxes/tax-list-table/locales/pl.ts +1 -0
  243. package/src/components/taxes/tax-list-table/locales/pt.ts +1 -0
  244. package/src/components/taxes/tax-list-table/locales/sl.ts +1 -0
  245. package/src/components/taxes/tax-list-table/tax-list-header.tsx +3 -14
  246. package/src/components/taxes/tax-list-table/tax-list-table.tsx +3 -3
  247. package/src/components/ui/popover.tsx +3 -1
  248. package/src/components/ui/tooltip.tsx +3 -1
  249. package/src/generated/schemas/deliverynote.ts +134 -0
  250. package/src/generated/schemas/entity.ts +4 -0
  251. package/src/generated/schemas/index.ts +3 -0
  252. package/src/generated/schemas/order.ts +5 -3
  253. package/src/generated/schemas/payment.ts +22 -2
  254. package/src/generated/schemas/renderadvanceinvoicepreview_body.ts +1 -0
  255. package/src/generated/schemas/rendercreditnotepreview_body.ts +1 -0
  256. package/src/generated/schemas/renderdeliverynotepreview_body.ts +185 -0
  257. package/src/generated/schemas/renderestimatepreview_body.ts +1 -0
  258. package/src/generated/schemas/renderinvoicepreview_body.ts +1 -0
  259. package/src/generated/schemas/startpdfexport_body.ts +18 -2
  260. package/src/generated/schemas/userfinasettings.ts +19 -0
  261. package/src/generated/schemas/webhook.ts +12 -0
  262. package/src/hooks/use-duplicate-document.ts +49 -6
  263. package/src/hooks/use-next-document-number.ts +2 -2
  264. package/src/lib/fiscalization.ts +12 -0
  265. package/src/lib/schemas/advance-invoice.ts +0 -1
  266. package/src/providers/sdk-provider.tsx +5 -7
  267. package/src/components/table/sortable-header.tsx +0 -56
@@ -54,6 +54,11 @@ interface FinaSettingsFormProps extends ComponentTranslationProps {
54
54
  initialStep?: FinaStepType;
55
55
  onStepChange?: (step: FinaStepType) => void;
56
56
  renderSection?: (section: FinaSectionType, content: ReactNode) => ReactNode;
57
+ /**
58
+ * Hide user-specific operator section (for embed/API key contexts without user session).
59
+ * When true, the "Advanced Settings" entity-level operator fields are auto-expanded instead.
60
+ */
61
+ hideUserOperatorSection?: boolean;
57
62
  }
58
63
 
59
64
  /**
@@ -75,6 +80,7 @@ export const FinaSettingsForm: FC<FinaSettingsFormProps> = ({
75
80
  initialStep = "settings",
76
81
  onStepChange,
77
82
  renderSection,
83
+ hideUserOperatorSection,
78
84
  }) => {
79
85
  const [activeStep, setActiveStep] = useState<FinaStepType>(initialStep);
80
86
  const [hasInitializedStep, setHasInitializedStep] = useState(false);
@@ -138,7 +144,9 @@ export const FinaSettingsForm: FC<FinaSettingsFormProps> = ({
138
144
  });
139
145
 
140
146
  // User FINA operator settings (per-user, stored in user.settings)
141
- const { data: userFinaSettings, isLoading: userSettingsLoading } = useUserFinaSettings(entity.id);
147
+ const { data: userFinaSettings, isLoading: userSettingsLoading } = useUserFinaSettings(entity.id, {
148
+ enabled: !hideUserOperatorSection,
149
+ });
142
150
  const [userOperatorOib, setUserOperatorOib] = useState("");
143
151
  const [userOperatorLabel, setUserOperatorLabel] = useState("");
144
152
 
@@ -166,10 +174,10 @@ export const FinaSettingsForm: FC<FinaSettingsFormProps> = ({
166
174
  };
167
175
 
168
176
  // Form state for entity-level settings (API default)
169
- const [isAdvancedOpen, setIsAdvancedOpen] = useState(false);
177
+ const [isAdvancedOpen, setIsAdvancedOpen] = useState(!!hideUserOperatorSection);
170
178
  const [formData, setFormData] = useState({
171
179
  enabled: false,
172
- numbering_sequence: "N" as "N" | "P",
180
+ numbering_sequence: "P" as "N" | "P",
173
181
  operator_oib: "",
174
182
  operator_label: "",
175
183
  u_sust_pdv: true,
@@ -180,7 +188,7 @@ export const FinaSettingsForm: FC<FinaSettingsFormProps> = ({
180
188
  if (finaSettings) {
181
189
  setFormData({
182
190
  enabled: finaSettings.enabled || false,
183
- numbering_sequence: finaSettings.numbering_sequence || "N",
191
+ numbering_sequence: finaSettings.numbering_sequence || "P",
184
192
  operator_oib: finaSettings.operator_oib || "",
185
193
  operator_label: finaSettings.operator_label || "",
186
194
  u_sust_pdv: finaSettings.u_sust_pdv ?? true,
@@ -515,12 +523,12 @@ export const FinaSettingsForm: FC<FinaSettingsFormProps> = ({
515
523
  className="space-y-2"
516
524
  >
517
525
  <div className="flex items-center space-x-2">
518
- <RadioGroupItem value="N" id="seq-n" />
519
- <Label htmlFor="seq-n">{translate("Per Premise (N)")}</Label>
526
+ <RadioGroupItem value="P" id="seq-p" />
527
+ <Label htmlFor="seq-p">{translate("Per Premise (P)")}</Label>
520
528
  </div>
521
529
  <div className="flex items-center space-x-2">
522
- <RadioGroupItem value="P" id="seq-p" />
523
- <Label htmlFor="seq-p">{translate("Per Device (P)")}</Label>
530
+ <RadioGroupItem value="N" id="seq-n" />
531
+ <Label htmlFor="seq-n">{translate("Per Device (N)")}</Label>
524
532
  </div>
525
533
  </RadioGroup>
526
534
  </div>,
@@ -553,73 +561,77 @@ export const FinaSettingsForm: FC<FinaSettingsFormProps> = ({
553
561
 
554
562
  <Separator />
555
563
 
556
- {/* Per-user operator settings */}
557
- {wrapSection(
558
- "user-operator",
559
- <div className="space-y-4">
560
- <div className="flex items-center gap-3">
561
- <div className="flex h-10 w-10 items-center justify-center rounded-lg bg-blue-500/10">
562
- <User className="h-5 w-5 text-blue-600 dark:text-blue-400" />
563
- </div>
564
- <div>
565
- <h3 className="font-semibold text-lg">{translate("Your Operator Settings")}</h3>
566
- <p className="text-muted-foreground text-sm">
567
- {translate("Your personal operator info for FINA invoices")}
568
- </p>
569
- </div>
570
- </div>
564
+ {/* Per-user operator settings (hidden in embed/API key mode) */}
565
+ {!hideUserOperatorSection && (
566
+ <>
567
+ {wrapSection(
568
+ "user-operator",
569
+ <div className="space-y-4">
570
+ <div className="flex items-center gap-3">
571
+ <div className="flex h-10 w-10 items-center justify-center rounded-lg bg-blue-500/10">
572
+ <User className="h-5 w-5 text-blue-600 dark:text-blue-400" />
573
+ </div>
574
+ <div>
575
+ <h3 className="font-semibold text-lg">{translate("Your Operator Settings")}</h3>
576
+ <p className="text-muted-foreground text-sm">
577
+ {translate("Your personal operator info for FINA invoices")}
578
+ </p>
579
+ </div>
580
+ </div>
571
581
 
572
- {(!userFinaSettings?.operator_oib || !userFinaSettings?.operator_label) && (
573
- <Alert variant="destructive">
574
- <AlertTriangle className="h-4 w-4" />
575
- <AlertDescription>
576
- {translate("Operator OIB and label are required for FINA fiscalization")}
577
- </AlertDescription>
578
- </Alert>
579
- )}
582
+ {(!userFinaSettings?.operator_oib || !userFinaSettings?.operator_label) && (
583
+ <Alert variant="destructive">
584
+ <AlertTriangle className="h-4 w-4" />
585
+ <AlertDescription>
586
+ {translate("Operator OIB and label are required for FINA fiscalization")}
587
+ </AlertDescription>
588
+ </Alert>
589
+ )}
580
590
 
581
- <div className="space-y-4">
582
- <div>
583
- <Label className="font-medium text-sm">{translate("Operator OIB")}</Label>
584
- <Input
585
- type="text"
586
- value={userOperatorOib}
587
- onChange={(e) => {
588
- const val = e.target.value.replace(/[^0-9]/g, "");
589
- setUserOperatorOib(val);
590
- }}
591
- placeholder={translate("OIB of the operator (11 digits)")}
592
- className={cn("mt-1", userOperatorOibError && "border-destructive")}
593
- maxLength={11}
594
- disabled={userSettingsLoading}
595
- />
596
- {userOperatorOibError && <p className="mt-1 text-destructive text-xs">{userOperatorOibError}</p>}
597
- </div>
598
- <div>
599
- <Label className="font-medium text-sm">{translate("Operator Label")}</Label>
600
- <Input
601
- type="text"
602
- value={userOperatorLabel}
603
- onChange={(e) => setUserOperatorLabel(e.target.value)}
604
- placeholder={translate("e.g. Cashier 1")}
605
- className="mt-1"
606
- disabled={userSettingsLoading}
607
- />
608
- </div>
591
+ <div className="space-y-4">
592
+ <div>
593
+ <Label className="font-medium text-sm">{translate("Operator OIB")}</Label>
594
+ <Input
595
+ type="text"
596
+ value={userOperatorOib}
597
+ onChange={(e) => {
598
+ const val = e.target.value.replace(/[^0-9]/g, "");
599
+ setUserOperatorOib(val);
600
+ }}
601
+ placeholder={translate("OIB of the operator (11 digits)")}
602
+ className={cn("mt-1", userOperatorOibError && "border-destructive")}
603
+ maxLength={11}
604
+ disabled={userSettingsLoading}
605
+ />
606
+ {userOperatorOibError && <p className="mt-1 text-destructive text-xs">{userOperatorOibError}</p>}
607
+ </div>
608
+ <div>
609
+ <Label className="font-medium text-sm">{translate("Operator Label")}</Label>
610
+ <Input
611
+ type="text"
612
+ value={userOperatorLabel}
613
+ onChange={(e) => setUserOperatorLabel(e.target.value)}
614
+ placeholder={translate("e.g. Cashier 1")}
615
+ className="mt-1"
616
+ disabled={userSettingsLoading}
617
+ />
618
+ </div>
609
619
 
610
- <Button
611
- type="button"
612
- onClick={handleSaveUserSettings}
613
- disabled={isUserSettingsPending || userSettingsLoading || !!userOperatorOibError}
614
- className="cursor-pointer"
615
- >
616
- {isUserSettingsPending ? translate("Saving...") : translate("Save Operator Settings")}
617
- </Button>
618
- </div>
619
- </div>,
620
- )}
620
+ <Button
621
+ type="button"
622
+ onClick={handleSaveUserSettings}
623
+ disabled={isUserSettingsPending || userSettingsLoading || !!userOperatorOibError}
624
+ className="cursor-pointer"
625
+ >
626
+ {isUserSettingsPending ? translate("Saving...") : translate("Save Operator Settings")}
627
+ </Button>
628
+ </div>
629
+ </div>,
630
+ )}
621
631
 
622
- <Separator />
632
+ <Separator />
633
+ </>
634
+ )}
623
635
 
624
636
  {/* API Default Operator (advanced/entity-level) */}
625
637
  {wrapSection(
@@ -251,8 +251,13 @@ function useCurrentUser(options?: Omit<UseQueryOptions<any>, "queryKey" | "query
251
251
  * Hook: Get user FINA settings for a specific entity
252
252
  * Extracts FINA settings from user.settings using the fina_<entity_id> key
253
253
  */
254
- export function useUserFinaSettings(entityId: string) {
255
- const { data: user, isLoading, error, ...rest } = useCurrentUser();
254
+ export function useUserFinaSettings(entityId: string, options?: { enabled?: boolean }) {
255
+ const {
256
+ data: user,
257
+ isLoading,
258
+ error,
259
+ ...rest
260
+ } = useCurrentUser(options?.enabled === false ? { enabled: false } : undefined);
256
261
 
257
262
  const userFinaSettings = useMemo<UserFinaSettings | null>(() => {
258
263
  if (!user?.settings) return null;
@@ -19,8 +19,8 @@ export default {
19
19
  "Registrieren Sie mindestens einen Geschäftsraum, bevor Sie Rechnungen fiskalisieren",
20
20
  "Numbering Sequence": "Nummerierungsfolge",
21
21
  "Choose how invoice numbers are sequenced": "Wählen Sie, wie Rechnungsnummern sequenziert werden",
22
- "Per Premise (N)": "Pro Raum (N)",
23
- "Per Device (P)": "Pro Gerät (P)",
22
+ "Per Device (N)": "Pro Gerät (N)",
23
+ "Per Premise (P)": "Pro Raum (P)",
24
24
  Recommended: "Empfohlen",
25
25
  "One sequence per business premise. Simpler to manage.": "Eine Sequenz pro Geschäftsraum. Einfacher zu verwalten.",
26
26
  "Separate sequence per electronic device. For multi-device setups.":
@@ -18,8 +18,8 @@ export default {
18
18
  "Register at least one business premise before fiscalizing invoices",
19
19
  "Numbering Sequence": "Numbering Sequence",
20
20
  "Choose how invoice numbers are sequenced": "Choose how invoice numbers are sequenced",
21
- "Per Premise (N)": "Per Premise (N)",
22
- "Per Device (P)": "Per Device (P)",
21
+ "Per Device (N)": "Per Device (N)",
22
+ "Per Premise (P)": "Per Premise (P)",
23
23
  Recommended: "Recommended",
24
24
  "One sequence per business premise. Simpler to manage.": "One sequence per business premise. Simpler to manage.",
25
25
  "Separate sequence per electronic device. For multi-device setups.":
@@ -18,8 +18,8 @@ export default {
18
18
  "Registre al menos un local comercial antes de fiscalizar facturas",
19
19
  "Numbering Sequence": "Secuencia de numeración",
20
20
  "Choose how invoice numbers are sequenced": "Elija cómo se secuencian los números de factura",
21
- "Per Premise (N)": "Por local (N)",
22
- "Per Device (P)": "Por dispositivo (P)",
21
+ "Per Device (N)": "Por dispositivo (N)",
22
+ "Per Premise (P)": "Por local (P)",
23
23
  Recommended: "Recomendado",
24
24
  "One sequence per business premise. Simpler to manage.":
25
25
  "Una secuencia por local comercial. Más simple de gestionar.",
@@ -18,8 +18,8 @@ export default {
18
18
  "Enregistrez au moins un local commercial avant de fiscaliser les factures",
19
19
  "Numbering Sequence": "Séquence de numérotation",
20
20
  "Choose how invoice numbers are sequenced": "Choisissez comment les numéros de factures sont séquencés",
21
- "Per Premise (N)": "Par local (N)",
22
- "Per Device (P)": "Par appareil (P)",
21
+ "Per Device (N)": "Par appareil (N)",
22
+ "Per Premise (P)": "Par local (P)",
23
23
  Recommended: "Recommandé",
24
24
  "One sequence per business premise. Simpler to manage.": "Une séquence par local commercial. Plus simple à gérer.",
25
25
  "Separate sequence per electronic device. For multi-device setups.":
@@ -18,8 +18,8 @@ export default {
18
18
  "Registrirajte barem jedan poslovni prostor prije fiskalizacije računa",
19
19
  "Numbering Sequence": "Redoslijed numeriranja",
20
20
  "Choose how invoice numbers are sequenced": "Odaberite način numeriranja računa",
21
- "Per Premise (N)": "Po prostoru (N)",
22
- "Per Device (P)": "Po uređaju (P)",
21
+ "Per Device (N)": "Po uređaju (N)",
22
+ "Per Premise (P)": "Po prostoru (P)",
23
23
  Recommended: "Preporučeno",
24
24
  "One sequence per business premise. Simpler to manage.":
25
25
  "Jedan redoslijed po poslovnom prostoru. Jednostavnije za upravljanje.",
@@ -18,8 +18,8 @@ export default {
18
18
  "Registra almeno un locale commerciale prima di fiscalizzare le fatture",
19
19
  "Numbering Sequence": "Sequenza di numerazione",
20
20
  "Choose how invoice numbers are sequenced": "Scegli come vengono numerati i documenti",
21
- "Per Premise (N)": "Per locale (N)",
22
- "Per Device (P)": "Per dispositivo (P)",
21
+ "Per Device (N)": "Per dispositivo (N)",
22
+ "Per Premise (P)": "Per locale (P)",
23
23
  Recommended: "Consigliato",
24
24
  "One sequence per business premise. Simpler to manage.":
25
25
  "Una sequenza per locale commerciale. Più semplice da gestire.",
@@ -18,8 +18,8 @@ export default {
18
18
  "Registreer ten minste één bedrijfsruimte voordat u facturen fiscaliseert",
19
19
  "Numbering Sequence": "Nummeringsreeks",
20
20
  "Choose how invoice numbers are sequenced": "Kies hoe factuurnummers worden gesequenst",
21
- "Per Premise (N)": "Per ruimte (N)",
22
- "Per Device (P)": "Per apparaat (P)",
21
+ "Per Device (N)": "Per apparaat (N)",
22
+ "Per Premise (P)": "Per ruimte (P)",
23
23
  Recommended: "Aanbevolen",
24
24
  "One sequence per business premise. Simpler to manage.": "Eén reeks per bedrijfsruimte. Eenvoudiger te beheren.",
25
25
  "Separate sequence per electronic device. For multi-device setups.":
@@ -18,8 +18,8 @@ export default {
18
18
  "Zarejestruj co najmniej jeden lokal użytkowy przed fiskalizacją faktur",
19
19
  "Numbering Sequence": "Sekwencja numeracji",
20
20
  "Choose how invoice numbers are sequenced": "Wybierz sposób numeracji faktur",
21
- "Per Premise (N)": "Na lokal (N)",
22
- "Per Device (P)": "Na urządzenie (P)",
21
+ "Per Device (N)": "Na urządzenie (N)",
22
+ "Per Premise (P)": "Na lokal (P)",
23
23
  Recommended: "Zalecane",
24
24
  "One sequence per business premise. Simpler to manage.": "Jedna sekwencja na lokal użytkowy. Łatwiejsze zarządzanie.",
25
25
  "Separate sequence per electronic device. For multi-device setups.":
@@ -18,8 +18,8 @@ export default {
18
18
  "Registe pelo menos uma instalação comercial antes de fiscalizar faturas",
19
19
  "Numbering Sequence": "Sequência de numeração",
20
20
  "Choose how invoice numbers are sequenced": "Escolha como os números de fatura são sequenciados",
21
- "Per Premise (N)": "Por instalação (N)",
22
- "Per Device (P)": "Por dispositivo (P)",
21
+ "Per Device (N)": "Por dispositivo (N)",
22
+ "Per Premise (P)": "Por instalação (P)",
23
23
  Recommended: "Recomendado",
24
24
  "One sequence per business premise. Simpler to manage.":
25
25
  "Uma sequência por instalação comercial. Mais simples de gerir.",
@@ -18,8 +18,8 @@ export default {
18
18
  "Registrirajte vsaj en poslovni prostor, preden fiskalizirate račune",
19
19
  "Numbering Sequence": "Zaporedje številčenja",
20
20
  "Choose how invoice numbers are sequenced": "Izberite način številčenja računov",
21
- "Per Premise (N)": "Po prostoru (N)",
22
- "Per Device (P)": "Po napravi (P)",
21
+ "Per Device (N)": "Po napravi (N)",
22
+ "Per Premise (P)": "Po prostoru (P)",
23
23
  Recommended: "Priporočeno",
24
24
  "One sequence per business premise. Simpler to manage.":
25
25
  "Eno zaporedje na poslovni prostor. Enostavnejše za upravljanje.",
@@ -69,6 +69,11 @@ interface FursSettingsFormProps extends ComponentTranslationProps {
69
69
  * Optional render prop to wrap each section with help content
70
70
  */
71
71
  renderSection?: (section: SectionType, content: ReactNode) => ReactNode;
72
+ /**
73
+ * Hide user-specific operator section (for embed/API key contexts without user session).
74
+ * When true, the "Advanced Settings" entity-level operator fields are auto-expanded instead.
75
+ */
76
+ hideUserOperatorSection?: boolean;
72
77
  }
73
78
 
74
79
  /**
@@ -92,6 +97,7 @@ export const FursSettingsForm: FC<FursSettingsFormProps> = ({
92
97
  initialStep = "settings",
93
98
  onStepChange,
94
99
  renderSection,
100
+ hideUserOperatorSection,
95
101
  }) => {
96
102
  // Step navigation state (can be controlled via props for URL sync)
97
103
  const [activeStep, setActiveStep] = useState<StepType>(initialStep);
@@ -117,7 +123,9 @@ export const FursSettingsForm: FC<FursSettingsFormProps> = ({
117
123
  // Fetch FURS settings and premises
118
124
  const { data: fursSettings, isLoading: settingsLoading } = useFursSettings(entity.id);
119
125
  const { data: premises, isLoading: premisesLoading } = useFursPremises(entity.id);
120
- const { data: userFursSettings } = useUserFursSettings(entity.id);
126
+ const { data: userFursSettings } = useUserFursSettings(entity.id, {
127
+ enabled: !hideUserOperatorSection,
128
+ });
121
129
 
122
130
  const { mutate: updateSettings, isPending } = useUpdateFursSettings({
123
131
  onSuccess: () => {
@@ -388,6 +396,7 @@ export const FursSettingsForm: FC<FursSettingsFormProps> = ({
388
396
  onSuccess={onSuccess}
389
397
  onError={onError}
390
398
  wrapSection={wrapSection}
399
+ hideUserOperatorSection={hideUserOperatorSection}
391
400
  />
392
401
  )}
393
402
 
@@ -277,8 +277,13 @@ export function useCurrentUser(options?: Omit<UseQueryOptions<User>, "queryKey"
277
277
  * Hook: Get user FURS settings for a specific entity
278
278
  * Extracts FURS settings from user.settings using the furs_<entity_id> key
279
279
  */
280
- export function useUserFursSettings(entityId: string) {
281
- const { data: user, isLoading, error, ...rest } = useCurrentUser();
280
+ export function useUserFursSettings(entityId: string, options?: { enabled?: boolean }) {
281
+ const {
282
+ data: user,
283
+ isLoading,
284
+ error,
285
+ ...rest
286
+ } = useCurrentUser(options?.enabled === false ? { enabled: false } : undefined);
282
287
 
283
288
  const userFursSettings = useMemo<UserFursSettings | null>(() => {
284
289
  if (!user?.settings) return null;
@@ -183,7 +183,6 @@ export default {
183
183
  "Save Operator Settings": "Save Operator Settings",
184
184
  "Your tax number for FURS fiscalization": "Your tax number for FURS fiscalization",
185
185
  "Descriptive label for the operator (e.g. Cashier 1)": "Descriptive label for the operator (e.g. Cashier 1)",
186
- "e.g. Cashier 1": "e.g. Cashier 1",
187
186
  "Fiscalization Settings": "Fiscalization Settings",
188
187
  "Advanced Settings": "Advanced Settings",
189
188
  "API Default Operator": "API Default Operator",
@@ -20,6 +20,7 @@ interface GeneralSettingsSectionProps {
20
20
  onSuccess?: () => void;
21
21
  onError?: (error: unknown) => void;
22
22
  wrapSection?: (section: SectionType, content: ReactNode) => ReactNode;
23
+ hideUserOperatorSection?: boolean;
23
24
  }
24
25
 
25
26
  export const GeneralSettingsSection: FC<GeneralSettingsSectionProps> = ({
@@ -29,9 +30,10 @@ export const GeneralSettingsSection: FC<GeneralSettingsSectionProps> = ({
29
30
  onSuccess,
30
31
  onError,
31
32
  wrapSection,
33
+ hideUserOperatorSection,
32
34
  }) => {
33
35
  const wrap = (section: SectionType, content: ReactNode) => (wrapSection ? wrapSection(section, content) : content);
34
- const [isAdvancedOpen, setIsAdvancedOpen] = useState(false);
36
+ const [isAdvancedOpen, setIsAdvancedOpen] = useState(!!hideUserOperatorSection);
35
37
 
36
38
  // Entity info (local state for form)
37
39
  const [entityTaxNumber, setEntityTaxNumber] = useState("");
@@ -65,7 +67,9 @@ export const GeneralSettingsSection: FC<GeneralSettingsSectionProps> = ({
65
67
  };
66
68
 
67
69
  // User operator settings (local state for form)
68
- const { data: userFursSettings, isLoading: userSettingsLoading } = useUserFursSettings(entity.id);
70
+ const { data: userFursSettings, isLoading: userSettingsLoading } = useUserFursSettings(entity.id, {
71
+ enabled: !hideUserOperatorSection,
72
+ });
69
73
  const [operatorTaxNumber, setOperatorTaxNumber] = useState("");
70
74
  const [operatorLabel, setOperatorLabel] = useState("");
71
75
 
@@ -375,8 +379,12 @@ export const GeneralSettingsSection: FC<GeneralSettingsSectionProps> = ({
375
379
  <div className="space-y-6">
376
380
  {wrap("entity-info", entityInfoContent)}
377
381
  <Separator />
378
- {wrap("operator", operatorContent)}
379
- <Separator />
382
+ {!hideUserOperatorSection && (
383
+ <>
384
+ {wrap("operator", operatorContent)}
385
+ <Separator />
386
+ </>
387
+ )}
380
388
  {wrap("fiscalization", fiscalizationContent)}
381
389
  <Separator />
382
390
  {wrap("advanced", advancedContent)}
@@ -7,7 +7,9 @@ export default {
7
7
  Modern: "Modern",
8
8
  "Modern template description": "Klares, professionelles Design für die meisten Unternehmen geeignet",
9
9
  Classic: "Klassisch",
10
- "Classic template description": "Traditioneller Rechnungsstil mit Serifenschriften und Rahmen",
10
+ "Classic template description": "Lato-Schrift-Design mit farbiger Datenbox und abwechselnden Zeilenhintergründen",
11
+ Condensed: "Kompakt",
12
+ "Condensed template description": "Traditioneller Rechnungsstil mit Rahmen und kompaktem Layout",
11
13
  Minimal: "Minimal",
12
14
  "Minimal template description": "Typografie-fokussiertes Design mit klarer Ästhetik",
13
15
  Fashion: "Mode",
@@ -7,7 +7,9 @@ export default {
7
7
  Modern: "Moderna",
8
8
  "Modern template description": "Diseño limpio y profesional adecuado para la mayoría de las empresas",
9
9
  Classic: "Clásica",
10
- "Classic template description": "Diseño tradicional de factura con fuentes serif y bordes",
10
+ "Classic template description": "Diseño con fuente Lato, caja de datos con color y fondos de filas alternos",
11
+ Condensed: "Compacta",
12
+ "Condensed template description": "Diseño tradicional de factura con bordes y disposición compacta",
11
13
  Minimal: "Minimalista",
12
14
  "Minimal template description": "Diseño centrado en la tipografía con una estética limpia",
13
15
  Fashion: "Fashion",
@@ -7,7 +7,10 @@ export default {
7
7
  Modern: "Moderne",
8
8
  "Modern template description": "Design épuré et professionnel adapté à la plupart des entreprises",
9
9
  Classic: "Classique",
10
- "Classic template description": "Mise en page traditionnelle avec polices à empattements et bordures",
10
+ "Classic template description":
11
+ "Design avec police Lato, boîte de données colorée et arrière-plans de lignes alternés",
12
+ Condensed: "Condensé",
13
+ "Condensed template description": "Mise en page traditionnelle avec bordures et disposition compacte",
11
14
  Minimal: "Minimaliste",
12
15
  "Minimal template description": "Design axé sur la typographie avec une esthétique épurée",
13
16
  Fashion: "Fashion",
@@ -7,7 +7,10 @@ export default {
7
7
  Modern: "Moderan",
8
8
  "Modern template description": "Čist, profesionalan dizajn prikladan za većinu tvrtki",
9
9
  Classic: "Klasičan",
10
- "Classic template description": "Tradicionalni raspored računa sa serifnim fontovima i okvirima",
10
+ "Classic template description":
11
+ "Dizajn s Lato fontom, obojenom podatkovnom kutijom i izmjenjujućim pozadinama redaka",
12
+ Condensed: "Kompaktan",
13
+ "Condensed template description": "Tradicionalni raspored računa s okvirima i kompaktnim rasporedom",
11
14
  Minimal: "Minimalistički",
12
15
  "Minimal template description": "Tipografski usmjeren dizajn s čistom estetikom",
13
16
  Fashion: "Fashion",
@@ -7,7 +7,9 @@ export default {
7
7
  Modern: "Moderno",
8
8
  "Modern template description": "Design pulito e professionale adatto alla maggior parte delle aziende",
9
9
  Classic: "Classico",
10
- "Classic template description": "Layout tradizionale per fatture con caratteri serif e bordi",
10
+ "Classic template description": "Design con font Lato, riquadro dati colorato e sfondi di riga alternati",
11
+ Condensed: "Compatto",
12
+ "Condensed template description": "Layout tradizionale per fatture con bordi e disposizione compatta",
11
13
  Minimal: "Minimale",
12
14
  "Minimal template description": "Design incentrato sulla tipografia con un'estetica pulita",
13
15
  Fashion: "Fashion",
@@ -6,7 +6,9 @@ export default {
6
6
  Modern: "Modern",
7
7
  "Modern template description": "Strak, professioneel ontwerp geschikt voor de meeste bedrijven",
8
8
  Classic: "Klassiek",
9
- "Classic template description": "Traditionele factuurindeling met schreeflettertypen en kaders",
9
+ "Classic template description": "Ontwerp met Lato-lettertype, gekleurd gegevensvak en afwisselende rijachtergronden",
10
+ Condensed: "Compact",
11
+ "Condensed template description": "Traditionele factuurindeling met kaders en compacte weergave",
10
12
  Minimal: "Minimalistisch",
11
13
  "Minimal template description": "Typografisch gericht ontwerp met een strakke esthetiek",
12
14
  Fashion: "Fashion",
@@ -7,7 +7,9 @@ export default {
7
7
  Modern: "Nowoczesny",
8
8
  "Modern template description": "Czysty, profesjonalny design odpowiedni dla większości firm",
9
9
  Classic: "Klasyczny",
10
- "Classic template description": "Tradycyjny układ faktury z czcionkami szeryfowymi i ramkami",
10
+ "Classic template description": "Design z czcionką Lato, kolorowym polem danych i naprzemiennymi tłami wierszy",
11
+ Condensed: "Kompaktowy",
12
+ "Condensed template description": "Tradycyjny układ faktury z ramkami i kompaktowym rozmieszczeniem",
11
13
  Minimal: "Minimalistyczny",
12
14
  "Minimal template description": "Design skoncentrowany na typografii z czystą estetyką",
13
15
  Fashion: "Fashion",
@@ -7,7 +7,9 @@ export default {
7
7
  Modern: "Moderno",
8
8
  "Modern template description": "Design limpo e profissional adequado para a maioria das empresas",
9
9
  Classic: "Clássico",
10
- "Classic template description": "Layout tradicional de fatura com fontes serifadas e bordas",
10
+ "Classic template description": "Design com fonte Lato, caixa de dados colorida e fundos de linhas alternados",
11
+ Condensed: "Compacto",
12
+ "Condensed template description": "Layout tradicional de fatura com bordas e disposição compacta",
11
13
  Minimal: "Minimalista",
12
14
  "Minimal template description": "Design focado na tipografia com uma estética limpa",
13
15
  Fashion: "Fashion",
@@ -7,7 +7,9 @@ export default {
7
7
  Modern: "Moderna",
8
8
  "Modern template description": "Čista, profesionalna oblika primerna za večino podjetij",
9
9
  Classic: "Klasična",
10
- "Classic template description": "Tradicionalna oblika računa s serifnimi pisavami in okvirji",
10
+ "Classic template description": "Oblika z Lato pisavo, barvnim okvirjem podatkov in izmenjujočimi ozadji vrstic",
11
+ Condensed: "Kompaktna",
12
+ "Condensed template description": "Tradicionalna oblika računa z okvirji in kompaktno postavitvijo",
11
13
  Minimal: "Minimalistična",
12
14
  "Minimal template description": "Tipografsko osredotočena oblika s čisto estetiko",
13
15
  Fashion: "Modna",
@@ -9,6 +9,7 @@ const TEMPLATES: Array<{
9
9
  }> = [
10
10
  { id: "modern", nameKey: "Modern", descriptionKey: "Modern template description" },
11
11
  { id: "classic", nameKey: "Classic", descriptionKey: "Classic template description" },
12
+ { id: "condensed", nameKey: "Condensed", descriptionKey: "Condensed template description" },
12
13
  { id: "minimal", nameKey: "Minimal", descriptionKey: "Minimal template description" },
13
14
  { id: "fashion", nameKey: "Fashion", descriptionKey: "Fashion template description" },
14
15
  ];