@spaceinvoices/react-ui 0.4.11 → 0.4.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (738) hide show
  1. package/cli/dist/index.js +1 -1
  2. package/package.json +3 -2
  3. package/registry.json +30 -31
  4. package/src/common/autocomplete.tsx +48 -26
  5. package/src/components/activities/locales/bg.ts +21 -0
  6. package/src/components/activities/locales/cs.ts +21 -0
  7. package/src/components/activities/locales/en.ts +21 -0
  8. package/src/components/activities/locales/et.ts +21 -0
  9. package/src/components/activities/locales/fi.ts +21 -0
  10. package/src/components/activities/locales/is.ts +21 -0
  11. package/src/components/activities/locales/nb.ts +21 -0
  12. package/src/components/activities/locales/sk.ts +21 -0
  13. package/src/components/activities/locales/sv.ts +21 -0
  14. package/src/components/advance-invoices/advance-invoices.hooks.ts +36 -46
  15. package/src/components/advance-invoices/create/create-advance-invoice-form.tsx +452 -115
  16. package/src/components/advance-invoices/create/locales/bg.ts +56 -0
  17. package/src/components/advance-invoices/create/locales/cs.ts +56 -0
  18. package/src/components/advance-invoices/create/locales/de.ts +15 -7
  19. package/src/components/advance-invoices/create/locales/en.ts +56 -0
  20. package/src/components/advance-invoices/create/locales/es.ts +15 -7
  21. package/src/components/advance-invoices/create/locales/et.ts +56 -0
  22. package/src/components/advance-invoices/create/locales/fi.ts +56 -0
  23. package/src/components/advance-invoices/create/locales/fr.ts +16 -8
  24. package/src/components/advance-invoices/create/locales/hr.ts +29 -21
  25. package/src/components/advance-invoices/create/locales/is.ts +56 -0
  26. package/src/components/advance-invoices/create/locales/it.ts +15 -7
  27. package/src/components/advance-invoices/create/locales/nb.ts +56 -0
  28. package/src/components/advance-invoices/create/locales/nl.ts +15 -7
  29. package/src/components/advance-invoices/create/locales/pl.ts +17 -9
  30. package/src/components/advance-invoices/create/locales/pt.ts +16 -8
  31. package/src/components/advance-invoices/create/locales/sk.ts +56 -0
  32. package/src/components/advance-invoices/create/locales/sl.ts +23 -12
  33. package/src/components/advance-invoices/create/locales/sv.ts +56 -0
  34. package/src/components/advance-invoices/create/prepare-advance-invoice-submission.ts +62 -2
  35. package/src/components/advance-invoices/list/list-row-actions.tsx +48 -16
  36. package/src/components/advance-invoices/list/list-table.tsx +35 -9
  37. package/src/components/advance-invoices/list/locales/bg.ts +51 -0
  38. package/src/components/advance-invoices/list/locales/cs.ts +51 -0
  39. package/src/components/advance-invoices/list/locales/en.ts +33 -2
  40. package/src/components/advance-invoices/list/locales/et.ts +51 -0
  41. package/src/components/advance-invoices/list/locales/fi.ts +51 -0
  42. package/src/components/advance-invoices/list/locales/hr.ts +15 -15
  43. package/src/components/advance-invoices/list/locales/is.ts +51 -0
  44. package/src/components/advance-invoices/list/locales/nb.ts +51 -0
  45. package/src/components/advance-invoices/list/locales/sk.ts +51 -0
  46. package/src/components/advance-invoices/list/locales/sv.ts +51 -0
  47. package/src/components/advance-invoices/list/use-advance-invoice-download.ts +3 -5
  48. package/src/components/common/autocomplete-locales.ts +101 -0
  49. package/src/components/company-registry/company-registry.hooks.ts +3 -7
  50. package/src/components/credit-notes/create/create-credit-note-form.tsx +437 -80
  51. package/src/components/credit-notes/create/locales/bg.ts +101 -0
  52. package/src/components/credit-notes/create/locales/cs.ts +101 -0
  53. package/src/components/credit-notes/create/locales/de.ts +20 -7
  54. package/src/components/credit-notes/create/locales/en.ts +101 -0
  55. package/src/components/credit-notes/create/locales/es.ts +20 -7
  56. package/src/components/credit-notes/create/locales/et.ts +101 -0
  57. package/src/components/credit-notes/create/locales/fi.ts +101 -0
  58. package/src/components/credit-notes/create/locales/fr.ts +21 -8
  59. package/src/components/credit-notes/create/locales/hr.ts +41 -28
  60. package/src/components/credit-notes/create/locales/is.ts +101 -0
  61. package/src/components/credit-notes/create/locales/it.ts +20 -7
  62. package/src/components/credit-notes/create/locales/nb.ts +101 -0
  63. package/src/components/credit-notes/create/locales/nl.ts +20 -7
  64. package/src/components/credit-notes/create/locales/pl.ts +22 -9
  65. package/src/components/credit-notes/create/locales/pt.ts +21 -8
  66. package/src/components/credit-notes/create/locales/sk.ts +101 -0
  67. package/src/components/credit-notes/create/locales/sl.ts +28 -14
  68. package/src/components/credit-notes/create/locales/sv.ts +101 -0
  69. package/src/components/credit-notes/create/prepare-credit-note-submission.ts +66 -0
  70. package/src/components/credit-notes/credit-notes.hooks.ts +34 -3
  71. package/src/components/credit-notes/list/list-row-actions.tsx +19 -7
  72. package/src/components/credit-notes/list/list-table.tsx +60 -8
  73. package/src/components/credit-notes/list/locales/bg.ts +48 -0
  74. package/src/components/credit-notes/list/locales/cs.ts +48 -0
  75. package/src/components/credit-notes/list/locales/en.ts +31 -2
  76. package/src/components/credit-notes/list/locales/et.ts +48 -0
  77. package/src/components/credit-notes/list/locales/fi.ts +48 -0
  78. package/src/components/credit-notes/list/locales/hr.ts +12 -12
  79. package/src/components/credit-notes/list/locales/is.ts +48 -0
  80. package/src/components/credit-notes/list/locales/nb.ts +48 -0
  81. package/src/components/credit-notes/list/locales/sk.ts +48 -0
  82. package/src/components/credit-notes/list/locales/sv.ts +48 -0
  83. package/src/components/credit-notes/list/use-credit-note-download.ts +3 -5
  84. package/src/components/customers/create-customer-form/locales/bg.ts +21 -0
  85. package/src/components/customers/create-customer-form/locales/cs.ts +21 -0
  86. package/src/components/customers/create-customer-form/locales/en.ts +21 -0
  87. package/src/components/customers/create-customer-form/locales/et.ts +21 -0
  88. package/src/components/customers/create-customer-form/locales/fi.ts +21 -0
  89. package/src/components/customers/create-customer-form/locales/hr.ts +11 -11
  90. package/src/components/customers/create-customer-form/locales/is.ts +21 -0
  91. package/src/components/customers/create-customer-form/locales/nb.ts +21 -0
  92. package/src/components/customers/create-customer-form/locales/sk.ts +21 -0
  93. package/src/components/customers/create-customer-form/locales/sv.ts +21 -0
  94. package/src/components/customers/customer-autocomplete.tsx +32 -4
  95. package/src/components/customers/customer-list-table/customer-list-table.tsx +8 -6
  96. package/src/components/customers/customer-list-table/locales/bg.ts +25 -0
  97. package/src/components/customers/customer-list-table/locales/cs.ts +25 -0
  98. package/src/components/customers/customer-list-table/locales/en.ts +17 -2
  99. package/src/components/customers/customer-list-table/locales/et.ts +25 -0
  100. package/src/components/customers/customer-list-table/locales/fi.ts +25 -0
  101. package/src/components/customers/customer-list-table/locales/hr.ts +11 -11
  102. package/src/components/customers/customer-list-table/locales/is.ts +25 -0
  103. package/src/components/customers/customer-list-table/locales/nb.ts +25 -0
  104. package/src/components/customers/customer-list-table/locales/sk.ts +25 -0
  105. package/src/components/customers/customer-list-table/locales/sv.ts +25 -0
  106. package/src/components/customers/customers.hooks.ts +14 -17
  107. package/src/components/customers/edit-customer-form/locales/bg.ts +13 -0
  108. package/src/components/customers/edit-customer-form/locales/cs.ts +13 -0
  109. package/src/components/customers/edit-customer-form/locales/en.ts +13 -0
  110. package/src/components/customers/edit-customer-form/locales/et.ts +13 -0
  111. package/src/components/customers/edit-customer-form/locales/fi.ts +13 -0
  112. package/src/components/customers/edit-customer-form/locales/hr.ts +5 -5
  113. package/src/components/customers/edit-customer-form/locales/is.ts +13 -0
  114. package/src/components/customers/edit-customer-form/locales/nb.ts +13 -0
  115. package/src/components/customers/edit-customer-form/locales/sk.ts +13 -0
  116. package/src/components/customers/edit-customer-form/locales/sv.ts +13 -0
  117. package/src/components/dashboard/collection-rate-card/collection-rate-card.tsx +7 -6
  118. package/src/components/dashboard/collection-rate-card/locales/en.ts +3 -0
  119. package/src/components/dashboard/collection-rate-card/use-collection-rate.ts +8 -7
  120. package/src/components/dashboard/invoice-status-chart/invoice-status-chart.tsx +7 -4
  121. package/src/components/dashboard/invoice-status-chart/locales/bg.ts +5 -5
  122. package/src/components/dashboard/invoice-status-chart/locales/cs.ts +5 -5
  123. package/src/components/dashboard/invoice-status-chart/locales/de.ts +1 -1
  124. package/src/components/dashboard/invoice-status-chart/locales/en.ts +10 -0
  125. package/src/components/dashboard/invoice-status-chart/locales/es.ts +1 -1
  126. package/src/components/dashboard/invoice-status-chart/locales/et.ts +5 -5
  127. package/src/components/dashboard/invoice-status-chart/locales/fi.ts +5 -5
  128. package/src/components/dashboard/invoice-status-chart/locales/fr.ts +1 -1
  129. package/src/components/dashboard/invoice-status-chart/locales/hr.ts +5 -5
  130. package/src/components/dashboard/invoice-status-chart/locales/is.ts +5 -5
  131. package/src/components/dashboard/invoice-status-chart/locales/it.ts +1 -1
  132. package/src/components/dashboard/invoice-status-chart/locales/nb.ts +5 -5
  133. package/src/components/dashboard/invoice-status-chart/locales/nl.ts +1 -1
  134. package/src/components/dashboard/invoice-status-chart/locales/pl.ts +1 -1
  135. package/src/components/dashboard/invoice-status-chart/locales/pt.ts +1 -1
  136. package/src/components/dashboard/invoice-status-chart/locales/sk.ts +5 -5
  137. package/src/components/dashboard/invoice-status-chart/locales/sl.ts +1 -1
  138. package/src/components/dashboard/invoice-status-chart/locales/sv.ts +5 -5
  139. package/src/components/dashboard/payment-methods-chart/locales/bg.ts +5 -5
  140. package/src/components/dashboard/payment-methods-chart/locales/cs.ts +5 -5
  141. package/src/components/dashboard/payment-methods-chart/locales/en.ts +12 -0
  142. package/src/components/dashboard/payment-methods-chart/locales/et.ts +5 -5
  143. package/src/components/dashboard/payment-methods-chart/locales/fi.ts +6 -6
  144. package/src/components/dashboard/payment-methods-chart/locales/hr.ts +3 -3
  145. package/src/components/dashboard/payment-methods-chart/locales/is.ts +5 -5
  146. package/src/components/dashboard/payment-methods-chart/locales/nb.ts +5 -5
  147. package/src/components/dashboard/payment-methods-chart/locales/sk.ts +5 -5
  148. package/src/components/dashboard/payment-methods-chart/locales/sv.ts +5 -5
  149. package/src/components/dashboard/payment-methods-chart/payment-methods-chart.tsx +4 -3
  150. package/src/components/dashboard/payment-trend-chart/locales/bg.ts +1 -1
  151. package/src/components/dashboard/payment-trend-chart/locales/cs.ts +1 -1
  152. package/src/components/dashboard/payment-trend-chart/locales/en.ts +6 -0
  153. package/src/components/dashboard/payment-trend-chart/locales/et.ts +1 -1
  154. package/src/components/dashboard/payment-trend-chart/locales/fi.ts +1 -1
  155. package/src/components/dashboard/payment-trend-chart/locales/is.ts +1 -1
  156. package/src/components/dashboard/payment-trend-chart/locales/nb.ts +1 -1
  157. package/src/components/dashboard/payment-trend-chart/locales/sk.ts +1 -1
  158. package/src/components/dashboard/payment-trend-chart/locales/sv.ts +1 -1
  159. package/src/components/dashboard/payment-trend-chart/payment-trend-chart.tsx +4 -3
  160. package/src/components/dashboard/payment-trend-chart/use-payment-trend.ts +12 -9
  161. package/src/components/dashboard/revenue-card.tsx +3 -3
  162. package/src/components/dashboard/revenue-trend-chart/locales/bg.ts +1 -1
  163. package/src/components/dashboard/revenue-trend-chart/locales/cs.ts +1 -1
  164. package/src/components/dashboard/revenue-trend-chart/locales/en.ts +6 -0
  165. package/src/components/dashboard/revenue-trend-chart/locales/et.ts +1 -1
  166. package/src/components/dashboard/revenue-trend-chart/locales/fi.ts +1 -1
  167. package/src/components/dashboard/revenue-trend-chart/locales/is.ts +1 -1
  168. package/src/components/dashboard/revenue-trend-chart/locales/nb.ts +1 -1
  169. package/src/components/dashboard/revenue-trend-chart/locales/sk.ts +1 -1
  170. package/src/components/dashboard/revenue-trend-chart/locales/sv.ts +1 -1
  171. package/src/components/dashboard/revenue-trend-chart/revenue-trend-chart.tsx +4 -3
  172. package/src/components/dashboard/revenue-trend-chart/use-revenue-trend.ts +4 -3
  173. package/src/components/dashboard/shared/local-date.ts +11 -0
  174. package/src/components/dashboard/shared/use-revenue-data.ts +6 -5
  175. package/src/components/dashboard/shared/use-stats-query.ts +7 -11
  176. package/src/components/dashboard/stat-card.tsx +3 -3
  177. package/src/components/dashboard/tax-collected-card/tax-collected-card.tsx +11 -9
  178. package/src/components/dashboard/tax-collected-card/use-tax-collected.ts +3 -2
  179. package/src/components/dashboard/top-customers-chart/locales/bg.ts +2 -2
  180. package/src/components/dashboard/top-customers-chart/locales/cs.ts +2 -2
  181. package/src/components/dashboard/top-customers-chart/locales/en.ts +7 -0
  182. package/src/components/dashboard/top-customers-chart/locales/et.ts +2 -2
  183. package/src/components/dashboard/top-customers-chart/locales/fi.ts +2 -2
  184. package/src/components/dashboard/top-customers-chart/locales/is.ts +2 -2
  185. package/src/components/dashboard/top-customers-chart/locales/nb.ts +2 -2
  186. package/src/components/dashboard/top-customers-chart/locales/sk.ts +2 -2
  187. package/src/components/dashboard/top-customers-chart/locales/sv.ts +2 -2
  188. package/src/components/dashboard/top-customers-chart/top-customers-chart.tsx +4 -3
  189. package/src/components/dashboard/top-customers-chart/use-top-customers.ts +7 -20
  190. package/src/components/delivery-notes/create/create-delivery-note-form.tsx +179 -47
  191. package/src/components/delivery-notes/create/locales/bg.ts +69 -0
  192. package/src/components/delivery-notes/create/locales/cs.ts +69 -0
  193. package/src/components/delivery-notes/create/locales/de.ts +1 -0
  194. package/src/components/delivery-notes/create/locales/en.ts +69 -0
  195. package/src/components/delivery-notes/create/locales/es.ts +1 -0
  196. package/src/components/delivery-notes/create/locales/et.ts +69 -0
  197. package/src/components/delivery-notes/create/locales/fi.ts +69 -0
  198. package/src/components/delivery-notes/create/locales/fr.ts +1 -0
  199. package/src/components/delivery-notes/create/locales/hr.ts +7 -6
  200. package/src/components/delivery-notes/create/locales/is.ts +69 -0
  201. package/src/components/delivery-notes/create/locales/it.ts +1 -0
  202. package/src/components/delivery-notes/create/locales/nb.ts +69 -0
  203. package/src/components/delivery-notes/create/locales/nl.ts +1 -0
  204. package/src/components/delivery-notes/create/locales/pl.ts +1 -0
  205. package/src/components/delivery-notes/create/locales/pt.ts +1 -0
  206. package/src/components/delivery-notes/create/locales/sk.ts +69 -0
  207. package/src/components/delivery-notes/create/locales/sl.ts +6 -5
  208. package/src/components/delivery-notes/create/locales/sv.ts +69 -0
  209. package/src/components/delivery-notes/create/prepare-delivery-note-submission.ts +34 -1
  210. package/src/components/delivery-notes/delivery-notes.hooks.ts +34 -3
  211. package/src/components/delivery-notes/list/list-row-actions.tsx +62 -16
  212. package/src/components/delivery-notes/list/list-table.tsx +44 -10
  213. package/src/components/delivery-notes/list/locales/bg.ts +40 -0
  214. package/src/components/delivery-notes/list/locales/cs.ts +40 -0
  215. package/src/components/delivery-notes/list/locales/et.ts +40 -0
  216. package/src/components/delivery-notes/list/locales/fi.ts +40 -0
  217. package/src/components/delivery-notes/list/locales/is.ts +40 -0
  218. package/src/components/delivery-notes/list/locales/nb.ts +40 -0
  219. package/src/components/delivery-notes/list/locales/sk.ts +40 -0
  220. package/src/components/delivery-notes/list/locales/sv.ts +40 -0
  221. package/src/components/delivery-notes/list/use-delivery-note-download.ts +3 -5
  222. package/src/components/documents/create/custom-create-template.ts +114 -0
  223. package/src/components/documents/create/document-add-item-form.tsx +266 -153
  224. package/src/components/documents/create/document-add-item-tax-rate-field.tsx +3 -3
  225. package/src/components/documents/create/document-date-validation.ts +111 -0
  226. package/src/components/documents/create/document-details-section.tsx +117 -54
  227. package/src/components/documents/create/document-form-item.ts +67 -0
  228. package/src/components/documents/create/document-item-validation.ts +54 -0
  229. package/src/components/documents/create/document-items-section.tsx +44 -6
  230. package/src/components/documents/create/document-recipient-section.tsx +10 -2
  231. package/src/components/documents/create/form-types.ts +2 -2
  232. package/src/components/documents/create/linked-documents-info.tsx +6 -14
  233. package/src/components/documents/create/live-preview.tsx +22 -18
  234. package/src/components/documents/create/mark-as-paid-section.tsx +80 -20
  235. package/src/components/documents/create/payment-rows.ts +321 -0
  236. package/src/components/documents/create/prepare-document-submission.ts +160 -109
  237. package/src/components/documents/create/prepare-preview-data.ts +12 -0
  238. package/src/components/documents/create/preserved-expected-total.ts +90 -0
  239. package/src/components/documents/create/scroll-to-first-invalid-field.ts +27 -0
  240. package/src/components/documents/create/smart-code-insert-button.tsx +5 -53
  241. package/src/components/documents/create/use-document-customer-form.ts +74 -25
  242. package/src/components/documents/documents.hooks.ts +3 -5
  243. package/src/components/documents/index.ts +1 -0
  244. package/src/components/documents/public/index.ts +1 -0
  245. package/src/components/documents/public/public-document-summary.tsx +336 -0
  246. package/src/components/documents/shared/document-preview-display.tsx +65 -39
  247. package/src/components/documents/shared/index.ts +6 -1
  248. package/src/components/documents/shared/scaled-document-preview.tsx +33 -19
  249. package/src/components/documents/types.ts +24 -0
  250. package/src/components/documents/view/document-actions-bar.tsx +251 -63
  251. package/src/components/documents/view/document-activities-list.tsx +23 -11
  252. package/src/components/documents/view/document-details-card.tsx +11 -39
  253. package/src/components/documents/view/document-payments-list.tsx +114 -57
  254. package/src/components/documents/view/document-relations-list.tsx +26 -6
  255. package/src/components/documents/view/document-sidebar.tsx +25 -3
  256. package/src/components/documents/view/document-version-history.tsx +137 -0
  257. package/src/components/documents/view/index.ts +1 -0
  258. package/src/components/documents/view/locales/bg.ts +143 -0
  259. package/src/components/documents/view/locales/cs.ts +143 -0
  260. package/src/components/documents/view/locales/de.ts +13 -0
  261. package/src/components/documents/view/locales/en.ts +143 -0
  262. package/src/components/documents/view/locales/es.ts +13 -0
  263. package/src/components/documents/view/locales/et.ts +143 -0
  264. package/src/components/documents/view/locales/fi.ts +143 -0
  265. package/src/components/documents/view/locales/fr.ts +13 -0
  266. package/src/components/documents/view/locales/hr.ts +18 -5
  267. package/src/components/documents/view/locales/is.ts +143 -0
  268. package/src/components/documents/view/locales/it.ts +13 -0
  269. package/src/components/documents/view/locales/nb.ts +143 -0
  270. package/src/components/documents/view/locales/nl.ts +13 -0
  271. package/src/components/documents/view/locales/pl.ts +13 -0
  272. package/src/components/documents/view/locales/pt.ts +13 -0
  273. package/src/components/documents/view/locales/sk.ts +143 -0
  274. package/src/components/documents/view/locales/sl.ts +21 -8
  275. package/src/components/documents/view/locales/sv.ts +143 -0
  276. package/src/components/documents/view/use-document-download.ts +18 -17
  277. package/src/components/entities/create-entity-form.tsx +200 -12
  278. package/src/components/entities/entities.hooks.ts +15 -7
  279. package/src/components/entities/entity-settings-form/entity-settings-form.tsx +121 -65
  280. package/src/components/entities/entity-settings-form/input-with-preview.tsx +28 -4
  281. package/src/components/entities/entity-settings-form/locales/bg.ts +206 -0
  282. package/src/components/entities/entity-settings-form/locales/cs.ts +206 -0
  283. package/src/components/entities/entity-settings-form/locales/de.ts +17 -3
  284. package/src/components/entities/entity-settings-form/locales/en.ts +206 -0
  285. package/src/components/entities/entity-settings-form/locales/es.ts +15 -3
  286. package/src/components/entities/entity-settings-form/locales/et.ts +205 -0
  287. package/src/components/entities/entity-settings-form/locales/fi.ts +206 -0
  288. package/src/components/entities/entity-settings-form/locales/fr.ts +15 -3
  289. package/src/components/entities/entity-settings-form/locales/hr.ts +23 -11
  290. package/src/components/entities/entity-settings-form/locales/is.ts +206 -0
  291. package/src/components/entities/entity-settings-form/locales/it.ts +15 -3
  292. package/src/components/entities/entity-settings-form/locales/nb.ts +206 -0
  293. package/src/components/entities/entity-settings-form/locales/nl.ts +15 -3
  294. package/src/components/entities/entity-settings-form/locales/pl.ts +15 -3
  295. package/src/components/entities/entity-settings-form/locales/pt.ts +15 -3
  296. package/src/components/entities/entity-settings-form/locales/sk.ts +206 -0
  297. package/src/components/entities/entity-settings-form/locales/sl.ts +31 -18
  298. package/src/components/entities/entity-settings-form/locales/sv.ts +212 -0
  299. package/src/components/entities/fina-settings-form/fina-operator-required-dialog.tsx +34 -9
  300. package/src/components/entities/fina-settings-form/fina-settings-form.tsx +2 -0
  301. package/src/components/entities/fina-settings-form/fina-settings.hooks.ts +14 -45
  302. package/src/components/entities/fina-settings-form/locales/bg.ts +163 -0
  303. package/src/components/entities/fina-settings-form/locales/cs.ts +163 -0
  304. package/src/components/entities/fina-settings-form/locales/et.ts +163 -0
  305. package/src/components/entities/fina-settings-form/locales/fi.ts +163 -0
  306. package/src/components/entities/fina-settings-form/locales/hr.ts +11 -10
  307. package/src/components/entities/fina-settings-form/locales/is.ts +164 -0
  308. package/src/components/entities/fina-settings-form/locales/nb.ts +163 -0
  309. package/src/components/entities/fina-settings-form/locales/sk.ts +163 -0
  310. package/src/components/entities/fina-settings-form/locales/sl.ts +8 -7
  311. package/src/components/entities/fina-settings-form/locales/sv.ts +165 -0
  312. package/src/components/entities/furs-settings-form/furs-operator-required-dialog.tsx +34 -9
  313. package/src/components/entities/furs-settings-form/furs-settings-form.tsx +13 -1
  314. package/src/components/entities/furs-settings-form/furs-settings.hooks.ts +141 -42
  315. package/src/components/entities/furs-settings-form/locales/bg.ts +242 -0
  316. package/src/components/entities/furs-settings-form/locales/cs.ts +241 -0
  317. package/src/components/entities/furs-settings-form/locales/de.ts +42 -15
  318. package/src/components/entities/furs-settings-form/locales/en.ts +24 -0
  319. package/src/components/entities/furs-settings-form/locales/es.ts +42 -15
  320. package/src/components/entities/furs-settings-form/locales/et.ts +242 -0
  321. package/src/components/entities/furs-settings-form/locales/fi.ts +243 -0
  322. package/src/components/entities/furs-settings-form/locales/fr.ts +43 -15
  323. package/src/components/entities/furs-settings-form/locales/hr.ts +44 -19
  324. package/src/components/entities/furs-settings-form/locales/is.ts +242 -0
  325. package/src/components/entities/furs-settings-form/locales/it.ts +42 -15
  326. package/src/components/entities/furs-settings-form/locales/nb.ts +242 -0
  327. package/src/components/entities/furs-settings-form/locales/nl.ts +42 -15
  328. package/src/components/entities/furs-settings-form/locales/pl.ts +40 -15
  329. package/src/components/entities/furs-settings-form/locales/pt.ts +42 -15
  330. package/src/components/entities/furs-settings-form/locales/sk.ts +243 -0
  331. package/src/components/entities/furs-settings-form/locales/sl.ts +34 -10
  332. package/src/components/entities/furs-settings-form/locales/sv.ts +242 -0
  333. package/src/components/entities/furs-settings-form/sections/enable-fiscalization-section.tsx +11 -0
  334. package/src/components/entities/furs-settings-form/sections/furs-internal-act-download-card.tsx +111 -0
  335. package/src/components/entities/furs-settings-form/sections/general-settings-section.tsx +27 -0
  336. package/src/components/entities/furs-settings-form/sections/premises-management-section.tsx +23 -16
  337. package/src/components/entities/furs-settings-form/sections/register-premise-dialog.tsx +89 -31
  338. package/src/components/entities/settings/branding-settings-form.tsx +11 -30
  339. package/src/components/entities/settings/company-settings-form.tsx +2 -1
  340. package/src/components/entities/settings/defaults-settings-form.tsx +106 -3
  341. package/src/components/entities/settings/email-settings-form.tsx +245 -3
  342. package/src/components/entities/settings/eslog-settings-form.tsx +2 -1
  343. package/src/components/entities/settings/number-format-settings-form.tsx +2 -1
  344. package/src/components/entities/settings/pdf-template-selector/locales/bg.ts +20 -0
  345. package/src/components/entities/settings/pdf-template-selector/locales/cs.ts +20 -0
  346. package/src/components/entities/settings/pdf-template-selector/locales/en.ts +20 -0
  347. package/src/components/entities/settings/pdf-template-selector/locales/et.ts +19 -0
  348. package/src/components/entities/settings/pdf-template-selector/locales/fi.ts +20 -0
  349. package/src/components/entities/settings/pdf-template-selector/locales/is.ts +19 -0
  350. package/src/components/entities/settings/pdf-template-selector/locales/nb.ts +19 -0
  351. package/src/components/entities/settings/pdf-template-selector/locales/sk.ts +20 -0
  352. package/src/components/entities/settings/pdf-template-selector/locales/sv.ts +19 -0
  353. package/src/components/entities/settings/tax-rules-settings-form.tsx +57 -6
  354. package/src/components/estimates/create/create-estimate-form.tsx +250 -66
  355. package/src/components/estimates/create/locales/bg.ts +77 -0
  356. package/src/components/estimates/create/locales/cs.ts +77 -0
  357. package/src/components/estimates/create/locales/de.ts +4 -3
  358. package/src/components/estimates/create/locales/en.ts +77 -0
  359. package/src/components/estimates/create/locales/es.ts +4 -3
  360. package/src/components/estimates/create/locales/et.ts +77 -0
  361. package/src/components/estimates/create/locales/fi.ts +77 -0
  362. package/src/components/estimates/create/locales/fr.ts +4 -3
  363. package/src/components/estimates/create/locales/hr.ts +13 -12
  364. package/src/components/estimates/create/locales/is.ts +77 -0
  365. package/src/components/estimates/create/locales/it.ts +4 -3
  366. package/src/components/estimates/create/locales/nb.ts +77 -0
  367. package/src/components/estimates/create/locales/nl.ts +4 -3
  368. package/src/components/estimates/create/locales/pl.ts +4 -3
  369. package/src/components/estimates/create/locales/pt.ts +4 -3
  370. package/src/components/estimates/create/locales/sk.ts +77 -0
  371. package/src/components/estimates/create/locales/sl.ts +13 -12
  372. package/src/components/estimates/create/locales/sv.ts +77 -0
  373. package/src/components/estimates/create/prepare-estimate-submission.ts +41 -4
  374. package/src/components/estimates/estimates.hooks.ts +24 -3
  375. package/src/components/estimates/list/list-row-actions.tsx +34 -7
  376. package/src/components/estimates/list/list-table.tsx +89 -11
  377. package/src/components/estimates/list/locales/bg.ts +40 -0
  378. package/src/components/estimates/list/locales/cs.ts +40 -0
  379. package/src/components/estimates/list/locales/de.ts +2 -0
  380. package/src/components/estimates/list/locales/en.ts +29 -2
  381. package/src/components/estimates/list/locales/es.ts +2 -0
  382. package/src/components/estimates/list/locales/et.ts +40 -0
  383. package/src/components/estimates/list/locales/fi.ts +40 -0
  384. package/src/components/estimates/list/locales/fr.ts +2 -0
  385. package/src/components/estimates/list/locales/hr.ts +9 -7
  386. package/src/components/estimates/list/locales/is.ts +40 -0
  387. package/src/components/estimates/list/locales/it.ts +2 -0
  388. package/src/components/estimates/list/locales/nb.ts +40 -0
  389. package/src/components/estimates/list/locales/nl.ts +2 -0
  390. package/src/components/estimates/list/locales/pl.ts +2 -0
  391. package/src/components/estimates/list/locales/pt.ts +2 -0
  392. package/src/components/estimates/list/locales/sk.ts +40 -0
  393. package/src/components/estimates/list/locales/sl.ts +9 -7
  394. package/src/components/estimates/list/locales/sv.ts +40 -0
  395. package/src/components/estimates/list/use-estimate-download.ts +3 -5
  396. package/src/components/export/document-export-form.tsx +72 -15
  397. package/src/components/export/sales-per-item-export-form.tsx +3 -2
  398. package/src/components/invoices/create/create-invoice-form.tsx +500 -112
  399. package/src/components/invoices/create/eslog-validation.ts +97 -8
  400. package/src/components/invoices/create/locales/bg.ts +173 -0
  401. package/src/components/invoices/create/locales/cs.ts +173 -0
  402. package/src/components/invoices/create/locales/de.ts +41 -9
  403. package/src/components/invoices/create/locales/en.ts +173 -0
  404. package/src/components/invoices/create/locales/es.ts +42 -9
  405. package/src/components/invoices/create/locales/et.ts +173 -0
  406. package/src/components/invoices/create/locales/fi.ts +173 -0
  407. package/src/components/invoices/create/locales/fr.ts +42 -11
  408. package/src/components/invoices/create/locales/hr.ts +50 -18
  409. package/src/components/invoices/create/locales/is.ts +173 -0
  410. package/src/components/invoices/create/locales/it.ts +43 -11
  411. package/src/components/invoices/create/locales/nb.ts +173 -0
  412. package/src/components/invoices/create/locales/nl.ts +42 -10
  413. package/src/components/invoices/create/locales/pl.ts +42 -11
  414. package/src/components/invoices/create/locales/pt.ts +43 -10
  415. package/src/components/invoices/create/locales/sk.ts +173 -0
  416. package/src/components/invoices/create/locales/sl.ts +49 -18
  417. package/src/components/invoices/create/locales/sv.ts +175 -0
  418. package/src/components/invoices/create/prepare-invoice-submission.ts +73 -2
  419. package/src/components/invoices/invoices-furs.hooks.ts +11 -8
  420. package/src/components/invoices/invoices.hooks.ts +36 -10
  421. package/src/components/invoices/list/list-row-actions.tsx +54 -21
  422. package/src/components/invoices/list/list-table.tsx +94 -12
  423. package/src/components/invoices/list/locales/bg.ts +49 -0
  424. package/src/components/invoices/list/locales/cs.ts +49 -0
  425. package/src/components/invoices/list/locales/en.ts +34 -2
  426. package/src/components/invoices/list/locales/et.ts +49 -0
  427. package/src/components/invoices/list/locales/fi.ts +49 -0
  428. package/src/components/invoices/list/locales/is.ts +49 -0
  429. package/src/components/invoices/list/locales/nb.ts +49 -0
  430. package/src/components/invoices/list/locales/sk.ts +49 -0
  431. package/src/components/invoices/list/locales/sv.ts +49 -0
  432. package/src/components/invoices/list/use-invoice-download.ts +3 -5
  433. package/src/components/invoices/send-email-dialog/locales/bg.ts +63 -0
  434. package/src/components/invoices/send-email-dialog/locales/cs.ts +63 -0
  435. package/src/components/invoices/send-email-dialog/locales/de.ts +26 -0
  436. package/src/components/invoices/send-email-dialog/locales/en.ts +63 -0
  437. package/src/components/invoices/send-email-dialog/locales/es.ts +26 -0
  438. package/src/components/invoices/send-email-dialog/locales/et.ts +63 -0
  439. package/src/components/invoices/send-email-dialog/locales/fi.ts +63 -0
  440. package/src/components/invoices/send-email-dialog/locales/fr.ts +26 -0
  441. package/src/components/invoices/send-email-dialog/locales/hr.ts +26 -0
  442. package/src/components/invoices/send-email-dialog/locales/is.ts +63 -0
  443. package/src/components/invoices/send-email-dialog/locales/it.ts +26 -0
  444. package/src/components/invoices/send-email-dialog/locales/nb.ts +63 -0
  445. package/src/components/invoices/send-email-dialog/locales/nl.ts +26 -0
  446. package/src/components/invoices/send-email-dialog/locales/pl.ts +26 -0
  447. package/src/components/invoices/send-email-dialog/locales/pt.ts +26 -0
  448. package/src/components/invoices/send-email-dialog/locales/sk.ts +63 -0
  449. package/src/components/invoices/send-email-dialog/locales/sl.ts +26 -0
  450. package/src/components/invoices/send-email-dialog/locales/sv.ts +63 -0
  451. package/src/components/invoices/send-email-dialog/send-email-dialog.tsx +189 -93
  452. package/src/components/invoices/view/eslog-info-display.tsx +2 -0
  453. package/src/components/invoices/view/fiscalization-status-card.tsx +2 -0
  454. package/src/components/items/create-item-form/create-item-form.tsx +29 -0
  455. package/src/components/items/create-item-form/locales/bg.ts +13 -0
  456. package/src/components/items/create-item-form/locales/cs.ts +13 -0
  457. package/src/components/items/create-item-form/locales/et.ts +13 -0
  458. package/src/components/items/create-item-form/locales/fi.ts +13 -0
  459. package/src/components/items/create-item-form/locales/is.ts +13 -0
  460. package/src/components/items/create-item-form/locales/nb.ts +13 -0
  461. package/src/components/items/create-item-form/locales/sk.ts +13 -0
  462. package/src/components/items/create-item-form/locales/sv.ts +13 -0
  463. package/src/components/items/edit-item-form/edit-item-form.tsx +39 -1
  464. package/src/components/items/edit-item-form/locales/bg.ts +12 -0
  465. package/src/components/items/edit-item-form/locales/cs.ts +12 -0
  466. package/src/components/items/edit-item-form/locales/en.ts +12 -0
  467. package/src/components/items/edit-item-form/locales/et.ts +12 -0
  468. package/src/components/items/edit-item-form/locales/fi.ts +12 -0
  469. package/src/components/items/edit-item-form/locales/is.ts +12 -0
  470. package/src/components/items/edit-item-form/locales/nb.ts +12 -0
  471. package/src/components/items/edit-item-form/locales/sk.ts +12 -0
  472. package/src/components/items/edit-item-form/locales/sv.ts +12 -0
  473. package/src/components/items/item-combobox.tsx +55 -22
  474. package/src/components/items/item-list-table/item-list-table.tsx +47 -23
  475. package/src/components/items/item-list-table/locales/bg.ts +16 -0
  476. package/src/components/items/item-list-table/locales/cs.ts +16 -0
  477. package/src/components/items/item-list-table/locales/en.ts +4 -3
  478. package/src/components/items/item-list-table/locales/et.ts +16 -0
  479. package/src/components/items/item-list-table/locales/fi.ts +16 -0
  480. package/src/components/items/item-list-table/locales/is.ts +16 -0
  481. package/src/components/items/item-list-table/locales/nb.ts +16 -0
  482. package/src/components/items/item-list-table/locales/sk.ts +16 -0
  483. package/src/components/items/item-list-table/locales/sv.ts +16 -0
  484. package/src/components/items/items.hooks.ts +15 -15
  485. package/src/components/payments/create-payment-form/create-payment-form.tsx +16 -9
  486. package/src/components/payments/create-payment-form/locales/bg.ts +20 -0
  487. package/src/components/payments/create-payment-form/locales/cs.ts +20 -0
  488. package/src/components/payments/create-payment-form/locales/en.ts +20 -0
  489. package/src/components/payments/create-payment-form/locales/et.ts +20 -0
  490. package/src/components/payments/create-payment-form/locales/fi.ts +20 -0
  491. package/src/components/payments/create-payment-form/locales/hr.ts +2 -2
  492. package/src/components/payments/create-payment-form/locales/is.ts +20 -0
  493. package/src/components/payments/create-payment-form/locales/nb.ts +20 -0
  494. package/src/components/payments/create-payment-form/locales/sk.ts +20 -0
  495. package/src/components/payments/create-payment-form/locales/sl.ts +4 -4
  496. package/src/components/payments/create-payment-form/locales/sv.ts +20 -0
  497. package/src/components/payments/edit-payment-form/edit-payment-form.tsx +10 -2
  498. package/src/components/payments/edit-payment-form/locales/bg.ts +20 -0
  499. package/src/components/payments/edit-payment-form/locales/cs.ts +20 -0
  500. package/src/components/payments/edit-payment-form/locales/en.ts +20 -0
  501. package/src/components/payments/edit-payment-form/locales/et.ts +20 -0
  502. package/src/components/payments/edit-payment-form/locales/fi.ts +20 -0
  503. package/src/components/payments/edit-payment-form/locales/hr.ts +2 -2
  504. package/src/components/payments/edit-payment-form/locales/is.ts +20 -0
  505. package/src/components/payments/edit-payment-form/locales/nb.ts +20 -0
  506. package/src/components/payments/edit-payment-form/locales/sk.ts +20 -0
  507. package/src/components/payments/edit-payment-form/locales/sl.ts +4 -4
  508. package/src/components/payments/edit-payment-form/locales/sv.ts +20 -0
  509. package/src/components/payments/list/list-row-actions.tsx +10 -2
  510. package/src/components/payments/list/list-table.tsx +51 -45
  511. package/src/components/payments/list/locales/bg.ts +42 -0
  512. package/src/components/payments/list/locales/cs.ts +42 -0
  513. package/src/components/payments/list/locales/de.ts +18 -0
  514. package/src/components/payments/list/locales/en.ts +37 -2
  515. package/src/components/payments/list/locales/es.ts +18 -0
  516. package/src/components/payments/list/locales/et.ts +42 -0
  517. package/src/components/payments/list/locales/fi.ts +42 -0
  518. package/src/components/payments/list/locales/fr.ts +18 -0
  519. package/src/components/payments/list/locales/hr.ts +18 -0
  520. package/src/components/payments/list/locales/is.ts +42 -0
  521. package/src/components/payments/list/locales/it.ts +18 -0
  522. package/src/components/payments/list/locales/nb.ts +42 -0
  523. package/src/components/payments/list/locales/nl.ts +18 -0
  524. package/src/components/payments/list/locales/pl.ts +18 -0
  525. package/src/components/payments/list/locales/pt.ts +18 -0
  526. package/src/components/payments/list/locales/sk.ts +42 -0
  527. package/src/components/payments/list/locales/sl.ts +18 -1
  528. package/src/components/payments/list/locales/sv.ts +42 -0
  529. package/src/components/payments/payments.hooks.ts +13 -6
  530. package/src/components/recurring-invoices/create-recurring-invoice-form/create-recurring-invoice-form.tsx +121 -39
  531. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/bg.ts +44 -0
  532. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/cs.ts +44 -0
  533. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/en.ts +44 -0
  534. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/et.ts +44 -0
  535. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/fi.ts +44 -0
  536. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/hr.ts +6 -6
  537. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/is.ts +44 -0
  538. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/nb.ts +44 -0
  539. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/sk.ts +44 -0
  540. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/sl.ts +4 -4
  541. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/sv.ts +44 -0
  542. package/src/components/recurring-invoices/list/list-row-actions.tsx +12 -6
  543. package/src/components/recurring-invoices/list/list-table.tsx +63 -12
  544. package/src/components/recurring-invoices/list/locales/bg.ts +32 -0
  545. package/src/components/recurring-invoices/list/locales/cs.ts +32 -0
  546. package/src/components/recurring-invoices/list/locales/de.ts +4 -0
  547. package/src/components/recurring-invoices/list/locales/en.ts +27 -0
  548. package/src/components/recurring-invoices/list/locales/es.ts +4 -0
  549. package/src/components/recurring-invoices/list/locales/et.ts +32 -0
  550. package/src/components/recurring-invoices/list/locales/fi.ts +32 -0
  551. package/src/components/recurring-invoices/list/locales/fr.ts +4 -0
  552. package/src/components/recurring-invoices/list/locales/hr.ts +4 -0
  553. package/src/components/recurring-invoices/list/locales/is.ts +32 -0
  554. package/src/components/recurring-invoices/list/locales/it.ts +4 -0
  555. package/src/components/recurring-invoices/list/locales/nb.ts +32 -0
  556. package/src/components/recurring-invoices/list/locales/nl.ts +4 -0
  557. package/src/components/recurring-invoices/list/locales/pl.ts +4 -0
  558. package/src/components/recurring-invoices/list/locales/pt.ts +4 -0
  559. package/src/components/recurring-invoices/list/locales/sk.ts +32 -0
  560. package/src/components/recurring-invoices/list/locales/sl.ts +4 -0
  561. package/src/components/recurring-invoices/list/locales/sv.ts +32 -0
  562. package/src/components/recurring-invoices/recurring-invoices.hooks.ts +11 -8
  563. package/src/components/request-logs/request-log-detail.tsx +30 -23
  564. package/src/components/request-logs/request-log-list-table.tsx +88 -45
  565. package/src/components/table/README.md +47 -9
  566. package/src/components/table/data-table.tsx +232 -92
  567. package/src/components/table/filter-bar.tsx +1 -1
  568. package/src/components/table/filter-panel.tsx +51 -22
  569. package/src/components/table/hooks/use-table-state.ts +64 -11
  570. package/src/components/table/index.ts +3 -0
  571. package/src/components/table/locales.ts +119 -4
  572. package/src/components/table/selection-toolbar.tsx +65 -9
  573. package/src/components/table/sorting.ts +80 -0
  574. package/src/components/table/table-skeleton.tsx +15 -9
  575. package/src/components/table/types.ts +17 -0
  576. package/src/components/tax-reports/index.ts +8 -0
  577. package/src/components/tax-reports/kir-export-form.tsx +4 -5
  578. package/src/components/tax-reports/slovenia-accounting-mappings-fields.tsx +271 -0
  579. package/src/components/tax-reports/slovenia-tax-profile-step.tsx +25 -11
  580. package/src/components/tax-reports/slovenia-vod-export-form.tsx +452 -0
  581. package/src/components/tax-reports/slovenia-yearly-export-form.tsx +20 -16
  582. package/src/components/tax-reports/slovenia-yearly-review-step.tsx +42 -19
  583. package/src/components/taxes/create-tax-form/create-tax-form.tsx +48 -2
  584. package/src/components/taxes/create-tax-form/locales/bg.ts +8 -0
  585. package/src/components/taxes/create-tax-form/locales/cs.ts +8 -0
  586. package/src/components/taxes/create-tax-form/locales/et.ts +8 -0
  587. package/src/components/taxes/create-tax-form/locales/fi.ts +8 -0
  588. package/src/components/taxes/create-tax-form/locales/is.ts +8 -0
  589. package/src/components/taxes/create-tax-form/locales/nb.ts +8 -0
  590. package/src/components/taxes/create-tax-form/locales/sk.ts +8 -0
  591. package/src/components/taxes/create-tax-form/locales/sv.ts +8 -0
  592. package/src/components/taxes/edit-tax-form/edit-tax-form.tsx +80 -11
  593. package/src/components/taxes/edit-tax-form/locales/bg.ts +6 -0
  594. package/src/components/taxes/edit-tax-form/locales/cs.ts +6 -0
  595. package/src/components/taxes/edit-tax-form/locales/en.ts +6 -0
  596. package/src/components/taxes/edit-tax-form/locales/et.ts +6 -0
  597. package/src/components/taxes/edit-tax-form/locales/fi.ts +6 -0
  598. package/src/components/taxes/edit-tax-form/locales/is.ts +6 -0
  599. package/src/components/taxes/edit-tax-form/locales/nb.ts +6 -0
  600. package/src/components/taxes/edit-tax-form/locales/sk.ts +6 -0
  601. package/src/components/taxes/edit-tax-form/locales/sv.ts +6 -0
  602. package/src/components/taxes/tax-list-table/locales/bg.ts +17 -0
  603. package/src/components/taxes/tax-list-table/locales/cs.ts +17 -0
  604. package/src/components/taxes/tax-list-table/locales/en.ts +4 -3
  605. package/src/components/taxes/tax-list-table/locales/et.ts +17 -0
  606. package/src/components/taxes/tax-list-table/locales/fi.ts +17 -0
  607. package/src/components/taxes/tax-list-table/locales/is.ts +17 -0
  608. package/src/components/taxes/tax-list-table/locales/nb.ts +17 -0
  609. package/src/components/taxes/tax-list-table/locales/sk.ts +17 -0
  610. package/src/components/taxes/tax-list-table/locales/sv.ts +17 -0
  611. package/src/components/taxes/tax-list-table/tax-list-table.tsx +53 -19
  612. package/src/components/taxes/taxes.hooks.ts +53 -12
  613. package/src/components/ui/badge.tsx +1 -1
  614. package/src/components/ui/button.tsx +1 -1
  615. package/src/components/ui/drawer.tsx +2 -2
  616. package/src/components/ui/form.tsx +118 -10
  617. package/src/components/ui/progress.tsx +6 -4
  618. package/src/components/ui/select.tsx +118 -2
  619. package/src/components/ui/sidebar.tsx +2 -2
  620. package/src/components/ui/sonner.tsx +17 -36
  621. package/src/components/ui/sticky-form-footer.tsx +6 -1
  622. package/src/components/ui/tooltip.tsx +15 -2
  623. package/src/components/webhook-logs/webhook-delivery-detail.tsx +22 -22
  624. package/src/components/webhook-logs/webhook-delivery-list-table.tsx +92 -17
  625. package/src/components/wl-subscription/locked-feature.tsx +11 -10
  626. package/src/components/wl-subscription/paywall.tsx +184 -72
  627. package/src/components/wl-subscription/upgrade-modal.tsx +28 -31
  628. package/src/generate-schemas.ts +146 -103
  629. package/src/generated/schemas/acceptentityinvitation_body.ts +4 -3
  630. package/src/generated/schemas/accountwebhook.ts +63 -0
  631. package/src/generated/schemas/addentityuser_body.ts +4 -3
  632. package/src/generated/schemas/advanceinvoice.ts +167 -168
  633. package/src/generated/schemas/authorizeshopify_body.ts +4 -3
  634. package/src/generated/schemas/calculatedocumentpreview.ts +120 -0
  635. package/src/generated/schemas/checktransactiontype.ts +35 -0
  636. package/src/generated/schemas/creditnote.ts +203 -76
  637. package/src/generated/schemas/customadvanceinvoice.ts +172 -165
  638. package/src/generated/schemas/customcreditnote.ts +183 -155
  639. package/src/generated/schemas/customdeliverynote.ts +166 -0
  640. package/src/generated/schemas/customer.ts +4 -8
  641. package/src/generated/schemas/customestimate.ts +123 -97
  642. package/src/generated/schemas/customincomingpurchasedocument.ts +142 -0
  643. package/src/generated/schemas/custominvoice.ts +183 -154
  644. package/src/generated/schemas/deliverynote.ts +124 -79
  645. package/src/generated/schemas/einvoice.ts +19 -0
  646. package/src/generated/schemas/einvoicingsettings.ts +21 -0
  647. package/src/generated/schemas/einvoicingsupplier.ts +45 -0
  648. package/src/generated/schemas/entity.ts +267 -24
  649. package/src/generated/schemas/entityapikey.ts +1 -3
  650. package/src/generated/schemas/entityuserrole.ts +1 -3
  651. package/src/generated/schemas/estimate.ts +120 -127
  652. package/src/generated/schemas/exportsloveniavodxml_body.ts +17 -0
  653. package/src/generated/schemas/exportsloveniayearlynormiranireport_body.ts +4 -3
  654. package/src/generated/schemas/finadevice.ts +15 -0
  655. package/src/generated/schemas/finalizedocument.ts +52 -0
  656. package/src/generated/schemas/finapremise.ts +15 -0
  657. package/src/generated/schemas/finasettings.ts +1 -3
  658. package/src/generated/schemas/furselectronicdevice.ts +15 -0
  659. package/src/generated/schemas/furssettings.ts +2 -3
  660. package/src/generated/schemas/image.ts +15 -0
  661. package/src/generated/schemas/incomingpurchasedocument.ts +178 -0
  662. package/src/generated/schemas/incomingpurchasedocumentattachment.ts +15 -0
  663. package/src/generated/schemas/incomingpurchasedocumentpayment.ts +36 -0
  664. package/src/generated/schemas/index.ts +30 -5
  665. package/src/generated/schemas/invoice.ts +182 -183
  666. package/src/generated/schemas/item.ts +35 -3
  667. package/src/generated/schemas/legacymigrationauth.ts +18 -0
  668. package/src/generated/schemas/me.ts +4 -22
  669. package/src/generated/schemas/migrationjob.ts +20 -0
  670. package/src/generated/schemas/order.ts +6 -8
  671. package/src/generated/schemas/orderintegration.ts +12 -12
  672. package/src/generated/schemas/payment.ts +9 -8
  673. package/src/generated/schemas/ptatcudseries.ts +28 -0
  674. package/src/generated/schemas/queryentitystats.ts +15 -0
  675. package/src/generated/schemas/recurringinvoice.ts +4 -8
  676. package/src/generated/schemas/registerfursmovablepremise_body.ts +1 -3
  677. package/src/generated/schemas/registerfursrealestatepremise_body.ts +1 -3
  678. package/src/generated/schemas/renderadvanceinvoicepreview_body.ts +42 -16
  679. package/src/generated/schemas/rendercreditnotepreview_body.ts +42 -16
  680. package/src/generated/schemas/renderdeliverynotepreview_body.ts +19 -8
  681. package/src/generated/schemas/renderestimatepreview_body.ts +45 -8
  682. package/src/generated/schemas/renderinvoicepreview_body.ts +46 -18
  683. package/src/generated/schemas/reviewsloveniayearlynormiranireport.ts +15 -0
  684. package/src/generated/schemas/searcheinvoicingcustomer.ts +18 -0
  685. package/src/generated/schemas/senddocument_body.ts +2 -3
  686. package/src/generated/schemas/sendemail_body.ts +48 -42
  687. package/src/generated/schemas/sloveniataxprofile.ts +98 -24
  688. package/src/generated/schemas/starteslogexport_body.ts +34 -0
  689. package/src/generated/schemas/startpdfexport_body.ts +18 -81
  690. package/src/generated/schemas/stripeappconnect_body.ts +4 -3
  691. package/src/generated/schemas/stripeappcreateinvoice_body.ts +4 -6
  692. package/src/generated/schemas/stripeappmarketplaceauthorize.ts +15 -0
  693. package/src/generated/schemas/stripeappupdatesettings_body.ts +6 -6
  694. package/src/generated/schemas/supplier.ts +55 -0
  695. package/src/generated/schemas/syncshopifyorders_body.ts +21 -0
  696. package/src/generated/schemas/tax.ts +8 -8
  697. package/src/generated/schemas/uploadfile_body.ts +2 -3
  698. package/src/generated/schemas/uploadfurscertificate_body.ts +6 -6
  699. package/src/generated/schemas/userfinasettings.ts +1 -3
  700. package/src/generated/schemas/userfurssettings.ts +1 -3
  701. package/src/generated/schemas/userptsettings.ts +24 -0
  702. package/src/generated/schemas/voidinvoice_body.ts +25 -0
  703. package/src/generated/schemas/webhook.ts +6 -8
  704. package/src/generated/schemas/wlsubscriptionbillingemail.ts +17 -0
  705. package/src/hooks/create-resource-hooks.ts +22 -19
  706. package/src/hooks/use-duplicate-document.ts +71 -38
  707. package/src/hooks/use-eslog-validation.ts +5 -1
  708. package/src/hooks/use-next-document-number.ts +13 -6
  709. package/src/hooks/use-resolved-entity-id.ts +14 -0
  710. package/src/hooks/use-resource-mutation.ts +11 -30
  711. package/src/hooks/use-transaction-type-check.ts +3 -8
  712. package/src/lib/browser-cookies.ts +1 -1
  713. package/src/lib/country-capabilities.ts +114 -0
  714. package/src/lib/date-fns-locale.ts +1 -20
  715. package/src/lib/date-only.ts +58 -0
  716. package/src/lib/document-display.ts +18 -0
  717. package/src/lib/eslog-export.ts +32 -0
  718. package/src/lib/fiscalization-options.ts +21 -1
  719. package/src/lib/formatting.ts +27 -0
  720. package/src/lib/furs-error-utils.ts +29 -0
  721. package/src/lib/locale.ts +4 -0
  722. package/src/lib/payment-display.ts +97 -0
  723. package/src/lib/pt-document-input.ts +67 -0
  724. package/src/lib/schemas/shared.ts +12 -0
  725. package/src/lib/template-variables.tsx +102 -4
  726. package/src/lib/translation.ts +51 -33
  727. package/src/lib/white-label-capabilities.ts +626 -0
  728. package/src/lib/zod-validation-message.ts +291 -0
  729. package/src/providers/entities-provider.tsx +32 -14
  730. package/src/providers/sdk-provider.tsx +112 -12
  731. package/src/providers/space-invoices-provider.tsx +129 -0
  732. package/src/providers/white-label-provider.tsx +96 -4
  733. package/src/providers/wl-subscription-provider.tsx +149 -10
  734. package/src/generated/schemas/previewadvanceinvoice_body.ts +0 -354
  735. package/src/generated/schemas/previewestimate_body.ts +0 -309
  736. package/src/generated/schemas/registerfinamovablepremise_body.ts +0 -26
  737. package/src/generated/schemas/registerfinarealestatepremise_body.ts +0 -37
  738. package/src/generated/schemas/renderdocument_body.ts +0 -594
