@spaceinvoices/react-ui 0.4.7 → 0.4.10

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 (312) hide show
  1. package/cli/dist/index.js +1 -1
  2. package/package.json +1 -1
  3. package/src/common/autocomplete.tsx +69 -6
  4. package/src/components/advance-invoices/create/create-advance-invoice-form.tsx +124 -285
  5. package/src/components/advance-invoices/create/locales/de.ts +2 -1
  6. package/src/components/advance-invoices/create/locales/es.ts +2 -1
  7. package/src/components/advance-invoices/create/locales/fr.ts +2 -1
  8. package/src/components/advance-invoices/create/locales/hr.ts +2 -1
  9. package/src/components/advance-invoices/create/locales/it.ts +2 -1
  10. package/src/components/advance-invoices/create/locales/nl.ts +2 -1
  11. package/src/components/advance-invoices/create/locales/pl.ts +2 -1
  12. package/src/components/advance-invoices/create/locales/pt.ts +2 -1
  13. package/src/components/advance-invoices/create/locales/sl.ts +2 -1
  14. package/src/components/advance-invoices/list/list-table.tsx +10 -3
  15. package/src/components/advance-invoices/list/locales/de.ts +2 -0
  16. package/src/components/advance-invoices/list/locales/en.ts +1 -0
  17. package/src/components/advance-invoices/list/locales/es.ts +1 -0
  18. package/src/components/advance-invoices/list/locales/fr.ts +1 -0
  19. package/src/components/advance-invoices/list/locales/hr.ts +1 -0
  20. package/src/components/advance-invoices/list/locales/it.ts +1 -0
  21. package/src/components/advance-invoices/list/locales/nl.ts +1 -0
  22. package/src/components/advance-invoices/list/locales/pl.ts +1 -0
  23. package/src/components/advance-invoices/list/locales/pt.ts +1 -0
  24. package/src/components/advance-invoices/list/locales/sl.ts +1 -0
  25. package/src/components/advance-invoices/list/use-advance-invoice-download.ts +1 -12
  26. package/src/components/credit-notes/create/create-credit-note-form.tsx +116 -238
  27. package/src/components/credit-notes/create/locales/de.ts +2 -1
  28. package/src/components/credit-notes/create/locales/es.ts +2 -1
  29. package/src/components/credit-notes/create/locales/fr.ts +2 -1
  30. package/src/components/credit-notes/create/locales/hr.ts +2 -1
  31. package/src/components/credit-notes/create/locales/it.ts +2 -1
  32. package/src/components/credit-notes/create/locales/nl.ts +2 -1
  33. package/src/components/credit-notes/create/locales/pl.ts +2 -1
  34. package/src/components/credit-notes/create/locales/pt.ts +2 -1
  35. package/src/components/credit-notes/create/locales/sl.ts +2 -1
  36. package/src/components/credit-notes/list/list-table.tsx +6 -3
  37. package/src/components/credit-notes/list/use-credit-note-download.ts +1 -12
  38. package/src/components/customers/customer-autocomplete.tsx +64 -11
  39. package/src/components/customers/customer-list-table/customer-list-table.tsx +3 -2
  40. package/src/components/dashboard/collection-rate-card/collection-rate-card.tsx +9 -1
  41. package/src/components/dashboard/collection-rate-card/locales/bg.ts +3 -0
  42. package/src/components/dashboard/collection-rate-card/locales/cs.ts +3 -0
  43. package/src/components/dashboard/collection-rate-card/locales/et.ts +3 -0
  44. package/src/components/dashboard/collection-rate-card/locales/fi.ts +3 -0
  45. package/src/components/dashboard/collection-rate-card/locales/is.ts +3 -0
  46. package/src/components/dashboard/collection-rate-card/locales/nb.ts +3 -0
  47. package/src/components/dashboard/collection-rate-card/locales/sk.ts +3 -0
  48. package/src/components/dashboard/collection-rate-card/locales/sv.ts +3 -0
  49. package/src/components/dashboard/invoice-status-chart/invoice-status-chart.tsx +10 -2
  50. package/src/components/dashboard/invoice-status-chart/locales/bg.ts +10 -0
  51. package/src/components/dashboard/invoice-status-chart/locales/cs.ts +10 -0
  52. package/src/components/dashboard/invoice-status-chart/locales/de.ts +1 -0
  53. package/src/components/dashboard/invoice-status-chart/locales/es.ts +1 -0
  54. package/src/components/dashboard/invoice-status-chart/locales/et.ts +10 -0
  55. package/src/components/dashboard/invoice-status-chart/locales/fi.ts +10 -0
  56. package/src/components/dashboard/invoice-status-chart/locales/fr.ts +1 -0
  57. package/src/components/dashboard/invoice-status-chart/locales/hr.ts +1 -0
  58. package/src/components/dashboard/invoice-status-chart/locales/is.ts +10 -0
  59. package/src/components/dashboard/invoice-status-chart/locales/it.ts +1 -0
  60. package/src/components/dashboard/invoice-status-chart/locales/nb.ts +10 -0
  61. package/src/components/dashboard/invoice-status-chart/locales/nl.ts +1 -0
  62. package/src/components/dashboard/invoice-status-chart/locales/pl.ts +1 -0
  63. package/src/components/dashboard/invoice-status-chart/locales/pt.ts +1 -0
  64. package/src/components/dashboard/invoice-status-chart/locales/sk.ts +10 -0
  65. package/src/components/dashboard/invoice-status-chart/locales/sl.ts +1 -0
  66. package/src/components/dashboard/invoice-status-chart/locales/sv.ts +10 -0
  67. package/src/components/dashboard/payment-methods-chart/locales/bg.ts +12 -0
  68. package/src/components/dashboard/payment-methods-chart/locales/cs.ts +12 -0
  69. package/src/components/dashboard/payment-methods-chart/locales/et.ts +12 -0
  70. package/src/components/dashboard/payment-methods-chart/locales/fi.ts +12 -0
  71. package/src/components/dashboard/payment-methods-chart/locales/is.ts +12 -0
  72. package/src/components/dashboard/payment-methods-chart/locales/nb.ts +12 -0
  73. package/src/components/dashboard/payment-methods-chart/locales/sk.ts +12 -0
  74. package/src/components/dashboard/payment-methods-chart/locales/sv.ts +12 -0
  75. package/src/components/dashboard/payment-methods-chart/payment-methods-chart.tsx +9 -1
  76. package/src/components/dashboard/payment-trend-chart/locales/bg.ts +6 -0
  77. package/src/components/dashboard/payment-trend-chart/locales/cs.ts +6 -0
  78. package/src/components/dashboard/payment-trend-chart/locales/de.ts +1 -0
  79. package/src/components/dashboard/payment-trend-chart/locales/es.ts +1 -0
  80. package/src/components/dashboard/payment-trend-chart/locales/et.ts +6 -0
  81. package/src/components/dashboard/payment-trend-chart/locales/fi.ts +6 -0
  82. package/src/components/dashboard/payment-trend-chart/locales/fr.ts +1 -0
  83. package/src/components/dashboard/payment-trend-chart/locales/hr.ts +1 -0
  84. package/src/components/dashboard/payment-trend-chart/locales/is.ts +6 -0
  85. package/src/components/dashboard/payment-trend-chart/locales/it.ts +1 -0
  86. package/src/components/dashboard/payment-trend-chart/locales/nb.ts +6 -0
  87. package/src/components/dashboard/payment-trend-chart/locales/nl.ts +1 -0
  88. package/src/components/dashboard/payment-trend-chart/locales/pl.ts +1 -0
  89. package/src/components/dashboard/payment-trend-chart/locales/pt.ts +1 -0
  90. package/src/components/dashboard/payment-trend-chart/locales/sk.ts +6 -0
  91. package/src/components/dashboard/payment-trend-chart/locales/sl.ts +1 -0
  92. package/src/components/dashboard/payment-trend-chart/locales/sv.ts +6 -0
  93. package/src/components/dashboard/payment-trend-chart/payment-trend-chart.tsx +15 -8
  94. package/src/components/dashboard/revenue-trend-chart/locales/bg.ts +6 -0
  95. package/src/components/dashboard/revenue-trend-chart/locales/cs.ts +6 -0
  96. package/src/components/dashboard/revenue-trend-chart/locales/de.ts +1 -0
  97. package/src/components/dashboard/revenue-trend-chart/locales/es.ts +1 -0
  98. package/src/components/dashboard/revenue-trend-chart/locales/et.ts +6 -0
  99. package/src/components/dashboard/revenue-trend-chart/locales/fi.ts +6 -0
  100. package/src/components/dashboard/revenue-trend-chart/locales/fr.ts +1 -0
  101. package/src/components/dashboard/revenue-trend-chart/locales/hr.ts +1 -0
  102. package/src/components/dashboard/revenue-trend-chart/locales/is.ts +6 -0
  103. package/src/components/dashboard/revenue-trend-chart/locales/it.ts +1 -0
  104. package/src/components/dashboard/revenue-trend-chart/locales/nb.ts +6 -0
  105. package/src/components/dashboard/revenue-trend-chart/locales/nl.ts +1 -0
  106. package/src/components/dashboard/revenue-trend-chart/locales/pl.ts +1 -0
  107. package/src/components/dashboard/revenue-trend-chart/locales/pt.ts +1 -0
  108. package/src/components/dashboard/revenue-trend-chart/locales/sk.ts +6 -0
  109. package/src/components/dashboard/revenue-trend-chart/locales/sl.ts +1 -0
  110. package/src/components/dashboard/revenue-trend-chart/locales/sv.ts +6 -0
  111. package/src/components/dashboard/revenue-trend-chart/revenue-trend-chart.tsx +15 -8
  112. package/src/components/dashboard/tax-collected-card/locales.ts +110 -0
  113. package/src/components/dashboard/tax-collected-card/tax-collected-card.tsx +8 -2
  114. package/src/components/dashboard/tax-collected-card/use-tax-collected.ts +4 -4
  115. package/src/components/dashboard/top-customers-chart/locales/bg.ts +7 -0
  116. package/src/components/dashboard/top-customers-chart/locales/cs.ts +7 -0
  117. package/src/components/dashboard/top-customers-chart/locales/de.ts +2 -0
  118. package/src/components/dashboard/top-customers-chart/locales/es.ts +2 -0
  119. package/src/components/dashboard/top-customers-chart/locales/et.ts +7 -0
  120. package/src/components/dashboard/top-customers-chart/locales/fi.ts +7 -0
  121. package/src/components/dashboard/top-customers-chart/locales/fr.ts +2 -0
  122. package/src/components/dashboard/top-customers-chart/locales/hr.ts +2 -0
  123. package/src/components/dashboard/top-customers-chart/locales/is.ts +7 -0
  124. package/src/components/dashboard/top-customers-chart/locales/it.ts +2 -0
  125. package/src/components/dashboard/top-customers-chart/locales/nb.ts +7 -0
  126. package/src/components/dashboard/top-customers-chart/locales/nl.ts +2 -0
  127. package/src/components/dashboard/top-customers-chart/locales/pl.ts +2 -0
  128. package/src/components/dashboard/top-customers-chart/locales/pt.ts +2 -0
  129. package/src/components/dashboard/top-customers-chart/locales/sk.ts +7 -0
  130. package/src/components/dashboard/top-customers-chart/locales/sl.ts +2 -0
  131. package/src/components/dashboard/top-customers-chart/locales/sv.ts +7 -0
  132. package/src/components/dashboard/top-customers-chart/top-customers-chart.tsx +23 -12
  133. package/src/components/delivery-notes/create/create-delivery-note-form.tsx +33 -20
  134. package/src/components/delivery-notes/create/locales/de.ts +2 -1
  135. package/src/components/delivery-notes/create/locales/es.ts +2 -1
  136. package/src/components/delivery-notes/create/locales/fr.ts +2 -1
  137. package/src/components/delivery-notes/create/locales/hr.ts +2 -1
  138. package/src/components/delivery-notes/create/locales/it.ts +2 -1
  139. package/src/components/delivery-notes/create/locales/nl.ts +2 -1
  140. package/src/components/delivery-notes/create/locales/pl.ts +2 -1
  141. package/src/components/delivery-notes/create/locales/pt.ts +2 -1
  142. package/src/components/delivery-notes/create/locales/sl.ts +2 -1
  143. package/src/components/delivery-notes/list/list-table.tsx +22 -13
  144. package/src/components/delivery-notes/list/locales/de.ts +2 -0
  145. package/src/components/delivery-notes/list/locales/en.ts +1 -0
  146. package/src/components/delivery-notes/list/locales/es.ts +1 -0
  147. package/src/components/delivery-notes/list/locales/fr.ts +1 -0
  148. package/src/components/delivery-notes/list/locales/hr.ts +1 -0
  149. package/src/components/delivery-notes/list/locales/it.ts +1 -0
  150. package/src/components/delivery-notes/list/locales/nl.ts +1 -0
  151. package/src/components/delivery-notes/list/locales/pl.ts +1 -0
  152. package/src/components/delivery-notes/list/locales/pt.ts +1 -0
  153. package/src/components/delivery-notes/list/locales/sl.ts +1 -0
  154. package/src/components/delivery-notes/list/use-delivery-note-download.ts +1 -12
  155. package/src/components/documents/create/document-add-item-form.tsx +28 -16
  156. package/src/components/documents/create/document-add-item-tax-rate-field.tsx +12 -2
  157. package/src/components/documents/create/document-items-section.tsx +70 -39
  158. package/src/components/documents/create/document-recipient-section.tsx +10 -1
  159. package/src/components/documents/create/live-preview.tsx +113 -15
  160. package/src/components/documents/create/prepare-document-submission.ts +35 -16
  161. package/src/components/documents/create/use-document-customer-form.ts +14 -3
  162. package/src/components/documents/documents.hooks.ts +7 -2
  163. package/src/components/documents/shared/document-preview-display.tsx +136 -67
  164. package/src/components/documents/shared/scaled-document-preview.tsx +45 -5
  165. package/src/components/documents/view/document-actions-bar.tsx +284 -182
  166. package/src/components/documents/view/document-activities-list.tsx +3 -0
  167. package/src/components/documents/view/document-payments-list.tsx +3 -0
  168. package/src/components/documents/view/locales/de.ts +8 -0
  169. package/src/components/documents/view/locales/es.ts +8 -0
  170. package/src/components/documents/view/locales/fr.ts +8 -0
  171. package/src/components/documents/view/locales/hr.ts +8 -0
  172. package/src/components/documents/view/locales/it.ts +8 -0
  173. package/src/components/documents/view/locales/nl.ts +8 -0
  174. package/src/components/documents/view/locales/pl.ts +8 -0
  175. package/src/components/documents/view/locales/pt.ts +8 -0
  176. package/src/components/documents/view/locales/sl.ts +8 -0
  177. package/src/components/documents/view/use-document-download.ts +14 -25
  178. package/src/components/entities/create-entity-form.tsx +101 -16
  179. package/src/components/entities/entity-settings-form/locales/de.ts +6 -3
  180. package/src/components/entities/entity-settings-form/locales/es.ts +6 -3
  181. package/src/components/entities/entity-settings-form/locales/fr.ts +6 -3
  182. package/src/components/entities/entity-settings-form/locales/hr.ts +4 -2
  183. package/src/components/entities/entity-settings-form/locales/it.ts +6 -3
  184. package/src/components/entities/entity-settings-form/locales/nl.ts +6 -3
  185. package/src/components/entities/entity-settings-form/locales/pl.ts +6 -2
  186. package/src/components/entities/entity-settings-form/locales/pt.ts +6 -3
  187. package/src/components/entities/entity-settings-form/locales/sl.ts +4 -2
  188. package/src/components/entities/fina-settings-form/fina-operator-required-dialog.tsx +3 -3
  189. package/src/components/entities/fina-settings-form/fina-settings-form.tsx +78 -124
  190. package/src/components/entities/fina-settings-form/sections/certificate-settings-section.tsx +8 -1
  191. package/src/components/entities/fina-settings-form/sections/premises-management-section.tsx +14 -2
  192. package/src/components/entities/fina-settings-form/sections/register-premise-dialog.tsx +7 -2
  193. package/src/components/entities/furs-settings-form/furs-settings-form.tsx +56 -130
  194. package/src/components/entities/furs-settings-form/sections/certificate-settings-section.tsx +8 -1
  195. package/src/components/entities/furs-settings-form/sections/enable-fiscalization-section.tsx +1 -0
  196. package/src/components/entities/furs-settings-form/sections/general-settings-section.tsx +15 -2
  197. package/src/components/entities/furs-settings-form/sections/premises-management-section.tsx +20 -3
  198. package/src/components/entities/furs-settings-form/sections/register-premise-dialog.tsx +38 -12
  199. package/src/components/entities/settings/eslog-settings-form.tsx +13 -1
  200. package/src/components/entities/settings/pdf-template-selector/demo-invoice-data.ts +3 -22
  201. package/src/components/entities/shared/fiscalization-step-flow.ts +77 -0
  202. package/src/components/entities/shared/fiscalization-step-tabs.tsx +71 -0
  203. package/src/components/estimates/create/create-estimate-form.tsx +34 -21
  204. package/src/components/estimates/create/locales/de.ts +2 -1
  205. package/src/components/estimates/create/locales/es.ts +2 -1
  206. package/src/components/estimates/create/locales/fr.ts +2 -1
  207. package/src/components/estimates/create/locales/hr.ts +2 -1
  208. package/src/components/estimates/create/locales/it.ts +2 -1
  209. package/src/components/estimates/create/locales/nl.ts +2 -1
  210. package/src/components/estimates/create/locales/pl.ts +2 -1
  211. package/src/components/estimates/create/locales/pt.ts +2 -1
  212. package/src/components/estimates/create/locales/sl.ts +2 -1
  213. package/src/components/estimates/list/list-table.tsx +23 -14
  214. package/src/components/estimates/list/locales/de.ts +2 -0
  215. package/src/components/estimates/list/locales/en.ts +1 -0
  216. package/src/components/estimates/list/locales/es.ts +1 -0
  217. package/src/components/estimates/list/locales/fr.ts +1 -0
  218. package/src/components/estimates/list/locales/hr.ts +1 -0
  219. package/src/components/estimates/list/locales/it.ts +1 -0
  220. package/src/components/estimates/list/locales/nl.ts +1 -0
  221. package/src/components/estimates/list/locales/pl.ts +1 -0
  222. package/src/components/estimates/list/locales/pt.ts +1 -0
  223. package/src/components/estimates/list/locales/sl.ts +1 -0
  224. package/src/components/estimates/list/use-estimate-download.ts +1 -12
  225. package/src/components/export/document-export-form.tsx +33 -7
  226. package/src/components/export/sales-per-item-export-form.tsx +23 -7
  227. package/src/components/invoices/create/create-invoice-form.tsx +295 -329
  228. package/src/components/invoices/create/locales/de.ts +2 -1
  229. package/src/components/invoices/create/locales/es.ts +2 -1
  230. package/src/components/invoices/create/locales/fr.ts +2 -1
  231. package/src/components/invoices/create/locales/hr.ts +2 -1
  232. package/src/components/invoices/create/locales/it.ts +2 -1
  233. package/src/components/invoices/create/locales/nl.ts +2 -1
  234. package/src/components/invoices/create/locales/pl.ts +2 -1
  235. package/src/components/invoices/create/locales/pt.ts +2 -1
  236. package/src/components/invoices/create/locales/sl.ts +2 -1
  237. package/src/components/invoices/create/prepare-invoice-submission.ts +0 -8
  238. package/src/components/invoices/list/list-table.tsx +7 -4
  239. package/src/components/invoices/list/use-invoice-download.ts +1 -11
  240. package/src/components/invoices/send-email-dialog/locales/de.ts +2 -0
  241. package/src/components/invoices/send-email-dialog/locales/es.ts +2 -0
  242. package/src/components/invoices/send-email-dialog/locales/fr.ts +2 -0
  243. package/src/components/invoices/send-email-dialog/locales/hr.ts +2 -0
  244. package/src/components/invoices/send-email-dialog/locales/it.ts +2 -0
  245. package/src/components/invoices/send-email-dialog/locales/nl.ts +2 -0
  246. package/src/components/invoices/send-email-dialog/locales/pl.ts +2 -0
  247. package/src/components/invoices/send-email-dialog/locales/pt.ts +2 -0
  248. package/src/components/invoices/send-email-dialog/locales/sl.ts +2 -0
  249. package/src/components/invoices/send-email-dialog/send-email-dialog.tsx +77 -8
  250. package/src/components/invoices/view/eslog-info-display.tsx +17 -1
  251. package/src/components/invoices/view/fiscalization-status-card.tsx +7 -3
  252. package/src/components/items/item-combobox.tsx +26 -6
  253. package/src/components/items/item-list-table/item-list-table.tsx +5 -2
  254. package/src/components/payments/list/list-table.tsx +14 -4
  255. package/src/components/recurring-invoices/list/list-table.tsx +7 -4
  256. package/src/components/request-logs/locales.ts +412 -0
  257. package/src/components/request-logs/request-log-detail.tsx +37 -21
  258. package/src/components/request-logs/request-log-list-table.tsx +57 -11
  259. package/src/components/table/data-table.tsx +5 -2
  260. package/src/components/table/date-cell.tsx +3 -1
  261. package/src/components/table/filter-bar.tsx +14 -2
  262. package/src/components/table/hooks/use-table-query.ts +1 -1
  263. package/src/components/table/locales.ts +1116 -0
  264. package/src/components/table/search-input.tsx +12 -3
  265. package/src/components/table/selection-toolbar.tsx +23 -6
  266. package/src/components/table/table-empty-state.tsx +43 -3
  267. package/src/components/table/table-no-results.tsx +3 -3
  268. package/src/components/table/table-pagination.tsx +4 -3
  269. package/src/components/table/types.ts +1 -0
  270. package/src/components/tax-reports/index.ts +1 -0
  271. package/src/components/tax-reports/kir-export-form.tsx +46 -8
  272. package/src/components/tax-reports/slovenia-tax-profile-step.tsx +191 -0
  273. package/src/components/tax-reports/slovenia-yearly-export-form.tsx +509 -0
  274. package/src/components/tax-reports/slovenia-yearly-review-step.tsx +253 -0
  275. package/src/components/tax-reports/slovenia-yearly-summary.tsx +19 -0
  276. package/src/components/taxes/tax-list-table/tax-list-table.tsx +3 -2
  277. package/src/components/ui/sticky-form-footer.tsx +7 -1
  278. package/src/components/webhook-logs/index.ts +6 -0
  279. package/src/components/webhook-logs/locales.ts +392 -0
  280. package/src/components/webhook-logs/webhook-delivery-detail.tsx +255 -0
  281. package/src/components/webhook-logs/webhook-delivery-list-table.tsx +278 -0
  282. package/src/components/wl-subscription/index.ts +1 -0
  283. package/src/components/wl-subscription/locked-feature.tsx +1 -0
  284. package/src/components/wl-subscription/paywall.tsx +193 -0
  285. package/src/components/wl-subscription/upgrade-modal.tsx +93 -29
  286. package/src/generate-schemas.ts +10 -5
  287. package/src/generated/schemas/customer.ts +2 -0
  288. package/src/generated/schemas/entity.ts +34 -0
  289. package/src/generated/schemas/me.ts +20 -1
  290. package/src/generated/schemas/renderadvanceinvoicepreview_body.ts +40 -34
  291. package/src/generated/schemas/rendercreditnotepreview_body.ts +42 -36
  292. package/src/generated/schemas/renderdeliverynotepreview_body.ts +23 -13
  293. package/src/generated/schemas/renderestimatepreview_body.ts +23 -13
  294. package/src/generated/schemas/renderinvoicepreview_body.ts +40 -34
  295. package/src/generated/schemas/sendemail_body.ts +44 -0
  296. package/src/generated/schemas/startpdfexport_body.ts +91 -1
  297. package/src/generated/schemas/webhook.ts +10 -0
  298. package/src/hooks/use-duplicate-document.ts +51 -13
  299. package/src/hooks/use-eslog-validation.ts +59 -0
  300. package/src/hooks/use-premise-selection.ts +186 -0
  301. package/src/lib/browser-cookies.ts +4 -4
  302. package/src/lib/date-fns-locale.ts +48 -0
  303. package/src/lib/fiscalization-options.ts +81 -0
  304. package/src/lib/locale.ts +38 -0
  305. package/src/lib/template-variables.tsx +1 -1
  306. package/src/lib/translation.ts +14 -3
  307. package/src/providers/entities-context.tsx +1 -0
  308. package/src/providers/entities-provider.tsx +102 -3
  309. package/src/providers/form-footer-context.tsx +37 -4
  310. package/src/providers/sdk-provider.tsx +7 -2
  311. package/src/providers/white-label-provider.tsx +4 -1
  312. package/src/providers/wl-subscription-provider.tsx +90 -3
