@spaceinvoices/react-ui 0.4.11 → 0.4.31

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 (738) hide show
  1. package/cli/dist/index.js +1 -1
  2. package/package.json +3 -2
  3. package/registry.json +30 -31
  4. package/src/common/autocomplete.tsx +48 -26
  5. package/src/components/activities/locales/bg.ts +21 -0
  6. package/src/components/activities/locales/cs.ts +21 -0
  7. package/src/components/activities/locales/en.ts +21 -0
  8. package/src/components/activities/locales/et.ts +21 -0
  9. package/src/components/activities/locales/fi.ts +21 -0
  10. package/src/components/activities/locales/is.ts +21 -0
  11. package/src/components/activities/locales/nb.ts +21 -0
  12. package/src/components/activities/locales/sk.ts +21 -0
  13. package/src/components/activities/locales/sv.ts +21 -0
  14. package/src/components/advance-invoices/advance-invoices.hooks.ts +36 -46
  15. package/src/components/advance-invoices/create/create-advance-invoice-form.tsx +452 -115
  16. package/src/components/advance-invoices/create/locales/bg.ts +56 -0
  17. package/src/components/advance-invoices/create/locales/cs.ts +56 -0
  18. package/src/components/advance-invoices/create/locales/de.ts +15 -7
  19. package/src/components/advance-invoices/create/locales/en.ts +56 -0
  20. package/src/components/advance-invoices/create/locales/es.ts +15 -7
  21. package/src/components/advance-invoices/create/locales/et.ts +56 -0
  22. package/src/components/advance-invoices/create/locales/fi.ts +56 -0
  23. package/src/components/advance-invoices/create/locales/fr.ts +16 -8
  24. package/src/components/advance-invoices/create/locales/hr.ts +29 -21
  25. package/src/components/advance-invoices/create/locales/is.ts +56 -0
  26. package/src/components/advance-invoices/create/locales/it.ts +15 -7
  27. package/src/components/advance-invoices/create/locales/nb.ts +56 -0
  28. package/src/components/advance-invoices/create/locales/nl.ts +15 -7
  29. package/src/components/advance-invoices/create/locales/pl.ts +17 -9
  30. package/src/components/advance-invoices/create/locales/pt.ts +16 -8
  31. package/src/components/advance-invoices/create/locales/sk.ts +56 -0
  32. package/src/components/advance-invoices/create/locales/sl.ts +23 -12
  33. package/src/components/advance-invoices/create/locales/sv.ts +56 -0
  34. package/src/components/advance-invoices/create/prepare-advance-invoice-submission.ts +62 -2
  35. package/src/components/advance-invoices/list/list-row-actions.tsx +48 -16
  36. package/src/components/advance-invoices/list/list-table.tsx +35 -9
  37. package/src/components/advance-invoices/list/locales/bg.ts +51 -0
  38. package/src/components/advance-invoices/list/locales/cs.ts +51 -0
  39. package/src/components/advance-invoices/list/locales/en.ts +33 -2
  40. package/src/components/advance-invoices/list/locales/et.ts +51 -0
  41. package/src/components/advance-invoices/list/locales/fi.ts +51 -0
  42. package/src/components/advance-invoices/list/locales/hr.ts +15 -15
  43. package/src/components/advance-invoices/list/locales/is.ts +51 -0
  44. package/src/components/advance-invoices/list/locales/nb.ts +51 -0
  45. package/src/components/advance-invoices/list/locales/sk.ts +51 -0
  46. package/src/components/advance-invoices/list/locales/sv.ts +51 -0
  47. package/src/components/advance-invoices/list/use-advance-invoice-download.ts +3 -5
  48. package/src/components/common/autocomplete-locales.ts +101 -0
  49. package/src/components/company-registry/company-registry.hooks.ts +3 -7
  50. package/src/components/credit-notes/create/create-credit-note-form.tsx +437 -80
  51. package/src/components/credit-notes/create/locales/bg.ts +101 -0
  52. package/src/components/credit-notes/create/locales/cs.ts +101 -0
  53. package/src/components/credit-notes/create/locales/de.ts +20 -7
  54. package/src/components/credit-notes/create/locales/en.ts +101 -0
  55. package/src/components/credit-notes/create/locales/es.ts +20 -7
  56. package/src/components/credit-notes/create/locales/et.ts +101 -0
  57. package/src/components/credit-notes/create/locales/fi.ts +101 -0
  58. package/src/components/credit-notes/create/locales/fr.ts +21 -8
  59. package/src/components/credit-notes/create/locales/hr.ts +41 -28
  60. package/src/components/credit-notes/create/locales/is.ts +101 -0
  61. package/src/components/credit-notes/create/locales/it.ts +20 -7
  62. package/src/components/credit-notes/create/locales/nb.ts +101 -0
  63. package/src/components/credit-notes/create/locales/nl.ts +20 -7
  64. package/src/components/credit-notes/create/locales/pl.ts +22 -9
  65. package/src/components/credit-notes/create/locales/pt.ts +21 -8
  66. package/src/components/credit-notes/create/locales/sk.ts +101 -0
  67. package/src/components/credit-notes/create/locales/sl.ts +28 -14
  68. package/src/components/credit-notes/create/locales/sv.ts +101 -0
  69. package/src/components/credit-notes/create/prepare-credit-note-submission.ts +66 -0
  70. package/src/components/credit-notes/credit-notes.hooks.ts +34 -3
  71. package/src/components/credit-notes/list/list-row-actions.tsx +19 -7
  72. package/src/components/credit-notes/list/list-table.tsx +60 -8
  73. package/src/components/credit-notes/list/locales/bg.ts +48 -0
  74. package/src/components/credit-notes/list/locales/cs.ts +48 -0
  75. package/src/components/credit-notes/list/locales/en.ts +31 -2
  76. package/src/components/credit-notes/list/locales/et.ts +48 -0
  77. package/src/components/credit-notes/list/locales/fi.ts +48 -0
  78. package/src/components/credit-notes/list/locales/hr.ts +12 -12
  79. package/src/components/credit-notes/list/locales/is.ts +48 -0
  80. package/src/components/credit-notes/list/locales/nb.ts +48 -0
  81. package/src/components/credit-notes/list/locales/sk.ts +48 -0
  82. package/src/components/credit-notes/list/locales/sv.ts +48 -0
  83. package/src/components/credit-notes/list/use-credit-note-download.ts +3 -5
  84. package/src/components/customers/create-customer-form/locales/bg.ts +21 -0
  85. package/src/components/customers/create-customer-form/locales/cs.ts +21 -0
  86. package/src/components/customers/create-customer-form/locales/en.ts +21 -0
  87. package/src/components/customers/create-customer-form/locales/et.ts +21 -0
  88. package/src/components/customers/create-customer-form/locales/fi.ts +21 -0
  89. package/src/components/customers/create-customer-form/locales/hr.ts +11 -11
  90. package/src/components/customers/create-customer-form/locales/is.ts +21 -0
  91. package/src/components/customers/create-customer-form/locales/nb.ts +21 -0
  92. package/src/components/customers/create-customer-form/locales/sk.ts +21 -0
  93. package/src/components/customers/create-customer-form/locales/sv.ts +21 -0
  94. package/src/components/customers/customer-autocomplete.tsx +32 -4
  95. package/src/components/customers/customer-list-table/customer-list-table.tsx +8 -6
  96. package/src/components/customers/customer-list-table/locales/bg.ts +25 -0
  97. package/src/components/customers/customer-list-table/locales/cs.ts +25 -0
  98. package/src/components/customers/customer-list-table/locales/en.ts +17 -2
  99. package/src/components/customers/customer-list-table/locales/et.ts +25 -0
  100. package/src/components/customers/customer-list-table/locales/fi.ts +25 -0
  101. package/src/components/customers/customer-list-table/locales/hr.ts +11 -11
  102. package/src/components/customers/customer-list-table/locales/is.ts +25 -0
  103. package/src/components/customers/customer-list-table/locales/nb.ts +25 -0
  104. package/src/components/customers/customer-list-table/locales/sk.ts +25 -0
  105. package/src/components/customers/customer-list-table/locales/sv.ts +25 -0
  106. package/src/components/customers/customers.hooks.ts +14 -17
  107. package/src/components/customers/edit-customer-form/locales/bg.ts +13 -0
  108. package/src/components/customers/edit-customer-form/locales/cs.ts +13 -0
  109. package/src/components/customers/edit-customer-form/locales/en.ts +13 -0
  110. package/src/components/customers/edit-customer-form/locales/et.ts +13 -0
  111. package/src/components/customers/edit-customer-form/locales/fi.ts +13 -0
  112. package/src/components/customers/edit-customer-form/locales/hr.ts +5 -5
  113. package/src/components/customers/edit-customer-form/locales/is.ts +13 -0
  114. package/src/components/customers/edit-customer-form/locales/nb.ts +13 -0
  115. package/src/components/customers/edit-customer-form/locales/sk.ts +13 -0
  116. package/src/components/customers/edit-customer-form/locales/sv.ts +13 -0
  117. package/src/components/dashboard/collection-rate-card/collection-rate-card.tsx +7 -6
  118. package/src/components/dashboard/collection-rate-card/locales/en.ts +3 -0
  119. package/src/components/dashboard/collection-rate-card/use-collection-rate.ts +8 -7
  120. package/src/components/dashboard/invoice-status-chart/invoice-status-chart.tsx +7 -4
  121. package/src/components/dashboard/invoice-status-chart/locales/bg.ts +5 -5
  122. package/src/components/dashboard/invoice-status-chart/locales/cs.ts +5 -5
  123. package/src/components/dashboard/invoice-status-chart/locales/de.ts +1 -1
  124. package/src/components/dashboard/invoice-status-chart/locales/en.ts +10 -0
  125. package/src/components/dashboard/invoice-status-chart/locales/es.ts +1 -1
  126. package/src/components/dashboard/invoice-status-chart/locales/et.ts +5 -5
  127. package/src/components/dashboard/invoice-status-chart/locales/fi.ts +5 -5
  128. package/src/components/dashboard/invoice-status-chart/locales/fr.ts +1 -1
  129. package/src/components/dashboard/invoice-status-chart/locales/hr.ts +5 -5
  130. package/src/components/dashboard/invoice-status-chart/locales/is.ts +5 -5
  131. package/src/components/dashboard/invoice-status-chart/locales/it.ts +1 -1
  132. package/src/components/dashboard/invoice-status-chart/locales/nb.ts +5 -5
  133. package/src/components/dashboard/invoice-status-chart/locales/nl.ts +1 -1
  134. package/src/components/dashboard/invoice-status-chart/locales/pl.ts +1 -1
  135. package/src/components/dashboard/invoice-status-chart/locales/pt.ts +1 -1
  136. package/src/components/dashboard/invoice-status-chart/locales/sk.ts +5 -5
  137. package/src/components/dashboard/invoice-status-chart/locales/sl.ts +1 -1
  138. package/src/components/dashboard/invoice-status-chart/locales/sv.ts +5 -5
  139. package/src/components/dashboard/payment-methods-chart/locales/bg.ts +5 -5
  140. package/src/components/dashboard/payment-methods-chart/locales/cs.ts +5 -5
  141. package/src/components/dashboard/payment-methods-chart/locales/en.ts +12 -0
  142. package/src/components/dashboard/payment-methods-chart/locales/et.ts +5 -5
  143. package/src/components/dashboard/payment-methods-chart/locales/fi.ts +6 -6
  144. package/src/components/dashboard/payment-methods-chart/locales/hr.ts +3 -3
  145. package/src/components/dashboard/payment-methods-chart/locales/is.ts +5 -5
  146. package/src/components/dashboard/payment-methods-chart/locales/nb.ts +5 -5
  147. package/src/components/dashboard/payment-methods-chart/locales/sk.ts +5 -5
  148. package/src/components/dashboard/payment-methods-chart/locales/sv.ts +5 -5
  149. package/src/components/dashboard/payment-methods-chart/payment-methods-chart.tsx +4 -3
  150. package/src/components/dashboard/payment-trend-chart/locales/bg.ts +1 -1
  151. package/src/components/dashboard/payment-trend-chart/locales/cs.ts +1 -1
  152. package/src/components/dashboard/payment-trend-chart/locales/en.ts +6 -0
  153. package/src/components/dashboard/payment-trend-chart/locales/et.ts +1 -1
  154. package/src/components/dashboard/payment-trend-chart/locales/fi.ts +1 -1
  155. package/src/components/dashboard/payment-trend-chart/locales/is.ts +1 -1
  156. package/src/components/dashboard/payment-trend-chart/locales/nb.ts +1 -1
  157. package/src/components/dashboard/payment-trend-chart/locales/sk.ts +1 -1
  158. package/src/components/dashboard/payment-trend-chart/locales/sv.ts +1 -1
  159. package/src/components/dashboard/payment-trend-chart/payment-trend-chart.tsx +4 -3
  160. package/src/components/dashboard/payment-trend-chart/use-payment-trend.ts +12 -9
  161. package/src/components/dashboard/revenue-card.tsx +3 -3
  162. package/src/components/dashboard/revenue-trend-chart/locales/bg.ts +1 -1
  163. package/src/components/dashboard/revenue-trend-chart/locales/cs.ts +1 -1
  164. package/src/components/dashboard/revenue-trend-chart/locales/en.ts +6 -0
  165. package/src/components/dashboard/revenue-trend-chart/locales/et.ts +1 -1
  166. package/src/components/dashboard/revenue-trend-chart/locales/fi.ts +1 -1
  167. package/src/components/dashboard/revenue-trend-chart/locales/is.ts +1 -1
  168. package/src/components/dashboard/revenue-trend-chart/locales/nb.ts +1 -1
  169. package/src/components/dashboard/revenue-trend-chart/locales/sk.ts +1 -1
  170. package/src/components/dashboard/revenue-trend-chart/locales/sv.ts +1 -1
  171. package/src/components/dashboard/revenue-trend-chart/revenue-trend-chart.tsx +4 -3
  172. package/src/components/dashboard/revenue-trend-chart/use-revenue-trend.ts +4 -3
  173. package/src/components/dashboard/shared/local-date.ts +11 -0
  174. package/src/components/dashboard/shared/use-revenue-data.ts +6 -5
  175. package/src/components/dashboard/shared/use-stats-query.ts +7 -11
  176. package/src/components/dashboard/stat-card.tsx +3 -3
  177. package/src/components/dashboard/tax-collected-card/tax-collected-card.tsx +11 -9
  178. package/src/components/dashboard/tax-collected-card/use-tax-collected.ts +3 -2
  179. package/src/components/dashboard/top-customers-chart/locales/bg.ts +2 -2
  180. package/src/components/dashboard/top-customers-chart/locales/cs.ts +2 -2
  181. package/src/components/dashboard/top-customers-chart/locales/en.ts +7 -0
  182. package/src/components/dashboard/top-customers-chart/locales/et.ts +2 -2
  183. package/src/components/dashboard/top-customers-chart/locales/fi.ts +2 -2
  184. package/src/components/dashboard/top-customers-chart/locales/is.ts +2 -2
  185. package/src/components/dashboard/top-customers-chart/locales/nb.ts +2 -2
  186. package/src/components/dashboard/top-customers-chart/locales/sk.ts +2 -2
  187. package/src/components/dashboard/top-customers-chart/locales/sv.ts +2 -2
  188. package/src/components/dashboard/top-customers-chart/top-customers-chart.tsx +4 -3
  189. package/src/components/dashboard/top-customers-chart/use-top-customers.ts +7 -20
  190. package/src/components/delivery-notes/create/create-delivery-note-form.tsx +179 -47
  191. package/src/components/delivery-notes/create/locales/bg.ts +69 -0
  192. package/src/components/delivery-notes/create/locales/cs.ts +69 -0
  193. package/src/components/delivery-notes/create/locales/de.ts +1 -0
  194. package/src/components/delivery-notes/create/locales/en.ts +69 -0
  195. package/src/components/delivery-notes/create/locales/es.ts +1 -0
  196. package/src/components/delivery-notes/create/locales/et.ts +69 -0
  197. package/src/components/delivery-notes/create/locales/fi.ts +69 -0
  198. package/src/components/delivery-notes/create/locales/fr.ts +1 -0
  199. package/src/components/delivery-notes/create/locales/hr.ts +7 -6
  200. package/src/components/delivery-notes/create/locales/is.ts +69 -0
  201. package/src/components/delivery-notes/create/locales/it.ts +1 -0
  202. package/src/components/delivery-notes/create/locales/nb.ts +69 -0
  203. package/src/components/delivery-notes/create/locales/nl.ts +1 -0
  204. package/src/components/delivery-notes/create/locales/pl.ts +1 -0
  205. package/src/components/delivery-notes/create/locales/pt.ts +1 -0
  206. package/src/components/delivery-notes/create/locales/sk.ts +69 -0
  207. package/src/components/delivery-notes/create/locales/sl.ts +6 -5
  208. package/src/components/delivery-notes/create/locales/sv.ts +69 -0
  209. package/src/components/delivery-notes/create/prepare-delivery-note-submission.ts +34 -1
  210. package/src/components/delivery-notes/delivery-notes.hooks.ts +34 -3
  211. package/src/components/delivery-notes/list/list-row-actions.tsx +62 -16
  212. package/src/components/delivery-notes/list/list-table.tsx +44 -10
  213. package/src/components/delivery-notes/list/locales/bg.ts +40 -0
  214. package/src/components/delivery-notes/list/locales/cs.ts +40 -0
  215. package/src/components/delivery-notes/list/locales/et.ts +40 -0
  216. package/src/components/delivery-notes/list/locales/fi.ts +40 -0
  217. package/src/components/delivery-notes/list/locales/is.ts +40 -0
  218. package/src/components/delivery-notes/list/locales/nb.ts +40 -0
  219. package/src/components/delivery-notes/list/locales/sk.ts +40 -0
  220. package/src/components/delivery-notes/list/locales/sv.ts +40 -0
  221. package/src/components/delivery-notes/list/use-delivery-note-download.ts +3 -5
  222. package/src/components/documents/create/custom-create-template.ts +114 -0
  223. package/src/components/documents/create/document-add-item-form.tsx +266 -153
  224. package/src/components/documents/create/document-add-item-tax-rate-field.tsx +3 -3
  225. package/src/components/documents/create/document-date-validation.ts +111 -0
  226. package/src/components/documents/create/document-details-section.tsx +117 -54
  227. package/src/components/documents/create/document-form-item.ts +67 -0
  228. package/src/components/documents/create/document-item-validation.ts +54 -0
  229. package/src/components/documents/create/document-items-section.tsx +44 -6
  230. package/src/components/documents/create/document-recipient-section.tsx +10 -2
  231. package/src/components/documents/create/form-types.ts +2 -2
  232. package/src/components/documents/create/linked-documents-info.tsx +6 -14
  233. package/src/components/documents/create/live-preview.tsx +22 -18
  234. package/src/components/documents/create/mark-as-paid-section.tsx +80 -20
  235. package/src/components/documents/create/payment-rows.ts +321 -0
  236. package/src/components/documents/create/prepare-document-submission.ts +160 -109
  237. package/src/components/documents/create/prepare-preview-data.ts +12 -0
  238. package/src/components/documents/create/preserved-expected-total.ts +90 -0
  239. package/src/components/documents/create/scroll-to-first-invalid-field.ts +27 -0
  240. package/src/components/documents/create/smart-code-insert-button.tsx +5 -53
  241. package/src/components/documents/create/use-document-customer-form.ts +74 -25
  242. package/src/components/documents/documents.hooks.ts +3 -5
  243. package/src/components/documents/index.ts +1 -0
  244. package/src/components/documents/public/index.ts +1 -0
  245. package/src/components/documents/public/public-document-summary.tsx +336 -0
  246. package/src/components/documents/shared/document-preview-display.tsx +65 -39
  247. package/src/components/documents/shared/index.ts +6 -1
  248. package/src/components/documents/shared/scaled-document-preview.tsx +33 -19
  249. package/src/components/documents/types.ts +24 -0
  250. package/src/components/documents/view/document-actions-bar.tsx +251 -63
  251. package/src/components/documents/view/document-activities-list.tsx +23 -11
  252. package/src/components/documents/view/document-details-card.tsx +11 -39
  253. package/src/components/documents/view/document-payments-list.tsx +114 -57
  254. package/src/components/documents/view/document-relations-list.tsx +26 -6
  255. package/src/components/documents/view/document-sidebar.tsx +25 -3
  256. package/src/components/documents/view/document-version-history.tsx +137 -0
  257. package/src/components/documents/view/index.ts +1 -0
  258. package/src/components/documents/view/locales/bg.ts +143 -0
  259. package/src/components/documents/view/locales/cs.ts +143 -0
  260. package/src/components/documents/view/locales/de.ts +13 -0
  261. package/src/components/documents/view/locales/en.ts +143 -0
  262. package/src/components/documents/view/locales/es.ts +13 -0
  263. package/src/components/documents/view/locales/et.ts +143 -0
  264. package/src/components/documents/view/locales/fi.ts +143 -0
  265. package/src/components/documents/view/locales/fr.ts +13 -0
  266. package/src/components/documents/view/locales/hr.ts +18 -5
  267. package/src/components/documents/view/locales/is.ts +143 -0
  268. package/src/components/documents/view/locales/it.ts +13 -0
  269. package/src/components/documents/view/locales/nb.ts +143 -0
  270. package/src/components/documents/view/locales/nl.ts +13 -0
  271. package/src/components/documents/view/locales/pl.ts +13 -0
  272. package/src/components/documents/view/locales/pt.ts +13 -0
  273. package/src/components/documents/view/locales/sk.ts +143 -0
  274. package/src/components/documents/view/locales/sl.ts +21 -8
  275. package/src/components/documents/view/locales/sv.ts +143 -0
  276. package/src/components/documents/view/use-document-download.ts +18 -17
  277. package/src/components/entities/create-entity-form.tsx +200 -12
  278. package/src/components/entities/entities.hooks.ts +15 -7
  279. package/src/components/entities/entity-settings-form/entity-settings-form.tsx +121 -65
  280. package/src/components/entities/entity-settings-form/input-with-preview.tsx +28 -4
  281. package/src/components/entities/entity-settings-form/locales/bg.ts +206 -0
  282. package/src/components/entities/entity-settings-form/locales/cs.ts +206 -0
  283. package/src/components/entities/entity-settings-form/locales/de.ts +17 -3
  284. package/src/components/entities/entity-settings-form/locales/en.ts +206 -0
  285. package/src/components/entities/entity-settings-form/locales/es.ts +15 -3
  286. package/src/components/entities/entity-settings-form/locales/et.ts +205 -0
  287. package/src/components/entities/entity-settings-form/locales/fi.ts +206 -0
  288. package/src/components/entities/entity-settings-form/locales/fr.ts +15 -3
  289. package/src/components/entities/entity-settings-form/locales/hr.ts +23 -11
  290. package/src/components/entities/entity-settings-form/locales/is.ts +206 -0
  291. package/src/components/entities/entity-settings-form/locales/it.ts +15 -3
  292. package/src/components/entities/entity-settings-form/locales/nb.ts +206 -0
  293. package/src/components/entities/entity-settings-form/locales/nl.ts +15 -3
  294. package/src/components/entities/entity-settings-form/locales/pl.ts +15 -3
  295. package/src/components/entities/entity-settings-form/locales/pt.ts +15 -3
  296. package/src/components/entities/entity-settings-form/locales/sk.ts +206 -0
  297. package/src/components/entities/entity-settings-form/locales/sl.ts +31 -18
  298. package/src/components/entities/entity-settings-form/locales/sv.ts +212 -0
  299. package/src/components/entities/fina-settings-form/fina-operator-required-dialog.tsx +34 -9
  300. package/src/components/entities/fina-settings-form/fina-settings-form.tsx +2 -0
  301. package/src/components/entities/fina-settings-form/fina-settings.hooks.ts +14 -45
  302. package/src/components/entities/fina-settings-form/locales/bg.ts +163 -0
  303. package/src/components/entities/fina-settings-form/locales/cs.ts +163 -0
  304. package/src/components/entities/fina-settings-form/locales/et.ts +163 -0
  305. package/src/components/entities/fina-settings-form/locales/fi.ts +163 -0
  306. package/src/components/entities/fina-settings-form/locales/hr.ts +11 -10
  307. package/src/components/entities/fina-settings-form/locales/is.ts +164 -0
  308. package/src/components/entities/fina-settings-form/locales/nb.ts +163 -0
  309. package/src/components/entities/fina-settings-form/locales/sk.ts +163 -0
  310. package/src/components/entities/fina-settings-form/locales/sl.ts +8 -7
  311. package/src/components/entities/fina-settings-form/locales/sv.ts +165 -0
  312. package/src/components/entities/furs-settings-form/furs-operator-required-dialog.tsx +34 -9
  313. package/src/components/entities/furs-settings-form/furs-settings-form.tsx +13 -1
  314. package/src/components/entities/furs-settings-form/furs-settings.hooks.ts +141 -42
  315. package/src/components/entities/furs-settings-form/locales/bg.ts +242 -0
  316. package/src/components/entities/furs-settings-form/locales/cs.ts +241 -0
  317. package/src/components/entities/furs-settings-form/locales/de.ts +42 -15
  318. package/src/components/entities/furs-settings-form/locales/en.ts +24 -0
  319. package/src/components/entities/furs-settings-form/locales/es.ts +42 -15
  320. package/src/components/entities/furs-settings-form/locales/et.ts +242 -0
  321. package/src/components/entities/furs-settings-form/locales/fi.ts +243 -0
  322. package/src/components/entities/furs-settings-form/locales/fr.ts +43 -15
  323. package/src/components/entities/furs-settings-form/locales/hr.ts +44 -19
  324. package/src/components/entities/furs-settings-form/locales/is.ts +242 -0
  325. package/src/components/entities/furs-settings-form/locales/it.ts +42 -15
  326. package/src/components/entities/furs-settings-form/locales/nb.ts +242 -0
  327. package/src/components/entities/furs-settings-form/locales/nl.ts +42 -15
  328. package/src/components/entities/furs-settings-form/locales/pl.ts +40 -15
  329. package/src/components/entities/furs-settings-form/locales/pt.ts +42 -15
  330. package/src/components/entities/furs-settings-form/locales/sk.ts +243 -0
  331. package/src/components/entities/furs-settings-form/locales/sl.ts +34 -10
  332. package/src/components/entities/furs-settings-form/locales/sv.ts +242 -0
  333. package/src/components/entities/furs-settings-form/sections/enable-fiscalization-section.tsx +11 -0
  334. package/src/components/entities/furs-settings-form/sections/furs-internal-act-download-card.tsx +111 -0
  335. package/src/components/entities/furs-settings-form/sections/general-settings-section.tsx +27 -0
  336. package/src/components/entities/furs-settings-form/sections/premises-management-section.tsx +23 -16
  337. package/src/components/entities/furs-settings-form/sections/register-premise-dialog.tsx +89 -31
  338. package/src/components/entities/settings/branding-settings-form.tsx +11 -30
  339. package/src/components/entities/settings/company-settings-form.tsx +2 -1
  340. package/src/components/entities/settings/defaults-settings-form.tsx +106 -3
  341. package/src/components/entities/settings/email-settings-form.tsx +245 -3
  342. package/src/components/entities/settings/eslog-settings-form.tsx +2 -1
  343. package/src/components/entities/settings/number-format-settings-form.tsx +2 -1
  344. package/src/components/entities/settings/pdf-template-selector/locales/bg.ts +20 -0
  345. package/src/components/entities/settings/pdf-template-selector/locales/cs.ts +20 -0
  346. package/src/components/entities/settings/pdf-template-selector/locales/en.ts +20 -0
  347. package/src/components/entities/settings/pdf-template-selector/locales/et.ts +19 -0
  348. package/src/components/entities/settings/pdf-template-selector/locales/fi.ts +20 -0
  349. package/src/components/entities/settings/pdf-template-selector/locales/is.ts +19 -0
  350. package/src/components/entities/settings/pdf-template-selector/locales/nb.ts +19 -0
  351. package/src/components/entities/settings/pdf-template-selector/locales/sk.ts +20 -0
  352. package/src/components/entities/settings/pdf-template-selector/locales/sv.ts +19 -0
  353. package/src/components/entities/settings/tax-rules-settings-form.tsx +57 -6
  354. package/src/components/estimates/create/create-estimate-form.tsx +250 -66
  355. package/src/components/estimates/create/locales/bg.ts +77 -0
  356. package/src/components/estimates/create/locales/cs.ts +77 -0
  357. package/src/components/estimates/create/locales/de.ts +4 -3
  358. package/src/components/estimates/create/locales/en.ts +77 -0
  359. package/src/components/estimates/create/locales/es.ts +4 -3
  360. package/src/components/estimates/create/locales/et.ts +77 -0
  361. package/src/components/estimates/create/locales/fi.ts +77 -0
  362. package/src/components/estimates/create/locales/fr.ts +4 -3
  363. package/src/components/estimates/create/locales/hr.ts +13 -12
  364. package/src/components/estimates/create/locales/is.ts +77 -0
  365. package/src/components/estimates/create/locales/it.ts +4 -3
  366. package/src/components/estimates/create/locales/nb.ts +77 -0
  367. package/src/components/estimates/create/locales/nl.ts +4 -3
  368. package/src/components/estimates/create/locales/pl.ts +4 -3
  369. package/src/components/estimates/create/locales/pt.ts +4 -3
  370. package/src/components/estimates/create/locales/sk.ts +77 -0
  371. package/src/components/estimates/create/locales/sl.ts +13 -12
  372. package/src/components/estimates/create/locales/sv.ts +77 -0
  373. package/src/components/estimates/create/prepare-estimate-submission.ts +41 -4
  374. package/src/components/estimates/estimates.hooks.ts +24 -3
  375. package/src/components/estimates/list/list-row-actions.tsx +34 -7
  376. package/src/components/estimates/list/list-table.tsx +89 -11
  377. package/src/components/estimates/list/locales/bg.ts +40 -0
  378. package/src/components/estimates/list/locales/cs.ts +40 -0
  379. package/src/components/estimates/list/locales/de.ts +2 -0
  380. package/src/components/estimates/list/locales/en.ts +29 -2
  381. package/src/components/estimates/list/locales/es.ts +2 -0
  382. package/src/components/estimates/list/locales/et.ts +40 -0
  383. package/src/components/estimates/list/locales/fi.ts +40 -0
  384. package/src/components/estimates/list/locales/fr.ts +2 -0
  385. package/src/components/estimates/list/locales/hr.ts +9 -7
  386. package/src/components/estimates/list/locales/is.ts +40 -0
  387. package/src/components/estimates/list/locales/it.ts +2 -0
  388. package/src/components/estimates/list/locales/nb.ts +40 -0
  389. package/src/components/estimates/list/locales/nl.ts +2 -0
  390. package/src/components/estimates/list/locales/pl.ts +2 -0
  391. package/src/components/estimates/list/locales/pt.ts +2 -0
  392. package/src/components/estimates/list/locales/sk.ts +40 -0
  393. package/src/components/estimates/list/locales/sl.ts +9 -7
  394. package/src/components/estimates/list/locales/sv.ts +40 -0
  395. package/src/components/estimates/list/use-estimate-download.ts +3 -5
  396. package/src/components/export/document-export-form.tsx +72 -15
  397. package/src/components/export/sales-per-item-export-form.tsx +3 -2
  398. package/src/components/invoices/create/create-invoice-form.tsx +500 -112
  399. package/src/components/invoices/create/eslog-validation.ts +97 -8
  400. package/src/components/invoices/create/locales/bg.ts +173 -0
  401. package/src/components/invoices/create/locales/cs.ts +173 -0
  402. package/src/components/invoices/create/locales/de.ts +41 -9
  403. package/src/components/invoices/create/locales/en.ts +173 -0
  404. package/src/components/invoices/create/locales/es.ts +42 -9
  405. package/src/components/invoices/create/locales/et.ts +173 -0
  406. package/src/components/invoices/create/locales/fi.ts +173 -0
  407. package/src/components/invoices/create/locales/fr.ts +42 -11
  408. package/src/components/invoices/create/locales/hr.ts +50 -18
  409. package/src/components/invoices/create/locales/is.ts +173 -0
  410. package/src/components/invoices/create/locales/it.ts +43 -11
  411. package/src/components/invoices/create/locales/nb.ts +173 -0
  412. package/src/components/invoices/create/locales/nl.ts +42 -10
  413. package/src/components/invoices/create/locales/pl.ts +42 -11
  414. package/src/components/invoices/create/locales/pt.ts +43 -10
  415. package/src/components/invoices/create/locales/sk.ts +173 -0
  416. package/src/components/invoices/create/locales/sl.ts +49 -18
  417. package/src/components/invoices/create/locales/sv.ts +175 -0
  418. package/src/components/invoices/create/prepare-invoice-submission.ts +73 -2
  419. package/src/components/invoices/invoices-furs.hooks.ts +11 -8
  420. package/src/components/invoices/invoices.hooks.ts +36 -10
  421. package/src/components/invoices/list/list-row-actions.tsx +54 -21
  422. package/src/components/invoices/list/list-table.tsx +94 -12
  423. package/src/components/invoices/list/locales/bg.ts +49 -0
  424. package/src/components/invoices/list/locales/cs.ts +49 -0
  425. package/src/components/invoices/list/locales/en.ts +34 -2
  426. package/src/components/invoices/list/locales/et.ts +49 -0
  427. package/src/components/invoices/list/locales/fi.ts +49 -0
  428. package/src/components/invoices/list/locales/is.ts +49 -0
  429. package/src/components/invoices/list/locales/nb.ts +49 -0
  430. package/src/components/invoices/list/locales/sk.ts +49 -0
  431. package/src/components/invoices/list/locales/sv.ts +49 -0
  432. package/src/components/invoices/list/use-invoice-download.ts +3 -5
  433. package/src/components/invoices/send-email-dialog/locales/bg.ts +63 -0
  434. package/src/components/invoices/send-email-dialog/locales/cs.ts +63 -0
  435. package/src/components/invoices/send-email-dialog/locales/de.ts +26 -0
  436. package/src/components/invoices/send-email-dialog/locales/en.ts +63 -0
  437. package/src/components/invoices/send-email-dialog/locales/es.ts +26 -0
  438. package/src/components/invoices/send-email-dialog/locales/et.ts +63 -0
  439. package/src/components/invoices/send-email-dialog/locales/fi.ts +63 -0
  440. package/src/components/invoices/send-email-dialog/locales/fr.ts +26 -0
  441. package/src/components/invoices/send-email-dialog/locales/hr.ts +26 -0
  442. package/src/components/invoices/send-email-dialog/locales/is.ts +63 -0
  443. package/src/components/invoices/send-email-dialog/locales/it.ts +26 -0
  444. package/src/components/invoices/send-email-dialog/locales/nb.ts +63 -0
  445. package/src/components/invoices/send-email-dialog/locales/nl.ts +26 -0
  446. package/src/components/invoices/send-email-dialog/locales/pl.ts +26 -0
  447. package/src/components/invoices/send-email-dialog/locales/pt.ts +26 -0
  448. package/src/components/invoices/send-email-dialog/locales/sk.ts +63 -0
  449. package/src/components/invoices/send-email-dialog/locales/sl.ts +26 -0
  450. package/src/components/invoices/send-email-dialog/locales/sv.ts +63 -0
  451. package/src/components/invoices/send-email-dialog/send-email-dialog.tsx +189 -93
  452. package/src/components/invoices/view/eslog-info-display.tsx +2 -0
  453. package/src/components/invoices/view/fiscalization-status-card.tsx +2 -0
  454. package/src/components/items/create-item-form/create-item-form.tsx +29 -0
  455. package/src/components/items/create-item-form/locales/bg.ts +13 -0
  456. package/src/components/items/create-item-form/locales/cs.ts +13 -0
  457. package/src/components/items/create-item-form/locales/et.ts +13 -0
  458. package/src/components/items/create-item-form/locales/fi.ts +13 -0
  459. package/src/components/items/create-item-form/locales/is.ts +13 -0
  460. package/src/components/items/create-item-form/locales/nb.ts +13 -0
  461. package/src/components/items/create-item-form/locales/sk.ts +13 -0
  462. package/src/components/items/create-item-form/locales/sv.ts +13 -0
  463. package/src/components/items/edit-item-form/edit-item-form.tsx +39 -1
  464. package/src/components/items/edit-item-form/locales/bg.ts +12 -0
  465. package/src/components/items/edit-item-form/locales/cs.ts +12 -0
  466. package/src/components/items/edit-item-form/locales/en.ts +12 -0
  467. package/src/components/items/edit-item-form/locales/et.ts +12 -0
  468. package/src/components/items/edit-item-form/locales/fi.ts +12 -0
  469. package/src/components/items/edit-item-form/locales/is.ts +12 -0
  470. package/src/components/items/edit-item-form/locales/nb.ts +12 -0
  471. package/src/components/items/edit-item-form/locales/sk.ts +12 -0
  472. package/src/components/items/edit-item-form/locales/sv.ts +12 -0
  473. package/src/components/items/item-combobox.tsx +55 -22
  474. package/src/components/items/item-list-table/item-list-table.tsx +47 -23
  475. package/src/components/items/item-list-table/locales/bg.ts +16 -0
  476. package/src/components/items/item-list-table/locales/cs.ts +16 -0
  477. package/src/components/items/item-list-table/locales/en.ts +4 -3
  478. package/src/components/items/item-list-table/locales/et.ts +16 -0
  479. package/src/components/items/item-list-table/locales/fi.ts +16 -0
  480. package/src/components/items/item-list-table/locales/is.ts +16 -0
  481. package/src/components/items/item-list-table/locales/nb.ts +16 -0
  482. package/src/components/items/item-list-table/locales/sk.ts +16 -0
  483. package/src/components/items/item-list-table/locales/sv.ts +16 -0
  484. package/src/components/items/items.hooks.ts +15 -15
  485. package/src/components/payments/create-payment-form/create-payment-form.tsx +16 -9
  486. package/src/components/payments/create-payment-form/locales/bg.ts +20 -0
  487. package/src/components/payments/create-payment-form/locales/cs.ts +20 -0
  488. package/src/components/payments/create-payment-form/locales/en.ts +20 -0
  489. package/src/components/payments/create-payment-form/locales/et.ts +20 -0
  490. package/src/components/payments/create-payment-form/locales/fi.ts +20 -0
  491. package/src/components/payments/create-payment-form/locales/hr.ts +2 -2
  492. package/src/components/payments/create-payment-form/locales/is.ts +20 -0
  493. package/src/components/payments/create-payment-form/locales/nb.ts +20 -0
  494. package/src/components/payments/create-payment-form/locales/sk.ts +20 -0
  495. package/src/components/payments/create-payment-form/locales/sl.ts +4 -4
  496. package/src/components/payments/create-payment-form/locales/sv.ts +20 -0
  497. package/src/components/payments/edit-payment-form/edit-payment-form.tsx +10 -2
  498. package/src/components/payments/edit-payment-form/locales/bg.ts +20 -0
  499. package/src/components/payments/edit-payment-form/locales/cs.ts +20 -0
  500. package/src/components/payments/edit-payment-form/locales/en.ts +20 -0
  501. package/src/components/payments/edit-payment-form/locales/et.ts +20 -0
  502. package/src/components/payments/edit-payment-form/locales/fi.ts +20 -0
  503. package/src/components/payments/edit-payment-form/locales/hr.ts +2 -2
  504. package/src/components/payments/edit-payment-form/locales/is.ts +20 -0
  505. package/src/components/payments/edit-payment-form/locales/nb.ts +20 -0
  506. package/src/components/payments/edit-payment-form/locales/sk.ts +20 -0
  507. package/src/components/payments/edit-payment-form/locales/sl.ts +4 -4
  508. package/src/components/payments/edit-payment-form/locales/sv.ts +20 -0
  509. package/src/components/payments/list/list-row-actions.tsx +10 -2
  510. package/src/components/payments/list/list-table.tsx +51 -45
  511. package/src/components/payments/list/locales/bg.ts +42 -0
  512. package/src/components/payments/list/locales/cs.ts +42 -0
  513. package/src/components/payments/list/locales/de.ts +18 -0
  514. package/src/components/payments/list/locales/en.ts +37 -2
  515. package/src/components/payments/list/locales/es.ts +18 -0
  516. package/src/components/payments/list/locales/et.ts +42 -0
  517. package/src/components/payments/list/locales/fi.ts +42 -0
  518. package/src/components/payments/list/locales/fr.ts +18 -0
  519. package/src/components/payments/list/locales/hr.ts +18 -0
  520. package/src/components/payments/list/locales/is.ts +42 -0
  521. package/src/components/payments/list/locales/it.ts +18 -0
  522. package/src/components/payments/list/locales/nb.ts +42 -0
  523. package/src/components/payments/list/locales/nl.ts +18 -0
  524. package/src/components/payments/list/locales/pl.ts +18 -0
  525. package/src/components/payments/list/locales/pt.ts +18 -0
  526. package/src/components/payments/list/locales/sk.ts +42 -0
  527. package/src/components/payments/list/locales/sl.ts +18 -1
  528. package/src/components/payments/list/locales/sv.ts +42 -0
  529. package/src/components/payments/payments.hooks.ts +13 -6
  530. package/src/components/recurring-invoices/create-recurring-invoice-form/create-recurring-invoice-form.tsx +121 -39
  531. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/bg.ts +44 -0
  532. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/cs.ts +44 -0
  533. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/en.ts +44 -0
  534. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/et.ts +44 -0
  535. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/fi.ts +44 -0
  536. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/hr.ts +6 -6
  537. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/is.ts +44 -0
  538. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/nb.ts +44 -0
  539. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/sk.ts +44 -0
  540. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/sl.ts +4 -4
  541. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/sv.ts +44 -0
  542. package/src/components/recurring-invoices/list/list-row-actions.tsx +12 -6
  543. package/src/components/recurring-invoices/list/list-table.tsx +63 -12
  544. package/src/components/recurring-invoices/list/locales/bg.ts +32 -0
  545. package/src/components/recurring-invoices/list/locales/cs.ts +32 -0
  546. package/src/components/recurring-invoices/list/locales/de.ts +4 -0
  547. package/src/components/recurring-invoices/list/locales/en.ts +27 -0
  548. package/src/components/recurring-invoices/list/locales/es.ts +4 -0
  549. package/src/components/recurring-invoices/list/locales/et.ts +32 -0
  550. package/src/components/recurring-invoices/list/locales/fi.ts +32 -0
  551. package/src/components/recurring-invoices/list/locales/fr.ts +4 -0
  552. package/src/components/recurring-invoices/list/locales/hr.ts +4 -0
  553. package/src/components/recurring-invoices/list/locales/is.ts +32 -0
  554. package/src/components/recurring-invoices/list/locales/it.ts +4 -0
  555. package/src/components/recurring-invoices/list/locales/nb.ts +32 -0
  556. package/src/components/recurring-invoices/list/locales/nl.ts +4 -0
  557. package/src/components/recurring-invoices/list/locales/pl.ts +4 -0
  558. package/src/components/recurring-invoices/list/locales/pt.ts +4 -0
  559. package/src/components/recurring-invoices/list/locales/sk.ts +32 -0
  560. package/src/components/recurring-invoices/list/locales/sl.ts +4 -0
  561. package/src/components/recurring-invoices/list/locales/sv.ts +32 -0
  562. package/src/components/recurring-invoices/recurring-invoices.hooks.ts +11 -8
  563. package/src/components/request-logs/request-log-detail.tsx +30 -23
  564. package/src/components/request-logs/request-log-list-table.tsx +88 -45
  565. package/src/components/table/README.md +47 -9
  566. package/src/components/table/data-table.tsx +232 -92
  567. package/src/components/table/filter-bar.tsx +1 -1
  568. package/src/components/table/filter-panel.tsx +51 -22
  569. package/src/components/table/hooks/use-table-state.ts +64 -11
  570. package/src/components/table/index.ts +3 -0
  571. package/src/components/table/locales.ts +119 -4
  572. package/src/components/table/selection-toolbar.tsx +65 -9
  573. package/src/components/table/sorting.ts +80 -0
  574. package/src/components/table/table-skeleton.tsx +15 -9
  575. package/src/components/table/types.ts +17 -0
  576. package/src/components/tax-reports/index.ts +8 -0
  577. package/src/components/tax-reports/kir-export-form.tsx +4 -5
  578. package/src/components/tax-reports/slovenia-accounting-mappings-fields.tsx +271 -0
  579. package/src/components/tax-reports/slovenia-tax-profile-step.tsx +25 -11
  580. package/src/components/tax-reports/slovenia-vod-export-form.tsx +452 -0
  581. package/src/components/tax-reports/slovenia-yearly-export-form.tsx +20 -16
  582. package/src/components/tax-reports/slovenia-yearly-review-step.tsx +42 -19
  583. package/src/components/taxes/create-tax-form/create-tax-form.tsx +48 -2
  584. package/src/components/taxes/create-tax-form/locales/bg.ts +8 -0
  585. package/src/components/taxes/create-tax-form/locales/cs.ts +8 -0
  586. package/src/components/taxes/create-tax-form/locales/et.ts +8 -0
  587. package/src/components/taxes/create-tax-form/locales/fi.ts +8 -0
  588. package/src/components/taxes/create-tax-form/locales/is.ts +8 -0
  589. package/src/components/taxes/create-tax-form/locales/nb.ts +8 -0
  590. package/src/components/taxes/create-tax-form/locales/sk.ts +8 -0
  591. package/src/components/taxes/create-tax-form/locales/sv.ts +8 -0
  592. package/src/components/taxes/edit-tax-form/edit-tax-form.tsx +80 -11
  593. package/src/components/taxes/edit-tax-form/locales/bg.ts +6 -0
  594. package/src/components/taxes/edit-tax-form/locales/cs.ts +6 -0
  595. package/src/components/taxes/edit-tax-form/locales/en.ts +6 -0
  596. package/src/components/taxes/edit-tax-form/locales/et.ts +6 -0
  597. package/src/components/taxes/edit-tax-form/locales/fi.ts +6 -0
  598. package/src/components/taxes/edit-tax-form/locales/is.ts +6 -0
  599. package/src/components/taxes/edit-tax-form/locales/nb.ts +6 -0
  600. package/src/components/taxes/edit-tax-form/locales/sk.ts +6 -0
  601. package/src/components/taxes/edit-tax-form/locales/sv.ts +6 -0
  602. package/src/components/taxes/tax-list-table/locales/bg.ts +17 -0
  603. package/src/components/taxes/tax-list-table/locales/cs.ts +17 -0
  604. package/src/components/taxes/tax-list-table/locales/en.ts +4 -3
  605. package/src/components/taxes/tax-list-table/locales/et.ts +17 -0
  606. package/src/components/taxes/tax-list-table/locales/fi.ts +17 -0
  607. package/src/components/taxes/tax-list-table/locales/is.ts +17 -0
  608. package/src/components/taxes/tax-list-table/locales/nb.ts +17 -0
  609. package/src/components/taxes/tax-list-table/locales/sk.ts +17 -0
  610. package/src/components/taxes/tax-list-table/locales/sv.ts +17 -0
  611. package/src/components/taxes/tax-list-table/tax-list-table.tsx +53 -19
  612. package/src/components/taxes/taxes.hooks.ts +53 -12
  613. package/src/components/ui/badge.tsx +1 -1
  614. package/src/components/ui/button.tsx +1 -1
  615. package/src/components/ui/drawer.tsx +2 -2
  616. package/src/components/ui/form.tsx +118 -10
  617. package/src/components/ui/progress.tsx +6 -4
  618. package/src/components/ui/select.tsx +118 -2
  619. package/src/components/ui/sidebar.tsx +2 -2
  620. package/src/components/ui/sonner.tsx +17 -36
  621. package/src/components/ui/sticky-form-footer.tsx +6 -1
  622. package/src/components/ui/tooltip.tsx +15 -2
  623. package/src/components/webhook-logs/webhook-delivery-detail.tsx +22 -22
  624. package/src/components/webhook-logs/webhook-delivery-list-table.tsx +92 -17
  625. package/src/components/wl-subscription/locked-feature.tsx +11 -10
  626. package/src/components/wl-subscription/paywall.tsx +184 -72
  627. package/src/components/wl-subscription/upgrade-modal.tsx +28 -31
  628. package/src/generate-schemas.ts +146 -103
  629. package/src/generated/schemas/acceptentityinvitation_body.ts +4 -3
  630. package/src/generated/schemas/accountwebhook.ts +63 -0
  631. package/src/generated/schemas/addentityuser_body.ts +4 -3
  632. package/src/generated/schemas/advanceinvoice.ts +167 -168
  633. package/src/generated/schemas/authorizeshopify_body.ts +4 -3
  634. package/src/generated/schemas/calculatedocumentpreview.ts +120 -0
  635. package/src/generated/schemas/checktransactiontype.ts +35 -0
  636. package/src/generated/schemas/creditnote.ts +203 -76
  637. package/src/generated/schemas/customadvanceinvoice.ts +172 -165
  638. package/src/generated/schemas/customcreditnote.ts +183 -155
  639. package/src/generated/schemas/customdeliverynote.ts +166 -0
  640. package/src/generated/schemas/customer.ts +4 -8
  641. package/src/generated/schemas/customestimate.ts +123 -97
  642. package/src/generated/schemas/customincomingpurchasedocument.ts +142 -0
  643. package/src/generated/schemas/custominvoice.ts +183 -154
  644. package/src/generated/schemas/deliverynote.ts +124 -79
  645. package/src/generated/schemas/einvoice.ts +19 -0
  646. package/src/generated/schemas/einvoicingsettings.ts +21 -0
  647. package/src/generated/schemas/einvoicingsupplier.ts +45 -0
  648. package/src/generated/schemas/entity.ts +267 -24
  649. package/src/generated/schemas/entityapikey.ts +1 -3
  650. package/src/generated/schemas/entityuserrole.ts +1 -3
  651. package/src/generated/schemas/estimate.ts +120 -127
  652. package/src/generated/schemas/exportsloveniavodxml_body.ts +17 -0
  653. package/src/generated/schemas/exportsloveniayearlynormiranireport_body.ts +4 -3
  654. package/src/generated/schemas/finadevice.ts +15 -0
  655. package/src/generated/schemas/finalizedocument.ts +52 -0
  656. package/src/generated/schemas/finapremise.ts +15 -0
  657. package/src/generated/schemas/finasettings.ts +1 -3
  658. package/src/generated/schemas/furselectronicdevice.ts +15 -0
  659. package/src/generated/schemas/furssettings.ts +2 -3
  660. package/src/generated/schemas/image.ts +15 -0
  661. package/src/generated/schemas/incomingpurchasedocument.ts +178 -0
  662. package/src/generated/schemas/incomingpurchasedocumentattachment.ts +15 -0
  663. package/src/generated/schemas/incomingpurchasedocumentpayment.ts +36 -0
  664. package/src/generated/schemas/index.ts +30 -5
  665. package/src/generated/schemas/invoice.ts +182 -183
  666. package/src/generated/schemas/item.ts +35 -3
  667. package/src/generated/schemas/legacymigrationauth.ts +18 -0
  668. package/src/generated/schemas/me.ts +4 -22
  669. package/src/generated/schemas/migrationjob.ts +20 -0
  670. package/src/generated/schemas/order.ts +6 -8
  671. package/src/generated/schemas/orderintegration.ts +12 -12
  672. package/src/generated/schemas/payment.ts +9 -8
  673. package/src/generated/schemas/ptatcudseries.ts +28 -0
  674. package/src/generated/schemas/queryentitystats.ts +15 -0
  675. package/src/generated/schemas/recurringinvoice.ts +4 -8
  676. package/src/generated/schemas/registerfursmovablepremise_body.ts +1 -3
  677. package/src/generated/schemas/registerfursrealestatepremise_body.ts +1 -3
  678. package/src/generated/schemas/renderadvanceinvoicepreview_body.ts +42 -16
  679. package/src/generated/schemas/rendercreditnotepreview_body.ts +42 -16
  680. package/src/generated/schemas/renderdeliverynotepreview_body.ts +19 -8
  681. package/src/generated/schemas/renderestimatepreview_body.ts +45 -8
  682. package/src/generated/schemas/renderinvoicepreview_body.ts +46 -18
  683. package/src/generated/schemas/reviewsloveniayearlynormiranireport.ts +15 -0
  684. package/src/generated/schemas/searcheinvoicingcustomer.ts +18 -0
  685. package/src/generated/schemas/senddocument_body.ts +2 -3
  686. package/src/generated/schemas/sendemail_body.ts +48 -42
  687. package/src/generated/schemas/sloveniataxprofile.ts +98 -24
  688. package/src/generated/schemas/starteslogexport_body.ts +34 -0
  689. package/src/generated/schemas/startpdfexport_body.ts +18 -81
  690. package/src/generated/schemas/stripeappconnect_body.ts +4 -3
  691. package/src/generated/schemas/stripeappcreateinvoice_body.ts +4 -6
  692. package/src/generated/schemas/stripeappmarketplaceauthorize.ts +15 -0
  693. package/src/generated/schemas/stripeappupdatesettings_body.ts +6 -6
  694. package/src/generated/schemas/supplier.ts +55 -0
  695. package/src/generated/schemas/syncshopifyorders_body.ts +21 -0
  696. package/src/generated/schemas/tax.ts +8 -8
  697. package/src/generated/schemas/uploadfile_body.ts +2 -3
  698. package/src/generated/schemas/uploadfurscertificate_body.ts +6 -6
  699. package/src/generated/schemas/userfinasettings.ts +1 -3
  700. package/src/generated/schemas/userfurssettings.ts +1 -3
  701. package/src/generated/schemas/userptsettings.ts +24 -0
  702. package/src/generated/schemas/voidinvoice_body.ts +25 -0
  703. package/src/generated/schemas/webhook.ts +6 -8
  704. package/src/generated/schemas/wlsubscriptionbillingemail.ts +17 -0
  705. package/src/hooks/create-resource-hooks.ts +22 -19
  706. package/src/hooks/use-duplicate-document.ts +71 -38
  707. package/src/hooks/use-eslog-validation.ts +5 -1
  708. package/src/hooks/use-next-document-number.ts +13 -6
  709. package/src/hooks/use-resolved-entity-id.ts +14 -0
  710. package/src/hooks/use-resource-mutation.ts +11 -30
  711. package/src/hooks/use-transaction-type-check.ts +3 -8
  712. package/src/lib/browser-cookies.ts +1 -1
  713. package/src/lib/country-capabilities.ts +114 -0
  714. package/src/lib/date-fns-locale.ts +1 -20
  715. package/src/lib/date-only.ts +58 -0
  716. package/src/lib/document-display.ts +18 -0
  717. package/src/lib/eslog-export.ts +32 -0
  718. package/src/lib/fiscalization-options.ts +21 -1
  719. package/src/lib/formatting.ts +27 -0
  720. package/src/lib/furs-error-utils.ts +29 -0
  721. package/src/lib/locale.ts +4 -0
  722. package/src/lib/payment-display.ts +97 -0
  723. package/src/lib/pt-document-input.ts +67 -0
  724. package/src/lib/schemas/shared.ts +12 -0
  725. package/src/lib/template-variables.tsx +102 -4
  726. package/src/lib/translation.ts +51 -33
  727. package/src/lib/white-label-capabilities.ts +626 -0
  728. package/src/lib/zod-validation-message.ts +291 -0
  729. package/src/providers/entities-provider.tsx +32 -14
  730. package/src/providers/sdk-provider.tsx +112 -12
  731. package/src/providers/space-invoices-provider.tsx +129 -0
  732. package/src/providers/white-label-provider.tsx +96 -4
  733. package/src/providers/wl-subscription-provider.tsx +149 -10
  734. package/src/generated/schemas/previewadvanceinvoice_body.ts +0 -354
  735. package/src/generated/schemas/previewestimate_body.ts +0 -309
  736. package/src/generated/schemas/registerfinamovablepremise_body.ts +0 -26
  737. package/src/generated/schemas/registerfinarealestatepremise_body.ts +0 -37
  738. package/src/generated/schemas/renderdocument_body.ts +0 -594