@@ -1,25 +1,57 @@
1
1
  import { getClientHeaders } from "@spaceinvoices/js-sdk";
2
2
  import type { ReactNode } from "react";
3
3
  import { createContext, useCallback, useContext, useEffect, useMemo, useState } from "react";
4
+ import {
5
+ getEffectiveWhiteLabelHiddenFeatures,
6
+ isWhiteLabelCapabilityVisible,
7
+ isWhiteLabelUiControlVisible,
8
+ type WhiteLabelActionControlId,
9
+ type WhiteLabelCapabilityId,
10
+ } from "@/ui/lib/white-label-capabilities";
11
+ import { useEntitiesOptional } from "./entities-context";
4
12
 
5
13
  export type WhiteLabelConfig = {
6
14
  slug: string;
7
15
  name: string;
16
+ appName: string | null;
17
+ shortName: string | null;
18
+ logoUrl: string | null;
19
+ faviconUrl: string | null;
20
+ themeColor: string | null;
8
21
  hiddenFeatures: string[]; // Features hidden from UI (still available via API)
22
+ hideNewFeaturesByDefault: boolean;
23
+ reviewedFeatureCatalogIds: string[];
24
+ billingEnabled: boolean; // Whether billing-related UI should be available
25
+ accountUsersFullUiEnabled: boolean; // Whether account users bypass white-label UI hiding
9
26
  halAppId: string | null; // Hal app ID for chat widget (null = no Hal integration)
27
+ supportEmail: string | null; // White-label support contact email
10
28
  };
