@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.
Files changed (400) hide show
  1. package/cli/dist/index.js +1 -1
  2. package/package.json +1 -1
  3. package/registry.json +287 -122
  4. package/src/components/activities/activity-timeline.tsx +8 -1
  5. package/src/components/activities/locales/es.ts +30 -0
  6. package/src/components/activities/locales/fr.ts +30 -0
  7. package/src/components/activities/locales/hr.ts +30 -0
  8. package/src/components/activities/locales/it.ts +30 -0
  9. package/src/components/activities/locales/nl.ts +30 -0
  10. package/src/components/activities/locales/pl.ts +30 -0
  11. package/src/components/activities/locales/pt.ts +30 -0
  12. package/src/components/advance-invoices/create/create-advance-invoice-form.tsx +21 -7
  13. package/src/components/advance-invoices/create/locales/es.ts +29 -0
  14. package/src/components/advance-invoices/create/locales/fr.ts +28 -0
  15. package/src/components/advance-invoices/create/locales/hr.ts +27 -0
  16. package/src/components/advance-invoices/create/locales/it.ts +29 -0
  17. package/src/components/advance-invoices/create/locales/nl.ts +28 -0
  18. package/src/components/advance-invoices/create/locales/pl.ts +28 -0
  19. package/src/components/advance-invoices/create/locales/pt.ts +29 -0
  20. package/src/components/advance-invoices/create/prepare-advance-invoice-submission.ts +3 -3
  21. package/src/components/advance-invoices/list/list-table.tsx +20 -3
  22. package/src/components/advance-invoices/list/locales/de.ts +9 -0
  23. package/src/components/advance-invoices/list/locales/en.ts +8 -0
  24. package/src/components/advance-invoices/list/locales/es.ts +41 -0
  25. package/src/components/advance-invoices/list/locales/fr.ts +41 -0
  26. package/src/components/advance-invoices/list/locales/hr.ts +41 -0
  27. package/src/components/advance-invoices/list/locales/it.ts +41 -0
  28. package/src/components/advance-invoices/list/locales/nl.ts +41 -0
  29. package/src/components/advance-invoices/list/locales/pl.ts +41 -0
  30. package/src/components/advance-invoices/list/locales/pt.ts +41 -0
  31. package/src/components/advance-invoices/list/locales/sl.ts +9 -0
  32. package/src/components/credit-notes/create/create-credit-note-form.tsx +19 -5
  33. package/src/components/credit-notes/create/locales/es.ts +68 -0
  34. package/src/components/credit-notes/create/locales/fr.ts +69 -0
  35. package/src/components/credit-notes/create/locales/hr.ts +68 -0
  36. package/src/components/credit-notes/create/locales/it.ts +68 -0
  37. package/src/components/credit-notes/create/locales/nl.ts +69 -0
  38. package/src/components/credit-notes/create/locales/pl.ts +68 -0
  39. package/src/components/credit-notes/create/locales/pt.ts +68 -0
  40. package/src/components/credit-notes/list/list-table.tsx +25 -8
  41. package/src/components/credit-notes/list/locales/de.ts +10 -2
  42. package/src/components/credit-notes/list/locales/en.ts +8 -0
  43. package/src/components/credit-notes/list/locales/es.ts +41 -0
  44. package/src/components/credit-notes/list/locales/fr.ts +41 -0
  45. package/src/components/credit-notes/list/locales/hr.ts +41 -0
  46. package/src/components/credit-notes/list/locales/it.ts +41 -0
  47. package/src/components/credit-notes/list/locales/nl.ts +41 -0
  48. package/src/components/credit-notes/list/locales/pl.ts +41 -0
  49. package/src/components/credit-notes/list/locales/pt.ts +41 -0
  50. package/src/components/credit-notes/list/locales/sl.ts +10 -2
  51. package/src/components/customers/create-customer-form/create-customer-form.tsx +21 -3
  52. package/src/components/customers/create-customer-form/locales/de.ts +1 -0
  53. package/src/components/customers/create-customer-form/locales/es.ts +21 -0
  54. package/src/components/customers/create-customer-form/locales/fr.ts +21 -0
  55. package/src/components/customers/create-customer-form/locales/hr.ts +21 -0
  56. package/src/components/customers/create-customer-form/locales/it.ts +21 -0
  57. package/src/components/customers/create-customer-form/locales/nl.ts +21 -0
  58. package/src/components/customers/create-customer-form/locales/pl.ts +21 -0
  59. package/src/components/customers/create-customer-form/locales/pt.ts +21 -0
  60. package/src/components/customers/create-customer-form/locales/sl.ts +1 -0
  61. package/src/components/customers/customer-list-table/customer-list-row-actions.tsx +72 -16
  62. package/src/components/customers/customer-list-table/customer-list-table.tsx +35 -2
  63. package/src/components/customers/customer-list-table/locales/de.ts +9 -0
  64. package/src/components/customers/customer-list-table/locales/en.ts +10 -0
  65. package/src/components/customers/customer-list-table/locales/es.ts +25 -0
  66. package/src/components/customers/customer-list-table/locales/fr.ts +25 -0
  67. package/src/components/customers/customer-list-table/locales/hr.ts +25 -0
  68. package/src/components/customers/customer-list-table/locales/it.ts +25 -0
  69. package/src/components/customers/customer-list-table/locales/nl.ts +25 -0
  70. package/src/components/customers/customer-list-table/locales/pl.ts +25 -0
  71. package/src/components/customers/customer-list-table/locales/pt.ts +25 -0
  72. package/src/components/customers/customer-list-table/locales/sl.ts +9 -0
  73. package/src/components/customers/customers.hooks.test.ts +8 -8
  74. package/src/components/customers/customers.hooks.ts +6 -1
  75. package/src/components/customers/edit-customer-form/edit-customer-form.tsx +143 -0
  76. package/src/components/customers/edit-customer-form/locales/de.ts +13 -0
  77. package/src/components/customers/edit-customer-form/locales/es.ts +13 -0
  78. package/src/components/customers/edit-customer-form/locales/fr.ts +13 -0
  79. package/src/components/customers/edit-customer-form/locales/hr.ts +13 -0
  80. package/src/components/customers/edit-customer-form/locales/it.ts +13 -0
  81. package/src/components/customers/edit-customer-form/locales/nl.ts +13 -0
  82. package/src/components/customers/edit-customer-form/locales/pl.ts +13 -0
  83. package/src/components/customers/edit-customer-form/locales/pt.ts +13 -0
  84. package/src/components/customers/edit-customer-form/locales/sl.ts +13 -0
  85. package/src/components/customers/index.ts +1 -0
  86. package/src/components/dashboard/collection-rate-card/collection-rate-card.tsx +9 -1
  87. package/src/components/dashboard/collection-rate-card/locales/de.ts +3 -0
  88. package/src/components/dashboard/collection-rate-card/locales/es.ts +3 -0
  89. package/src/components/dashboard/collection-rate-card/locales/fr.ts +3 -0
  90. package/src/components/dashboard/collection-rate-card/locales/hr.ts +3 -0
  91. package/src/components/dashboard/collection-rate-card/locales/it.ts +3 -0
  92. package/src/components/dashboard/collection-rate-card/locales/nl.ts +3 -0
  93. package/src/components/dashboard/collection-rate-card/locales/pl.ts +3 -0
  94. package/src/components/dashboard/collection-rate-card/locales/pt.ts +3 -0
  95. package/src/components/dashboard/invoice-status-chart/invoice-status-chart.tsx +9 -1
  96. package/src/components/dashboard/invoice-status-chart/locales/de.ts +9 -0
  97. package/src/components/dashboard/invoice-status-chart/locales/es.ts +9 -0
  98. package/src/components/dashboard/invoice-status-chart/locales/fr.ts +9 -0
  99. package/src/components/dashboard/invoice-status-chart/locales/hr.ts +9 -0
  100. package/src/components/dashboard/invoice-status-chart/locales/it.ts +9 -0
  101. package/src/components/dashboard/invoice-status-chart/locales/nl.ts +9 -0
  102. package/src/components/dashboard/invoice-status-chart/locales/pl.ts +9 -0
  103. package/src/components/dashboard/invoice-status-chart/locales/pt.ts +9 -0
  104. package/src/components/dashboard/payment-methods-chart/locales/de.ts +12 -0
  105. package/src/components/dashboard/payment-methods-chart/locales/es.ts +12 -0
  106. package/src/components/dashboard/payment-methods-chart/locales/fr.ts +12 -0
  107. package/src/components/dashboard/payment-methods-chart/locales/hr.ts +12 -0
  108. package/src/components/dashboard/payment-methods-chart/locales/it.ts +12 -0
  109. package/src/components/dashboard/payment-methods-chart/locales/nl.ts +12 -0
  110. package/src/components/dashboard/payment-methods-chart/locales/pl.ts +12 -0
  111. package/src/components/dashboard/payment-methods-chart/locales/pt.ts +12 -0
  112. package/src/components/dashboard/payment-methods-chart/payment-methods-chart.tsx +9 -1
  113. package/src/components/dashboard/payment-trend-chart/locales/de.ts +5 -0
  114. package/src/components/dashboard/payment-trend-chart/locales/es.ts +5 -0
  115. package/src/components/dashboard/payment-trend-chart/locales/fr.ts +5 -0
  116. package/src/components/dashboard/payment-trend-chart/locales/hr.ts +5 -0
  117. package/src/components/dashboard/payment-trend-chart/locales/it.ts +5 -0
  118. package/src/components/dashboard/payment-trend-chart/locales/nl.ts +5 -0
  119. package/src/components/dashboard/payment-trend-chart/locales/pl.ts +5 -0
  120. package/src/components/dashboard/payment-trend-chart/locales/pt.ts +5 -0
  121. package/src/components/dashboard/payment-trend-chart/payment-trend-chart.tsx +10 -2
  122. package/src/components/dashboard/revenue-trend-chart/locales/de.ts +5 -0
  123. package/src/components/dashboard/revenue-trend-chart/locales/es.ts +5 -0
  124. package/src/components/dashboard/revenue-trend-chart/locales/fr.ts +5 -0
  125. package/src/components/dashboard/revenue-trend-chart/locales/hr.ts +5 -0
  126. package/src/components/dashboard/revenue-trend-chart/locales/it.ts +5 -0
  127. package/src/components/dashboard/revenue-trend-chart/locales/nl.ts +5 -0
  128. package/src/components/dashboard/revenue-trend-chart/locales/pl.ts +5 -0
  129. package/src/components/dashboard/revenue-trend-chart/locales/pt.ts +5 -0
  130. package/src/components/dashboard/revenue-trend-chart/revenue-trend-chart.tsx +10 -2
  131. package/src/components/dashboard/top-customers-chart/locales/de.ts +5 -0
  132. package/src/components/dashboard/top-customers-chart/locales/es.ts +5 -0
  133. package/src/components/dashboard/top-customers-chart/locales/fr.ts +5 -0
  134. package/src/components/dashboard/top-customers-chart/locales/hr.ts +5 -0
  135. package/src/components/dashboard/top-customers-chart/locales/it.ts +5 -0
  136. package/src/components/dashboard/top-customers-chart/locales/nl.ts +5 -0
  137. package/src/components/dashboard/top-customers-chart/locales/pl.ts +5 -0
  138. package/src/components/dashboard/top-customers-chart/locales/pt.ts +5 -0
  139. package/src/components/dashboard/top-customers-chart/top-customers-chart.tsx +10 -2
  140. package/src/components/documents/create/document-add-item-form.tsx +1 -1
  141. package/src/components/documents/create/form-types.ts +1 -5
  142. package/src/components/documents/create/mark-as-paid-section.tsx +60 -23
  143. package/src/components/documents/create/prepare-document-submission.test.ts +2 -2
  144. package/src/components/documents/create/prepare-document-submission.ts +12 -7
  145. package/src/components/documents/create/prepare-preview-data.test.ts +1 -1
  146. package/src/components/documents/view/document-actions-bar.tsx +8 -1
  147. package/src/components/documents/view/document-details-card.tsx +8 -1
  148. package/src/components/documents/view/document-payments-list.tsx +8 -1
  149. package/src/components/documents/view/locales/es.ts +83 -0
  150. package/src/components/documents/view/locales/fr.ts +83 -0
  151. package/src/components/documents/view/locales/hr.ts +83 -0
  152. package/src/components/documents/view/locales/it.ts +83 -0
  153. package/src/components/documents/view/locales/nl.ts +84 -0
  154. package/src/components/documents/view/locales/pl.ts +83 -0
  155. package/src/components/documents/view/locales/pt.ts +83 -0
  156. package/src/components/entities/create-entity-form.tsx +12 -2
  157. package/src/components/entities/entity-settings-form/entity-settings-form.tsx +18 -0
  158. package/src/components/entities/entity-settings-form/locales/de.ts +3 -1
  159. package/src/components/entities/entity-settings-form/locales/es.ts +197 -0
  160. package/src/components/entities/entity-settings-form/locales/fr.ts +196 -0
  161. package/src/components/entities/entity-settings-form/locales/hr.ts +189 -0
  162. package/src/components/entities/entity-settings-form/locales/it.ts +195 -0
  163. package/src/components/entities/entity-settings-form/locales/nl.ts +192 -0
  164. package/src/components/entities/entity-settings-form/locales/pl.ts +193 -0
  165. package/src/components/entities/entity-settings-form/locales/pt.ts +194 -0
  166. package/src/components/entities/entity-settings-form/locales/sl.ts +2 -0
  167. package/src/components/entities/fina-settings-form/fina-settings-form.tsx +461 -0
  168. package/src/components/entities/fina-settings-form/fina-settings.hooks.ts +215 -0
  169. package/src/components/entities/fina-settings-form/index.ts +3 -0
  170. package/src/components/entities/fina-settings-form/locales/de.ts +145 -0
  171. package/src/components/entities/fina-settings-form/locales/en.ts +142 -0
  172. package/src/components/entities/fina-settings-form/locales/es.ts +143 -0
  173. package/src/components/entities/fina-settings-form/locales/fr.ts +142 -0
  174. package/src/components/entities/fina-settings-form/locales/hr.ts +144 -0
  175. package/src/components/entities/fina-settings-form/locales/it.ts +144 -0
  176. package/src/components/entities/fina-settings-form/locales/nl.ts +144 -0
  177. package/src/components/entities/fina-settings-form/locales/pl.ts +142 -0
  178. package/src/components/entities/fina-settings-form/locales/pt.ts +144 -0
  179. package/src/components/entities/fina-settings-form/locales/sl.ts +144 -0
  180. package/src/components/entities/fina-settings-form/sections/certificate-settings-section.tsx +233 -0
  181. package/src/components/entities/fina-settings-form/sections/premises-management-section.tsx +363 -0
  182. package/src/components/entities/fina-settings-form/sections/register-premise-dialog.tsx +395 -0
  183. package/src/components/entities/furs-settings-form/furs-settings-form.tsx +9 -2
  184. package/src/components/entities/furs-settings-form/furs-settings.hooks.ts +15 -11
  185. package/src/components/entities/furs-settings-form/locales/de.ts +52 -88
  186. package/src/components/entities/furs-settings-form/locales/en.ts +3 -0
  187. package/src/components/entities/furs-settings-form/locales/es.ts +196 -0
  188. package/src/components/entities/furs-settings-form/locales/fr.ts +196 -0
  189. package/src/components/entities/furs-settings-form/locales/hr.ts +195 -0
  190. package/src/components/entities/furs-settings-form/locales/it.ts +196 -0
  191. package/src/components/entities/furs-settings-form/locales/nl.ts +195 -0
  192. package/src/components/entities/furs-settings-form/locales/pl.ts +194 -0
  193. package/src/components/entities/furs-settings-form/locales/pt.ts +195 -0
  194. package/src/components/entities/furs-settings-form/locales/sl.ts +2 -0
  195. package/src/components/entities/furs-settings-form/sections/certificate-settings-section.tsx +19 -4
  196. package/src/components/entities/furs-settings-form/sections/register-premise-dialog.tsx +17 -66
  197. package/src/components/entities/keys.ts +1 -1
  198. package/src/components/entities/settings/company-settings-form.tsx +28 -0
  199. package/src/components/entities/settings/pdf-template-selector/locales/es.ts +18 -0
  200. package/src/components/entities/settings/pdf-template-selector/locales/fr.ts +18 -0
  201. package/src/components/entities/settings/pdf-template-selector/locales/hr.ts +18 -0
  202. package/src/components/entities/settings/pdf-template-selector/locales/it.ts +18 -0
  203. package/src/components/entities/settings/pdf-template-selector/locales/nl.ts +17 -0
  204. package/src/components/entities/settings/pdf-template-selector/locales/pl.ts +18 -0
  205. package/src/components/entities/settings/pdf-template-selector/locales/pt.ts +18 -0
  206. package/src/components/estimates/create/create-estimate-form.tsx +14 -0
  207. package/src/components/estimates/create/locales/es.ts +57 -0
  208. package/src/components/estimates/create/locales/fr.ts +58 -0
  209. package/src/components/estimates/create/locales/hr.ts +57 -0
  210. package/src/components/estimates/create/locales/it.ts +57 -0
  211. package/src/components/estimates/create/locales/nl.ts +58 -0
  212. package/src/components/estimates/create/locales/pl.ts +57 -0
  213. package/src/components/estimates/create/locales/pt.ts +58 -0
  214. package/src/components/estimates/create/prepare-estimate-submission.ts +1 -1
  215. package/src/components/estimates/list/list-table.tsx +20 -3
  216. package/src/components/estimates/list/locales/de.ts +9 -0
  217. package/src/components/estimates/list/locales/en.ts +8 -0
  218. package/src/components/estimates/list/locales/es.ts +32 -0
  219. package/src/components/estimates/list/locales/fr.ts +32 -0
  220. package/src/components/estimates/list/locales/hr.ts +32 -0
  221. package/src/components/estimates/list/locales/it.ts +32 -0
  222. package/src/components/estimates/list/locales/nl.ts +32 -0
  223. package/src/components/estimates/list/locales/pl.ts +32 -0
  224. package/src/components/estimates/list/locales/pt.ts +32 -0
  225. package/src/components/estimates/list/locales/sl.ts +9 -0
  226. package/src/components/export/document-export-form.tsx +0 -2
  227. package/src/components/invoices/create/create-invoice-form.tsx +24 -10
  228. package/src/components/invoices/create/eslog-validation.test.ts +2 -0
  229. package/src/components/invoices/create/locales/es.ts +103 -0
  230. package/src/components/invoices/create/locales/fr.ts +105 -0
  231. package/src/components/invoices/create/locales/hr.ts +103 -0
  232. package/src/components/invoices/create/locales/it.ts +105 -0
  233. package/src/components/invoices/create/locales/nl.ts +104 -0
  234. package/src/components/invoices/create/locales/pl.ts +104 -0
  235. package/src/components/invoices/create/locales/pt.ts +105 -0
  236. package/src/components/invoices/create/prepare-invoice-submission.test.ts +54 -55
  237. package/src/components/invoices/create/prepare-invoice-submission.ts +3 -3
  238. package/src/components/invoices/list/list-table.tsx +20 -3
  239. package/src/components/invoices/list/locales/de.ts +9 -0
  240. package/src/components/invoices/list/locales/en.ts +8 -0
  241. package/src/components/invoices/list/locales/es.ts +42 -0
  242. package/src/components/invoices/list/locales/fr.ts +42 -0
  243. package/src/components/invoices/list/locales/hr.ts +42 -0
  244. package/src/components/invoices/list/locales/it.ts +42 -0
  245. package/src/components/invoices/list/locales/nl.ts +42 -0
  246. package/src/components/invoices/list/locales/pl.ts +42 -0
  247. package/src/components/invoices/list/locales/pt.ts +42 -0
  248. package/src/components/invoices/list/locales/sl.ts +9 -0
  249. package/src/components/invoices/send-email-dialog/locales/es.ts +18 -0
  250. package/src/components/invoices/send-email-dialog/locales/fr.ts +18 -0
  251. package/src/components/invoices/send-email-dialog/locales/hr.ts +17 -0
  252. package/src/components/invoices/send-email-dialog/locales/it.ts +18 -0
  253. package/src/components/invoices/send-email-dialog/locales/nl.ts +18 -0
  254. package/src/components/invoices/send-email-dialog/locales/pl.ts +18 -0
  255. package/src/components/invoices/send-email-dialog/locales/pt.ts +18 -0
  256. package/src/components/invoices/send-email-dialog/send-email-dialog.tsx +20 -12
  257. package/src/components/invoices/shared/scaled-document-preview.tsx +1 -0
  258. package/src/components/invoices/view/eslog-info-display.tsx +1 -0
  259. package/src/components/invoices/view/fina-info-display.tsx +196 -0
  260. package/src/components/items/create-item-form/create-item-form.tsx +14 -0
  261. package/src/components/items/create-item-form/locales/en.ts +5 -0
  262. package/src/components/items/create-item-form/locales/es.ts +14 -0
  263. package/src/components/items/create-item-form/locales/fr.ts +14 -0
  264. package/src/components/items/create-item-form/locales/hr.ts +14 -0
  265. package/src/components/items/create-item-form/locales/it.ts +14 -0
  266. package/src/components/items/create-item-form/locales/nl.ts +14 -0
  267. package/src/components/items/create-item-form/locales/pl.ts +14 -0
  268. package/src/components/items/create-item-form/locales/pt.ts +14 -0
  269. package/src/components/items/edit-item-form/edit-item-form.tsx +170 -0
  270. package/src/components/items/edit-item-form/locales/de.ts +12 -0
  271. package/src/components/items/edit-item-form/locales/es.ts +12 -0
  272. package/src/components/items/edit-item-form/locales/fr.ts +12 -0
  273. package/src/components/items/edit-item-form/locales/hr.ts +12 -0
  274. package/src/components/items/edit-item-form/locales/it.ts +12 -0
  275. package/src/components/items/edit-item-form/locales/nl.ts +12 -0
  276. package/src/components/items/edit-item-form/locales/pl.ts +12 -0
  277. package/src/components/items/edit-item-form/locales/pt.ts +12 -0
  278. package/src/components/items/edit-item-form/locales/sl.ts +12 -0
  279. package/src/components/items/item-list-table/item-list-table.tsx +20 -13
  280. package/src/components/items/item-list-table/locales/de.ts +6 -0
  281. package/src/components/items/item-list-table/locales/en.ts +5 -0
  282. package/src/components/items/item-list-table/locales/es.ts +16 -0
  283. package/src/components/items/item-list-table/locales/fr.ts +16 -0
  284. package/src/components/items/item-list-table/locales/hr.ts +16 -0
  285. package/src/components/items/item-list-table/locales/it.ts +16 -0
  286. package/src/components/items/item-list-table/locales/nl.ts +16 -0
  287. package/src/components/items/item-list-table/locales/pl.ts +16 -0
  288. package/src/components/items/item-list-table/locales/pt.ts +16 -0
  289. package/src/components/items/item-list-table/locales/sl.ts +6 -0
  290. package/src/components/items/items.hooks.ts +7 -2
  291. package/src/components/payments/create-payment-form/create-payment-form.tsx +14 -0
  292. package/src/components/payments/create-payment-form/locales/es.ts +20 -0
  293. package/src/components/payments/create-payment-form/locales/fr.ts +20 -0
  294. package/src/components/payments/create-payment-form/locales/hr.ts +20 -0
  295. package/src/components/payments/create-payment-form/locales/it.ts +20 -0
  296. package/src/components/payments/create-payment-form/locales/nl.ts +20 -0
  297. package/src/components/payments/create-payment-form/locales/pl.ts +20 -0
  298. package/src/components/payments/create-payment-form/locales/pt.ts +20 -0
  299. package/src/components/payments/edit-payment-form/edit-payment-form.tsx +18 -2
  300. package/src/components/payments/edit-payment-form/locales/es.ts +20 -0
  301. package/src/components/payments/edit-payment-form/locales/fr.ts +20 -0
  302. package/src/components/payments/edit-payment-form/locales/hr.ts +20 -0
  303. package/src/components/payments/edit-payment-form/locales/it.ts +20 -0
  304. package/src/components/payments/edit-payment-form/locales/nl.ts +20 -0
  305. package/src/components/payments/edit-payment-form/locales/pl.ts +20 -0
  306. package/src/components/payments/edit-payment-form/locales/pt.ts +20 -0
  307. package/src/components/payments/list/list-row-actions.tsx +14 -0
  308. package/src/components/payments/list/list-table.tsx +21 -2
  309. package/src/components/payments/list/locales/de.ts +6 -0
  310. package/src/components/payments/list/locales/en.ts +7 -0
  311. package/src/components/payments/list/locales/es.ts +25 -0
  312. package/src/components/payments/list/locales/fr.ts +25 -0
  313. package/src/components/payments/list/locales/hr.ts +25 -0
  314. package/src/components/payments/list/locales/it.ts +25 -0
  315. package/src/components/payments/list/locales/nl.ts +25 -0
  316. package/src/components/payments/list/locales/pl.ts +25 -0
  317. package/src/components/payments/list/locales/pt.ts +25 -0
  318. package/src/components/payments/list/locales/sl.ts +6 -0
  319. package/src/components/payments/payments.hooks.ts +7 -2
  320. package/src/components/request-logs/index.ts +1 -1
  321. package/src/components/table/data-table.tsx +8 -3
  322. package/src/components/table/filter-panel.tsx +4 -4
  323. package/src/components/table/hooks/use-table-query.ts +3 -0
  324. package/src/components/table/table-empty-state.tsx +11 -4
  325. package/src/components/table/table-no-results.tsx +6 -4
  326. package/src/components/table/types.ts +2 -2
  327. package/src/components/tax-reports/kir-export-form.tsx +0 -1
  328. package/src/components/taxes/create-tax-form/create-tax-form.tsx +14 -0
  329. package/src/components/taxes/create-tax-form/locales/en.ts +1 -0
  330. package/src/components/taxes/create-tax-form/locales/es.ts +8 -0
  331. package/src/components/taxes/create-tax-form/locales/fr.ts +8 -0
  332. package/src/components/taxes/create-tax-form/locales/hr.ts +8 -0
  333. package/src/components/taxes/create-tax-form/locales/it.ts +8 -0
  334. package/src/components/taxes/create-tax-form/locales/nl.ts +8 -0
  335. package/src/components/taxes/create-tax-form/locales/pl.ts +8 -0
  336. package/src/components/taxes/create-tax-form/locales/pt.ts +8 -0
  337. package/src/components/taxes/edit-tax-form/edit-tax-form.tsx +119 -0
  338. package/src/components/taxes/edit-tax-form/locales/de.ts +6 -0
  339. package/src/components/taxes/edit-tax-form/locales/es.ts +6 -0
  340. package/src/components/taxes/edit-tax-form/locales/fr.ts +6 -0
  341. package/src/components/taxes/edit-tax-form/locales/hr.ts +6 -0
  342. package/src/components/taxes/edit-tax-form/locales/it.ts +6 -0
  343. package/src/components/taxes/edit-tax-form/locales/nl.ts +6 -0
  344. package/src/components/taxes/edit-tax-form/locales/pl.ts +6 -0
  345. package/src/components/taxes/edit-tax-form/locales/pt.ts +6 -0
  346. package/src/components/taxes/edit-tax-form/locales/sl.ts +6 -0
  347. package/src/components/taxes/tax-list-table/locales/de.ts +6 -0
  348. package/src/components/taxes/tax-list-table/locales/en.ts +6 -0
  349. package/src/components/taxes/tax-list-table/locales/es.ts +17 -0
  350. package/src/components/taxes/tax-list-table/locales/fr.ts +17 -0
  351. package/src/components/taxes/tax-list-table/locales/hr.ts +17 -0
  352. package/src/components/taxes/tax-list-table/locales/it.ts +17 -0
  353. package/src/components/taxes/tax-list-table/locales/nl.ts +17 -0
  354. package/src/components/taxes/tax-list-table/locales/pl.ts +17 -0
  355. package/src/components/taxes/tax-list-table/locales/pt.ts +17 -0
  356. package/src/components/taxes/tax-list-table/locales/sl.ts +6 -0
  357. package/src/components/taxes/tax-list-table/tax-list-table.tsx +18 -0
  358. package/src/components/taxes/taxes.hooks.ts +12 -7
  359. package/src/components/ui/tooltip.tsx +2 -2
  360. package/src/components/wl-subscription/locked-feature.tsx +1 -0
  361. package/src/components/wl-subscription/upgrade-modal.tsx +1 -0
  362. package/src/generated/schemas/acceptentityinvitation_body.ts +17 -0
  363. package/src/generated/schemas/addentityuser_body.ts +18 -0
  364. package/src/generated/schemas/advanceinvoice.ts +184 -12
  365. package/src/generated/schemas/creditnote.ts +96 -127
  366. package/src/generated/schemas/customadvanceinvoice.ts +246 -0
  367. package/src/generated/schemas/customcreditnote.ts +237 -0
  368. package/src/generated/schemas/customer.ts +26 -0
  369. package/src/generated/schemas/customestimate.ts +181 -0
  370. package/src/generated/schemas/custominvoice.ts +237 -0
  371. package/src/generated/schemas/entity.ts +66 -7
  372. package/src/generated/schemas/entityuserrole.ts +19 -0
  373. package/src/generated/schemas/estimate.ts +149 -1
  374. package/src/generated/schemas/finasettings.ts +25 -0
  375. package/src/generated/schemas/furssettings.ts +1 -2
  376. package/src/generated/schemas/index.ts +24 -5
  377. package/src/generated/schemas/invoice.ts +224 -22
  378. package/src/generated/schemas/me.ts +22 -0
  379. package/src/generated/schemas/registerfinamovablepremise_body.ts +26 -0
  380. package/src/generated/schemas/registerfinarealestatepremise_body.ts +37 -0
  381. package/src/generated/schemas/renderadvanceinvoicepreview_body.ts +342 -0
  382. package/src/generated/schemas/rendercreditnotepreview_body.ts +344 -0
  383. package/src/generated/schemas/renderestimatepreview_body.ts +284 -0
  384. package/src/generated/schemas/renderinvoicepreview_body.ts +344 -0
  385. package/src/generated/schemas/senddocument_body.ts +23 -0
  386. package/src/generated/schemas/sendemail_body.ts +8 -10
  387. package/src/generated/schemas/stripeappconnect_body.ts +18 -0
  388. package/src/generated/schemas/stripeappcreateinvoice_body.ts +20 -0
  389. package/src/generated/schemas/stripeappupdatesettings_body.ts +26 -0
  390. package/src/generated/schemas/webhook.ts +143 -0
  391. package/src/hooks/create-resource-hooks.ts +85 -1
  392. package/src/hooks/use-next-document-number.ts +1 -1
  393. package/src/hooks/use-resource-mutation.ts +4 -3
  394. package/src/lib/browser-cookies.ts +12 -1
  395. package/src/lib/cookies.ts +2 -2
  396. package/src/lib/translation.ts +1 -1
  397. package/src/providers/entities-provider.tsx +84 -39
  398. package/src/providers/sdk-provider.tsx +7 -3
  399. package/src/providers/white-label-provider.tsx +5 -2
  400. package/src/providers/wl-subscription-provider.tsx +1 -0
