@spaceinvoices/react-ui 0.4.11 → 0.4.12

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 (633) 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 +41 -25
  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 +2 -3
  15. package/src/components/advance-invoices/create/create-advance-invoice-form.tsx +290 -69
  16. package/src/components/advance-invoices/create/locales/bg.ts +48 -0
  17. package/src/components/advance-invoices/create/locales/cs.ts +48 -0
  18. package/src/components/advance-invoices/create/locales/en.ts +48 -0
  19. package/src/components/advance-invoices/create/locales/et.ts +48 -0
  20. package/src/components/advance-invoices/create/locales/fi.ts +48 -0
  21. package/src/components/advance-invoices/create/locales/hr.ts +17 -17
  22. package/src/components/advance-invoices/create/locales/is.ts +48 -0
  23. package/src/components/advance-invoices/create/locales/nb.ts +48 -0
  24. package/src/components/advance-invoices/create/locales/sk.ts +48 -0
  25. package/src/components/advance-invoices/create/locales/sl.ts +9 -7
  26. package/src/components/advance-invoices/create/locales/sv.ts +48 -0
  27. package/src/components/advance-invoices/create/prepare-advance-invoice-submission.ts +16 -2
  28. package/src/components/advance-invoices/list/list-row-actions.tsx +48 -16
  29. package/src/components/advance-invoices/list/list-table.tsx +33 -8
  30. package/src/components/advance-invoices/list/locales/bg.ts +51 -0
  31. package/src/components/advance-invoices/list/locales/cs.ts +51 -0
  32. package/src/components/advance-invoices/list/locales/en.ts +33 -2
  33. package/src/components/advance-invoices/list/locales/et.ts +51 -0
  34. package/src/components/advance-invoices/list/locales/fi.ts +51 -0
  35. package/src/components/advance-invoices/list/locales/hr.ts +15 -15
  36. package/src/components/advance-invoices/list/locales/is.ts +51 -0
  37. package/src/components/advance-invoices/list/locales/nb.ts +51 -0
  38. package/src/components/advance-invoices/list/locales/sk.ts +51 -0
  39. package/src/components/advance-invoices/list/locales/sv.ts +51 -0
  40. package/src/components/advance-invoices/list/use-advance-invoice-download.ts +3 -5
  41. package/src/components/common/autocomplete-locales.ts +101 -0
  42. package/src/components/company-registry/company-registry.hooks.ts +3 -7
  43. package/src/components/credit-notes/create/create-credit-note-form.tsx +211 -22
  44. package/src/components/credit-notes/create/locales/bg.ts +87 -0
  45. package/src/components/credit-notes/create/locales/cs.ts +87 -0
  46. package/src/components/credit-notes/create/locales/en.ts +87 -0
  47. package/src/components/credit-notes/create/locales/et.ts +87 -0
  48. package/src/components/credit-notes/create/locales/fi.ts +87 -0
  49. package/src/components/credit-notes/create/locales/hr.ts +24 -24
  50. package/src/components/credit-notes/create/locales/is.ts +87 -0
  51. package/src/components/credit-notes/create/locales/nb.ts +87 -0
  52. package/src/components/credit-notes/create/locales/sk.ts +87 -0
  53. package/src/components/credit-notes/create/locales/sl.ts +9 -9
  54. package/src/components/credit-notes/create/locales/sv.ts +87 -0
  55. package/src/components/credit-notes/create/prepare-credit-note-submission.ts +32 -0
  56. package/src/components/credit-notes/credit-notes.hooks.ts +15 -3
  57. package/src/components/credit-notes/list/list-row-actions.tsx +19 -7
  58. package/src/components/credit-notes/list/list-table.tsx +58 -7
  59. package/src/components/credit-notes/list/locales/bg.ts +48 -0
  60. package/src/components/credit-notes/list/locales/cs.ts +48 -0
  61. package/src/components/credit-notes/list/locales/en.ts +31 -2
  62. package/src/components/credit-notes/list/locales/et.ts +48 -0
  63. package/src/components/credit-notes/list/locales/fi.ts +48 -0
  64. package/src/components/credit-notes/list/locales/hr.ts +12 -12
  65. package/src/components/credit-notes/list/locales/is.ts +48 -0
  66. package/src/components/credit-notes/list/locales/nb.ts +48 -0
  67. package/src/components/credit-notes/list/locales/sk.ts +48 -0
  68. package/src/components/credit-notes/list/locales/sv.ts +48 -0
  69. package/src/components/credit-notes/list/use-credit-note-download.ts +3 -5
  70. package/src/components/customers/create-customer-form/locales/bg.ts +21 -0
  71. package/src/components/customers/create-customer-form/locales/cs.ts +21 -0
  72. package/src/components/customers/create-customer-form/locales/en.ts +21 -0
  73. package/src/components/customers/create-customer-form/locales/et.ts +21 -0
  74. package/src/components/customers/create-customer-form/locales/fi.ts +21 -0
  75. package/src/components/customers/create-customer-form/locales/hr.ts +11 -11
  76. package/src/components/customers/create-customer-form/locales/is.ts +21 -0
  77. package/src/components/customers/create-customer-form/locales/nb.ts +21 -0
  78. package/src/components/customers/create-customer-form/locales/sk.ts +21 -0
  79. package/src/components/customers/create-customer-form/locales/sv.ts +21 -0
  80. package/src/components/customers/customer-autocomplete.tsx +32 -4
  81. package/src/components/customers/customer-list-table/customer-list-table.tsx +8 -6
  82. package/src/components/customers/customer-list-table/locales/bg.ts +25 -0
  83. package/src/components/customers/customer-list-table/locales/cs.ts +25 -0
  84. package/src/components/customers/customer-list-table/locales/en.ts +17 -2
  85. package/src/components/customers/customer-list-table/locales/et.ts +25 -0
  86. package/src/components/customers/customer-list-table/locales/fi.ts +25 -0
  87. package/src/components/customers/customer-list-table/locales/hr.ts +11 -11
  88. package/src/components/customers/customer-list-table/locales/is.ts +25 -0
  89. package/src/components/customers/customer-list-table/locales/nb.ts +25 -0
  90. package/src/components/customers/customer-list-table/locales/sk.ts +25 -0
  91. package/src/components/customers/customer-list-table/locales/sv.ts +25 -0
  92. package/src/components/customers/customers.hooks.ts +14 -17
  93. package/src/components/customers/edit-customer-form/locales/bg.ts +13 -0
  94. package/src/components/customers/edit-customer-form/locales/cs.ts +13 -0
  95. package/src/components/customers/edit-customer-form/locales/en.ts +13 -0
  96. package/src/components/customers/edit-customer-form/locales/et.ts +13 -0
  97. package/src/components/customers/edit-customer-form/locales/fi.ts +13 -0
  98. package/src/components/customers/edit-customer-form/locales/hr.ts +5 -5
  99. package/src/components/customers/edit-customer-form/locales/is.ts +13 -0
  100. package/src/components/customers/edit-customer-form/locales/nb.ts +13 -0
  101. package/src/components/customers/edit-customer-form/locales/sk.ts +13 -0
  102. package/src/components/customers/edit-customer-form/locales/sv.ts +13 -0
  103. package/src/components/dashboard/collection-rate-card/collection-rate-card.tsx +7 -6
  104. package/src/components/dashboard/collection-rate-card/locales/en.ts +3 -0
  105. package/src/components/dashboard/collection-rate-card/use-collection-rate.ts +8 -7
  106. package/src/components/dashboard/invoice-status-chart/invoice-status-chart.tsx +7 -4
  107. package/src/components/dashboard/invoice-status-chart/locales/bg.ts +5 -5
  108. package/src/components/dashboard/invoice-status-chart/locales/cs.ts +5 -5
  109. package/src/components/dashboard/invoice-status-chart/locales/de.ts +1 -1
  110. package/src/components/dashboard/invoice-status-chart/locales/en.ts +10 -0
  111. package/src/components/dashboard/invoice-status-chart/locales/es.ts +1 -1
  112. package/src/components/dashboard/invoice-status-chart/locales/et.ts +5 -5
  113. package/src/components/dashboard/invoice-status-chart/locales/fi.ts +5 -5
  114. package/src/components/dashboard/invoice-status-chart/locales/fr.ts +1 -1
  115. package/src/components/dashboard/invoice-status-chart/locales/hr.ts +5 -5
  116. package/src/components/dashboard/invoice-status-chart/locales/is.ts +5 -5
  117. package/src/components/dashboard/invoice-status-chart/locales/it.ts +1 -1
  118. package/src/components/dashboard/invoice-status-chart/locales/nb.ts +5 -5
  119. package/src/components/dashboard/invoice-status-chart/locales/nl.ts +1 -1
  120. package/src/components/dashboard/invoice-status-chart/locales/pl.ts +1 -1
  121. package/src/components/dashboard/invoice-status-chart/locales/pt.ts +1 -1
  122. package/src/components/dashboard/invoice-status-chart/locales/sk.ts +5 -5
  123. package/src/components/dashboard/invoice-status-chart/locales/sl.ts +1 -1
  124. package/src/components/dashboard/invoice-status-chart/locales/sv.ts +5 -5
  125. package/src/components/dashboard/payment-methods-chart/locales/bg.ts +5 -5
  126. package/src/components/dashboard/payment-methods-chart/locales/cs.ts +5 -5
  127. package/src/components/dashboard/payment-methods-chart/locales/en.ts +12 -0
  128. package/src/components/dashboard/payment-methods-chart/locales/et.ts +5 -5
  129. package/src/components/dashboard/payment-methods-chart/locales/fi.ts +6 -6
  130. package/src/components/dashboard/payment-methods-chart/locales/hr.ts +3 -3
  131. package/src/components/dashboard/payment-methods-chart/locales/is.ts +5 -5
  132. package/src/components/dashboard/payment-methods-chart/locales/nb.ts +5 -5
  133. package/src/components/dashboard/payment-methods-chart/locales/sk.ts +5 -5
  134. package/src/components/dashboard/payment-methods-chart/locales/sv.ts +5 -5
  135. package/src/components/dashboard/payment-methods-chart/payment-methods-chart.tsx +4 -3
  136. package/src/components/dashboard/payment-trend-chart/locales/bg.ts +1 -1
  137. package/src/components/dashboard/payment-trend-chart/locales/cs.ts +1 -1
  138. package/src/components/dashboard/payment-trend-chart/locales/en.ts +6 -0
  139. package/src/components/dashboard/payment-trend-chart/locales/et.ts +1 -1
  140. package/src/components/dashboard/payment-trend-chart/locales/fi.ts +1 -1
  141. package/src/components/dashboard/payment-trend-chart/locales/is.ts +1 -1
  142. package/src/components/dashboard/payment-trend-chart/locales/nb.ts +1 -1
  143. package/src/components/dashboard/payment-trend-chart/locales/sk.ts +1 -1
  144. package/src/components/dashboard/payment-trend-chart/locales/sv.ts +1 -1
  145. package/src/components/dashboard/payment-trend-chart/payment-trend-chart.tsx +4 -3
  146. package/src/components/dashboard/payment-trend-chart/use-payment-trend.ts +12 -9
  147. package/src/components/dashboard/revenue-card.tsx +3 -3
  148. package/src/components/dashboard/revenue-trend-chart/locales/bg.ts +1 -1
  149. package/src/components/dashboard/revenue-trend-chart/locales/cs.ts +1 -1
  150. package/src/components/dashboard/revenue-trend-chart/locales/en.ts +6 -0
  151. package/src/components/dashboard/revenue-trend-chart/locales/et.ts +1 -1
  152. package/src/components/dashboard/revenue-trend-chart/locales/fi.ts +1 -1
  153. package/src/components/dashboard/revenue-trend-chart/locales/is.ts +1 -1
  154. package/src/components/dashboard/revenue-trend-chart/locales/nb.ts +1 -1
  155. package/src/components/dashboard/revenue-trend-chart/locales/sk.ts +1 -1
  156. package/src/components/dashboard/revenue-trend-chart/locales/sv.ts +1 -1
  157. package/src/components/dashboard/revenue-trend-chart/revenue-trend-chart.tsx +4 -3
  158. package/src/components/dashboard/revenue-trend-chart/use-revenue-trend.ts +4 -3
  159. package/src/components/dashboard/shared/local-date.ts +11 -0
  160. package/src/components/dashboard/shared/use-revenue-data.ts +6 -5
  161. package/src/components/dashboard/shared/use-stats-query.ts +7 -11
  162. package/src/components/dashboard/stat-card.tsx +3 -3
  163. package/src/components/dashboard/tax-collected-card/tax-collected-card.tsx +11 -9
  164. package/src/components/dashboard/tax-collected-card/use-tax-collected.ts +3 -2
  165. package/src/components/dashboard/top-customers-chart/locales/bg.ts +2 -2
  166. package/src/components/dashboard/top-customers-chart/locales/cs.ts +2 -2
  167. package/src/components/dashboard/top-customers-chart/locales/en.ts +7 -0
  168. package/src/components/dashboard/top-customers-chart/locales/et.ts +2 -2
  169. package/src/components/dashboard/top-customers-chart/locales/fi.ts +2 -2
  170. package/src/components/dashboard/top-customers-chart/locales/is.ts +2 -2
  171. package/src/components/dashboard/top-customers-chart/locales/nb.ts +2 -2
  172. package/src/components/dashboard/top-customers-chart/locales/sk.ts +2 -2
  173. package/src/components/dashboard/top-customers-chart/locales/sv.ts +2 -2
  174. package/src/components/dashboard/top-customers-chart/top-customers-chart.tsx +4 -3
  175. package/src/components/dashboard/top-customers-chart/use-top-customers.ts +7 -20
  176. package/src/components/delivery-notes/create/create-delivery-note-form.tsx +61 -31
  177. package/src/components/delivery-notes/create/locales/bg.ts +68 -0
  178. package/src/components/delivery-notes/create/locales/cs.ts +68 -0
  179. package/src/components/delivery-notes/create/locales/en.ts +68 -0
  180. package/src/components/delivery-notes/create/locales/et.ts +68 -0
  181. package/src/components/delivery-notes/create/locales/fi.ts +68 -0
  182. package/src/components/delivery-notes/create/locales/hr.ts +6 -6
  183. package/src/components/delivery-notes/create/locales/is.ts +68 -0
  184. package/src/components/delivery-notes/create/locales/nb.ts +68 -0
  185. package/src/components/delivery-notes/create/locales/sk.ts +68 -0
  186. package/src/components/delivery-notes/create/locales/sl.ts +5 -5
  187. package/src/components/delivery-notes/create/locales/sv.ts +68 -0
  188. package/src/components/delivery-notes/delivery-notes.hooks.ts +20 -3
  189. package/src/components/delivery-notes/list/list-row-actions.tsx +62 -16
  190. package/src/components/delivery-notes/list/list-table.tsx +42 -9
  191. package/src/components/delivery-notes/list/locales/bg.ts +40 -0
  192. package/src/components/delivery-notes/list/locales/cs.ts +40 -0
  193. package/src/components/delivery-notes/list/locales/et.ts +40 -0
  194. package/src/components/delivery-notes/list/locales/fi.ts +40 -0
  195. package/src/components/delivery-notes/list/locales/is.ts +40 -0
  196. package/src/components/delivery-notes/list/locales/nb.ts +40 -0
  197. package/src/components/delivery-notes/list/locales/sk.ts +40 -0
  198. package/src/components/delivery-notes/list/locales/sv.ts +40 -0
  199. package/src/components/delivery-notes/list/use-delivery-note-download.ts +3 -5
  200. package/src/components/documents/create/document-add-item-form.tsx +256 -147
  201. package/src/components/documents/create/document-add-item-tax-rate-field.tsx +2 -1
  202. package/src/components/documents/create/document-details-section.tsx +30 -12
  203. package/src/components/documents/create/document-item-validation.ts +50 -0
  204. package/src/components/documents/create/document-items-section.tsx +44 -6
  205. package/src/components/documents/create/document-recipient-section.tsx +10 -2
  206. package/src/components/documents/create/linked-documents-info.tsx +4 -3
  207. package/src/components/documents/create/live-preview.tsx +19 -15
  208. package/src/components/documents/create/mark-as-paid-section.tsx +77 -20
  209. package/src/components/documents/create/payment-rows.ts +291 -0
  210. package/src/components/documents/create/prepare-document-submission.ts +24 -13
  211. package/src/components/documents/create/scroll-to-first-invalid-field.ts +27 -0
  212. package/src/components/documents/create/smart-code-insert-button.tsx +5 -53
  213. package/src/components/documents/create/use-document-customer-form.ts +74 -25
  214. package/src/components/documents/documents.hooks.ts +3 -5
  215. package/src/components/documents/index.ts +1 -0
  216. package/src/components/documents/public/index.ts +1 -0
  217. package/src/components/documents/public/public-document-summary.tsx +343 -0
  218. package/src/components/documents/shared/document-preview-display.tsx +65 -39
  219. package/src/components/documents/shared/index.ts +6 -1
  220. package/src/components/documents/shared/scaled-document-preview.tsx +33 -19
  221. package/src/components/documents/types.ts +24 -0
  222. package/src/components/documents/view/document-actions-bar.tsx +241 -62
  223. package/src/components/documents/view/document-activities-list.tsx +23 -11
  224. package/src/components/documents/view/document-details-card.tsx +7 -27
  225. package/src/components/documents/view/document-payments-list.tsx +114 -57
  226. package/src/components/documents/view/document-relations-list.tsx +26 -6
  227. package/src/components/documents/view/document-sidebar.tsx +25 -3
  228. package/src/components/documents/view/document-version-history.tsx +137 -0
  229. package/src/components/documents/view/index.ts +1 -0
  230. package/src/components/documents/view/locales/bg.ts +143 -0
  231. package/src/components/documents/view/locales/cs.ts +143 -0
  232. package/src/components/documents/view/locales/de.ts +13 -0
  233. package/src/components/documents/view/locales/en.ts +143 -0
  234. package/src/components/documents/view/locales/es.ts +13 -0
  235. package/src/components/documents/view/locales/et.ts +143 -0
  236. package/src/components/documents/view/locales/fi.ts +143 -0
  237. package/src/components/documents/view/locales/fr.ts +13 -0
  238. package/src/components/documents/view/locales/hr.ts +13 -0
  239. package/src/components/documents/view/locales/is.ts +143 -0
  240. package/src/components/documents/view/locales/it.ts +13 -0
  241. package/src/components/documents/view/locales/nb.ts +143 -0
  242. package/src/components/documents/view/locales/nl.ts +13 -0
  243. package/src/components/documents/view/locales/pl.ts +13 -0
  244. package/src/components/documents/view/locales/pt.ts +13 -0
  245. package/src/components/documents/view/locales/sk.ts +143 -0
  246. package/src/components/documents/view/locales/sl.ts +13 -0
  247. package/src/components/documents/view/locales/sv.ts +143 -0
  248. package/src/components/documents/view/use-document-download.ts +18 -17
  249. package/src/components/entities/create-entity-form.tsx +200 -12
  250. package/src/components/entities/entities.hooks.ts +15 -7
  251. package/src/components/entities/entity-settings-form/entity-settings-form.tsx +121 -65
  252. package/src/components/entities/entity-settings-form/input-with-preview.tsx +28 -4
  253. package/src/components/entities/entity-settings-form/locales/bg.ts +199 -0
  254. package/src/components/entities/entity-settings-form/locales/cs.ts +199 -0
  255. package/src/components/entities/entity-settings-form/locales/de.ts +8 -3
  256. package/src/components/entities/entity-settings-form/locales/en.ts +199 -0
  257. package/src/components/entities/entity-settings-form/locales/es.ts +8 -3
  258. package/src/components/entities/entity-settings-form/locales/et.ts +198 -0
  259. package/src/components/entities/entity-settings-form/locales/fi.ts +199 -0
  260. package/src/components/entities/entity-settings-form/locales/fr.ts +8 -3
  261. package/src/components/entities/entity-settings-form/locales/hr.ts +16 -11
  262. package/src/components/entities/entity-settings-form/locales/is.ts +199 -0
  263. package/src/components/entities/entity-settings-form/locales/it.ts +8 -3
  264. package/src/components/entities/entity-settings-form/locales/nb.ts +199 -0
  265. package/src/components/entities/entity-settings-form/locales/nl.ts +8 -3
  266. package/src/components/entities/entity-settings-form/locales/pl.ts +8 -3
  267. package/src/components/entities/entity-settings-form/locales/pt.ts +8 -3
  268. package/src/components/entities/entity-settings-form/locales/sk.ts +199 -0
  269. package/src/components/entities/entity-settings-form/locales/sl.ts +20 -15
  270. package/src/components/entities/entity-settings-form/locales/sv.ts +205 -0
  271. package/src/components/entities/fina-settings-form/fina-operator-required-dialog.tsx +34 -9
  272. package/src/components/entities/fina-settings-form/fina-settings-form.tsx +2 -0
  273. package/src/components/entities/fina-settings-form/fina-settings.hooks.ts +14 -45
  274. package/src/components/entities/fina-settings-form/locales/bg.ts +163 -0
  275. package/src/components/entities/fina-settings-form/locales/cs.ts +163 -0
  276. package/src/components/entities/fina-settings-form/locales/et.ts +163 -0
  277. package/src/components/entities/fina-settings-form/locales/fi.ts +163 -0
  278. package/src/components/entities/fina-settings-form/locales/hr.ts +11 -10
  279. package/src/components/entities/fina-settings-form/locales/is.ts +164 -0
  280. package/src/components/entities/fina-settings-form/locales/nb.ts +163 -0
  281. package/src/components/entities/fina-settings-form/locales/sk.ts +163 -0
  282. package/src/components/entities/fina-settings-form/locales/sl.ts +8 -7
  283. package/src/components/entities/fina-settings-form/locales/sv.ts +165 -0
  284. package/src/components/entities/furs-settings-form/furs-operator-required-dialog.tsx +34 -9
  285. package/src/components/entities/furs-settings-form/furs-settings-form.tsx +13 -1
  286. package/src/components/entities/furs-settings-form/furs-settings.hooks.ts +141 -42
  287. package/src/components/entities/furs-settings-form/locales/bg.ts +242 -0
  288. package/src/components/entities/furs-settings-form/locales/cs.ts +241 -0
  289. package/src/components/entities/furs-settings-form/locales/de.ts +42 -15
  290. package/src/components/entities/furs-settings-form/locales/en.ts +24 -0
  291. package/src/components/entities/furs-settings-form/locales/es.ts +42 -15
  292. package/src/components/entities/furs-settings-form/locales/et.ts +242 -0
  293. package/src/components/entities/furs-settings-form/locales/fi.ts +243 -0
  294. package/src/components/entities/furs-settings-form/locales/fr.ts +43 -15
  295. package/src/components/entities/furs-settings-form/locales/hr.ts +44 -19
  296. package/src/components/entities/furs-settings-form/locales/is.ts +242 -0
  297. package/src/components/entities/furs-settings-form/locales/it.ts +42 -15
  298. package/src/components/entities/furs-settings-form/locales/nb.ts +242 -0
  299. package/src/components/entities/furs-settings-form/locales/nl.ts +42 -15
  300. package/src/components/entities/furs-settings-form/locales/pl.ts +40 -15
  301. package/src/components/entities/furs-settings-form/locales/pt.ts +42 -15
  302. package/src/components/entities/furs-settings-form/locales/sk.ts +243 -0
  303. package/src/components/entities/furs-settings-form/locales/sl.ts +34 -10
  304. package/src/components/entities/furs-settings-form/locales/sv.ts +242 -0
  305. package/src/components/entities/furs-settings-form/sections/enable-fiscalization-section.tsx +11 -0
  306. package/src/components/entities/furs-settings-form/sections/furs-internal-act-download-card.tsx +111 -0
  307. package/src/components/entities/furs-settings-form/sections/general-settings-section.tsx +27 -0
  308. package/src/components/entities/furs-settings-form/sections/premises-management-section.tsx +23 -16
  309. package/src/components/entities/furs-settings-form/sections/register-premise-dialog.tsx +89 -31
  310. package/src/components/entities/settings/branding-settings-form.tsx +11 -30
  311. package/src/components/entities/settings/company-settings-form.tsx +2 -1
  312. package/src/components/entities/settings/defaults-settings-form.tsx +106 -3
  313. package/src/components/entities/settings/email-settings-form.tsx +245 -3
  314. package/src/components/entities/settings/eslog-settings-form.tsx +2 -1
  315. package/src/components/entities/settings/number-format-settings-form.tsx +2 -1
  316. package/src/components/entities/settings/pdf-template-selector/locales/bg.ts +20 -0
  317. package/src/components/entities/settings/pdf-template-selector/locales/cs.ts +20 -0
  318. package/src/components/entities/settings/pdf-template-selector/locales/en.ts +20 -0
  319. package/src/components/entities/settings/pdf-template-selector/locales/et.ts +19 -0
  320. package/src/components/entities/settings/pdf-template-selector/locales/fi.ts +20 -0
  321. package/src/components/entities/settings/pdf-template-selector/locales/is.ts +19 -0
  322. package/src/components/entities/settings/pdf-template-selector/locales/nb.ts +19 -0
  323. package/src/components/entities/settings/pdf-template-selector/locales/sk.ts +20 -0
  324. package/src/components/entities/settings/pdf-template-selector/locales/sv.ts +19 -0
  325. package/src/components/entities/settings/tax-rules-settings-form.tsx +21 -6
  326. package/src/components/estimates/create/create-estimate-form.tsx +70 -34
  327. package/src/components/estimates/create/locales/bg.ts +76 -0
  328. package/src/components/estimates/create/locales/cs.ts +76 -0
  329. package/src/components/estimates/create/locales/en.ts +76 -0
  330. package/src/components/estimates/create/locales/et.ts +76 -0
  331. package/src/components/estimates/create/locales/fi.ts +76 -0
  332. package/src/components/estimates/create/locales/hr.ts +8 -8
  333. package/src/components/estimates/create/locales/is.ts +76 -0
  334. package/src/components/estimates/create/locales/nb.ts +76 -0
  335. package/src/components/estimates/create/locales/sk.ts +76 -0
  336. package/src/components/estimates/create/locales/sl.ts +8 -8
  337. package/src/components/estimates/create/locales/sv.ts +76 -0
  338. package/src/components/estimates/create/prepare-estimate-submission.ts +4 -1
  339. package/src/components/estimates/estimates.hooks.ts +15 -3
  340. package/src/components/estimates/list/list-row-actions.tsx +34 -7
  341. package/src/components/estimates/list/list-table.tsx +78 -10
  342. package/src/components/estimates/list/locales/bg.ts +38 -0
  343. package/src/components/estimates/list/locales/cs.ts +38 -0
  344. package/src/components/estimates/list/locales/en.ts +27 -2
  345. package/src/components/estimates/list/locales/et.ts +38 -0
  346. package/src/components/estimates/list/locales/fi.ts +38 -0
  347. package/src/components/estimates/list/locales/hr.ts +2 -2
  348. package/src/components/estimates/list/locales/is.ts +38 -0
  349. package/src/components/estimates/list/locales/nb.ts +38 -0
  350. package/src/components/estimates/list/locales/sk.ts +38 -0
  351. package/src/components/estimates/list/locales/sv.ts +38 -0
  352. package/src/components/estimates/list/use-estimate-download.ts +3 -5
  353. package/src/components/export/document-export-form.tsx +72 -15
  354. package/src/components/export/sales-per-item-export-form.tsx +3 -2
  355. package/src/components/invoices/create/create-invoice-form.tsx +294 -76
  356. package/src/components/invoices/create/eslog-validation.ts +97 -8
  357. package/src/components/invoices/create/locales/bg.ts +164 -0
  358. package/src/components/invoices/create/locales/cs.ts +164 -0
  359. package/src/components/invoices/create/locales/de.ts +24 -0
  360. package/src/components/invoices/create/locales/en.ts +164 -0
  361. package/src/components/invoices/create/locales/es.ts +24 -0
  362. package/src/components/invoices/create/locales/et.ts +164 -0
  363. package/src/components/invoices/create/locales/fi.ts +164 -0
  364. package/src/components/invoices/create/locales/fr.ts +23 -0
  365. package/src/components/invoices/create/locales/hr.ts +32 -9
  366. package/src/components/invoices/create/locales/is.ts +164 -0
  367. package/src/components/invoices/create/locales/it.ts +24 -0
  368. package/src/components/invoices/create/locales/nb.ts +164 -0
  369. package/src/components/invoices/create/locales/nl.ts +23 -0
  370. package/src/components/invoices/create/locales/pl.ts +23 -0
  371. package/src/components/invoices/create/locales/pt.ts +24 -0
  372. package/src/components/invoices/create/locales/sk.ts +164 -0
  373. package/src/components/invoices/create/locales/sl.ts +32 -9
  374. package/src/components/invoices/create/locales/sv.ts +166 -0
  375. package/src/components/invoices/create/prepare-invoice-submission.ts +19 -2
  376. package/src/components/invoices/invoices-furs.hooks.ts +11 -8
  377. package/src/components/invoices/invoices.hooks.ts +27 -10
  378. package/src/components/invoices/list/list-row-actions.tsx +54 -21
  379. package/src/components/invoices/list/list-table.tsx +92 -11
  380. package/src/components/invoices/list/locales/bg.ts +49 -0
  381. package/src/components/invoices/list/locales/cs.ts +49 -0
  382. package/src/components/invoices/list/locales/en.ts +34 -2
  383. package/src/components/invoices/list/locales/et.ts +49 -0
  384. package/src/components/invoices/list/locales/fi.ts +49 -0
  385. package/src/components/invoices/list/locales/is.ts +49 -0
  386. package/src/components/invoices/list/locales/nb.ts +49 -0
  387. package/src/components/invoices/list/locales/sk.ts +49 -0
  388. package/src/components/invoices/list/locales/sv.ts +49 -0
  389. package/src/components/invoices/list/use-invoice-download.ts +3 -5
  390. package/src/components/invoices/send-email-dialog/locales/bg.ts +58 -0
  391. package/src/components/invoices/send-email-dialog/locales/cs.ts +58 -0
  392. package/src/components/invoices/send-email-dialog/locales/de.ts +21 -0
  393. package/src/components/invoices/send-email-dialog/locales/en.ts +58 -0
  394. package/src/components/invoices/send-email-dialog/locales/es.ts +21 -0
  395. package/src/components/invoices/send-email-dialog/locales/et.ts +58 -0
  396. package/src/components/invoices/send-email-dialog/locales/fi.ts +58 -0
  397. package/src/components/invoices/send-email-dialog/locales/fr.ts +21 -0
  398. package/src/components/invoices/send-email-dialog/locales/hr.ts +21 -0
  399. package/src/components/invoices/send-email-dialog/locales/is.ts +58 -0
  400. package/src/components/invoices/send-email-dialog/locales/it.ts +21 -0
  401. package/src/components/invoices/send-email-dialog/locales/nb.ts +58 -0
  402. package/src/components/invoices/send-email-dialog/locales/nl.ts +21 -0
  403. package/src/components/invoices/send-email-dialog/locales/pl.ts +21 -0
  404. package/src/components/invoices/send-email-dialog/locales/pt.ts +21 -0
  405. package/src/components/invoices/send-email-dialog/locales/sk.ts +58 -0
  406. package/src/components/invoices/send-email-dialog/locales/sl.ts +21 -0
  407. package/src/components/invoices/send-email-dialog/locales/sv.ts +58 -0
  408. package/src/components/invoices/send-email-dialog/send-email-dialog.tsx +188 -93
  409. package/src/components/invoices/view/eslog-info-display.tsx +2 -0
  410. package/src/components/invoices/view/fiscalization-status-card.tsx +2 -0
  411. package/src/components/items/create-item-form/create-item-form.tsx +29 -0
  412. package/src/components/items/create-item-form/locales/bg.ts +13 -0
  413. package/src/components/items/create-item-form/locales/cs.ts +13 -0
  414. package/src/components/items/create-item-form/locales/et.ts +13 -0
  415. package/src/components/items/create-item-form/locales/fi.ts +13 -0
  416. package/src/components/items/create-item-form/locales/is.ts +13 -0
  417. package/src/components/items/create-item-form/locales/nb.ts +13 -0
  418. package/src/components/items/create-item-form/locales/sk.ts +13 -0
  419. package/src/components/items/create-item-form/locales/sv.ts +13 -0
  420. package/src/components/items/edit-item-form/edit-item-form.tsx +39 -1
  421. package/src/components/items/edit-item-form/locales/bg.ts +12 -0
  422. package/src/components/items/edit-item-form/locales/cs.ts +12 -0
  423. package/src/components/items/edit-item-form/locales/en.ts +12 -0
  424. package/src/components/items/edit-item-form/locales/et.ts +12 -0
  425. package/src/components/items/edit-item-form/locales/fi.ts +12 -0
  426. package/src/components/items/edit-item-form/locales/is.ts +12 -0
  427. package/src/components/items/edit-item-form/locales/nb.ts +12 -0
  428. package/src/components/items/edit-item-form/locales/sk.ts +12 -0
  429. package/src/components/items/edit-item-form/locales/sv.ts +12 -0
  430. package/src/components/items/item-combobox.tsx +51 -18
  431. package/src/components/items/item-list-table/item-list-table.tsx +47 -23
  432. package/src/components/items/item-list-table/locales/bg.ts +16 -0
  433. package/src/components/items/item-list-table/locales/cs.ts +16 -0
  434. package/src/components/items/item-list-table/locales/en.ts +4 -3
  435. package/src/components/items/item-list-table/locales/et.ts +16 -0
  436. package/src/components/items/item-list-table/locales/fi.ts +16 -0
  437. package/src/components/items/item-list-table/locales/is.ts +16 -0
  438. package/src/components/items/item-list-table/locales/nb.ts +16 -0
  439. package/src/components/items/item-list-table/locales/sk.ts +16 -0
  440. package/src/components/items/item-list-table/locales/sv.ts +16 -0
  441. package/src/components/items/items.hooks.ts +15 -15
  442. package/src/components/payments/create-payment-form/create-payment-form.tsx +11 -7
  443. package/src/components/payments/create-payment-form/locales/bg.ts +20 -0
  444. package/src/components/payments/create-payment-form/locales/cs.ts +20 -0
  445. package/src/components/payments/create-payment-form/locales/en.ts +20 -0
  446. package/src/components/payments/create-payment-form/locales/et.ts +20 -0
  447. package/src/components/payments/create-payment-form/locales/fi.ts +20 -0
  448. package/src/components/payments/create-payment-form/locales/hr.ts +2 -2
  449. package/src/components/payments/create-payment-form/locales/is.ts +20 -0
  450. package/src/components/payments/create-payment-form/locales/nb.ts +20 -0
  451. package/src/components/payments/create-payment-form/locales/sk.ts +20 -0
  452. package/src/components/payments/create-payment-form/locales/sl.ts +4 -4
  453. package/src/components/payments/create-payment-form/locales/sv.ts +20 -0
  454. package/src/components/payments/edit-payment-form/edit-payment-form.tsx +5 -1
  455. package/src/components/payments/edit-payment-form/locales/bg.ts +20 -0
  456. package/src/components/payments/edit-payment-form/locales/cs.ts +20 -0
  457. package/src/components/payments/edit-payment-form/locales/en.ts +20 -0
  458. package/src/components/payments/edit-payment-form/locales/et.ts +20 -0
  459. package/src/components/payments/edit-payment-form/locales/fi.ts +20 -0
  460. package/src/components/payments/edit-payment-form/locales/hr.ts +2 -2
  461. package/src/components/payments/edit-payment-form/locales/is.ts +20 -0
  462. package/src/components/payments/edit-payment-form/locales/nb.ts +20 -0
  463. package/src/components/payments/edit-payment-form/locales/sk.ts +20 -0
  464. package/src/components/payments/edit-payment-form/locales/sl.ts +4 -4
  465. package/src/components/payments/edit-payment-form/locales/sv.ts +20 -0
  466. package/src/components/payments/list/list-row-actions.tsx +10 -2
  467. package/src/components/payments/list/list-table.tsx +51 -45
  468. package/src/components/payments/list/locales/bg.ts +42 -0
  469. package/src/components/payments/list/locales/cs.ts +42 -0
  470. package/src/components/payments/list/locales/de.ts +18 -0
  471. package/src/components/payments/list/locales/en.ts +37 -2
  472. package/src/components/payments/list/locales/es.ts +18 -0
  473. package/src/components/payments/list/locales/et.ts +42 -0
  474. package/src/components/payments/list/locales/fi.ts +42 -0
  475. package/src/components/payments/list/locales/fr.ts +18 -0
  476. package/src/components/payments/list/locales/hr.ts +18 -0
  477. package/src/components/payments/list/locales/is.ts +42 -0
  478. package/src/components/payments/list/locales/it.ts +18 -0
  479. package/src/components/payments/list/locales/nb.ts +42 -0
  480. package/src/components/payments/list/locales/nl.ts +18 -0
  481. package/src/components/payments/list/locales/pl.ts +18 -0
  482. package/src/components/payments/list/locales/pt.ts +18 -0
  483. package/src/components/payments/list/locales/sk.ts +42 -0
  484. package/src/components/payments/list/locales/sl.ts +18 -1
  485. package/src/components/payments/list/locales/sv.ts +42 -0
  486. package/src/components/payments/payments.hooks.ts +13 -6
  487. package/src/components/recurring-invoices/create-recurring-invoice-form/create-recurring-invoice-form.tsx +23 -17
  488. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/bg.ts +44 -0
  489. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/cs.ts +44 -0
  490. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/en.ts +44 -0
  491. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/et.ts +44 -0
  492. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/fi.ts +44 -0
  493. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/hr.ts +6 -6
  494. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/is.ts +44 -0
  495. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/nb.ts +44 -0
  496. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/sk.ts +44 -0
  497. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/sl.ts +4 -4
  498. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/sv.ts +44 -0
  499. package/src/components/recurring-invoices/list/list-row-actions.tsx +3 -5
  500. package/src/components/recurring-invoices/list/list-table.tsx +10 -7
  501. package/src/components/recurring-invoices/list/locales/bg.ts +28 -0
  502. package/src/components/recurring-invoices/list/locales/cs.ts +28 -0
  503. package/src/components/recurring-invoices/list/locales/en.ts +23 -0
  504. package/src/components/recurring-invoices/list/locales/et.ts +28 -0
  505. package/src/components/recurring-invoices/list/locales/fi.ts +28 -0
  506. package/src/components/recurring-invoices/list/locales/is.ts +28 -0
  507. package/src/components/recurring-invoices/list/locales/nb.ts +28 -0
  508. package/src/components/recurring-invoices/list/locales/sk.ts +28 -0
  509. package/src/components/recurring-invoices/list/locales/sv.ts +28 -0
  510. package/src/components/recurring-invoices/recurring-invoices.hooks.ts +11 -8
  511. package/src/components/request-logs/request-log-detail.tsx +30 -23
  512. package/src/components/request-logs/request-log-list-table.tsx +88 -45
  513. package/src/components/table/README.md +47 -9
  514. package/src/components/table/data-table.tsx +232 -92
  515. package/src/components/table/filter-bar.tsx +1 -1
  516. package/src/components/table/filter-panel.tsx +51 -22
  517. package/src/components/table/hooks/use-table-state.ts +64 -11
  518. package/src/components/table/index.ts +3 -0
  519. package/src/components/table/locales.ts +119 -4
  520. package/src/components/table/selection-toolbar.tsx +65 -9
  521. package/src/components/table/sorting.ts +80 -0
  522. package/src/components/table/table-skeleton.tsx +15 -9
  523. package/src/components/table/types.ts +17 -0
  524. package/src/components/tax-reports/index.ts +8 -0
  525. package/src/components/tax-reports/kir-export-form.tsx +4 -5
  526. package/src/components/tax-reports/slovenia-accounting-mappings-fields.tsx +271 -0
  527. package/src/components/tax-reports/slovenia-tax-profile-step.tsx +21 -10
  528. package/src/components/tax-reports/slovenia-vod-export-form.tsx +452 -0
  529. package/src/components/tax-reports/slovenia-yearly-export-form.tsx +17 -16
  530. package/src/components/tax-reports/slovenia-yearly-review-step.tsx +40 -18
  531. package/src/components/taxes/create-tax-form/create-tax-form.tsx +48 -2
  532. package/src/components/taxes/create-tax-form/locales/bg.ts +8 -0
  533. package/src/components/taxes/create-tax-form/locales/cs.ts +8 -0
  534. package/src/components/taxes/create-tax-form/locales/et.ts +8 -0
  535. package/src/components/taxes/create-tax-form/locales/fi.ts +8 -0
  536. package/src/components/taxes/create-tax-form/locales/is.ts +8 -0
  537. package/src/components/taxes/create-tax-form/locales/nb.ts +8 -0
  538. package/src/components/taxes/create-tax-form/locales/sk.ts +8 -0
  539. package/src/components/taxes/create-tax-form/locales/sv.ts +8 -0
  540. package/src/components/taxes/edit-tax-form/edit-tax-form.tsx +80 -11
  541. package/src/components/taxes/edit-tax-form/locales/bg.ts +6 -0
  542. package/src/components/taxes/edit-tax-form/locales/cs.ts +6 -0
  543. package/src/components/taxes/edit-tax-form/locales/en.ts +6 -0
  544. package/src/components/taxes/edit-tax-form/locales/et.ts +6 -0
  545. package/src/components/taxes/edit-tax-form/locales/fi.ts +6 -0
  546. package/src/components/taxes/edit-tax-form/locales/is.ts +6 -0
  547. package/src/components/taxes/edit-tax-form/locales/nb.ts +6 -0
  548. package/src/components/taxes/edit-tax-form/locales/sk.ts +6 -0
  549. package/src/components/taxes/edit-tax-form/locales/sv.ts +6 -0
  550. package/src/components/taxes/tax-list-table/locales/bg.ts +17 -0
  551. package/src/components/taxes/tax-list-table/locales/cs.ts +17 -0
  552. package/src/components/taxes/tax-list-table/locales/en.ts +4 -3
  553. package/src/components/taxes/tax-list-table/locales/et.ts +17 -0
  554. package/src/components/taxes/tax-list-table/locales/fi.ts +17 -0
  555. package/src/components/taxes/tax-list-table/locales/is.ts +17 -0
  556. package/src/components/taxes/tax-list-table/locales/nb.ts +17 -0
  557. package/src/components/taxes/tax-list-table/locales/sk.ts +17 -0
  558. package/src/components/taxes/tax-list-table/locales/sv.ts +17 -0
  559. package/src/components/taxes/tax-list-table/tax-list-table.tsx +53 -19
  560. package/src/components/taxes/taxes.hooks.ts +53 -12
  561. package/src/components/ui/badge.tsx +1 -1
  562. package/src/components/ui/button.tsx +1 -1
  563. package/src/components/ui/drawer.tsx +2 -2
  564. package/src/components/ui/form.tsx +118 -2
  565. package/src/components/ui/progress.tsx +6 -4
  566. package/src/components/ui/select.tsx +118 -1
  567. package/src/components/ui/sonner.tsx +17 -36
  568. package/src/components/ui/sticky-form-footer.tsx +6 -1
  569. package/src/components/ui/tooltip.tsx +15 -2
  570. package/src/components/webhook-logs/webhook-delivery-detail.tsx +22 -22
  571. package/src/components/webhook-logs/webhook-delivery-list-table.tsx +92 -17
  572. package/src/components/wl-subscription/locked-feature.tsx +11 -10
  573. package/src/components/wl-subscription/paywall.tsx +184 -72
  574. package/src/components/wl-subscription/upgrade-modal.tsx +28 -31
  575. package/src/generate-schemas.ts +14 -4
  576. package/src/generated/schemas/account_webhook.ts +43 -0
  577. package/src/generated/schemas/accountwebhook.ts +67 -0
  578. package/src/generated/schemas/entity.ts +255 -16
  579. package/src/generated/schemas/exportsloveniavodxml_body.ts +16 -0
  580. package/src/generated/schemas/furssettings.ts +1 -0
  581. package/src/generated/schemas/incomingpurchasedocument.ts +198 -0
  582. package/src/generated/schemas/incomingpurchasedocumentpayment.ts +38 -0
  583. package/src/generated/schemas/index.ts +10 -0
  584. package/src/generated/schemas/item.ts +36 -0
  585. package/src/generated/schemas/me.ts +23 -19
  586. package/src/generated/schemas/order.ts +2 -0
  587. package/src/generated/schemas/orderintegration.ts +8 -4
  588. package/src/generated/schemas/payment.ts +5 -0
  589. package/src/generated/schemas/ptatcudseries.ts +30 -0
  590. package/src/generated/schemas/renderadvanceinvoicepreview_body.ts +35 -3
  591. package/src/generated/schemas/rendercreditnotepreview_body.ts +35 -3
  592. package/src/generated/schemas/renderdeliverynotepreview_body.ts +12 -5
  593. package/src/generated/schemas/renderestimatepreview_body.ts +38 -5
  594. package/src/generated/schemas/renderinvoicepreview_body.ts +39 -5
  595. package/src/generated/schemas/senddocument_body.ts +1 -0
  596. package/src/generated/schemas/sendemail_body.ts +67 -39
  597. package/src/generated/schemas/sloveniataxprofile.ts +97 -21
  598. package/src/generated/schemas/starteslogexport_body.ts +33 -0
  599. package/src/generated/schemas/startpdfexport_body.ts +94 -78
  600. package/src/generated/schemas/supplier.ts +59 -0
  601. package/src/generated/schemas/syncshopifyorders_body.ts +20 -0
  602. package/src/generated/schemas/tax.ts +2 -0
  603. package/src/generated/schemas/uploadfile_body.ts +1 -0
  604. package/src/generated/schemas/userptsettings.ts +26 -0
  605. package/src/generated/schemas/voidinvoice_body.ts +20 -0
  606. package/src/generated/schemas/webhook.ts +2 -0
  607. package/src/hooks/create-resource-hooks.ts +22 -19
  608. package/src/hooks/use-duplicate-document.ts +10 -8
  609. package/src/hooks/use-eslog-validation.ts +5 -1
  610. package/src/hooks/use-next-document-number.ts +13 -6
  611. package/src/hooks/use-resolved-entity-id.ts +14 -0
  612. package/src/hooks/use-resource-mutation.ts +11 -30
  613. package/src/hooks/use-transaction-type-check.ts +3 -8
  614. package/src/lib/browser-cookies.ts +1 -1
  615. package/src/lib/country-capabilities.ts +114 -0
  616. package/src/lib/date-fns-locale.ts +1 -20
  617. package/src/lib/eslog-export.ts +32 -0
  618. package/src/lib/fiscalization-options.ts +21 -1
  619. package/src/lib/formatting.ts +27 -0
  620. package/src/lib/furs-error-utils.ts +29 -0
  621. package/src/lib/locale.ts +4 -0
  622. package/src/lib/payment-display.ts +95 -0
  623. package/src/lib/pt-document-input.ts +67 -0
  624. package/src/lib/schemas/shared.ts +1 -0
  625. package/src/lib/template-variables.tsx +102 -4
  626. package/src/lib/translation.ts +51 -33
  627. package/src/lib/white-label-capabilities.ts +626 -0
  628. package/src/lib/zod-validation-message.ts +291 -0
  629. package/src/providers/entities-provider.tsx +32 -14
  630. package/src/providers/sdk-provider.tsx +112 -12
  631. package/src/providers/space-invoices-provider.tsx +129 -0
  632. package/src/providers/white-label-provider.tsx +96 -4
  633. package/src/providers/wl-subscription-provider.tsx +144 -10