11
29
 
12
30
  // Default config until API responds (Space Invoices = all features visible)
13
31
  const DEFAULT_CONFIG: WhiteLabelConfig = {
14
32
  slug: "space-invoices",
15
33
  name: "Space Invoices",
34
+ appName: "Space Invoices",
35
+ shortName: "Space Invoices",
36
+ logoUrl: null,
37
+ faviconUrl: null,
38
+ themeColor: null,
16
39
  hiddenFeatures: [],
40
+ hideNewFeaturesByDefault: false,
41
+ reviewedFeatureCatalogIds: [],
42
+ billingEnabled: false,
43
+ accountUsersFullUiEnabled: true,
17
44
  halAppId: null,
45
+ supportEmail: null,
18
46
  };
19
47
 
20
48
  type WhiteLabelContextType = WhiteLabelConfig & {
21
49
  /** Check if a feature is visible (not hidden) for this white-label */
22
50
  isFeatureVisible: (feature: string) => boolean;
51
+ /** Check if a capability is visible after country/entity and white-label rules are applied */
52
+ isCapabilityVisible: (capability: WhiteLabelCapabilityId) => boolean;
53
+ /** Check if a standalone UI control is visible after white-label and parent capability rules are applied */
54
+ isUiControlVisible: (control: WhiteLabelActionControlId) => boolean;
23
55
  isLoading: boolean;
24
56
  };