@@ -1,9 +1,9 @@
1
1
  export default {
2
2
  "Create Estimate": "Criar orçamento",
3
- "Create Quote": "Criar proposta",
3
+ "Create Proforma invoice": "Criar fatura proforma",
4
4
  Estimate: "Orçamento",
5
- Quote: "Proposta",
6
- "Click to switch to Quote": "Clique para mudar para Proposta",
5
+ "Proforma invoice": "Fatura proforma",
6
+ "Click to switch to Proforma invoice": "Clique para mudar para Fatura proforma",
7
7
  "Click to switch to Estimate": "Clique para mudar para Orçamento",
8
8
  Details: "Detalhes",
9
9
  Number: "Número",
@@ -45,6 +45,7 @@ export default {
45
45
  Discount: "Desconto",
46
46
  Description: "Descrição",
47
47
  Save: "Guardar",
48
+ Update: "Atualizar",
48
49
  "Save as Draft": "Guardar como rascunho",
49
50
  "Pick a date": "Selecionar uma data",
50
51
  Currency: "Moeda",
@@ -0,0 +1,77 @@
1
+ export default {
2
+ "Create Estimate": "Vytvoriť cenovú ponuku",
3
+ "Create Proforma invoice": "Vytvoriť proforma faktúru",
4
+ Estimate: "Cenová ponuka",
5
+ "Proforma invoice": "Proforma faktúra",
6
+ "Click to switch to Proforma invoice": "Kliknutím prepnete na proforma faktúru",
7
+ "Click to switch to Estimate": "Kliknutím prepnete na cenovú ponuku",
8
+ Details: "Údaje",
9
+ Number: "Číslo",
10
+ Date: "Dátum",
11
+ "Due Date": "Dátum splatnosti",
12
+ "Valid Until": "Platné do",
13
+ Recipient: "Recipient",
14
+ "Search or create customer...": "Search or create customer...",
15
+ Clear: "Clear",
16
+ Name: "Meno",
17
+ Address: "Adresa",
18
+ "Address 2": "Adresa 2",
19
+ "Post Code": "PSC",
20
+ City: "Mesto",
21
+ State: "Kraj",
22
+ Country: "Krajina",
23
+ "Tax Number": "Daňové číslo",
24
+ Items: "Položky",
25
+ "Add item": "Add item",
26
+ Tax: "Tax",
27
+ "Tax rate": "Tax rate",
28
+ "Add tax": "Add tax",
29
+ "Select tax...": "Select tax...",
30
+ "Loading...": "Načítavam...",
31
+ "No taxes found": "No taxes found",
32
+ "Add new tax...": "Add new tax...",
33
+ Note: "Note",
34
+ "Insert variable": "Insert variable",
35
+ "Add payment instructions, terms, or other notes...": "Add payment instructions, terms, or other notes...",
36
+ Signature: "Podpis",
37
+ "Add signature text...": "Pridat text podpisu...",
38
+ "Payment Terms": "Payment Terms",
39
+ "Add payment terms...": "Add payment terms...",
40
+ Quantity: "Quantity",
41
+ Price: "Cena",
42
+ Unit: "Unit",
43
+ Discount: "Discount",
44
+ Description: "Popis",
45
+ Save: "Uložiť",
46
+ Update: "Aktualizovať",
47
+ "Save as Draft": "Save as Draft",
48
+ "Pick a date": "Pick a date",
49
+ Currency: "Mena",
50
+ "Select currency": "Vyberte menu",
51
+ "Percentage discount": "Percentage discount",
52
+ "Fixed amount discount": "Fixed amount discount",
53
+ Percentage: "Percentage",
54
+ "Fixed amount": "Fixed amount",
55
+ "Taxes disabled": "Taxes disabled",
56
+ "Gross price": "Gross price",
57
+ "Net price": "Net price",
58
+ "Gross price (tax included)": "Gross price (tax included)",
59
+ "Net price (before tax)": "Net price (before tax)",
60
+ "Add separator": "Add separator",
61
+ "Section header": "Section header",
62
+ "Section title...": "Section title...",
63
+ "Transaction type": "Transaction type",
64
+ Domestic: "Domestic",
65
+ "EU B2B": "EU B2B",
66
+ "EU B2C": "EU B2C",
67
+ "3W B2B": "3W B2B",
68
+ "3W B2C": "3W B2C",
69
+ "Determining transaction type...": "Determining transaction type...",
70
+ "This invoice will not be fiscalized (non-domestic transaction)":
71
+ "This invoice will not be fiscalized (non-domestic transaction)",
72
+ "Tax Clause": "Tax Clause",
73
+ "Add tax clause...": "Add tax clause...",
74
+ Footer: "Footer",
75
+ "Add document footer...": "Add document footer...",
76
+ "Reverse charge - tax exempt EU B2B sale": "Reverse charge - tax exempt EU B2B sale",
77
+ } as const;
@@ -1,17 +1,17 @@
1
1
  export default {
2
- "Create Estimate": "Ustvari predračun",
3
- "Create Quote": "Ustvari ponudbo",
4
- Estimate: "Predračun",
5
- Quote: "Ponudba",
6
- "Click to switch to Quote": "Kliknite za zamenjavo v Ponudbo",
7
- "Click to switch to Estimate": "Kliknite za zamenjavo v Predračun",
2
+ "Create Estimate": "Ustvari ponudbo",
3
+ "Create Proforma invoice": "Ustvari predračun",
4
+ Estimate: "Ponudba",
5
+ "Proforma invoice": "Predračun",
6
+ "Click to switch to Proforma invoice": "Kliknite za preklop na predračun",
7
+ "Click to switch to Estimate": "Kliknite za preklop na ponudbo",
8
8
  Details: "Podrobnosti",
9
9
  Number: "Številka",
10
10
  Date: "Datum",
11
11
  "Due Date": "Rok plačila",
12
12
  "Valid Until": "Veljavno do",
13
13
  Recipient: "Prejemnik",
14
- "Search or create customer...": "Išči ali ustvari stranko...",
14
+ "Search or create customer...": "Poiščite ali ustvarite stranko...",
15
15
  Clear: "Počisti",
16
16
  Name: "Ime",
17
17
  Address: "Naslov",
@@ -31,15 +31,15 @@ export default {
31
31
  "No taxes found": "Ni najdenih davkov",
32
32
  "Add new tax...": "Dodaj nov davek...",
33
33
  // Note field
34
- Note: "Opomba",
34
+ Note: "Pripis",
35
35
  "Insert variable": "Vstavi spremenljivko",
36
- "Add payment instructions, terms, or other notes...": "Dodajte navodila za plačilo, pogoje ali druge opombe...",
36
+ "Add payment instructions, terms, or other notes...": "Dodaj navodila za plačilo, pogoje ali druge pripise...",
37
37
  // Signature field
38
38
  Signature: "Podpis",
39
39
  "Add signature text...": "Dodaj besedilo podpisa...",
40
40
  // Payment terms field
41
41
  "Payment Terms": "Plačilni pogoji",
42
- "Add payment terms...": "Dodajte plačilne pogoje...",
42
+ "Add payment terms...": "Dodaj plačilne pogoje...",
43
43
  // Document item fields
44
44
  Quantity: "Količina",
45
45
  Price: "Cena",
@@ -47,6 +47,7 @@ export default {
47
47
  Discount: "Popust",
48
48
  Description: "Opis",
49
49
  Save: "Shrani",
50
+ Update: "Posodobi",
50
51
  "Save as Draft": "Shrani kot osnutek",
51
52
  "Pick a date": "Izberi datum",
52
53
  // Currency
@@ -78,8 +79,8 @@ export default {
78
79
  "This invoice will not be fiscalized (non-domestic transaction)":
79
80
  "Ta račun ne bo fiskaliziran (nedomača transakcija)",
80
81
  "Tax Clause": "Davčna klavzula",
81
- "Add tax clause...": "Dodajte davčno klavzulo...",
82
+ "Add tax clause...": "Dodaj davčno klavzulo...",
82
83
  Footer: "Noga dokumenta",
83
- "Add document footer...": "Dodajte nogo dokumenta...",
84
+ "Add document footer...": "Dodaj nogo dokumenta...",
84
85
  "Reverse charge - tax exempt EU B2B sale": "Obrnjena davčna obveznost - davka oproščena EU B2B prodaja",
85
86
  } as const;
@@ -0,0 +1,77 @@
1
+ export default {
2
+ "Create Estimate": "Skapa offert",
3
+ "Create Proforma invoice": "Skapa proformafaktura",
4
+ Estimate: "Offert",
5
+ "Proforma invoice": "Proformafaktura",
6
+ "Click to switch to Proforma invoice": "Klicka för att växla till proformafaktura",
7
+ "Click to switch to Estimate": "Klicka för att växla till offert",
8
+ Details: "Detaljer",
9
+ Number: "Nummer",
10
+ Date: "Datum",
11
+ "Due Date": "Förfallodatum",
12
+ "Valid Until": "Giltig till",
13
+ Recipient: "Recipient",
14
+ "Search or create customer...": "Search or create customer...",
15
+ Clear: "Clear",
16
+ Name: "Namn",
17
+ Address: "Adress",
18
+ "Address 2": "Adress 2",
19
+ "Post Code": "Postnummer",
20
+ City: "Stad",
21
+ State: "Län",
22
+ Country: "Land",
23
+ "Tax Number": "Skattenummer",
24
+ Items: "Artiklar",
25
+ "Add item": "Add item",
26
+ Tax: "Tax",
27
+ "Tax rate": "Tax rate",
28
+ "Add tax": "Add tax",
29
+ "Select tax...": "Select tax...",
30
+ "Loading...": "Laddar...",
31
+ "No taxes found": "No taxes found",
32
+ "Add new tax...": "Add new tax...",
33
+ Note: "Note",
34
+ "Insert variable": "Insert variable",
35
+ "Add payment instructions, terms, or other notes...": "Add payment instructions, terms, or other notes...",
36
+ Signature: "Signatur",
37
+ "Add signature text...": "Lägg till signaturtext...",
38
+ "Payment Terms": "Payment Terms",
39
+ "Add payment terms...": "Add payment terms...",
40
+ Quantity: "Quantity",
41
+ Price: "Pris",
42
+ Unit: "Unit",
43
+ Discount: "Discount",
44
+ Description: "Beskrivning",
45
+ Save: "Spara",
46
+ Update: "Uppdatera",
47
+ "Save as Draft": "Save as Draft",
48
+ "Pick a date": "Pick a date",
49
+ Currency: "Valuta",
50
+ "Select currency": "Välj valuta",
51
+ "Percentage discount": "Percentage discount",
52
+ "Fixed amount discount": "Fixed amount discount",
53
+ Percentage: "Percentage",
54
+ "Fixed amount": "Fixed amount",
55
+ "Taxes disabled": "Taxes disabled",
56
+ "Gross price": "Gross price",
57
+ "Net price": "Net price",
58
+ "Gross price (tax included)": "Gross price (tax included)",
59
+ "Net price (before tax)": "Net price (before tax)",
60
+ "Add separator": "Add separator",
61
+ "Section header": "Section header",
62
+ "Section title...": "Section title...",
63
+ "Transaction type": "Transaction type",
64
+ Domestic: "Domestic",
65
+ "EU B2B": "EU B2B",
66
+ "EU B2C": "EU B2C",
67
+ "3W B2B": "3W B2B",
68
+ "3W B2C": "3W B2C",
69
+ "Determining transaction type...": "Determining transaction type...",
70
+ "This invoice will not be fiscalized (non-domestic transaction)":
71
+ "This invoice will not be fiscalized (non-domestic transaction)",
72
+ "Tax Clause": "Tax Clause",
73
+ "Add tax clause...": "Add tax clause...",
74
+ Footer: "Footer",
75
+ "Add document footer...": "Add document footer...",
76
+ "Reverse charge - tax exempt EU B2B sale": "Reverse charge - tax exempt EU B2B sale",
77
+ } as const;
@@ -1,6 +1,13 @@
1
1
  import type { CreateEstimateRequest } from "@spaceinvoices/js-sdk";
2
2
  import type { CreateEstimateSchema } from "@/ui/generated/schemas";
3
- import { prepareDocumentSubmission } from "../../documents/create/prepare-document-submission";
3
+ import { normalizePtDocumentInput, type PtDocumentInputForm } from "@/ui/lib/pt-document-input";
4
+ import {
5
+ buildDocumentBasePayload,
6
+ cleanupEmptyCustomerId,
7
+ prepareDocumentCustomerData,
8
+ prepareDocumentItems,
9
+ prepareDocumentSubmission,
10
+ } from "../../documents/create/prepare-document-submission";
4
11
  import type { CustomerData } from "../../documents/create/use-document-customer-form";
5
12
 
6
13
  /** Map of item index to gross price mode */
@@ -10,8 +17,8 @@ type PrepareOptions = {
10
17
  originalCustomer: CustomerData | null;
11
18
  /** Map of item index to gross price mode (collected from component state) */
12
19
  priceModes?: PriceModesMap;
13
- /** Title type: "estimate" or "quote" */
14
- titleType?: "estimate" | "quote";
20
+ /** Title type: "estimate" or "proforma_invoice" */
21
+ titleType?: "estimate" | "proforma_invoice";
15
22
  /** Whether to save as draft (skips numbering) */
16
23
  isDraft?: boolean;
17
24
  };
@@ -21,9 +28,10 @@ type PrepareOptions = {
21
28
  * Handles customer data transformation (no payment data for estimates)
22
29
  */
23
30
  export function prepareEstimateSubmission(
24
- values: CreateEstimateSchema,
31
+ values: CreateEstimateSchema & { pt?: PtDocumentInputForm | null },
25
32
  options: PrepareOptions,
26
33
  ): CreateEstimateRequest {
34
+ const pt = normalizePtDocumentInput(values.pt);
27
35
  const baseSubmission = prepareDocumentSubmission(values, {
28
36
  originalCustomer: options.originalCustomer,
29
37
  documentType: "estimate",
@@ -35,5 +43,34 @@ export function prepareEstimateSubmission(
35
43
  return {
36
44
  ...baseSubmission,
37
45
  title_type: options.titleType,
46
+ ...(pt ? { pt } : {}),
47
+ };
48
+ }
49
+
50
+ export function prepareEstimateUpdateSubmission(
51
+ values: CreateEstimateSchema & { pt?: PtDocumentInputForm | null },
52
+ options: Pick<PrepareOptions, "originalCustomer" | "priceModes" | "titleType">,
53
+ ): Record<string, unknown> {
54
+ const nextValues: any = {
55
+ ...values,
56
+ customer: values.customer ? { ...values.customer } : values.customer,
57
+ items: values.items
58
+ ? values.items.map((item: any) => ({ ...item, taxes: item?.taxes ? [...item.taxes] : item?.taxes }))
59
+ : values.items,
60
+ };
61
+
62
+ prepareDocumentCustomerData(nextValues, {
63
+ originalCustomer: options.originalCustomer,
64
+ wasCustomerFormShown: true,
65
+ });
66
+ cleanupEmptyCustomerId(nextValues);
67
+ nextValues.items = prepareDocumentItems(nextValues.items, options.priceModes ?? {});
68
+
69
+ return {
70
+ ...buildDocumentBasePayload(nextValues, {
71
+ documentType: "estimate",
72
+ secondaryDate: values.date_valid_till ?? undefined,
73
+ }),
74
+ ...(options.titleType ? { title_type: options.titleType } : {}),
38
75
  };
39
76
  }
@@ -1,15 +1,36 @@
1
- import type { CreateEstimateRequest, Estimate } from "@spaceinvoices/js-sdk";
1
+ import type { CreateEstimateRequest, CustomCreateEstimate, Estimate, UpdateEstimate } from "@spaceinvoices/js-sdk";
2
+ import { estimates } from "@spaceinvoices/js-sdk";
2
3
 
3
4
  import { createResourceHooks } from "@/ui/hooks/create-resource-hooks";
4
5
 
5
6
  // Define a constant for the estimates cache key
6
7
  export const ESTIMATES_CACHE_KEY = "estimates";
7
8
 
9
+ const deleteEstimate = async (): Promise<void> => {
10
+ throw new Error("Deleting estimates is not supported by the modular SDK.");
11
+ };
12
+
8
13
  // Create estimate-specific hooks using the factory
9
14
  const {
10
15
  useCreateResource: useCreateEstimate,
11
16
  useUpdateResource: useUpdateEstimate,
12
17
  useDeleteResource: useDeleteEstimate,
13
- } = createResourceHooks<Estimate, CreateEstimateRequest>("estimates", ESTIMATES_CACHE_KEY);
18
+ } = createResourceHooks<Estimate, CreateEstimateRequest, UpdateEstimate>(
19
+ {
20
+ create: estimates.create,
21
+ update: estimates.update,
22
+ delete: deleteEstimate,
23
+ },
24
+ ESTIMATES_CACHE_KEY,
25
+ );
26
+
27
+ const { useCreateResource: useCreateCustomEstimate } = createResourceHooks<Estimate, CustomCreateEstimate, UpdateEstimate>(
28
+ {
29
+ create: estimates.createCustom,
30
+ update: estimates.update,
31
+ delete: deleteEstimate,
32
+ },
33
+ ESTIMATES_CACHE_KEY,
34
+ );
14
35
 
15
- export { useCreateEstimate, useUpdateEstimate, useDeleteEstimate };
36
+ export { useCreateCustomEstimate, useCreateEstimate, useDeleteEstimate, useUpdateEstimate };
@@ -11,10 +11,17 @@ import {
11
11
  DropdownMenuSeparator,
12
12
  DropdownMenuTrigger,
13
13
  } from "@/ui/components/ui/dropdown-menu";
14
+ import { actionMenuTooltipProps, Tooltip, TooltipContent, TooltipTrigger } from "@/ui/components/ui/tooltip";
14
15
  import type { ComponentTranslationProps } from "@/ui/lib/translation";
15
16
  import { createTranslation } from "@/ui/lib/translation";
16
17
  import { useEstimateDownload } from "./use-estimate-download";
17
18
 
19
+ const translations = {
20
+ sl: {
21
+ "Create invoice": "Ustvari račun",
22
+ },
23
+ } as const;
24
+
18
25
  type EstimateListRowActionsProps = {
19
26
  estimate: Estimate;
20
27
  onView?: (estimate: Estimate) => void;
@@ -37,13 +44,26 @@ export default function EstimateListRowActions({
37
44
  isUnsharing,
38
45
  ...i18nProps
39
46
  }: EstimateListRowActionsProps) {
40
- const t = createTranslation(i18nProps);
47
+ const t = createTranslation({ ...i18nProps, translations });
41
48
  const { isDownloading, downloadPDF } = useEstimateDownload({
42
49
  onDownloadStart,
43
50
  onDownloadSuccess,
44
51
  onDownloadError,
45
52
  ...i18nProps,
46
53
  });
54
+ const createInvoiceDisabledReason = estimate.voided_at
55
+ ? t("documents-list-page.copy-to-invoice-voided-not-allowed")
56
+ : undefined;
57
+ const createInvoiceItem = onDuplicate ? (
58
+ <DropdownMenuItem
59
+ className="cursor-pointer"
60
+ onClick={createInvoiceDisabledReason ? undefined : () => onDuplicate(estimate)}
61
+ disabled={!!createInvoiceDisabledReason}
62
+ >
63
+ <Copy className="h-4 w-4" />
64
+ {t("Create invoice")}
65
+ </DropdownMenuItem>
66
+ ) : null;
47
67
 
48
68
  return (
49
69
  <DropdownMenu>
@@ -71,12 +91,19 @@ export default function EstimateListRowActions({
71
91
  <Download className="h-4 w-4" />
72
92
  {isDownloading ? t("Downloading...") : t("Download PDF")}
73
93
  </DropdownMenuItem>
74
- {onDuplicate && (
75
- <DropdownMenuItem className="cursor-pointer" onClick={() => onDuplicate(estimate)}>
76
- <Copy className="h-4 w-4" />
77
- {t("Duplicate")}
78
- </DropdownMenuItem>
79
- )}
94
+ {createInvoiceItem &&
95
+ (createInvoiceDisabledReason ? (
96
+ <Tooltip>
97
+ <TooltipTrigger asChild>
98
+ <div>{createInvoiceItem}</div>
99
+ </TooltipTrigger>
100
+ <TooltipContent side="left" {...actionMenuTooltipProps}>
101
+ {createInvoiceDisabledReason}
102
+ </TooltipContent>
103
+ </Tooltip>
104
+ ) : (
105
+ createInvoiceItem
106
+ ))}
80
107
  </DropdownMenuGroup>
81
108
  {estimate.shareable_id && onUnshare && (
82
109
  <>
@@ -1,4 +1,5 @@
1
1
  import type { Estimate } from "@spaceinvoices/js-sdk";
2
+ import { estimates } from "@spaceinvoices/js-sdk";
2
3
  import { useCallback, useMemo, useState } from "react";
3
4
  import { DataTable } from "@/ui/components/table/data-table";
4
5
  import { FormattedDate } from "@/ui/components/table/date-cell";
@@ -14,8 +15,9 @@ import type {
14
15
  } from "@/ui/components/table/types";
15
16
  import { Badge } from "@/ui/components/ui/badge";
16
17
  import { Button } from "@/ui/components/ui/button";
18
+ import { getDisplayDocumentNumber } from "@/ui/lib/document-display";
19
+ import { getEslogSelectionState } from "@/ui/lib/eslog-export";
17
20
  import { createTranslation } from "@/ui/lib/translation";
18
- import { useSDK } from "@/ui/providers/sdk-provider";
19
21
 
20
22
  import EstimateListRowActions from "./list-row-actions";
21
23
  import de from "./locales/de";
@@ -54,6 +56,11 @@ type EstimateListTableProps = {
54
56
  onDownloadSuccess?: (fileName: string) => void;
55
57
  onDownloadError?: (error: string) => void;
56
58
  onExportSelected?: (documentIds: string[]) => void;
59
+ onExportEslogSelected?: (documentIds: string[]) => void;
60
+ pdfExportDisabled?: boolean;
61
+ pdfExportDisabledTooltip?: string;
62
+ eslogExportDisabled?: boolean;
63
+ eslogExportDisabledTooltip?: string;
57
64
  onCopyToInvoice?: (documentIds: string[]) => void;
58
65
  onCreateNew?: () => void;
59
66
  } & ListTableProps<Estimate>;
@@ -69,28 +76,31 @@ export default function EstimateListTable({
69
76
  onDownloadSuccess,
70
77
  onDownloadError,
71
78
  onExportSelected,
79
+ onExportEslogSelected,
80
+ pdfExportDisabled,
81
+ pdfExportDisabledTooltip,
82
+ eslogExportDisabled,
83
+ eslogExportDisabledTooltip,
72
84
  onCopyToInvoice,
73
85
  onCreateNew,
74
86
  ...i18nProps
75
87
  }: EstimateListTableProps) {
76
88
  const t = createTranslation({
77
- translations,
78
- locale: i18nProps.translationLocale ?? i18nProps.locale,
79
89
  ...i18nProps,
90
+ translations,
80
91
  });
81
92
 
82
- const { sdk } = useSDK();
83
93
  const [selectedIds, setSelectedIds] = useState<Set<string>>(new Set());
84
94
 
85
95
  const handleFetch = useTableFetch(async (params: TableQueryParams) => {
86
- if (!sdk) throw new Error("SDK not initialized");
87
96
  if (!params.entity_id) throw new Error("Entity ID required");
88
97
 
89
- const response = await sdk.estimates.list({
98
+ const response = await estimates.list({
90
99
  entity_id: params.entity_id,
91
100
  limit: params.limit,
92
101
  next_cursor: params.next_cursor,
93
102
  prev_cursor: params.prev_cursor,
103
+ order_by: params.order_by,
94
104
  search: params.search,
95
105
  query: params.query,
96
106
  });
@@ -115,6 +125,12 @@ export default function EstimateListTable({
115
125
  }
116
126
  }, [selectedIds, onExportSelected]);
117
127
 
128
+ const handleExportEslog = useCallback(() => {
129
+ if (selectedIds.size > 0 && onExportEslogSelected) {
130
+ onExportEslogSelected(Array.from(selectedIds));
131
+ }
132
+ }, [selectedIds, onExportEslogSelected]);
133
+
118
134
  const handleCopyToInvoice = useCallback(() => {
119
135
  if (selectedIds.size > 0 && onCopyToInvoice) {
120
136
  onCopyToInvoice(Array.from(selectedIds));
@@ -127,32 +143,84 @@ export default function EstimateListTable({
127
143
 
128
144
  const selectionToolbar = useCallback(
129
145
  (count: number, data: Estimate[]) => {
146
+ const selectedDocs = data.filter((d) => selectedIds.has(d.id));
147
+ const eslogSelection = getEslogSelectionState(selectedDocs);
130
148
  const hasDrafts = data.some((d) => selectedIds.has(d.id) && (d as any).is_draft);
149
+ const hasVoided = data.some((d) => selectedIds.has(d.id) && !!(d as any).voided_at);
150
+ const copyDisabled = hasDrafts || hasVoided;
151
+ const copyTooltip = hasDrafts
152
+ ? t("Finalize draft documents before copying to invoice")
153
+ : hasVoided
154
+ ? t("Voided documents cannot be copied to invoices")
155
+ : undefined;
131
156
 
132
157
  return (
133
158
  <SelectionToolbar
134
159
  selectedCount={count}
135
160
  onExportPdfs={onExportSelected ? handleExportPdfs : undefined}
161
+ exportPdfsDisabled={pdfExportDisabled}
162
+ exportPdfsTooltip={pdfExportDisabledTooltip}
163
+ onExportEslog={onExportEslogSelected ? handleExportEslog : undefined}
164
+ exportEslogDisabled={eslogExportDisabled || eslogSelection.noneEligible}
165
+ exportEslogTooltip={
166
+ eslogExportDisabled
167
+ ? eslogExportDisabledTooltip
168
+ : eslogSelection.noneEligible
169
+ ? t("None of the selected documents are valid for e-SLOG export")
170
+ : undefined
171
+ }
172
+ exportEslogWarning={!eslogExportDisabled && eslogSelection.partiallyEligible}
173
+ exportEslogWarningTooltip={
174
+ !eslogExportDisabled && eslogSelection.partiallyEligible
175
+ ? t("Some selected documents are not valid for e-SLOG export and will be skipped")
176
+ : undefined
177
+ }
136
178
  onCopyToInvoice={onCopyToInvoice ? handleCopyToInvoice : undefined}
137
- copyToInvoiceDisabled={hasDrafts}
138
- copyToInvoiceTooltip={hasDrafts ? t("Finalize draft documents before copying to invoice") : undefined}
179
+ copyToInvoiceDisabled={copyDisabled}
180
+ copyToInvoiceTooltip={copyTooltip}
139
181
  onDeselectAll={handleDeselectAll}
140
182
  t={t}
141
183
  />
142
184
  );
143
185
  },
144
- [handleExportPdfs, handleCopyToInvoice, handleDeselectAll, onExportSelected, onCopyToInvoice, selectedIds, t],
186
+ [
187
+ handleExportPdfs,
188
+ handleExportEslog,
189
+ handleCopyToInvoice,
190
+ handleDeselectAll,
191
+ onExportSelected,
192
+ onExportEslogSelected,
193
+ pdfExportDisabled,
194
+ pdfExportDisabledTooltip,
195
+ eslogExportDisabled,
196
+ eslogExportDisabledTooltip,
197
+ onCopyToInvoice,
198
+ selectedIds,
199
+ t,
200
+ ],
145
201
  );
146
202
 
147
203
  const columns: Column<Estimate>[] = useMemo(
148
204
  () => [
205
+ {
206
+ id: "title_type",
207
+ header: t("Type"),
208
+ cell: (estimate) => (
209
+ <Badge variant="outline">
210
+ {estimate.title_type === "proforma_invoice" ? t("Proforma invoice") : t("Estimate")}
211
+ </Badge>
212
+ ),
213
+ },
149
214
  {
150
215
  id: "number",
151
216
  header: t("Number"),
217
+ sort: {
218
+ defaultDirection: "desc",
219
+ },
152
220
  cell: (estimate) => (
153
221
  <div className="flex items-center gap-2">
154
222
  <Button variant="link" className="cursor-pointer py-0 underline" onClick={() => onRowClick?.(estimate)}>
155
- {estimate.number}
223
+ {getDisplayDocumentNumber(estimate as Estimate & { is_draft?: boolean }, t)}
156
224
  </Button>
157
225
  {(estimate as any).is_draft && (
158
226
  <Badge
@@ -173,23 +241,33 @@ export default function EstimateListTable({
173
241
  {
174
242
  id: "date",
175
243
  header: t("Date"),
244
+ sort: {
245
+ defaultDirection: "desc",
246
+ },
176
247
  cell: (estimate) => <FormattedDate date={estimate.date} locale={i18nProps.locale} />,
177
248
  },
178
249
  {
179
250
  id: "date_valid_till",
180
251
  header: t("Valid Until"),
252
+ sort: true,
181
253
  cell: (estimate) => <FormattedDate date={estimate.date_valid_till} locale={i18nProps.locale} />,
182
254
  },
183
255
  {
184
256
  id: "total",
185
257
  header: t("Total"),
186
258
  align: "right",
259
+ sort: {
260
+ defaultDirection: "desc",
261
+ },
187
262
  cell: (estimate) => estimate.total,
188
263
  },
189
264
  {
190
265
  id: "total_with_tax",
191
266
  header: t("Total with Tax"),
192
267
  align: "right",
268
+ sort: {
269
+ defaultDirection: "desc",
270
+ },
193
271
  cell: (estimate) => estimate.total_with_tax,
194
272
  },
195
273
  {
@@ -227,7 +305,7 @@ export default function EstimateListTable({
227
305
  filterConfig={filterConfig}
228
306
  t={t}
229
307
  locale={i18nProps.locale}
230
- selectable={!!(onExportSelected || onCopyToInvoice)}
308
+ selectable={!!(onExportSelected || onExportEslogSelected || onCopyToInvoice)}
231
309
  selectedIds={selectedIds}
232
310
  onSelectionChange={setSelectedIds}
233
311
  selectionToolbar={selectionToolbar}
@@ -0,0 +1,40 @@
1
+ export default {
2
+ "Your list is empty": "Your estimate list is empty",
3
+ "Get started by creating your first entry": "Get started by creating your first estimate",
4
+ "Create new": "Създайте оценка",
5
+ "No results found": "No estimates found",
6
+ selected: "selected",
7
+ "Export PDFs": "Export PDFs",
8
+ "Deselect all": "Deselect all",
9
+ "Copy to Invoice": "Copy to Invoice",
10
+ "Finalize draft documents before copying to invoice": "Finalize draft documents before copying to invoice",
11
+ Draft: "Draft",
12
+ Type: "Тип",
13
+ Number: "Номер",
14
+ Customer: "Клиент",
15
+ Date: "Дата",
16
+ "Valid Until": "Valid Until",
17
+ Total: "Общо",
18
+ "Total with Tax": "Total with Tax",
19
+ Actions: "Действия",
20
+ "Open menu": "Отворете менюто",
21
+ "Copy estimate ID": "Copy estimate ID",
22
+ "View estimate": "View estimate",
23
+ "Download PDF": "Изтегли PDF",
24
+ "Downloading...": "Изтегляне...",
25
+ Duplicate: "Duplicate",
26
+ Estimate: "Оферта",
27
+ "Proforma invoice": "Проформа фактура",
28
+ "Failed to download PDF": "Неуспешно изтегляне на PDF",
29
+ "Search...": "Search...",
30
+ Filters: "Filters",
31
+ "Date Range": "Период",
32
+ From: "From",
33
+ To: "To",
34
+ "Clear filters": "Clear filters",
35
+ "Created At": "Created At",
36
+ Unshare: "Прекрати споделяне",
37
+ "Try adjusting your search criteria": "Try adjusting your search criteria",
38
+ "Clear search": "Clear search",
39
+ "Clear all": "Clear all",
40
+ } as const;