@@ -0,0 +1,196 @@
1
+ import type { Invoice } from "@spaceinvoices/js-sdk";
2
+ import { AlertCircle, Check, CheckCircle2, Clock, Copy, ExternalLink, XCircle } from "lucide-react";
3
+ import { useState } from "react";
4
+ import { Alert, AlertDescription, AlertTitle } from "@/ui/components/ui/alert";
5
+ import { Badge } from "@/ui/components/ui/badge";
6
+ import { Button } from "@/ui/components/ui/button";
7
+ import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/ui/components/ui/card";
8
+ import type { ComponentTranslationProps } from "@/ui/lib/translation";
9
+ import { createTranslation } from "@/ui/lib/translation";
10
+ import de from "../../entities/fina-settings-form/locales/de";
11
+ import en from "../../entities/fina-settings-form/locales/en";
12
+ import sl from "../../entities/fina-settings-form/locales/sl";
13
+
14
+ const translations = { de, sl, en } as const;
15
+
16
+ type FinaData = {
17
+ status?: "success" | "pending" | "failed";
18
+ error?: string;
19
+ fiscalized_at?: string;
20
+ data?: {
21
+ zki?: string;
22
+ jir?: string;
23
+ premise_id?: string;
24
+ device_id?: string;
25
+ invoice_number?: string;
26
+ qr_code_url?: string;
27
+ };
28
+ };
29
+
30
+ interface FinaInfoDisplayProps extends ComponentTranslationProps {
31
+ invoice: Invoice;
32
+ }
33
+
34
+ export function FinaInfoDisplay({ invoice, t: translateFn, namespace, locale }: FinaInfoDisplayProps) {
35
+ const [copiedField, setCopiedField] = useState<string | null>(null);
36
+
37
+ const t = createTranslation({
38
+ t: translateFn,
39
+ namespace,
40
+ locale,
41
+ translations,
42
+ });
43
+
44
+ const fina = (invoice as any).fina as FinaData | undefined;
45
+
46
+ if (!fina) {
47
+ return null;
48
+ }
49
+
50
+ const copyToClipboard = async (text: string, fieldName: string) => {
51
+ try {
52
+ await navigator.clipboard.writeText(text);
53
+ setCopiedField(fieldName);
54
+ setTimeout(() => setCopiedField(null), 2000);
55
+ } catch (err) {
56
+ console.error("Failed to copy:", err);
57
+ }
58
+ };
59
+
60
+ const getStatusBadge = () => {
61
+ switch (fina.status) {
62
+ case "success":
63
+ return (
64
+ <Badge className="bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-100">
65
+ <CheckCircle2 className="mr-1 h-3 w-3" />
66
+ {t("Fiscalized")}
67
+ </Badge>
68
+ );
69
+ case "pending":
70
+ return (
71
+ <Badge className="bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-100">
72
+ <Clock className="mr-1 h-3 w-3" />
73
+ {t("Pending")}
74
+ </Badge>
75
+ );
76
+ case "failed":
77
+ return (
78
+ <Badge className="bg-red-100 text-red-800 dark:bg-red-900 dark:text-red-100">
79
+ <XCircle className="mr-1 h-3 w-3" />
80
+ {t("Failed")}
81
+ </Badge>
82
+ );
83
+ default:
84
+ return null;
85
+ }
86
+ };
87
+
88
+ return (
89
+ <Card>
90
+ <CardHeader>
91
+ <CardTitle className="flex items-center gap-2">
92
+ {t("FINA Fiscalization")}
93
+ {getStatusBadge()}
94
+ </CardTitle>
95
+ <CardDescription>{t("Croatian tax authority fiscalization details")}</CardDescription>
96
+ </CardHeader>
97
+ <CardContent className="space-y-4">
98
+ {/* Error Message */}
99
+ {fina.status === "failed" && fina.error && (
100
+ <Alert variant="destructive">
101
+ <AlertCircle className="h-4 w-4" />
102
+ <AlertTitle>{t("Fiscalization Error")}</AlertTitle>
103
+ <AlertDescription>{fina.error}</AlertDescription>
104
+ </Alert>
105
+ )}
106
+
107
+ {/* FINA Data */}
108
+ {fina.data && (
109
+ <div className="space-y-3">
110
+ {/* ZKI Code */}
111
+ {fina.data.zki && (
112
+ <div className="flex items-center justify-between rounded-lg border p-3">
113
+ <div className="space-y-1">
114
+ <p className="font-medium text-sm">{t("ZKI")}</p>
115
+ <p className="font-mono text-muted-foreground text-xs">{fina.data.zki}</p>
116
+ </div>
117
+ <Button variant="ghost" size="sm" onClick={() => copyToClipboard(fina.data!.zki!, "zki")}>
118
+ {copiedField === "zki" ? <Check className="h-4 w-4 text-green-600" /> : <Copy className="h-4 w-4" />}
119
+ </Button>
120
+ </div>
121
+ )}
122
+
123
+ {/* JIR Code */}
124
+ {fina.data.jir && (
125
+ <div className="flex items-center justify-between rounded-lg border p-3">
126
+ <div className="space-y-1">
127
+ <p className="font-medium text-sm">{t("JIR")}</p>
128
+ <p className="font-mono text-muted-foreground text-xs">{fina.data.jir}</p>
129
+ </div>
130
+ <Button variant="ghost" size="sm" onClick={() => copyToClipboard(fina.data!.jir!, "jir")}>
131
+ {copiedField === "jir" ? <Check className="h-4 w-4 text-green-600" /> : <Copy className="h-4 w-4" />}
132
+ </Button>
133
+ </div>
134
+ )}
135
+
136
+ {/* Business Premise & Device */}
137
+ <div className="grid grid-cols-2 gap-3">
138
+ {fina.data.premise_id && (
139
+ <div className="space-y-1">
140
+ <p className="font-medium text-sm">{t("Business Premise")}</p>
141
+ <p className="text-muted-foreground text-sm">{fina.data.premise_id}</p>
142
+ </div>
143
+ )}
144
+ {fina.data.device_id && (
145
+ <div className="space-y-1">
146
+ <p className="font-medium text-sm">{t("Electronic Device")}</p>
147
+ <p className="text-muted-foreground text-sm">{fina.data.device_id}</p>
148
+ </div>
149
+ )}
150
+ </div>
151
+
152
+ {/* Invoice Number */}
153
+ {fina.data.invoice_number && (
154
+ <div className="space-y-1">
155
+ <p className="font-medium text-sm">{t("Invoice Number")}</p>
156
+ <p className="text-muted-foreground text-sm">{fina.data.invoice_number}</p>
157
+ </div>
158
+ )}
159
+
160
+ {/* QR Code URL */}
161
+ {fina.data.qr_code_url && (
162
+ <div className="flex items-center justify-between rounded-lg border p-3">
163
+ <div className="space-y-1">
164
+ <p className="font-medium text-sm">{t("QR Code")}</p>
165
+ <a
166
+ href={fina.data.qr_code_url}
167
+ target="_blank"
168
+ rel="noopener noreferrer"
169
+ className="flex items-center gap-1 text-primary text-xs hover:underline"
170
+ >
171
+ {t("QR Code")}
172
+ <ExternalLink className="h-3 w-3" />
173
+ </a>
174
+ </div>
175
+ <Button variant="ghost" size="sm" onClick={() => copyToClipboard(fina.data!.qr_code_url!, "qr_url")}>
176
+ {copiedField === "qr_url" ? (
177
+ <Check className="h-4 w-4 text-green-600" />
178
+ ) : (
179
+ <Copy className="h-4 w-4" />
180
+ )}
181
+ </Button>
182
+ </div>
183
+ )}
184
+ </div>
185
+ )}
186
+
187
+ {/* Fiscalized Timestamp */}
188
+ {fina.fiscalized_at && (
189
+ <div className="pt-2 text-muted-foreground text-sm">
190
+ {t("Fiscalized at")}: {new Date(fina.fiscalized_at).toLocaleString()}
191
+ </div>
192
+ )}
193
+ </CardContent>
194
+ </Card>
195
+ );
196
+ }
@@ -22,11 +22,25 @@ import { createTranslation } from "@/ui/lib/translation";
22
22
 