25
57
 
@@ -32,13 +64,16 @@ type WhiteLabelProviderProps = {
32
64
  children: ReactNode;
33
65
  /** Optional API base URL (defaults to empty string for same-origin) */
34
66
  apiBaseUrl?: string;
67
+ /** Whether the current authenticated user is an account user without an attached account_id */
68
+ isAccountUser?: boolean;
35
69
  };
36
70
 
37
71
  /**
38
72
  * WhiteLabelProvider component
39
73
  * Fetches white-label configuration from the API and provides it to the application
40
74
  */
41
- export function WhiteLabelProvider({ children, apiBaseUrl = "" }: WhiteLabelProviderProps) {
75
+ export function WhiteLabelProvider({ children, apiBaseUrl = "", isAccountUser = false }: WhiteLabelProviderProps) {
76
+ const entitiesContext = useEntitiesOptional();
42
77
  const [config, setConfig] = useState<WhiteLabelConfig>(DEFAULT_CONFIG);
43
78
  const [isLoading, setIsLoading] = useState(true);
44
79
 
@@ -54,8 +89,18 @@ export function WhiteLabelProvider({ children, apiBaseUrl = "" }: WhiteLabelProv
54
89
  setConfig({
55
90
  slug: data.slug,
56
91
  name: data.name,
92
+ appName: data.app_name ?? data.name,
93
+ shortName: data.short_name ?? data.name,
94
+ logoUrl: data.logo_url ?? null,
95
+ faviconUrl: data.favicon_url ?? null,
96
+ themeColor: data.theme_color ?? null,
57
97
  hiddenFeatures: data.hidden_features,
98
+ hideNewFeaturesByDefault: data.hide_new_features_by_default ?? false,
99
+ reviewedFeatureCatalogIds: data.reviewed_feature_catalog_ids ?? [],
100
+ billingEnabled: data.billing_enabled ?? false,
101
+ accountUsersFullUiEnabled: data.account_users_full_ui_enabled ?? true,
58
102
  halAppId: data.hal_app_id ?? null,
103
+ supportEmail: data.support_email ?? null,
59
104
  });
60
105
  }
61
106
  } catch {
@@ -68,18 +113,65 @@ export function WhiteLabelProvider({ children, apiBaseUrl = "" }: WhiteLabelProv
68
113
  fetchConfig();
69
114
  }, [apiBaseUrl]);
70
115
 
116
+ const accountUsersBypassUiRestrictions = config.accountUsersFullUiEnabled && isAccountUser;
117
+ const effectiveHiddenFeatures = useMemo(
118
+ () =>
119
+ getEffectiveWhiteLabelHiddenFeatures({
120
+ hiddenFeatures: config.hiddenFeatures,
121
+ hideNewFeaturesByDefault: config.hideNewFeaturesByDefault,
122
+ reviewedFeatureCatalogIds: config.reviewedFeatureCatalogIds,
123
+ }),
124
+ [config.hiddenFeatures, config.hideNewFeaturesByDefault, config.reviewedFeatureCatalogIds],
125
+ );
126
+
71
127
  const isFeatureVisible = useCallback(
72
- (feature: string) => !config.hiddenFeatures.includes(feature),
73
- [config.hiddenFeatures],
128
+ (feature: string) => accountUsersBypassUiRestrictions || !effectiveHiddenFeatures.includes(feature),
129
+ [accountUsersBypassUiRestrictions, effectiveHiddenFeatures],
130
+ );
131
+
132
+ const isCapabilityVisible = useCallback(
133
+ (capability: WhiteLabelCapabilityId) =>
134
+ accountUsersBypassUiRestrictions ||
135
+ isWhiteLabelCapabilityVisible({
136
+ capability,
137
+ hiddenFeatures: effectiveHiddenFeatures,
138
+ entity: entitiesContext?.activeEntity ?? null,
139
+ entityCount: entitiesContext?.entities.length ?? 0,
140
+ }),
141
+ [
142
+ accountUsersBypassUiRestrictions,
143
+ effectiveHiddenFeatures,
144
+ entitiesContext?.activeEntity,
145
+ entitiesContext?.entities.length,
146
+ ],
147
+ );
148
+
149
+ const isUiControlVisible = useCallback(
150
+ (control: WhiteLabelActionControlId) =>
151
+ accountUsersBypassUiRestrictions ||
152
+ isWhiteLabelUiControlVisible({
153
+ control,
154
+ hiddenFeatures: effectiveHiddenFeatures,
155
+ entity: entitiesContext?.activeEntity ?? null,
156
+ entityCount: entitiesContext?.entities.length ?? 0,
157
+ }),
158
+ [
159
+ accountUsersBypassUiRestrictions,
160
+ effectiveHiddenFeatures,
161
+ entitiesContext?.activeEntity,
162
+ entitiesContext?.entities.length,
163
+ ],
74
164
  );
75
165
 
76
166
  const value = useMemo(
77
167
  () => ({
78
168
  ...config,
79
169
  isFeatureVisible,
170
+ isCapabilityVisible,
171
+ isUiControlVisible,
80
172
  isLoading,
81
173
  }),
82
- [config, isLoading, isFeatureVisible],
174
+ [config, isLoading, isFeatureVisible, isCapabilityVisible, isUiControlVisible],
83
175
  );
84
176
 
85
177
  return <WhiteLabelContext.Provider value={value}>{children}</WhiteLabelContext.Provider>;
@@ -2,7 +2,8 @@ import { getClientHeaders } from "@spaceinvoices/js-sdk";
2
2
  import type { ReactNode } from "react";
3
3
  import { createContext, useCallback, useContext, useEffect, useMemo, useState } from "react";
4
4
  import { useEntitiesOptional } from "./entities-context";
5
- import { useAccessToken } from "./sdk-provider";
5
+ import { useAccessToken } from "./space-invoices-provider";
6
+ import { useWhiteLabel } from "./white-label-provider";
6
7
 
7
8
  // ============================================
8
9
  // TYPES
@@ -12,6 +13,20 @@ export type PlanLimits = {
12
13
  documents_per_month: number | null;
13
14
  invoices_per_month: number | null;
14
15
  overage_price_cents: number | null;
16
+ annual_price_cents: number | null;
17
+ included_store_count: number | null;
18
+ extra_store_price_cents: number | null;
19
+ extra_store_annual_price_cents: number | null;
20
+ extra_store_invoices_per_month: number | null;
21
+ } | null;
22
+
23
+ export type StoreBilling = {
24
+ connected_stores: number;
25
+ included_stores: number;
26
+ billable_extra_stores: number;
27
+ invoices_included_from_extra_stores: number;
28
+ extra_store_price_cents_monthly: number | null;
29
+ extra_store_price_cents_yearly: number | null;
15
30
  } | null;
16
31
 
17
32
  export type WhiteLabelPlan = {
@@ -41,14 +56,24 @@ export type CurrentSubscription = {
41
56
  billing_interval: string | null;
42
57
  current_period_start: string;
43
58
  current_period_end: string;
59
+ payment_provider: "stripe" | "paypal" | "bank" | "braintree";
60
+ bank_reference: string | null;
61
+ billing_email: string | null;
62
+ coupon_code: string | null;
44
63
  trial_ends_at: string | null;
45
64
  trial_days_remaining: number | null;
46
65
  cancel_at: string | null;
66
+ scheduled_change: {
67
+ plan: WhiteLabelPlan;
68
+ billing_interval: string | null;
69
+ effective_at: string;
70
+ } | null;
47
71
  payment_method: {
48
72
  last4: string | null;
49
73
  brand: string | null;
50
74
  has_card: boolean;
51
75
  } | null;
76
+ store_billing: StoreBilling;
52
77
  usage: UsageStats;
53
78
  };
54
79
 
@@ -90,6 +115,13 @@ type WLSubscriptionContextType = {
90
115
 
91
116
  // Actions
92
117
  createCheckout: (planSlug: string, billingInterval?: "monthly" | "yearly") => Promise<string>;
118
+ createSetupIntent: () => Promise<{ client_secret: string }>;
119
+ savePaymentMethod: (paymentMethodId: string) => Promise<void>;
120
+ activateSubscription: (
121
+ planSlug: string,
122
+ billingInterval: "monthly" | "yearly",
123
+ couponCode?: string | null,
124
+ ) => Promise<{ invoice_id?: string | null; scheduled?: boolean }>;
93
125
  refresh: () => Promise<void>;
94
126
  };
95
127
 
@@ -118,14 +150,20 @@ const DEFAULT_SUBSCRIPTION: CurrentSubscription = {
118
150
  billing_interval: null,
119
151
  current_period_start: new Date().toISOString(),
120
152
  current_period_end: new Date().toISOString(),
153
+ payment_provider: "stripe",
154
+ bank_reference: null,
155
+ billing_email: null,
156
+ coupon_code: null,
121
157
  trial_ends_at: null,
122
158
  trial_days_remaining: null,
123
159
  cancel_at: null,
160
+ scheduled_change: null,
124
161
  payment_method: {
125
162
  last4: null,
126
163
  brand: null,
127
164
  has_card: false,
128
165
  },
166
+ store_billing: null,
129
167
  usage: {
130
168
  documents_count: 0,
131
169
  documents_limit: null,
@@ -149,12 +187,13 @@ type WLSubscriptionProviderProps = {
149
187
  /**
150
188
  * WLSubscriptionProvider component
151
189
  * Fetches white-label subscription data and provides limit/feature checks.
152
- * Must be nested inside EntitiesProvider and SDKProvider.
190
+ * Must be nested inside SpaceInvoicesProvider and an entity source.
153
191
  */
154
192
  export function WLSubscriptionProvider({ children, apiBaseUrl }: WLSubscriptionProviderProps) {
155
193
  // Get entity and access token from existing context
156
194
  const entitiesContext = useEntitiesOptional();
157
195
  const accessToken = useAccessToken();
196
+ const whiteLabel = useWhiteLabel();
158
197
 
159
198
  const entityId = entitiesContext?.activeEntity?.id ?? null;
160
199
  const [subscription, setSubscription] = useState<CurrentSubscription>(DEFAULT_SUBSCRIPTION);
@@ -163,9 +202,15 @@ export function WLSubscriptionProvider({ children, apiBaseUrl }: WLSubscriptionP
163
202
  const [error, setError] = useState<string | null>(null);
164
203
 
165
204
  const fetchSubscription = useCallback(async () => {
166
- if (!entityId || !accessToken) {
205
+ if (whiteLabel.isLoading) {
206
+ setIsLoading(true);
207
+ return;
208
+ }
209
+
210
+ if (whiteLabel.slug === "space-invoices" || !entityId || !accessToken) {
167
211
  setSubscription(DEFAULT_SUBSCRIPTION);
168
212
  setAvailablePlans([]);
213
+ setError(null);
169
214
  setIsLoading(false);
170
215
  return;
171
216
  }
@@ -209,7 +254,7 @@ export function WLSubscriptionProvider({ children, apiBaseUrl }: WLSubscriptionP
209
254
  } finally {
210
255
  setIsLoading(false);
211
256
  }
212
- }, [apiBaseUrl, entityId, accessToken]);
257
+ }, [apiBaseUrl, entityId, accessToken, whiteLabel.isLoading, whiteLabel.slug]);
213
258
 
214
259
  useEffect(() => {
215
260
  fetchSubscription();
@@ -236,13 +281,14 @@ export function WLSubscriptionProvider({ children, apiBaseUrl }: WLSubscriptionP
236
281
  if (resource !== "documents") return false;
237
282
 
238
283
  const { usage, plan } = subscription;
239
- const limit = plan.limits?.documents_per_month;
284
+ const limit = plan.limits?.invoices_per_month ?? plan.limits?.documents_per_month;
285
+ const count = plan.limits?.invoices_per_month != null ? usage.invoices_count : usage.documents_count;
240
286
 
241
287
  if (limit === null || limit === undefined) {
242
288
  return false; // No limit = never over
243
289
  }
244
290
 
245
- return usage.documents_count >= limit;
291
+ return count >= limit;
246
292
  },
247
293
  [subscription],
248
294
  );
@@ -253,13 +299,14 @@ export function WLSubscriptionProvider({ children, apiBaseUrl }: WLSubscriptionP
253
299
  if (resource !== "documents") return 0;
254
300
 
255
301
  const { usage, plan } = subscription;
256
- const limit = plan.limits?.documents_per_month;
302
+ const limit = plan.limits?.invoices_per_month ?? plan.limits?.documents_per_month;
303
+ const count = plan.limits?.invoices_per_month != null ? usage.invoices_count : usage.documents_count;
257
304
 
258
305
  if (limit === null || limit === undefined || limit === 0) {
259
306
  return 0; // No limit = 0%
260
307
  }
261
308
 
262
- return Math.min(100, Math.round((usage.documents_count / limit) * 100));
309
+ return Math.min(100, Math.round((count / limit) * 100));
263
310
  },
264
311
  [subscription],
265
312
  );
@@ -271,12 +318,98 @@ export function WLSubscriptionProvider({ children, apiBaseUrl }: WLSubscriptionP
271
318
  throw new Error("Not authenticated");
272
319
  }
273
320
 
274
- const url = new URL(`/app/${entityId}/settings/billing`, window.location.origin);
321
+ const url = new URL(`/app/${entityId}/subscription`, window.location.origin);
322
+ if (entitiesContext?.environment === "sandbox") {
323
+ url.searchParams.set("env", "sandbox");
324
+ }
275
325
  url.searchParams.set("plan", planSlug);
276
326
  url.searchParams.set("interval", billingInterval);
277
327
  return url.toString();
278
328
  },
279
- [entityId, accessToken],
329
+ [entityId, accessToken, entitiesContext?.environment],
330
+ );
331
+
332
+ const createSetupIntent = useCallback(async (): Promise<{ client_secret: string }> => {
333
+ if (!entityId || !accessToken) {
334
+ throw new Error("Not authenticated");
335
+ }
336
+
337
+ const response = await fetch(`${apiBaseUrl}/white-label-subscriptions/setup-intent`, {
338
+ method: "POST",
339
+ headers: {
340
+ Authorization: `Bearer ${accessToken}`,
341
+ "x-entity-id": entityId,
342
+ ...getClientHeaders("ui"),
343
+ "Content-Type": "application/json",
344
+ },
345
+ });
346
+
347
+ if (!response.ok) {
348
+ const errorData = await response.json().catch(() => ({}));
349
+ throw new Error(errorData.message || `Failed to create setup intent: ${response.status}`);
350
+ }
351
+
352
+ return response.json();
353
+ }, [apiBaseUrl, entityId, accessToken]);
354
+
355
+ const savePaymentMethod = useCallback(
356
+ async (paymentMethodId: string): Promise<void> => {
357
+ if (!entityId || !accessToken) {
358
+ throw new Error("Not authenticated");
359
+ }
360
+
361
+ const response = await fetch(`${apiBaseUrl}/white-label-subscriptions/payment-method`, {
362
+ method: "POST",
363
+ headers: {
364
+ Authorization: `Bearer ${accessToken}`,
365
+ "x-entity-id": entityId,
366
+ ...getClientHeaders("ui"),
367
+ "Content-Type": "application/json",
368
+ },
369
+ body: JSON.stringify({ payment_method_id: paymentMethodId }),
370
+ });
371
+
372
+ if (!response.ok) {
373
+ const errorData = await response.json().catch(() => ({}));
374
+ throw new Error(errorData.message || `Failed to save payment method: ${response.status}`);
375
+ }
376
+ },
377
+ [apiBaseUrl, entityId, accessToken],
378
+ );
379
+
380
+ const activateSubscription = useCallback(
381
+ async (
382
+ planSlug: string,
383
+ billingInterval: "monthly" | "yearly",
384
+ couponCode?: string | null,
385
+ ): Promise<{ invoice_id?: string | null; scheduled?: boolean }> => {
386
+ if (!entityId || !accessToken) {
387
+ throw new Error("Not authenticated");
388
+ }
389
+
390
+ const response = await fetch(`${apiBaseUrl}/white-label-subscriptions/activate`, {
391
+ method: "POST",
392
+ headers: {
393
+ Authorization: `Bearer ${accessToken}`,
394
+ "x-entity-id": entityId,
395
+ ...getClientHeaders("ui"),
396
+ "Content-Type": "application/json",
397
+ },
398
+ body: JSON.stringify({
399
+ plan_slug: planSlug,
400
+ billing_interval: billingInterval,
401
+ ...(couponCode !== undefined ? { coupon_code: couponCode } : {}),
402
+ }),
403
+ });
404
+
405
+ if (!response.ok) {
406
+ const errorData = await response.json().catch(() => ({}));
407
+ throw new Error(errorData.message || `Failed to activate subscription: ${response.status}`);
408
+ }
409
+
410
+ return response.json();
411
+ },
412
+ [apiBaseUrl, entityId, accessToken],
280
413
  );
281
414
 
282
415
  // Compute trial state
@@ -316,6 +449,9 @@ export function WLSubscriptionProvider({ children, apiBaseUrl }: WLSubscriptionP
316
449
  isOverLimit,
317
450
  getUsagePercentage,
318
451
  createCheckout,
452
+ createSetupIntent,
453
+ savePaymentMethod,
454
+ activateSubscription,
319
455
  refresh: fetchSubscription,
320
456
  }),
321
457
  [
@@ -331,6 +467,9 @@ export function WLSubscriptionProvider({ children, apiBaseUrl }: WLSubscriptionP
331
467
  isOverLimit,
332
468
  getUsagePercentage,
333
469
  createCheckout,
470
+ createSetupIntent,
471
+ savePaymentMethod,
472
+ activateSubscription,
334
473
  fetchSubscription,
335
474
  ],
336
475
  );