@@ -1,12 +1,12 @@
1
1
  import type { Customer } from "@spaceinvoices/js-sdk";
2
+ import { customers } from "@spaceinvoices/js-sdk";
2
3
  import { User } from "lucide-react";
3
4
  import { useMemo } from "react";
4
- import { withTableTranslations } from "../../table/locales";
5
5
  import { Button } from "@/ui/components/ui/button";
6
6
  import { createTranslation } from "@/ui/lib/translation";
7
- import { useSDK } from "@/ui/providers/sdk-provider";
8
7
  import { DataTable } from "../../table/data-table";
9
8
  import { useTableFetch } from "../../table/hooks/use-table-fetch";
9
+ import { withTableTranslations } from "../../table/locales";
10
10
  import type { Column, ListTableProps, TableQueryParams, TableQueryResponse } from "../../table/types";
11
11
  import { CUSTOMERS_CACHE_KEY } from "../customers.hooks";
12
12
  import CustomerListRowActions from "./customer-list-row-actions";
@@ -59,17 +59,15 @@ export default function CustomerListTable({
59
59
  translations,
60
60
  ...i18nProps,
61
61
  });
62
- const { sdk } = useSDK();
63
-
64
62
  const handleFetch = useTableFetch(async (params: TableQueryParams) => {
65
- if (!sdk) throw new Error("SDK not initialized");
66
63
  if (!params.entity_id) throw new Error("Entity ID required");
67
64
 
68
- const response = await sdk.customers.list({
65
+ const response = await customers.list({
69
66
  entity_id: params.entity_id,
70
67
  limit: params.limit,
71
68
  next_cursor: params.next_cursor,
72
69
  prev_cursor: params.prev_cursor,
70
+ order_by: params.order_by,
73
71
  search: params.search,
74
72
  query: params.query,
75
73
  });
@@ -81,6 +79,7 @@ export default function CustomerListTable({
81
79
  {
82
80
  id: "name",
83
81
  header: t("Name"),
82
+ sort: true,
84
83
  cell: (customer) => (
85
84
  <Button variant="link" className="cursor-pointer py-0 underline" onClick={() => onRowClick?.(customer)}>
86
85
  <User className="h-4 w-4 flex-shrink-0" />
@@ -91,6 +90,7 @@ export default function CustomerListTable({
91
90
  {
92
91
  id: "address",
93
92
  header: t("Address"),
93
+ sort: true,
94
94
  cell: (customer) => customer.address,
95
95
  },
96
96
  {
@@ -101,6 +101,7 @@ export default function CustomerListTable({
101
101
  {
102
102
  id: "city",
103
103
  header: t("City"),
104
+ sort: true,
104
105
  cell: (customer) => customer.city,
105
106
  },
106
107
  {
@@ -111,6 +112,7 @@ export default function CustomerListTable({
111
112
  {
112
113
  id: "country",
113
114
  header: t("Country"),
115
+ sort: true,
114
116
  cell: (customer) => customer.country,
115
117
  },
116
118
  {
@@ -0,0 +1,25 @@
1
+ export default {
2
+ "Your list is empty": "Your customer list is empty",
3
+ "Get started by creating your first entry": "Get started by creating your first customer",
4
+ "Edit customer": "Edit customer",
5
+ "Delete customer": "Изтрий клиент",
6
+ "Deleting...": "Изтриване...",
7
+ "No results found": "No customers found",
8
+ Name: "Име",
9
+ Address: "Адрес",
10
+ "Post Code": "Пощенски код",
11
+ City: "Град",
12
+ State: "Област",
13
+ Country: "Държава",
14
+ "Tax number": "Данъчен номер",
15
+ Email: "Имейл",
16
+ "Created At": "Created At",
17
+ Actions: "Действия",
18
+ "Create new customer": "Create new customer",
19
+ "Copy customer ID": "Copy customer ID",
20
+ "View customer": "View customer",
21
+ "Open menu": "Отворете менюто",
22
+ "Try adjusting your search criteria": "Try adjusting your search criteria",
23
+ "Clear search": "Clear search",
24
+ "Clear all": "Clear all",
25
+ } as const;
@@ -0,0 +1,25 @@
1
+ export default {
2
+ "Your list is empty": "Your customer list is empty",
3
+ "Get started by creating your first entry": "Get started by creating your first customer",
4
+ "Edit customer": "Edit customer",
5
+ "Delete customer": "Smazat zákazníka",
6
+ "Deleting...": "Mazání...",
7
+ "No results found": "No customers found",
8
+ Name: "Jméno",
9
+ Address: "Adresa",
10
+ "Post Code": "PSČ",
11
+ City: "Město",
12
+ State: "Kraj",
13
+ Country: "Země",
14
+ "Tax number": "DIČ",
15
+ Email: "E-mail",
16
+ "Created At": "Created At",
17
+ Actions: "Akce",
18
+ "Create new customer": "Create new customer",
19
+ "Copy customer ID": "Copy customer ID",
20
+ "View customer": "View customer",
21
+ "Open menu": "Otevřít nabídku",
22
+ "Try adjusting your search criteria": "Try adjusting your search criteria",
23
+ "Clear search": "Clear search",
24
+ "Clear all": "Clear all",
25
+ } as const;
@@ -1,10 +1,25 @@
1
1
  export default {
2
- // Empty state translations
3
2
  "Your list is empty": "Your customer list is empty",
4
3
  "Get started by creating your first entry": "Get started by creating your first customer",
5
4
  "Edit customer": "Edit customer",
6
5
  "Delete customer": "Delete customer",
7
6
  "Deleting...": "Deleting...",
8
- // No results translations
9
7
  "No results found": "No customers found",
8
+ Name: "Name",
9
+ Address: "Address",
10
+ "Post Code": "Post Code",
11
+ City: "City",
12
+ State: "State",
13
+ Country: "Country",
14
+ "Tax number": "Tax number",
15
+ Email: "Email",
16
+ "Created At": "Created At",
17
+ Actions: "Actions",
18
+ "Create new customer": "Create new customer",
19
+ "Copy customer ID": "Copy customer ID",
20
+ "View customer": "View customer",
21
+ "Open menu": "Open menu",
22
+ "Try adjusting your search criteria": "Try adjusting your search criteria",
23
+ "Clear search": "Clear search",
24
+ "Clear all": "Clear all",
10
25
  } as const;
@@ -0,0 +1,25 @@
1
+ export default {
2
+ "Your list is empty": "Your customer list is empty",
3
+ "Get started by creating your first entry": "Get started by creating your first customer",
4
+ "Edit customer": "Edit customer",
5
+ "Delete customer": "Kustuta klient",
6
+ "Deleting...": "Kustutamine...",
7
+ "No results found": "No customers found",
8
+ Name: "Nimi",
9
+ Address: "Aadress",
10
+ "Post Code": "Postiindeks",
11
+ City: "Linn",
12
+ State: "Maakond",
13
+ Country: "Riik",
14
+ "Tax number": "Maksukohustuslase number",
15
+ Email: "E-post",
16
+ "Created At": "Created At",
17
+ Actions: "Tegevused",
18
+ "Create new customer": "Create new customer",
19
+ "Copy customer ID": "Copy customer ID",
20
+ "View customer": "View customer",
21
+ "Open menu": "Ava menüü",
22
+ "Try adjusting your search criteria": "Try adjusting your search criteria",
23
+ "Clear search": "Clear search",
24
+ "Clear all": "Clear all",
25
+ } as const;
@@ -0,0 +1,25 @@
1
+ export default {
2
+ "Your list is empty": "Your customer list is empty",
3
+ "Get started by creating your first entry": "Get started by creating your first customer",
4
+ "Edit customer": "Edit customer",
5
+ "Delete customer": "Delete customer",
6
+ "Deleting...": "Poistetaan...",
7
+ "No results found": "No customers found",
8
+ Name: "Nimi",
9
+ Address: "Address",
10
+ "Post Code": "Post Code",
11
+ City: "City",
12
+ State: "State",
13
+ Country: "Country",
14
+ "Tax number": "Tax number",
15
+ Email: "Sähköposti",
16
+ "Created At": "Created At",
17
+ Actions: "Toiminnot",
18
+ "Create new customer": "Create new customer",
19
+ "Copy customer ID": "Copy customer ID",
20
+ "View customer": "View customer",
21
+ "Open menu": "Avaa valikko",
22
+ "Try adjusting your search criteria": "Try adjusting your search criteria",
23
+ "Clear search": "Clear search",
24
+ "Clear all": "Clear all",
25
+ } as const;
@@ -1,26 +1,26 @@
1
1
  export default {
2
2
  Name: "Naziv",
3
3
  Address: "Adresa",
4
- "Post Code": "Postanski broj",
4
+ "Post Code": "Poštanski broj",
5
5
  City: "Grad",
6
- State: "Zupanija",
7
- Country: "Drzava",
6
+ State: "Županija",
7
+ Country: "Država",
8
8
  "Tax number": "OIB",
9
9
  Email: "Email",
10
10
  "Created At": "Kreirano",
11
11
  Actions: "Akcije",
12
- "Create new customer": "Kreiraj novog kupca",
12
+ "Create new customer": "Izradi novog kupca",
13
13
  "Copy customer ID": "Kopiraj ID kupca",
14
- "View customer": "Prikazi kupca",
14
+ "View customer": "Prikaži kupca",
15
15
  "Edit customer": "Uredi kupca",
16
- "Delete customer": "Obrisi kupca",
16
+ "Delete customer": "Obriši kupca",
17
17
  "Deleting...": "Brisanje...",
18
18
  "Open menu": "Otvori izbornik",
19
19
  // Empty state translations
20
- "Your list is empty": "Vasa lista kupaca je prazna",
21
- "Get started by creating your first entry": "Pocnite kreiranjem prvog kupca",
22
- "No results found": "Nije pronadjen nijedan kupac",
23
- "Try adjusting your search criteria": "Pokusajte prilagoditi kriterije pretrazivanja",
24
- "Clear search": "Ocisti pretragu",
20
+ "Your list is empty": "Vaš popis kupaca je prazan",
21
+ "Get started by creating your first entry": "Započnite izradom prvog kupca",
22
+ "No results found": "Nije pronađen nijedan kupac",
23
+ "Try adjusting your search criteria": "Pokušajte prilagoditi kriterije pretraživanja",
24
+ "Clear search": "Očisti pretragu",
25
25
  "Clear all": "Očisti sve",
26
26
  } as const;
@@ -0,0 +1,25 @@
1
+ export default {
2
+ "Your list is empty": "Your customer list is empty",
3
+ "Get started by creating your first entry": "Get started by creating your first customer",
4
+ "Edit customer": "Edit customer",
5
+ "Delete customer": "Eyða viðskiptavini",
6
+ "Deleting...": "Eyðir...",
7
+ "No results found": "No customers found",
8
+ Name: "Nafn",
9
+ Address: "Heimilisfang",
10
+ "Post Code": "Póstnúmer",
11
+ City: "Borg",
12
+ State: "Hérað",
13
+ Country: "Land",
14
+ "Tax number": "Kennitala",
15
+ Email: "Netfang",
16
+ "Created At": "Created At",
17
+ Actions: "Aðgerðir",
18
+ "Create new customer": "Create new customer",
19
+ "Copy customer ID": "Copy customer ID",
20
+ "View customer": "View customer",
21
+ "Open menu": "Opna valmynd",
22
+ "Try adjusting your search criteria": "Try adjusting your search criteria",
23
+ "Clear search": "Clear search",
24
+ "Clear all": "Clear all",
25
+ } as const;
@@ -0,0 +1,25 @@
1
+ export default {
2
+ "Your list is empty": "Your customer list is empty",
3
+ "Get started by creating your first entry": "Get started by creating your first customer",
4
+ "Edit customer": "Edit customer",
5
+ "Delete customer": "Slett kunde",
6
+ "Deleting...": "Sletter …",
7
+ "No results found": "No customers found",
8
+ Name: "Navn",
9
+ Address: "Adresse",
10
+ "Post Code": "Postnummer",
11
+ City: "By",
12
+ State: "Fylke",
13
+ Country: "Land",
14
+ "Tax number": "Organisasjonsnummer",
15
+ Email: "E-post",
16
+ "Created At": "Created At",
17
+ Actions: "Handlinger",
18
+ "Create new customer": "Create new customer",
19
+ "Copy customer ID": "Copy customer ID",
20
+ "View customer": "View customer",
21
+ "Open menu": "Åpne menyen",
22
+ "Try adjusting your search criteria": "Try adjusting your search criteria",
23
+ "Clear search": "Clear search",
24
+ "Clear all": "Clear all",
25
+ } as const;
@@ -0,0 +1,25 @@
1
+ export default {
2
+ "Your list is empty": "Your customer list is empty",
3
+ "Get started by creating your first entry": "Get started by creating your first customer",
4
+ "Edit customer": "Edit customer",
5
+ "Delete customer": "Vymazať zákazníka",
6
+ "Deleting...": "Odstraňuje sa...",
7
+ "No results found": "No customers found",
8
+ Name: "Meno",
9
+ Address: "Adresa",
10
+ "Post Code": "PSC",
11
+ City: "Mesto",
12
+ State: "Kraj",
13
+ Country: "Krajina",
14
+ "Tax number": "IČO / DIČ",
15
+ Email: "Email",
16
+ "Created At": "Created At",
17
+ Actions: "Akcie",
18
+ "Create new customer": "Create new customer",
19
+ "Copy customer ID": "Copy customer ID",
20
+ "View customer": "View customer",
21
+ "Open menu": "Otvoriť menu",
22
+ "Try adjusting your search criteria": "Try adjusting your search criteria",
23
+ "Clear search": "Clear search",
24
+ "Clear all": "Clear all",
25
+ } as const;
@@ -0,0 +1,25 @@
1
+ export default {
2
+ "Your list is empty": "Your customer list is empty",
3
+ "Get started by creating your first entry": "Get started by creating your first customer",
4
+ "Edit customer": "Edit customer",
5
+ "Delete customer": "Ta bort kund",
6
+ "Deleting...": "Tar bort...",
7
+ "No results found": "No customers found",
8
+ Name: "Namn",
9
+ Address: "Adress",
10
+ "Post Code": "Postnummer",
11
+ City: "Stad",
12
+ State: "Län",
13
+ Country: "Land",
14
+ "Tax number": "Skattenummer",
15
+ Email: "E-post",
16
+ "Created At": "Created At",
17
+ Actions: "Åtgärder",
18
+ "Create new customer": "Create new customer",
19
+ "Copy customer ID": "Copy customer ID",
20
+ "View customer": "View customer",
21
+ "Open menu": "Öppna menyn",
22
+ "Try adjusting your search criteria": "Try adjusting your search criteria",
23
+ "Clear search": "Clear search",
24
+ "Clear all": "Clear all",
25
+ } as const;
@@ -1,24 +1,18 @@
1
- import type { CreateCustomerBody, Customer } from "@spaceinvoices/js-sdk";
2
-
1
+ import type { CreateCustomerBody, Customer, UpdateCustomerBody } from "@spaceinvoices/js-sdk";
2
+ import { customers } from "@spaceinvoices/js-sdk";
3
3
  import { useQuery } from "@tanstack/react-query";
4
-
5
4
  import { createResourceHooks } from "@/ui/hooks/create-resource-hooks";
6
- import { useSDK } from "@/ui/providers/sdk-provider";
7
5
 
8
6
  // Define a constant for the customers cache key
9
7
  export const CUSTOMERS_CACHE_KEY = "customers";
10
8
 
11
9
  export const useCustomerSearch = (entityId: string, search: string) => {
12
- const { sdk } = useSDK();
13
-
14
10
  return useQuery({
15
- // Don't include SDK in query key - it's guaranteed non-null by provider
16
- // Including it breaks cache due to object reference changes
17
11
  queryKey: [CUSTOMERS_CACHE_KEY, "search", entityId, search],
18
12
  queryFn: async () => {
19
13
  if (!search) return { data: [] };
20
14
 
21
- const response = await sdk.customers.list({
15
+ const response = await customers.list({
22
16
  entity_id: entityId,
23
17
  search,
24
18
  limit: 10,
@@ -26,18 +20,15 @@ export const useCustomerSearch = (entityId: string, search: string) => {
26
20
 
27
21
  return response;
28
22
  },
29
- // SDK is always available, only check search and entityId
30
23
  enabled: Boolean(entityId && search),
31
24
  });
32
25
  };
33
26
 
34
27
  export const useRecentCustomers = (entityId: string) => {
35
- const { sdk } = useSDK();
36
-
37
28
  return useQuery({
38
29
  queryKey: [CUSTOMERS_CACHE_KEY, "recent", entityId],
39
30
  queryFn: async () => {
40
- const response = await sdk.customers.list({
31
+ const response = await customers.list({
41
32
  entity_id: entityId,
42
33
  limit: 5,
43
34
  order_by: "-created_at", // Sort by most recently created
@@ -56,7 +47,13 @@ export const {
56
47
  useDeleteResource: useDeleteCustomer,
57
48
  useRestoreResource: useRestoreCustomer,
58
49
  usePermanentDeleteResource: usePermanentDeleteCustomer,
59
- } = createResourceHooks<Customer, CreateCustomerBody>("customers", CUSTOMERS_CACHE_KEY, {
60
- restoreMethodName: "restoreCustomer",
61
- permanentDeleteMethodName: "permanentDeleteCustomer",
62
- });
50
+ } = createResourceHooks<Customer, CreateCustomerBody, UpdateCustomerBody>(
51
+ {
52
+ create: customers.create,
53
+ update: customers.update,
54
+ delete: customers.delete,
55
+ restore: customers.restoreCustomer,
56
+ permanentDelete: customers.permanentDeleteCustomer,
57
+ },
58
+ CUSTOMERS_CACHE_KEY,
59
+ );
@@ -0,0 +1,13 @@
1
+ export default {
2
+ Name: "Име",
3
+ "Enter name": "Въведете име",
4
+ Address: "Адрес",
5
+ "Enter address": "Enter address",
6
+ "Post Code": "Пощенски код",
7
+ City: "Град",
8
+ State: "Област",
9
+ Country: "Държава",
10
+ "Tax Number": "ДДС номер",
11
+ "Search by company name or tax number": "Search by company name or tax number",
12
+ "There was an error updating the customer": "There was an error updating the customer",
13
+ } as const;
@@ -0,0 +1,13 @@
1
+ export default {
2
+ Name: "Jméno",
3
+ "Enter name": "Zadejte jméno",
4
+ Address: "Adresa",
5
+ "Enter address": "Enter address",
6
+ "Post Code": "PSČ",
7
+ City: "Město",
8
+ State: "Kraj",
9
+ Country: "Země",
10
+ "Tax Number": "DIČ",
11
+ "Search by company name or tax number": "Search by company name or tax number",
12
+ "There was an error updating the customer": "There was an error updating the customer",
13
+ } as const;
@@ -0,0 +1,13 @@
1
+ export default {
2
+ Name: "Name",
3
+ "Enter name": "Enter name",
4
+ Address: "Address",
5
+ "Enter address": "Enter address",
6
+ "Post Code": "Post Code",
7
+ City: "City",
8
+ State: "State",
9
+ Country: "Country",
10
+ "Tax Number": "Tax Number",
11
+ "Search by company name or tax number": "Search by company name or tax number",
12
+ "There was an error updating the customer": "There was an error updating the customer",
13
+ } as const;
@@ -0,0 +1,13 @@
1
+ export default {
2
+ Name: "Nimi",
3
+ "Enter name": "Sisestage nimi",
4
+ Address: "Aadress",
5
+ "Enter address": "Enter address",
6
+ "Post Code": "Postiindeks",
7
+ City: "Linn",
8
+ State: "Maakond",
9
+ Country: "Riik",
10
+ "Tax Number": "KMKR number",
11
+ "Search by company name or tax number": "Search by company name or tax number",
12
+ "There was an error updating the customer": "There was an error updating the customer",
13
+ } as const;
@@ -0,0 +1,13 @@
1
+ export default {
2
+ Name: "Nimi",
3
+ "Enter name": "Kirjoita nimi",
4
+ Address: "Address",
5
+ "Enter address": "Enter address",
6
+ "Post Code": "Post Code",
7
+ City: "City",
8
+ State: "State",
9
+ Country: "Country",
10
+ "Tax Number": "ALV-numero",
11
+ "Search by company name or tax number": "Search by company name or tax number",
12
+ "There was an error updating the customer": "There was an error updating the customer",
13
+ } as const;
@@ -3,11 +3,11 @@ export default {
3
3
  "Enter name": "Unesite naziv kupca",
4
4
  Address: "Adresa",
5
5
  "Enter address": "Unesite adresu",
6
- "Post Code": "Postanski broj",
6
+ "Post Code": "Poštanski broj",
7
7
  City: "Grad",
8
- State: "Zupanija",
9
- Country: "Drzava",
8
+ State: "Županija",
9
+ Country: "Država",
10
10
  "Tax Number": "OIB",
11
- "Search by company name or tax number": "Pretrazi po nazivu tvrtke ili OIB-u",
12
- "There was an error updating the customer": "Doslo je do greske pri azuriranju kupca",
11
+ "Search by company name or tax number": "Pretraži po nazivu tvrtke ili OIB-u",
12
+ "There was an error updating the customer": "Došlo je do pogreške pri ažuriranju kupca",
13
13
  } as const;
@@ -0,0 +1,13 @@
1
+ export default {
2
+ Name: "Nafn",
3
+ "Enter name": "Sláðu inn nafn",
4
+ Address: "Heimilisfang",
5
+ "Enter address": "Enter address",
6
+ "Post Code": "Póstnúmer",
7
+ City: "Borg",
8
+ State: "Hérað",
9
+ Country: "Land",
10
+ "Tax Number": "Skattnúmer",
11
+ "Search by company name or tax number": "Search by company name or tax number",
12
+ "There was an error updating the customer": "There was an error updating the customer",
13
+ } as const;
@@ -0,0 +1,13 @@
1
+ export default {
2
+ Name: "Navn",
3
+ "Enter name": "Skriv inn navn",
4
+ Address: "Adresse",
5
+ "Enter address": "Enter address",
6
+ "Post Code": "Postnummer",
7
+ City: "By",
8
+ State: "Fylke",
9
+ Country: "Land",
10
+ "Tax Number": "Skattenummer",
11
+ "Search by company name or tax number": "Search by company name or tax number",
12
+ "There was an error updating the customer": "There was an error updating the customer",
13
+ } as const;
@@ -0,0 +1,13 @@
1
+ export default {
2
+ Name: "Meno",
3
+ "Enter name": "Zadajte meno",
4
+ Address: "Adresa",
5
+ "Enter address": "Enter address",
6
+ "Post Code": "PSC",
7
+ City: "Mesto",
8
+ State: "Kraj",
9
+ Country: "Krajina",
10
+ "Tax Number": "Daňové číslo",
11
+ "Search by company name or tax number": "Search by company name or tax number",
12
+ "There was an error updating the customer": "There was an error updating the customer",
13
+ } as const;
@@ -0,0 +1,13 @@
1
+ export default {
2
+ Name: "Namn",
3
+ "Enter name": "Ange namn",
4
+ Address: "Adress",
5
+ "Enter address": "Enter address",
6
+ "Post Code": "Postnummer",
7
+ City: "Stad",
8
+ State: "Län",
9
+ Country: "Land",
10
+ "Tax Number": "Skattenummer",
11
+ "Search by company name or tax number": "Search by company name or tax number",
12
+ "There was an error updating the customer": "There was an error updating the customer",
13
+ } as const;
@@ -6,8 +6,8 @@ import { LoadingCard } from "../loading-card";
6
6
  import bg from "./locales/bg";
7
7
  import cs from "./locales/cs";
8
8
  import de from "./locales/de";
9
- import et from "./locales/et";
10
9
  import es from "./locales/es";
10
+ import et from "./locales/et";
11
11
  import fi from "./locales/fi";
12
12
  import fr from "./locales/fr";
13
13
  import hr from "./locales/hr";
@@ -26,6 +26,7 @@ const translations = { bg, cs, de, et, es, fi, fr, hr, is, it, nb, nl, pl, pt, s
26
26
 
27
27
  type BaseProps = {
28
28
  locale?: string;
29
+ translationLocale?: string;
29
30
  t?: (key: string) => string;
30
31
  namespace?: string;
31
32
  };
@@ -49,8 +50,8 @@ type TurnkeyProps = BaseProps & {
49
50
  export type CollectionRateCardProps = DataProps | TurnkeyProps;
50
51
 
51
52
  export function CollectionRateCard(props: CollectionRateCardProps) {
52
- const { locale, t: externalT, namespace } = props;
53
- const t = createTranslation({ t: externalT, namespace, locale, translations });
53
+ const { locale, translationLocale, t: externalT, namespace } = props;
54
+ const t = createTranslation({ t: externalT, namespace, locale, translationLocale, translations });
54
55
 
55
56
  // Turnkey mode - fetch own data
56
57
  const hookResult = useCollectionRateData("entityId" in props ? props.entityId : undefined);
@@ -81,11 +82,11 @@ export function CollectionRateCard(props: CollectionRateCardProps) {
81
82
  };
82
83
 
83
84
  return (
84
- <Card>
85
- <CardHeader className="pb-2">
85
+ <Card className="gap-2">
86
+ <CardHeader className="pb-1">
86
87
  <CardTitle className="font-medium text-muted-foreground text-sm">{t("Collection Rate")}</CardTitle>
87
88
  </CardHeader>
88
- <CardContent>
89
+ <CardContent className="pt-0">
89
90
  <div className={`font-bold text-2xl ${getVariantColor(collectionRate)}`}>{collectionRate.toFixed(1)}%</div>
90
91
  <p className="mt-1 text-muted-foreground text-xs">
91
92
  {formatCurrency(totalCollected)} / {formatCurrency(totalInvoiced)}
@@ -0,0 +1,3 @@
1
+ export default {
2
+ "Collection Rate": "Collection Rate",
3
+ } as const;
@@ -17,17 +17,18 @@ export type CollectionRateData = {
17
17
 
18
18
  export function useCollectionRateData(entityId: string | undefined) {
19
19
  const queries: StatsQueryRequest[] = [
20
- // [0] Total invoiced (including voided counter credit notes cancel them out)
20
+ // [0] Total invoiced (non-voided, non-draft invoices only)
21
21
  {
22
22
  metrics: [{ type: "sum", field: "total_with_tax", alias: "total" }],
23
23
  table: "invoices",
24
- filters: { is_draft: false },
24
+ filters: { is_draft: false, voided_at: null },
25
25
  },
26
- // [1] Invoice payments (credit_note_id IS NULL)
26
+ // [1] Total collected on invoices
27
+ // Using invoice.total_paid avoids counting orphan payments or payments on voided invoices.
27
28
  {
28
- metrics: [{ type: "sum", field: "amount", alias: "total" }],
29
- table: "payments",
30
- filters: { credit_note_id: null },
29
+ metrics: [{ type: "sum", field: "total_paid", alias: "total" }],
30
+ table: "invoices",
31
+ filters: { is_draft: false, voided_at: null },
31
32
  },
32
33
  // [2] Credit note payments / refunds (credit_note_id IS NOT NULL)
33
34
  {
@@ -39,7 +40,7 @@ export function useCollectionRateData(entityId: string | undefined) {
39
40
  {
40
41
  metrics: [{ type: "sum", field: "total_with_tax", alias: "total" }],
41
42
  table: "credit_notes",
42
- filters: { is_draft: false },
43
+ filters: { is_draft: false, voided_at: null },
43
44
  },
44
45
  ];
45
46