23
23
  import { useCreateItem } from "../items.hooks";
24
24
  import de from "./locales/de";
25
+ import es from "./locales/es";
26
+ import fr from "./locales/fr";
27
+ import hr from "./locales/hr";
28
+ import it from "./locales/it";
29
+ import nl from "./locales/nl";
30
+ import pl from "./locales/pl";
31
+ import pt from "./locales/pt";
25
32
  import sl from "./locales/sl";
26
33
 
27
34
  const translations = {
28
35
  sl,
29
36
  de,
37
+ it,
38
+ fr,
39
+ es,
40
+ pt,
41
+ nl,
42
+ pl,
43
+ hr,
30
44
  } as const;
31
45
 
32
46
  type CreateItemFormProps = {
@@ -6,4 +6,9 @@ export default {
6
6
  Unit: "Unit",
7
7
  Price: "Price",
8
8
  "There was an error creating the item": "There was an error creating the item",
9
+ // Gross price support
10
+ "Gross price": "Gross price",
11
+ "Net price": "Net price",
12
+ "Gross price (tax included)": "Gross price (tax included)",
13
+ "Net price (before tax)": "Net price (before tax)",
9
14
  };
@@ -0,0 +1,14 @@
1
+ export default {
2
+ Name: "Nombre",
3
+ "Enter name": "Introducir nombre",
4
+ Description: "Descripción",
5
+ "Enter description": "Introducir descripción",
6
+ Unit: "Unidad",
7
+ Price: "Precio",
8
+ "There was an error creating the item": "Se produjo un error al crear el artículo",
9
+ // Gross price support
10
+ "Gross price": "Precio bruto",
11
+ "Net price": "Precio neto",
12
+ "Gross price (tax included)": "Precio bruto (IVA incluido)",
13
+ "Net price (before tax)": "Precio neto (sin IVA)",
14
+ };
@@ -0,0 +1,14 @@
1
+ export default {
2
+ Name: "Nom",
3
+ "Enter name": "Saisir le nom",
4
+ Description: "Description",
5
+ "Enter description": "Saisir la description",
6
+ Unit: "Unité",
7
+ Price: "Prix",
8
+ "There was an error creating the item": "Une erreur est survenue lors de la création de l'article",
9
+ // Gross price support
10
+ "Gross price": "Prix brut",
11
+ "Net price": "Prix net",
12
+ "Gross price (tax included)": "Prix brut (TTC)",
13
+ "Net price (before tax)": "Prix net (HT)",
14
+ };
@@ -0,0 +1,14 @@
1
+ export default {
2
+ Name: "Naziv",
3
+ "Enter name": "Unesite naziv",
4
+ Description: "Opis",
5
+ "Enter description": "Unesite opis",
6
+ Unit: "Jedinica",
7
+ Price: "Cijena",
8
+ "There was an error creating the item": "Došlo je do greške pri izradi artikla",
9
+ // Gross price support
10
+ "Gross price": "Bruto cijena",
11
+ "Net price": "Neto cijena",
12
+ "Gross price (tax included)": "Bruto cijena (s porezom)",
13
+ "Net price (before tax)": "Neto cijena (bez poreza)",
14
+ };
@@ -0,0 +1,14 @@
1
+ export default {
2
+ Name: "Nome",
3
+ "Enter name": "Inserisci nome",
4
+ Description: "Descrizione",
5
+ "Enter description": "Inserisci descrizione",
6
+ Unit: "Unità",
7
+ Price: "Prezzo",
8
+ "There was an error creating the item": "Si è verificato un errore durante la creazione dell'articolo",
9
+ // Gross price support
10
+ "Gross price": "Prezzo lordo",
11
+ "Net price": "Prezzo netto",
12
+ "Gross price (tax included)": "Prezzo lordo (IVA inclusa)",
13
+ "Net price (before tax)": "Prezzo netto (IVA esclusa)",
14
+ };
@@ -0,0 +1,14 @@
1
+ export default {
2
+ Name: "Naam",
3
+ "Enter name": "Naam invoeren",
4
+ Description: "Beschrijving",
5
+ "Enter description": "Beschrijving invoeren",
6
+ Unit: "Eenheid",
7
+ Price: "Prijs",
8
+ "There was an error creating the item": "Er is een fout opgetreden bij het aanmaken van het artikel",
9
+ // Gross price support
10
+ "Gross price": "Brutoprijs",
11
+ "Net price": "Nettoprijs",
12
+ "Gross price (tax included)": "Brutoprijs (incl. BTW)",
13
+ "Net price (before tax)": "Nettoprijs (excl. BTW)",
14
+ };
@@ -0,0 +1,14 @@
1
+ export default {
2
+ Name: "Nazwa",
3
+ "Enter name": "Wprowadź nazwę",
4
+ Description: "Opis",
5
+ "Enter description": "Wprowadź opis",
6
+ Unit: "Jednostka",
7
+ Price: "Cena",
8
+ "There was an error creating the item": "Wystąpił błąd podczas tworzenia pozycji",
9
+ // Gross price support
10
+ "Gross price": "Cena brutto",
11
+ "Net price": "Cena netto",
12
+ "Gross price (tax included)": "Cena brutto (z VAT)",
13
+ "Net price (before tax)": "Cena netto (bez VAT)",
14
+ };
@@ -0,0 +1,14 @@
1
+ export default {
2
+ Name: "Nome",
3
+ "Enter name": "Introduzir nome",
4
+ Description: "Descrição",
5
+ "Enter description": "Introduzir descrição",
6
+ Unit: "Unidade",
7
+ Price: "Preço",
8
+ "There was an error creating the item": "Ocorreu um erro ao criar o artigo",
9
+ // Gross price support
10
+ "Gross price": "Preço bruto",
11
+ "Net price": "Preço líquido",
12
+ "Gross price (tax included)": "Preço bruto (com IVA)",
13
+ "Net price (before tax)": "Preço líquido (sem IVA)",
14
+ };
@@ -0,0 +1,170 @@
1
+ import { zodResolver } from "@hookform/resolvers/zod";
2
+ import type { CreateItemRequest, Item } from "@spaceinvoices/js-sdk";
3
+ import { Minus, Plus } from "lucide-react";
4
+ import { useState } from "react";
5
+ import { useForm } from "react-hook-form";
6
+ import { FormInput } from "@/ui/components/form";
7
+ import { Button } from "@/ui/components/ui/button";
8
+ import {
9
+ DropdownMenu,
10
+ DropdownMenuContent,
11
+ DropdownMenuRadioGroup,
12
+ DropdownMenuRadioItem,
13
+ DropdownMenuTrigger,
14
+ } from "@/ui/components/ui/dropdown-menu";
15
+ import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from "@/ui/components/ui/form";
16
+ import { Input } from "@/ui/components/ui/input";
17
+ import { Tooltip, TooltipContent, TooltipTrigger } from "@/ui/components/ui/tooltip";
18
+ import type { CreateItemSchema } from "@/ui/generated/schemas";
19
+ import { createItemSchema } from "@/ui/generated/schemas";
20
+ import type { ComponentTranslationProps } from "@/ui/lib/translation";
21
+ import { createTranslation } from "@/ui/lib/translation";
22
+
23
+ import { useUpdateItem } from "../items.hooks";
24
+ import de from "./locales/de";
25
+ import es from "./locales/es";
26
+ import fr from "./locales/fr";
27
+ import hr from "./locales/hr";
28
+ import it from "./locales/it";
29
+ import nl from "./locales/nl";
30
+ import pl from "./locales/pl";
31
+ import pt from "./locales/pt";
32
+ import sl from "./locales/sl";
33
+
34
+ const translations = {
35
+ sl,
36
+ de,
37
+ it,
38
+ fr,
39
+ es,
40
+ pt,
41
+ nl,
42
+ pl,
43
+ hr,
44
+ } as const;
45
+
46
+ type EditItemFormProps = {
47
+ entityId: string;
48
+ item: Item;
49
+ onSuccess?: (item: Item) => void;
50
+ onError?: (error: Error) => void;
51
+ renderSubmitButton?: (props: { isSubmitting: boolean; submit: () => void }) => React.ReactNode;
52
+ } & ComponentTranslationProps;
53
+
54
+ export default function EditItemForm({
55
+ entityId,
56
+ item,
57
+ onSuccess,
58
+ onError,
59
+ renderSubmitButton,
60
+ ...i18nProps
61
+ }: EditItemFormProps) {
62
+ const t = createTranslation({
63
+ ...i18nProps,
64
+ translations,
65
+ });
66
+
67
+ const [isGrossPrice, setIsGrossPrice] = useState(item.gross_price != null);
68
+
69
+ const form = useForm<CreateItemSchema>({
70
+ resolver: zodResolver(createItemSchema),
71
+ defaultValues: {
72
+ name: item.name ?? "",
73
+ description: item.description ?? "",
74
+ price: isGrossPrice ? (item.gross_price ?? 0) : item.price,
75
+ },
76
+ });
77
+
78
+ const setPriceMode = (mode: string) => {
79
+ setIsGrossPrice(mode === "gross");
80
+ };
81
+
82
+ const { mutate: updateItem, isPending } = useUpdateItem({
83
+ entityId,
84
+ onSuccess: (updatedItem, _variables, _context) => {
85
+ onSuccess?.(updatedItem);
86
+ },
87
+ onError: (error, _variables, _context) => {
88
+ form.setError("root", {
89
+ type: "submit",
90
+ message: t("There was an error updating the item"),
91
+ });
92
+ onError?.(error);
93
+ },
94
+ });
95
+
96
+ const onSubmit = async (values: CreateItemSchema) => {
97
+ const { price, ...rest } = values;
98
+
99
+ const payload = isGrossPrice ? { ...rest, gross_price: price } : { ...rest, price };
100
+
101
+ updateItem({
102
+ id: item.id,
103
+ data: payload as CreateItemRequest,
104
+ });
105
+ };
106
+
107
+ const handleSubmitClick = () => {
108
+ form.handleSubmit(onSubmit)();
109
+ };
110
+
111
+ return (
112
+ <Form {...form}>
113
+ <form onSubmit={form.handleSubmit(onSubmit)} className="space-y-4">
114
+ <FormInput control={form.control} name="name" label={t("Name")} placeholder={t("Enter name")} />
115
+
116
+ <FormInput
117
+ control={form.control}
118
+ name="description"
119
+ label={t("Description")}
120
+ placeholder={t("Enter description")}
121
+ />
122
+
123
+ <FormField
124
+ control={form.control}
125
+ name="price"
126
+ render={({ field }) => (
127
+ <FormItem>
128
+ <FormLabel>
129
+ {isGrossPrice ? t("Gross price") : t("Price")} <span className="text-red-500">*</span>
130
+ </FormLabel>
131
+ <div className="flex items-center gap-1">
132
+ <FormControl className="min-w-0 flex-1">
133
+ <Input type="number" {...field} onChange={(e) => field.onChange(Number(e.target.value))} />
134
+ </FormControl>
135
+ <Tooltip>
136
+ <TooltipTrigger asChild>
137
+ <div>
138
+ <DropdownMenu>
139
+ <DropdownMenuTrigger asChild>
140
+ <Button type="button" variant="ghost" size="icon" className="h-9 w-9 shrink-0">
141
+ {isGrossPrice ? <Minus className="h-4 w-4" /> : <Plus className="h-4 w-4" />}
142
+ </Button>
143
+ </DropdownMenuTrigger>
144
+ <DropdownMenuContent align="end">
145
+ <DropdownMenuRadioGroup value={isGrossPrice ? "gross" : "net"} onValueChange={setPriceMode}>
146
+ <DropdownMenuRadioItem value="net">{t("Net price")}</DropdownMenuRadioItem>
147
+ <DropdownMenuRadioItem value="gross">{t("Gross price")}</DropdownMenuRadioItem>
148
+ </DropdownMenuRadioGroup>
149
+ </DropdownMenuContent>
150
+ </DropdownMenu>
151
+ </div>
152
+ </TooltipTrigger>
153
+ <TooltipContent>
154
+ {isGrossPrice ? t("Gross price (tax included)") : t("Net price (before tax)")}
155
+ </TooltipContent>
156
+ </Tooltip>
157
+ </div>
158
+ <FormMessage />
159
+ </FormItem>
160
+ )}
161
+ />
162
+
163
+ {renderSubmitButton?.({
164
+ isSubmitting: isPending || form.formState.isSubmitting,
165
+ submit: handleSubmitClick,
166
+ })}
167
+ </form>
168
+ </Form>
169
+ );
170
+ }
@@ -0,0 +1,12 @@
1
+ export default {
2
+ Name: "Name",
3
+ "Enter name": "Namen eingeben",
4
+ Description: "Beschreibung",
5
+ "Enter description": "Beschreibung eingeben",
6
+ Price: "Preis",
7
+ "There was an error updating the item": "Beim Aktualisieren des Artikels ist ein Fehler aufgetreten",
8
+ "Gross price": "Bruttopreis",
9
+ "Net price": "Nettopreis",
10
+ "Gross price (tax included)": "Bruttopreis (inkl. MwSt.)",
11
+ "Net price (before tax)": "Nettopreis (exkl. MwSt.)",
12
+ };
@@ -0,0 +1,12 @@
1
+ export default {
2
+ Name: "Nombre",
3
+ "Enter name": "Introducir nombre",
4
+ Description: "Descripción",
5
+ "Enter description": "Introducir descripción",
6
+ Price: "Precio",
7
+ "There was an error updating the item": "Se produjo un error al actualizar el artículo",
8
+ "Gross price": "Precio bruto",
9
+ "Net price": "Precio neto",
10
+ "Gross price (tax included)": "Precio bruto (IVA incluido)",
11
+ "Net price (before tax)": "Precio neto (sin IVA)",
12
+ };
@@ -0,0 +1,12 @@
1
+ export default {
2
+ Name: "Nom",
3
+ "Enter name": "Saisir le nom",
4
+ Description: "Description",
5
+ "Enter description": "Saisir la description",
6
+ Price: "Prix",
7
+ "There was an error updating the item": "Une erreur est survenue lors de la mise à jour de l'article",
8
+ "Gross price": "Prix brut",
9
+ "Net price": "Prix net",
10
+ "Gross price (tax included)": "Prix brut (TTC)",
11
+ "Net price (before tax)": "Prix net (HT)",
12
+ };
@@ -0,0 +1,12 @@
1
+ export default {
2
+ Name: "Naziv",
3
+ "Enter name": "Unesite naziv",
4
+ Description: "Opis",
5
+ "Enter description": "Unesite opis",
6
+ Price: "Cijena",
7
+ "There was an error updating the item": "Došlo je do greške pri ažuriranju artikla",
8
+ "Gross price": "Bruto cijena",
9
+ "Net price": "Neto cijena",
10
+ "Gross price (tax included)": "Bruto cijena (s porezom)",
11
+ "Net price (before tax)": "Neto cijena (bez poreza)",
12
+ };
@@ -0,0 +1,12 @@
1
+ export default {
2
+ Name: "Nome",
3
+ "Enter name": "Inserisci nome",
4
+ Description: "Descrizione",
5
+ "Enter description": "Inserisci descrizione",
6
+ Price: "Prezzo",
7
+ "There was an error updating the item": "Si è verificato un errore durante l'aggiornamento dell'articolo",
8
+ "Gross price": "Prezzo lordo",
9
+ "Net price": "Prezzo netto",
10
+ "Gross price (tax included)": "Prezzo lordo (IVA inclusa)",
11
+ "Net price (before tax)": "Prezzo netto (IVA esclusa)",
12
+ };
@@ -0,0 +1,12 @@
1
+ export default {
2
+ Name: "Naam",
3
+ "Enter name": "Naam invoeren",
4
+ Description: "Beschrijving",
5
+ "Enter description": "Beschrijving invoeren",
6
+ Price: "Prijs",
7
+ "There was an error updating the item": "Er is een fout opgetreden bij het bijwerken van het artikel",
8
+ "Gross price": "Brutoprijs",
9
+ "Net price": "Nettoprijs",
10
+ "Gross price (tax included)": "Brutoprijs (incl. BTW)",
11
+ "Net price (before tax)": "Nettoprijs (excl. BTW)",
12
+ };
@@ -0,0 +1,12 @@
1
+ export default {
2
+ Name: "Nazwa",
3
+ "Enter name": "Wprowadź nazwę",
4
+ Description: "Opis",
5
+ "Enter description": "Wprowadź opis",
6
+ Price: "Cena",
7
+ "There was an error updating the item": "Wystąpił błąd podczas aktualizacji pozycji",
8
+ "Gross price": "Cena brutto",
9
+ "Net price": "Cena netto",
10
+ "Gross price (tax included)": "Cena brutto (z VAT)",
11
+ "Net price (before tax)": "Cena netto (bez VAT)",
12
+ };
@@ -0,0 +1,12 @@
1
+ export default {
2
+ Name: "Nome",
3
+ "Enter name": "Introduzir nome",
4
+ Description: "Descrição",
5
+ "Enter description": "Introduzir descrição",
6
+ Price: "Preço",
7
+ "There was an error updating the item": "Ocorreu um erro ao atualizar o artigo",
8
+ "Gross price": "Preço bruto",
9
+ "Net price": "Preço líquido",
10
+ "Gross price (tax included)": "Preço bruto (com IVA)",
11
+ "Net price (before tax)": "Preço líquido (sem IVA)",
12
+ };
@@ -0,0 +1,12 @@
1
+ export default {
2
+ Name: "Naziv",
3
+ "Enter name": "Vnesite naziv",
4
+ Description: "Opis",
5
+ "Enter description": "Vnesite opis",
6
+ Price: "Cena",
7
+ "There was an error updating the item": "Prišlo je do napake pri posodabljanju izdelka",
8
+ "Gross price": "Bruto cena",
9
+ "Net price": "Neto cena",
10
+ "Gross price (tax included)": "Bruto cena (z davkom)",
11
+ "Net price (before tax)": "Neto cena (brez davka)",
12
+ };