@@ -4,6 +4,7 @@ import { useMemo } from "react";
4
4
  import { DataTable } from "@/ui/components/table/data-table";
5
5
  import { FormattedDate } from "@/ui/components/table/date-cell";
6
6
  import { useTableFetch } from "@/ui/components/table/hooks/use-table-fetch";
7
+ import { withTableTranslations } from "@/ui/components/table/locales";
7
8
  import type { Column, ListTableProps, TableQueryParams, TableQueryResponse } from "@/ui/components/table/types";
8
9
  import { Button } from "@/ui/components/ui/button";
9
10
  import { Popover, PopoverContent, PopoverTrigger } from "@/ui/components/ui/popover";
@@ -22,7 +23,7 @@ import pl from "./locales/pl";
22
23
  import pt from "./locales/pt";
23
24
  import sl from "./locales/sl";
24
25
 
25
- const translations = {
26
+ const translations = withTableTranslations({
26
27
  en,
27
28
  sl,
28
29
  de,
@@ -33,7 +34,7 @@ const translations = {
33
34
  nl,
34
35
  pl,
35
36
  hr,
36
- } as const;
37
+ } as const);
37
38
 
38
39
  // Extended payment type that includes Invoice relation from API
39
40
  type PaymentWithInvoice = Payment & {
@@ -44,6 +45,7 @@ type PaymentListTableProps = {
44
45
  t?: (key: string) => string;
45
46
  namespace?: string;
46
47
  locale?: string;
48
+ translationLocale?: string;
47
49
  entityId?: string;
48
50
  onViewInvoice?: (invoiceId: string) => void;
49
51
  onEditPayment?: (payment: Payment) => void;
@@ -63,6 +65,7 @@ export default function PaymentListTable({
63
65
  }: PaymentListTableProps) {
64
66
  const t = createTranslation({
65
67
  translations,
68
+ locale: i18nProps.translationLocale ?? i18nProps.locale,
66
69
  ...i18nProps,
67
70
  });
68
71
 
@@ -99,13 +102,20 @@ export default function PaymentListTable({
99
102
  {
100
103
  id: "date",
101
104
  header: t("Date"),
102
- cell: (payment) => <FormattedDate date={payment.date} />,
105
+ cell: (payment) => <FormattedDate date={payment.date} locale={i18nProps.locale} />,
103
106
  },
104
107
  {
105
108
  id: "amount",
106
109
  header: t("Amount"),
107
110
  align: "right",
108
- cell: (payment) => <span className="font-medium">{payment.amount.toFixed(2)}</span>,
111
+ cell: (payment) => (
112
+ <span className="font-medium">
113
+ {new Intl.NumberFormat(i18nProps.locale, {
114
+ minimumFractionDigits: 2,
115
+ maximumFractionDigits: 2,
116
+ }).format(payment.amount)}
117
+ </span>
118
+ ),
109
119
  },
110
120
  {
111
121
  id: "type",
@@ -3,6 +3,7 @@ import { useMemo } from "react";
3
3
  import { DataTable } from "@/ui/components/table/data-table";
4
4
  import { FormattedDate } from "@/ui/components/table/date-cell";
5
5
  import { useTableFetch } from "@/ui/components/table/hooks/use-table-fetch";
6
+ import { withTableTranslations } from "@/ui/components/table/locales";
6
7
  import type { Column, ListTableProps, TableQueryParams, TableQueryResponse } from "@/ui/components/table/types";
7
8
  import { Badge } from "@/ui/components/ui/badge";
8
9
  import { createTranslation } from "@/ui/lib/translation";
@@ -20,7 +21,7 @@ import pl from "./locales/pl";
20
21
  import pt from "./locales/pt";
21
22
  import sl from "./locales/sl";
22
23
 
23
- const translations = {
24
+ const translations = withTableTranslations({
24
25
  en,
25
26
  sl,
26
27
  de,
@@ -31,7 +32,7 @@ const translations = {
31
32
  nl,
32
33
  pl,
33
34
  hr,
34
- } as const;
35
+ } as const);
35
36
 
36
37
  function statusVariant(status: string): "default" | "secondary" | "outline" {
37
38
  switch (status) {
@@ -48,6 +49,7 @@ type RecurringInvoiceListTableProps = {
48
49
  t?: (key: string) => string;
49
50
  namespace?: string;
50
51
  locale?: string;
52
+ translationLocale?: string;
51
53
  entityId?: string;
52
54
  onViewSourceInvoice?: (documentId: string) => void;
53
55
  onDeleteSuccess?: () => void;
@@ -65,6 +67,7 @@ export default function RecurringInvoiceListTable({
65
67
  }: RecurringInvoiceListTableProps) {
66
68
  const t = createTranslation({
67
69
  translations,
70
+ locale: i18nProps.translationLocale ?? i18nProps.locale,
68
71
  ...i18nProps,
69
72
  });
70
73
 
@@ -120,7 +123,7 @@ export default function RecurringInvoiceListTable({
120
123
  header: t("Next Run"),
121
124
  cell: (ri) =>
122
125
  ri.next_run_date ? (
123
- <FormattedDate date={ri.next_run_date} />
126
+ <FormattedDate date={ri.next_run_date} locale={i18nProps.locale} />
124
127
  ) : (
125
128
  <span className="text-muted-foreground">-</span>
126
129
  ),
@@ -134,7 +137,7 @@ export default function RecurringInvoiceListTable({
134
137
  {
135
138
  id: "created_at",
136
139
  header: t("Created"),
137
- cell: (ri) => <FormattedDate date={ri.created_at} />,
140
+ cell: (ri) => <FormattedDate date={ri.created_at} locale={i18nProps.locale} />,
138
141
  },
139
142
  {
140
143
  id: "actions",
@@ -0,0 +1,412 @@
1
+ const en = {
2
+ "Search...": "Search...",
3
+ Search: "Search",
4
+ "Clear search": "Clear search",
5
+ Filters: "Filters",
6
+ "Clear filters": "Clear filters",
7
+ "Date Range": "Date Range",
8
+ From: "From",
9
+ To: "To",
10
+ Status: "Status",
11
+ Method: "Method",
12
+ Date: "Date",
13
+ Entity: "Entity",
14
+ Resource: "Resource",
15
+ Path: "Path",
16
+ Time: "Time",
17
+ Copy: "Copy",
18
+ Request: "Request",
19
+ Response: "Response",
20
+ Headers: "Headers",
21
+ Action: "Opération",
22
+ ID: "ID",
23
+ "Request ID": "Request ID",
24
+ "Copy to clipboard": "Copy to clipboard",
25
+ "No request body data": "No request body data",
26
+ "No response body data": "No response body data",
27
+ "No headers data": "No headers data",
28
+ "2xx Success": "2xx Success",
29
+ "4xx Client Error": "4xx Client Error",
30
+ "5xx Server Error": "5xx Server Error",
31
+ "No results found": "No results found",
32
+ "Try adjusting your search criteria": "Try adjusting your search criteria",
33
+ "Your list is empty": "Your list is empty",
34
+ "Get started by creating your first entry": "Get started by creating your first entry",
35
+ "Create new": "Create new",
36
+ "Clear all": "Clear all",
37
+ "Previous page": "Previous page",
38
+ "Next page": "Next page",
39
+ } as const;
40
+
41
+ const sl = {
42
+ "Search...": "Išči...",
43
+ Search: "Išči",
44
+ "Clear search": "Počisti iskanje",
45
+ Filters: "Filtri",
46
+ "Clear filters": "Počisti filtre",
47
+ "Date Range": "Datumski razpon",
48
+ From: "Od",
49
+ To: "Do",
50
+ Status: "Status",
51
+ Method: "Metoda",
52
+ Date: "Datum",
53
+ Entity: "Entiteta",
54
+ Resource: "Vir",
55
+ Path: "Pot",
56
+ Time: "Čas",
57
+ Copy: "Kopiraj",
58
+ Request: "Zahteva",
59
+ Response: "Odgovor",
60
+ Headers: "Glave",
61
+ Action: "Dejanje",
62
+ ID: "ID",
63
+ "Request ID": "ID zahteve",
64
+ "Copy to clipboard": "Kopirano v odložišče",
65
+ "No request body data": "Ni podatkov telesa zahteve",
66
+ "No response body data": "Ni podatkov telesa odgovora",
67
+ "No headers data": "Ni podatkov glav",
68
+ "2xx Success": "2xx Uspešno",
69
+ "4xx Client Error": "4xx Napaka odjemalca",
70
+ "5xx Server Error": "5xx Napaka strežnika",
71
+ "No results found": "Ni rezultatov",
72
+ "Try adjusting your search criteria": "Poskusite prilagoditi iskalne pogoje",
73
+ "Your list is empty": "Seznam je prazen",
74
+ "Get started by creating your first entry": "Začnite z ustvarjanjem prvega vnosa",
75
+ "Create new": "Ustvari novo",
76
+ "Clear all": "Počisti vse",
77
+ "Previous page": "Prejšnja stran",
78
+ "Next page": "Naslednja stran",
79
+ } as const;
80
+
81
+ const de = {
82
+ "Search...": "Suchen...",
83
+ Search: "Suchen",
84
+ "Clear search": "Suche löschen",
85
+ Filters: "Filter",
86
+ "Clear filters": "Filter löschen",
87
+ "Date Range": "Datumsbereich",
88
+ From: "Von",
89
+ To: "Bis",
90
+ Status: "Status",
91
+ Method: "Methode",
92
+ Date: "Datum",
93
+ Entity: "Entität",
94
+ Resource: "Ressource",
95
+ Path: "Pfad",
96
+ Time: "Zeit",
97
+ Copy: "Kopieren",
98
+ Request: "Anfrage",
99
+ Response: "Antwort",
100
+ Headers: "Header",
101
+ Action: "Aktion",
102
+ ID: "ID",
103
+ "Request ID": "Request-ID",
104
+ "Copy to clipboard": "In die Zwischenablage kopieren",
105
+ "No request body data": "Keine Request-Body-Daten",
106
+ "No response body data": "Keine Response-Body-Daten",
107
+ "No headers data": "Keine Header-Daten",
108
+ "2xx Success": "2xx Erfolg",
109
+ "4xx Client Error": "4xx Client-Fehler",
110
+ "5xx Server Error": "5xx Server-Fehler",
111
+ "No results found": "Keine Ergebnisse gefunden",
112
+ "Try adjusting your search criteria": "Versuchen Sie, Ihre Suchkriterien anzupassen",
113
+ "Your list is empty": "Ihre Liste ist leer",
114
+ "Get started by creating your first entry": "Erstellen Sie Ihren ersten Eintrag",
115
+ "Create new": "Neu erstellen",
116
+ "Clear all": "Alles löschen",
117
+ "Previous page": "Vorherige Seite",
118
+ "Next page": "Nächste Seite",
119
+ } as const;
120
+
121
+ const it = {
122
+ "Search...": "Cerca...",
123
+ Search: "Cerca",
124
+ "Clear search": "Cancella ricerca",
125
+ Filters: "Filtri",
126
+ "Clear filters": "Cancella filtri",
127
+ "Date Range": "Intervallo di date",
128
+ From: "Da",
129
+ To: "A",
130
+ Status: "Stato",
131
+ Method: "Metodo",
132
+ Date: "Data",
133
+ Entity: "Entità",
134
+ Resource: "Risorsa",
135
+ Path: "Percorso",
136
+ Time: "Ora",
137
+ Copy: "Copia",
138
+ Request: "Richiesta",
139
+ Response: "Risposta",
140
+ Headers: "Intestazioni",
141
+ Action: "Azione",
142
+ ID: "ID",
143
+ "Request ID": "ID richiesta",
144
+ "Copy to clipboard": "Copia negli appunti",
145
+ "No request body data": "Nessun dato del corpo della richiesta",
146
+ "No response body data": "Nessun dato del corpo della risposta",
147
+ "No headers data": "Nessun dato delle intestazioni",
148
+ "2xx Success": "2xx Successo",
149
+ "4xx Client Error": "4xx Errore client",
150
+ "5xx Server Error": "5xx Errore server",
151
+ "No results found": "Nessun risultato trovato",
152
+ "Try adjusting your search criteria": "Prova a modificare i criteri di ricerca",
153
+ "Your list is empty": "La tua lista è vuota",
154
+ "Get started by creating your first entry": "Inizia creando il tuo primo elemento",
155
+ "Create new": "Crea nuovo",
156
+ "Clear all": "Cancella tutto",
157
+ "Previous page": "Pagina precedente",
158
+ "Next page": "Pagina successiva",
159
+ } as const;
160
+
161
+ const fr = {
162
+ "Search...": "Rechercher...",
163
+ Search: "Rechercher",
164
+ "Clear search": "Effacer la recherche",
165
+ Filters: "Filtres",
166
+ "Clear filters": "Effacer les filtres",
167
+ "Date Range": "Plage de dates",
168
+ From: "De",
169
+ To: "À",
170
+ Status: "Statut",
171
+ Method: "Méthode",
172
+ Date: "Date",
173
+ Entity: "Entité",
174
+ Resource: "Ressource",
175
+ Path: "Chemin",
176
+ Time: "Heure",
177
+ Copy: "Copier",
178
+ Request: "Requête",
179
+ Response: "Réponse",
180
+ Headers: "En-têtes",
181
+ Action: "Action",
182
+ ID: "ID",
183
+ "Request ID": "ID de requête",
184
+ "Copy to clipboard": "Copier dans le presse-papiers",
185
+ "No request body data": "Aucune donnée de corps de requête",
186
+ "No response body data": "Aucune donnée de corps de réponse",
187
+ "No headers data": "Aucune donnée d'en-têtes",
188
+ "2xx Success": "2xx Succès",
189
+ "4xx Client Error": "4xx Erreur client",
190
+ "5xx Server Error": "5xx Erreur serveur",
191
+ "No results found": "Aucun résultat trouvé",
192
+ "Try adjusting your search criteria": "Essayez d'ajuster vos critères de recherche",
193
+ "Your list is empty": "Votre liste est vide",
194
+ "Get started by creating your first entry": "Commencez par créer votre première entrée",
195
+ "Create new": "Créer",
196
+ "Clear all": "Tout effacer",
197
+ "Previous page": "Page précédente",
198
+ "Next page": "Page suivante",
199
+ } as const;
200
+
201
+ const es = {
202
+ "Search...": "Buscar...",
203
+ Search: "Buscar",
204
+ "Clear search": "Borrar búsqueda",
205
+ Filters: "Filtros",
206
+ "Clear filters": "Limpiar filtros",
207
+ "Date Range": "Rango de fechas",
208
+ From: "Desde",
209
+ To: "Hasta",
210
+ Status: "Estado",
211
+ Method: "Método",
212
+ Date: "Fecha",
213
+ Entity: "Entidad",
214
+ Resource: "Recurso",
215
+ Path: "Ruta",
216
+ Time: "Hora",
217
+ Copy: "Copiar",
218
+ Request: "Solicitud",
219
+ Response: "Respuesta",
220
+ Headers: "Encabezados",
221
+ Action: "Acción",
222
+ ID: "ID",
223
+ "Request ID": "ID de solicitud",
224
+ "Copy to clipboard": "Copiar al portapapeles",
225
+ "No request body data": "Sin datos del cuerpo de la solicitud",
226
+ "No response body data": "Sin datos del cuerpo de la respuesta",
227
+ "No headers data": "Sin datos de encabezados",
228
+ "2xx Success": "2xx Correcto",
229
+ "4xx Client Error": "4xx Error del cliente",
230
+ "5xx Server Error": "5xx Error del servidor",
231
+ "No results found": "No se encontraron resultados",
232
+ "Try adjusting your search criteria": "Prueba a ajustar tus criterios de búsqueda",
233
+ "Your list is empty": "Tu lista está vacía",
234
+ "Get started by creating your first entry": "Empieza creando tu primera entrada",
235
+ "Create new": "Crear nuevo",
236
+ "Clear all": "Limpiar todo",
237
+ "Previous page": "Página anterior",
238
+ "Next page": "Página siguiente",
239
+ } as const;
240
+
241
+ const pt = {
242
+ "Search...": "Pesquisar...",
243
+ Search: "Pesquisar",
244
+ "Clear search": "Limpar pesquisa",
245
+ Filters: "Filtros",
246
+ "Clear filters": "Limpar filtros",
247
+ "Date Range": "Intervalo de datas",
248
+ From: "De",
249
+ To: "Até",
250
+ Status: "Estado",
251
+ Method: "Método",
252
+ Date: "Data",
253
+ Entity: "Entidade",
254
+ Resource: "Recurso",
255
+ Path: "Caminho",
256
+ Time: "Hora",
257
+ Copy: "Copiar",
258
+ Request: "Pedido",
259
+ Response: "Resposta",
260
+ Headers: "Cabeçalhos",
261
+ Action: "Ação",
262
+ ID: "ID",
263
+ "Request ID": "ID do pedido",
264
+ "Copy to clipboard": "Copiar para a área de transferência",
265
+ "No request body data": "Sem dados do corpo do pedido",
266
+ "No response body data": "Sem dados do corpo da resposta",
267
+ "No headers data": "Sem dados de cabeçalhos",
268
+ "2xx Success": "2xx Sucesso",
269
+ "4xx Client Error": "4xx Erro do cliente",
270
+ "5xx Server Error": "5xx Erro do servidor",
271
+ "No results found": "Nenhum resultado encontrado",
272
+ "Try adjusting your search criteria": "Tente ajustar os seus critérios de pesquisa",
273
+ "Your list is empty": "A sua lista está vazia",
274
+ "Get started by creating your first entry": "Comece por criar a sua primeira entrada",
275
+ "Create new": "Criar novo",
276
+ "Clear all": "Limpar tudo",
277
+ "Previous page": "Página anterior",
278
+ "Next page": "Página seguinte",
279
+ } as const;
280
+
281
+ const nl = {
282
+ "Search...": "Zoeken...",
283
+ Search: "Zoeken",
284
+ "Clear search": "Zoekopdracht wissen",
285
+ Filters: "Filters",
286
+ "Clear filters": "Filters wissen",
287
+ "Date Range": "Datumbereik",
288
+ From: "Van",
289
+ To: "Tot",
290
+ Status: "Status",
291
+ Method: "Methode",
292
+ Date: "Datum",
293
+ Entity: "Entiteit",
294
+ Resource: "Resource",
295
+ Path: "Pad",
296
+ Time: "Tijd",
297
+ Copy: "Kopiëren",
298
+ Request: "Verzoek",
299
+ Response: "Respons",
300
+ Headers: "Kopteksten",
301
+ Action: "Actie",
302
+ ID: "ID",
303
+ "Request ID": "Request-ID",
304
+ "Copy to clipboard": "Kopiëren naar klembord",
305
+ "No request body data": "Geen gegevens in request-body",
306
+ "No response body data": "Geen gegevens in response-body",
307
+ "No headers data": "Geen headergegevens",
308
+ "2xx Success": "2xx Succes",
309
+ "4xx Client Error": "4xx Clientfout",
310
+ "5xx Server Error": "5xx Serverfout",
311
+ "No results found": "Geen resultaten gevonden",
312
+ "Try adjusting your search criteria": "Probeer je zoekcriteria aan te passen",
313
+ "Your list is empty": "Je lijst is leeg",
314
+ "Get started by creating your first entry": "Begin met het maken van je eerste item",
315
+ "Create new": "Nieuw maken",
316
+ "Clear all": "Alles wissen",
317
+ "Previous page": "Vorige pagina",
318
+ "Next page": "Volgende pagina",
319
+ } as const;
320
+
321
+ const pl = {
322
+ "Search...": "Szukaj...",
323
+ Search: "Szukaj",
324
+ "Clear search": "Wyczyść wyszukiwanie",
325
+ Filters: "Filtry",
326
+ "Clear filters": "Wyczyść filtry",
327
+ "Date Range": "Zakres dat",
328
+ From: "Od",
329
+ To: "Do",
330
+ Status: "Status",
331
+ Method: "Metoda",
332
+ Date: "Data",
333
+ Entity: "Encja",
334
+ Resource: "Zasób",
335
+ Path: "Ścieżka",
336
+ Time: "Czas",
337
+ Copy: "Kopiuj",
338
+ Request: "Żądanie",
339
+ Response: "Odpowiedź",
340
+ Headers: "Nagłówki",
341
+ Action: "Akcja",
342
+ ID: "ID",
343
+ "Request ID": "ID żądania",
344
+ "Copy to clipboard": "Kopiuj do schowka",
345
+ "No request body data": "Brak danych treści żądania",
346
+ "No response body data": "Brak danych treści odpowiedzi",
347
+ "No headers data": "Brak danych nagłówków",
348
+ "2xx Success": "2xx Sukces",
349
+ "4xx Client Error": "4xx Błąd klienta",
350
+ "5xx Server Error": "5xx Błąd serwera",
351
+ "No results found": "Nie znaleziono wyników",
352
+ "Try adjusting your search criteria": "Spróbuj dostosować kryteria wyszukiwania",
353
+ "Your list is empty": "Twoja lista jest pusta",
354
+ "Get started by creating your first entry": "Zacznij od utworzenia pierwszego wpisu",
355
+ "Create new": "Utwórz nowy",
356
+ "Clear all": "Wyczyść wszystko",
357
+ "Previous page": "Poprzednia strona",
358
+ "Next page": "Następna strona",
359
+ } as const;
360
+
361
+ const hr = {
362
+ "Search...": "Pretraži...",
363
+ Search: "Pretraži",
364
+ "Clear search": "Očisti pretragu",
365
+ Filters: "Filtri",
366
+ "Clear filters": "Očisti filtre",
367
+ "Date Range": "Datumski raspon",
368
+ From: "Od",
369
+ To: "Do",
370
+ Status: "Status",
371
+ Method: "Metoda",
372
+ Date: "Datum",
373
+ Entity: "Entitet",
374
+ Resource: "Resurs",
375
+ Path: "Putanja",
376
+ Time: "Vrijeme",
377
+ Copy: "Kopiraj",
378
+ Request: "Zahtjev",
379
+ Response: "Odgovor",
380
+ Headers: "Zaglavlja",
381
+ Action: "Radnja",
382
+ ID: "ID",
383
+ "Request ID": "ID zahtjeva",
384
+ "Copy to clipboard": "Kopiraj u međuspremnik",
385
+ "No request body data": "Nema podataka tijela zahtjeva",
386
+ "No response body data": "Nema podataka tijela odgovora",
387
+ "No headers data": "Nema podataka zaglavlja",
388
+ "2xx Success": "2xx Uspjeh",
389
+ "4xx Client Error": "4xx Greška klijenta",
390
+ "5xx Server Error": "5xx Greška poslužitelja",
391
+ "No results found": "Nema rezultata",
392
+ "Try adjusting your search criteria": "Pokušajte prilagoditi kriterije pretrage",
393
+ "Your list is empty": "Vaš popis je prazan",
394
+ "Get started by creating your first entry": "Započnite stvaranjem prve stavke",
395
+ "Create new": "Stvori novo",
396
+ "Clear all": "Očisti sve",
397
+ "Previous page": "Prethodna stranica",
398
+ "Next page": "Sljedeća stranica",
399
+ } as const;
400
+
401
+ export default {
402
+ en,
403
+ sl,
404
+ de,
405
+ it,
406
+ fr,
407
+ es,
408
+ pt,
409
+ nl,
410
+ pl,
411
+ hr,
412
+ } as const;