@driveflux/pdf 4.0.77 → 5.0.0-feature-e-invoicing.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (282) hide show
  1. package/.env +0 -0
  2. package/.env.development +4 -0
  3. package/.turbo/turbo-build.log +14 -0
  4. package/CHANGELOG.md +15 -0
  5. package/build.ts +45 -0
  6. package/bun-env.d.ts +34 -0
  7. package/bunfig.toml +8 -0
  8. package/catalog-version-stamp.json +8 -0
  9. package/dist/main.js +4 -0
  10. package/dist/main.js.map +11 -0
  11. package/dist/src/config.d.ts +20 -0
  12. package/dist/src/create-logger.d.ts +1 -0
  13. package/dist/src/errors.d.ts +43 -0
  14. package/dist/src/main.d.ts +1 -0
  15. package/dist/src/preview/api.d.ts +264 -0
  16. package/dist/src/preview/client/app.d.ts +2 -0
  17. package/dist/src/preview/client/invoice/invoice-display.d.ts +5 -0
  18. package/dist/src/preview/client/invoice/invoice-setup.d.ts +8 -0
  19. package/dist/src/preview/client/preview-targets.d.ts +12 -0
  20. package/dist/src/preview/client/preview.d.ts +6 -0
  21. package/dist/src/preview/client/sidebar.d.ts +7 -0
  22. package/dist/src/preview/client/treaty.d.ts +200 -0
  23. package/dist/src/preview/client/use-target.d.ts +1 -0
  24. package/dist/src/preview/fonts/register-fonts.d.ts +1 -0
  25. package/dist/src/preview/frontend.d.ts +1 -0
  26. package/dist/src/preview/server.d.ts +1 -0
  27. package/dist/src/repository.d.ts +171 -0
  28. package/dist/src/templates/invoice/colors.d.ts +6 -0
  29. package/dist/src/templates/invoice/company-details.d.ts +10 -0
  30. package/dist/src/templates/invoice/flux-invoice.d.ts +6 -0
  31. package/dist/src/templates/invoice/footer.d.ts +2 -0
  32. package/dist/src/templates/invoice/host-invoice.d.ts +9 -0
  33. package/dist/src/templates/invoice/invoice-details.d.ts +13 -0
  34. package/dist/src/templates/invoice/invoice-notes.d.ts +1 -0
  35. package/dist/src/templates/invoice/invoice-summary.d.ts +7 -0
  36. package/dist/src/templates/invoice/letter-head.d.ts +10 -0
  37. package/dist/src/templates/invoice/li.d.ts +10 -0
  38. package/dist/src/templates/invoice/platform-and-host-details.d.ts +11 -0
  39. package/dist/src/templates/invoice/spacer.d.ts +3 -0
  40. package/dist/src/templates/invoice/split-container-items.d.ts +10 -0
  41. package/dist/src/templates/invoice/split-container.d.ts +7 -0
  42. package/dist/src/templates/invoice/standard-page.d.ts +7 -0
  43. package/dist/src/templates/invoice/types.d.ts +3 -0
  44. package/dist/src/templates/invoice/ul.d.ts +8 -0
  45. package/dist/src/templates/invoice/utils.d.ts +2 -0
  46. package/dist/tsconfig.tsbuildinfo +1 -0
  47. package/package.json +34 -40
  48. package/src/config.ts +42 -0
  49. package/src/create-logger.ts +4 -0
  50. package/src/errors.ts +35 -0
  51. package/src/main.ts +7 -0
  52. package/src/preview/api.ts +33 -0
  53. package/src/preview/client/app.tsx +30 -0
  54. package/src/preview/client/invoice/invoice-display.tsx +27 -0
  55. package/src/preview/client/invoice/invoice-setup.tsx +95 -0
  56. package/src/preview/client/preview-targets.ts +30 -0
  57. package/src/preview/client/preview.tsx +37 -0
  58. package/src/preview/client/sidebar.tsx +39 -0
  59. package/src/preview/client/treaty.ts +8 -0
  60. package/src/preview/client/use-target.ts +11 -0
  61. package/src/preview/fonts/GOTHAM-BLACK.TTF +0 -0
  62. package/src/preview/fonts/GOTHAM-BLACKITALIC.TTF +0 -0
  63. package/src/preview/fonts/GOTHAM-BOLD.TTF +0 -0
  64. package/src/preview/fonts/GOTHAM-BOLDITALIC.TTF +0 -0
  65. package/src/preview/fonts/GOTHAM-LIGHT.TTF +0 -0
  66. package/src/preview/fonts/GOTHAM-LIGHTITALIC.TTF +0 -0
  67. package/src/preview/fonts/GOTHAM-MEDIUM.TTF +0 -0
  68. package/src/preview/fonts/GOTHAM-MEDIUMITALIC.TTF +0 -0
  69. package/src/preview/fonts/GOTHAM-THIN.TTF +0 -0
  70. package/src/preview/fonts/GOTHAM-THINITALIC.TTF +0 -0
  71. package/src/preview/fonts/GOTHAM-ULTRA.TTF +0 -0
  72. package/src/preview/fonts/GOTHAM-ULTRAITALIC.TTF +0 -0
  73. package/src/preview/fonts/GOTHAM-XLIGHT.TTF +0 -0
  74. package/src/preview/fonts/GOTHAM-XLIGHTITALIC.TTF +0 -0
  75. package/src/preview/fonts/Gotham Book Italic.otf +0 -0
  76. package/src/preview/fonts/Gotham-BoldItalic.otf +0 -0
  77. package/src/preview/fonts/Gotham-Book.otf +0 -0
  78. package/src/preview/fonts/Gotham-BookItalic.otf +0 -0
  79. package/src/preview/fonts/Gotham-ExtraLight.otf +0 -0
  80. package/src/preview/fonts/Gotham-ExtraLightItalic.otf +0 -0
  81. package/src/preview/fonts/Gotham-Light.otf +0 -0
  82. package/src/preview/fonts/Gotham-LightItalic.otf +0 -0
  83. package/src/preview/fonts/Gotham-Medium.otf +0 -0
  84. package/src/preview/fonts/Gotham-MediumItalic.otf +0 -0
  85. package/src/preview/fonts/Gotham-Thin.otf +0 -0
  86. package/src/preview/fonts/Gotham-ThinItalic.otf +0 -0
  87. package/src/preview/fonts/Gotham-Ultra.otf +0 -0
  88. package/src/preview/fonts/Gotham-UltraItalic.otf +0 -0
  89. package/src/preview/fonts/GothamNarrow-Black.otf +0 -0
  90. package/src/preview/fonts/GothamNarrow-BlackItalic.otf +0 -0
  91. package/src/preview/fonts/GothamNarrow-Book.otf +0 -0
  92. package/src/preview/fonts/GothamNarrow-BookItalic.otf +0 -0
  93. package/src/preview/fonts/GothamNarrow-Light.otf +0 -0
  94. package/src/preview/fonts/GothamNarrow-LightItalic.otf +0 -0
  95. package/src/preview/fonts/GothamNarrow-Medium.otf +0 -0
  96. package/src/preview/fonts/GothamNarrow-MediumItalic.otf +0 -0
  97. package/src/preview/fonts/GothamNarrow-Thin.otf +0 -0
  98. package/src/preview/fonts/GothamNarrow-ThinItalic.otf +0 -0
  99. package/src/preview/fonts/GothamNarrow-Ultra.otf +0 -0
  100. package/src/preview/fonts/GothamNarrow-UltraItalic.otf +0 -0
  101. package/src/preview/fonts/GothamNarrow-XLight.otf +0 -0
  102. package/src/preview/fonts/GothamNarrow-XLightItalic.otf +0 -0
  103. package/src/preview/fonts/gotham-extra-narrow-bold-italic.otf +0 -0
  104. package/src/preview/fonts/gotham-extra-narrow-bold.otf +0 -0
  105. package/src/preview/fonts/gotham-extra-narrow-book-italic.otf +0 -0
  106. package/src/preview/fonts/gotham-extra-narrow-book.otf +0 -0
  107. package/src/preview/fonts/gotham-extra-narrow-light-italic.otf +0 -0
  108. package/src/preview/fonts/gotham-extra-narrow-light.otf +0 -0
  109. package/src/preview/fonts/gotham-extra-narrow-medium-italic.otf +0 -0
  110. package/src/preview/fonts/gotham-extra-narrow-medium.otf +0 -0
  111. package/src/preview/fonts/gotham-rounded-bold-italic.otf +0 -0
  112. package/src/preview/fonts/gotham-rounded-bold.otf +0 -0
  113. package/src/preview/fonts/gotham-rounded-book-italic.otf +0 -0
  114. package/src/preview/fonts/gotham-rounded-book.otf +0 -0
  115. package/src/preview/fonts/gotham-rounded-light-italic.otf +0 -0
  116. package/src/preview/fonts/gotham-rounded-light.otf +0 -0
  117. package/src/preview/fonts/gotham-rounded-medium-italic.otf +0 -0
  118. package/src/preview/fonts/gotham-rounded-medium.otf +0 -0
  119. package/src/preview/fonts/register-fonts.ts +395 -0
  120. package/src/preview/frontend.tsx +23 -0
  121. package/src/preview/global.css +39 -0
  122. package/src/preview/preview.html +12 -0
  123. package/src/preview/server.ts +28 -0
  124. package/src/repository.ts +39 -0
  125. package/src/templates/invoice/E Invoice Format.pdf +0 -0
  126. package/src/templates/invoice/colors.ts +6 -0
  127. package/src/templates/invoice/company-details.tsx +124 -0
  128. package/src/templates/invoice/flux-invoice.tsx +134 -0
  129. package/src/templates/invoice/footer.tsx +46 -0
  130. package/src/templates/invoice/host-invoice.tsx +134 -0
  131. package/src/templates/invoice/images/logo.png +0 -0
  132. package/src/templates/invoice/images/logo.svg +41 -0
  133. package/src/templates/invoice/invoice-details.tsx +231 -0
  134. package/src/templates/invoice/invoice-notes.tsx +74 -0
  135. package/src/templates/invoice/invoice-summary.tsx +135 -0
  136. package/src/templates/invoice/letter-head.tsx +132 -0
  137. package/src/templates/invoice/li.tsx +48 -0
  138. package/src/templates/invoice/platform-and-host-details.tsx +56 -0
  139. package/src/templates/invoice/spacer.tsx +5 -0
  140. package/src/templates/invoice/split-container-items.tsx +80 -0
  141. package/src/templates/invoice/split-container.tsx +35 -0
  142. package/src/templates/invoice/standard-page.tsx +45 -0
  143. package/src/templates/invoice/types.ts +6 -0
  144. package/src/templates/invoice/ul.tsx +19 -0
  145. package/src/templates/invoice/utils.ts +5 -0
  146. package/tsconfig.json +21 -0
  147. package/dist/components/FluxLogo.d.ts +0 -3
  148. package/dist/components/FluxLogo.d.ts.map +0 -1
  149. package/dist/components/FluxLogo.js +0 -66
  150. package/dist/components/FluxLogo.js.map +0 -1
  151. package/dist/components/StandardPage.d.ts +0 -7
  152. package/dist/components/StandardPage.d.ts.map +0 -1
  153. package/dist/components/StandardPage.js +0 -132
  154. package/dist/components/StandardPage.js.map +0 -1
  155. package/dist/index.d.ts +0 -4
  156. package/dist/index.d.ts.map +0 -1
  157. package/dist/index.js +0 -3
  158. package/dist/index.js.map +0 -1
  159. package/dist/templates/QuotationPdf/CustomerSubscriptionSection.d.ts +0 -10
  160. package/dist/templates/QuotationPdf/CustomerSubscriptionSection.d.ts.map +0 -1
  161. package/dist/templates/QuotationPdf/CustomerSubscriptionSection.js +0 -165
  162. package/dist/templates/QuotationPdf/CustomerSubscriptionSection.js.map +0 -1
  163. package/dist/templates/QuotationPdf/GFV.d.ts +0 -10
  164. package/dist/templates/QuotationPdf/GFV.d.ts.map +0 -1
  165. package/dist/templates/QuotationPdf/GFV.js +0 -61
  166. package/dist/templates/QuotationPdf/GFV.js.map +0 -1
  167. package/dist/templates/QuotationPdf/Header.d.ts +0 -9
  168. package/dist/templates/QuotationPdf/Header.d.ts.map +0 -1
  169. package/dist/templates/QuotationPdf/Header.js +0 -71
  170. package/dist/templates/QuotationPdf/Header.js.map +0 -1
  171. package/dist/templates/QuotationPdf/Pricing.d.ts +0 -10
  172. package/dist/templates/QuotationPdf/Pricing.d.ts.map +0 -1
  173. package/dist/templates/QuotationPdf/Pricing.js +0 -723
  174. package/dist/templates/QuotationPdf/Pricing.js.map +0 -1
  175. package/dist/templates/QuotationPdf/QuotationPdfPage.d.ts +0 -8
  176. package/dist/templates/QuotationPdf/QuotationPdfPage.d.ts.map +0 -1
  177. package/dist/templates/QuotationPdf/QuotationPdfPage.js +0 -30
  178. package/dist/templates/QuotationPdf/QuotationPdfPage.js.map +0 -1
  179. package/dist/templates/QuotationPdf/SectionBoxNew.d.ts +0 -9
  180. package/dist/templates/QuotationPdf/SectionBoxNew.d.ts.map +0 -1
  181. package/dist/templates/QuotationPdf/SectionBoxNew.js +0 -38
  182. package/dist/templates/QuotationPdf/SectionBoxNew.js.map +0 -1
  183. package/dist/templates/QuotationPdf/TermsSection.d.ts +0 -8
  184. package/dist/templates/QuotationPdf/TermsSection.d.ts.map +0 -1
  185. package/dist/templates/QuotationPdf/TermsSection.js +0 -50
  186. package/dist/templates/QuotationPdf/TermsSection.js.map +0 -1
  187. package/dist/templates/QuotationPdf/VehiclePhotos.d.ts +0 -10
  188. package/dist/templates/QuotationPdf/VehiclePhotos.d.ts.map +0 -1
  189. package/dist/templates/QuotationPdf/VehiclePhotos.js +0 -66
  190. package/dist/templates/QuotationPdf/VehiclePhotos.js.map +0 -1
  191. package/dist/templates/QuotationPdf/index.d.ts +0 -12
  192. package/dist/templates/QuotationPdf/index.d.ts.map +0 -1
  193. package/dist/templates/QuotationPdf/index.js +0 -214
  194. package/dist/templates/QuotationPdf/index.js.map +0 -1
  195. package/dist/templates/QuotationPdf/translations.d.ts +0 -68
  196. package/dist/templates/QuotationPdf/translations.d.ts.map +0 -1
  197. package/dist/templates/QuotationPdf/translations.js +0 -101
  198. package/dist/templates/QuotationPdf/translations.js.map +0 -1
  199. package/dist/templates/QuotationPdf/utils.d.ts +0 -14
  200. package/dist/templates/QuotationPdf/utils.d.ts.map +0 -1
  201. package/dist/templates/QuotationPdf/utils.js +0 -152
  202. package/dist/templates/QuotationPdf/utils.js.map +0 -1
  203. package/dist/templates/SubscriptionAgreement/Confirmation.d.ts +0 -12
  204. package/dist/templates/SubscriptionAgreement/Confirmation.d.ts.map +0 -1
  205. package/dist/templates/SubscriptionAgreement/Confirmation.js +0 -80
  206. package/dist/templates/SubscriptionAgreement/Confirmation.js.map +0 -1
  207. package/dist/templates/SubscriptionAgreement/CoverPage.d.ts +0 -14
  208. package/dist/templates/SubscriptionAgreement/CoverPage.d.ts.map +0 -1
  209. package/dist/templates/SubscriptionAgreement/CoverPage.js +0 -111
  210. package/dist/templates/SubscriptionAgreement/CoverPage.js.map +0 -1
  211. package/dist/templates/SubscriptionAgreement/CoverPageSection.d.ts +0 -7
  212. package/dist/templates/SubscriptionAgreement/CoverPageSection.d.ts.map +0 -1
  213. package/dist/templates/SubscriptionAgreement/CoverPageSection.js +0 -25
  214. package/dist/templates/SubscriptionAgreement/CoverPageSection.js.map +0 -1
  215. package/dist/templates/SubscriptionAgreement/Details.d.ts +0 -10
  216. package/dist/templates/SubscriptionAgreement/Details.d.ts.map +0 -1
  217. package/dist/templates/SubscriptionAgreement/Details.js +0 -223
  218. package/dist/templates/SubscriptionAgreement/Details.js.map +0 -1
  219. package/dist/templates/SubscriptionAgreement/Footer.d.ts +0 -10
  220. package/dist/templates/SubscriptionAgreement/Footer.d.ts.map +0 -1
  221. package/dist/templates/SubscriptionAgreement/Footer.js +0 -58
  222. package/dist/templates/SubscriptionAgreement/Footer.js.map +0 -1
  223. package/dist/templates/SubscriptionAgreement/Header.d.ts +0 -10
  224. package/dist/templates/SubscriptionAgreement/Header.d.ts.map +0 -1
  225. package/dist/templates/SubscriptionAgreement/Header.js +0 -46
  226. package/dist/templates/SubscriptionAgreement/Header.js.map +0 -1
  227. package/dist/templates/SubscriptionAgreement/LabelValue.d.ts +0 -8
  228. package/dist/templates/SubscriptionAgreement/LabelValue.d.ts.map +0 -1
  229. package/dist/templates/SubscriptionAgreement/LabelValue.js +0 -29
  230. package/dist/templates/SubscriptionAgreement/LabelValue.js.map +0 -1
  231. package/dist/templates/SubscriptionAgreement/SubscriptionAgreementPage.d.ts +0 -10
  232. package/dist/templates/SubscriptionAgreement/SubscriptionAgreementPage.d.ts.map +0 -1
  233. package/dist/templates/SubscriptionAgreement/SubscriptionAgreementPage.js +0 -33
  234. package/dist/templates/SubscriptionAgreement/SubscriptionAgreementPage.js.map +0 -1
  235. package/dist/templates/SubscriptionAgreement/TermsOfUse.d.ts +0 -8
  236. package/dist/templates/SubscriptionAgreement/TermsOfUse.d.ts.map +0 -1
  237. package/dist/templates/SubscriptionAgreement/TermsOfUse.js +0 -101
  238. package/dist/templates/SubscriptionAgreement/TermsOfUse.js.map +0 -1
  239. package/dist/templates/SubscriptionAgreement/TermsOfUseSubSection.d.ts +0 -12
  240. package/dist/templates/SubscriptionAgreement/TermsOfUseSubSection.d.ts.map +0 -1
  241. package/dist/templates/SubscriptionAgreement/TermsOfUseSubSection.js +0 -103
  242. package/dist/templates/SubscriptionAgreement/TermsOfUseSubSection.js.map +0 -1
  243. package/dist/templates/SubscriptionAgreement/index.d.ts +0 -13
  244. package/dist/templates/SubscriptionAgreement/index.d.ts.map +0 -1
  245. package/dist/templates/SubscriptionAgreement/index.js +0 -271
  246. package/dist/templates/SubscriptionAgreement/index.js.map +0 -1
  247. package/dist/templates/SubscriptionAgreement/translations.d.ts +0 -78
  248. package/dist/templates/SubscriptionAgreement/translations.d.ts.map +0 -1
  249. package/dist/templates/SubscriptionAgreement/translations.js +0 -662
  250. package/dist/templates/SubscriptionAgreement/translations.js.map +0 -1
  251. package/dist/templates/SubscriptionAgreement/types.d.ts +0 -7
  252. package/dist/templates/SubscriptionAgreement/types.d.ts.map +0 -1
  253. package/dist/templates/SubscriptionAgreement/types.js +0 -1
  254. package/dist/templates/SubscriptionAgreement/types.js.map +0 -1
  255. package/dist/templates/SubscriptionAgreement/utils.d.ts +0 -6
  256. package/dist/templates/SubscriptionAgreement/utils.d.ts.map +0 -1
  257. package/dist/templates/SubscriptionAgreement/utils.js +0 -37
  258. package/dist/templates/SubscriptionAgreement/utils.js.map +0 -1
  259. package/dist/templates/index.d.ts +0 -3
  260. package/dist/templates/index.d.ts.map +0 -1
  261. package/dist/templates/index.js +0 -2
  262. package/dist/templates/index.js.map +0 -1
  263. package/dist/theme/colors.d.ts +0 -148
  264. package/dist/theme/colors.d.ts.map +0 -1
  265. package/dist/theme/colors.js +0 -137
  266. package/dist/theme/colors.js.map +0 -1
  267. package/dist/theme/index.d.ts +0 -2
  268. package/dist/theme/index.d.ts.map +0 -1
  269. package/dist/theme/index.js +0 -1
  270. package/dist/theme/index.js.map +0 -1
  271. package/dist/types.d.ts +0 -2
  272. package/dist/types.d.ts.map +0 -1
  273. package/dist/types.js +0 -1
  274. package/dist/types.js.map +0 -1
  275. package/dist/utils.d.ts +0 -10
  276. package/dist/utils.d.ts.map +0 -1
  277. package/dist/utils.js +0 -175
  278. package/dist/utils.js.map +0 -1
  279. package/dist/watch.d.ts +0 -2
  280. package/dist/watch.d.ts.map +0 -1
  281. package/dist/watch.js +0 -11
  282. package/dist/watch.js.map +0 -1
@@ -0,0 +1,135 @@
1
+ import { tz } from '@date-fns/tz'
2
+ import type { BillingAddress } from '@driveflux/db'
3
+ import { StyleSheet, Text, View } from '@react-pdf/renderer'
4
+ import { format } from 'date-fns/format'
5
+ import { config } from '../../config'
6
+ import { registerFonts } from '../../preview/fonts/register-fonts'
7
+ import logo from './images/logo.png'
8
+ import { InvoiceDetails } from './invoice-details'
9
+ import { InvoiceNotes } from './invoice-notes'
10
+ import { LetterHead } from './letter-head'
11
+ import { PlatformAndHostDetails } from './platform-and-host-details'
12
+ import { Spacer } from './spacer'
13
+ import { SplitContainer } from './split-container'
14
+ import { SplitContainerItems } from './split-container-items'
15
+ import { StandardPage } from './standard-page'
16
+ import type { InvoiceForPDF } from './types'
17
+ import { carPlateAndName } from './utils'
18
+
19
+ registerFonts()
20
+
21
+ type InvoiceSummaryData = Pick<
22
+ InvoiceForPDF,
23
+ | 'subscriptionDetails'
24
+ | 'payerName'
25
+ | 'billingAddress'
26
+ | 'payerPhoneNumber'
27
+ | 'payerEmail'
28
+ | 'total'
29
+ | 'paidAt'
30
+ | 'createdAt'
31
+ | 'eInvoice'
32
+ >
33
+
34
+ type InvoiceSummaryProps = {
35
+ data: InvoiceSummaryData
36
+ }
37
+
38
+ // Helper function to format billing address
39
+ const formatBillingAddress = (
40
+ address: BillingAddress | null | undefined,
41
+ ): string => {
42
+ if (!address) return '-'
43
+ const parts = [
44
+ address.street1,
45
+ address.street2,
46
+ address.city,
47
+ address.state,
48
+ address.postalCode,
49
+ ].filter(Boolean)
50
+ return parts.join(', ')
51
+ }
52
+
53
+ const styles = StyleSheet.create({
54
+ phoneEmailContainer: {
55
+ display: 'flex',
56
+ flexDirection: 'column',
57
+ gap: 4,
58
+ },
59
+ })
60
+
61
+ export const InvoiceSummary = ({ data }: InvoiceSummaryProps) => {
62
+ const logoUri = new URL(logo, config.appUrl).toString()
63
+ return (
64
+ <StandardPage
65
+ letterHead={
66
+ <LetterHead
67
+ logoSource={logoUri}
68
+ purpose="Payment Advice"
69
+ idLabel="Sub ID"
70
+ idValue={data.subscriptionDetails?.subscriptionId || '-'}
71
+ />
72
+ }
73
+ >
74
+ <SplitContainer
75
+ left={
76
+ <SplitContainerItems
77
+ items={[
78
+ {
79
+ title: 'Bill To',
80
+ value: data.payerName,
81
+ },
82
+ {
83
+ title: 'Address',
84
+ value: formatBillingAddress(data.billingAddress),
85
+ },
86
+ {
87
+ title: 'Tel / Email',
88
+ value: (
89
+ <View style={styles.phoneEmailContainer}>
90
+ <Text>{data.payerPhoneNumber}</Text>
91
+ <Text>{data.payerEmail}</Text>
92
+ </View>
93
+ ),
94
+ },
95
+ ]}
96
+ />
97
+ }
98
+ right={
99
+ <SplitContainerItems
100
+ items={[
101
+ {
102
+ title: 'Invoice Date',
103
+ value: format(data.createdAt, 'dd-MM-yyyy', {
104
+ in: tz(config.timezone),
105
+ }),
106
+ },
107
+ {
108
+ title: 'Po No.',
109
+ value: data.eInvoice?.poNumber || '-',
110
+ },
111
+ {
112
+ title: 'Car Plate / Car Type',
113
+ value: data.eInvoice ? carPlateAndName(data.eInvoice) : '-',
114
+ },
115
+ {
116
+ title: 'Sub ID',
117
+ value: data.subscriptionDetails?.subscriptionId || '-',
118
+ },
119
+ ]}
120
+ />
121
+ }
122
+ />
123
+ <Spacer height={12} />
124
+ <PlatformAndHostDetails data={data} />
125
+ <Spacer />
126
+ <InvoiceDetails
127
+ total={data.total}
128
+ paid={!!data.paidAt}
129
+ items={data.eInvoice?.linesSummary}
130
+ />
131
+ <Spacer />
132
+ <InvoiceNotes />
133
+ </StandardPage>
134
+ )
135
+ }
@@ -0,0 +1,132 @@
1
+ import { Image, StyleSheet, Text, View } from '@react-pdf/renderer'
2
+ import { colors } from './colors'
3
+
4
+ type LetterHeadProps = {
5
+ logoSource?: string
6
+ companyName?: string
7
+ companyAddress?: string
8
+ purpose: string
9
+ idLabel: string
10
+ idValue: string
11
+ }
12
+
13
+ const styles = StyleSheet.create({
14
+ logoContainer: {
15
+ height: 24,
16
+ width: 'auto',
17
+ marginRight: 12,
18
+ },
19
+ logo: {
20
+ height: 24,
21
+ width: 'auto',
22
+ },
23
+ header: {
24
+ display: 'flex',
25
+ flexDirection: 'row',
26
+ justifyContent: 'space-between',
27
+ alignItems: 'center',
28
+ },
29
+ headerRight: {
30
+ display: 'flex',
31
+ flexDirection: 'column',
32
+ alignItems: 'flex-end',
33
+ },
34
+ headerLeft: {
35
+ display: 'flex',
36
+ flexDirection: 'row',
37
+ alignItems: 'flex-start',
38
+ },
39
+ purpose: {
40
+ fontFamily: 'Gotham-Book',
41
+ textTransform: 'uppercase',
42
+ fontSize: 12,
43
+ color: colors.primaryBlack,
44
+ fontWeight: 500,
45
+ },
46
+ subIdContainer: {
47
+ display: 'flex',
48
+ flexDirection: 'row',
49
+ alignItems: 'center',
50
+ },
51
+ subIdLabel: {
52
+ fontFamily: 'Gotham-Book',
53
+ textTransform: 'uppercase',
54
+ fontSize: 8,
55
+ fontWeight: 400,
56
+ marginTop: 1,
57
+ marginRight: 2.5,
58
+ },
59
+ subIdValue: {
60
+ fontFamily: 'Gotham-Medium',
61
+ textTransform: 'uppercase',
62
+ fontSize: 8,
63
+ fontWeight: 500,
64
+ },
65
+ headerDivider: {
66
+ marginTop: 16,
67
+ borderBottomColor: colors.blueBranding,
68
+ borderBottomWidth: 1,
69
+ borderBottomStyle: 'solid',
70
+ },
71
+ companyDetails: {
72
+ display: 'flex',
73
+ flexDirection: 'column',
74
+ alignItems: 'flex-start',
75
+ marginTop: 4,
76
+ },
77
+ companyName: {
78
+ fontFamily: 'Gotham-Medium',
79
+ fontSize: 8,
80
+ fontWeight: 500,
81
+ color: colors.darkGrey,
82
+ },
83
+ companyAddress: {
84
+ fontFamily: 'Gotham-Book',
85
+ fontSize: 6,
86
+ marginTop: 2,
87
+ fontWeight: 400,
88
+ color: colors.darkGrey,
89
+ },
90
+ })
91
+
92
+ export const LetterHead = ({
93
+ logoSource,
94
+ companyName,
95
+ companyAddress,
96
+ purpose,
97
+ idLabel,
98
+ idValue,
99
+ }: LetterHeadProps) => {
100
+ const hasCompanyDetails = companyName || companyAddress
101
+ return (
102
+ <>
103
+ <View style={styles.header}>
104
+ <View style={styles.headerLeft}>
105
+ {logoSource && (
106
+ <View style={styles.logoContainer}>
107
+ <Image src={logoSource} style={styles.logo} />
108
+ </View>
109
+ )}
110
+ {hasCompanyDetails && (
111
+ <View style={styles.companyDetails}>
112
+ {companyName && (
113
+ <Text style={styles.companyName}>{companyName}</Text>
114
+ )}
115
+ {companyAddress && (
116
+ <Text style={styles.companyAddress}>{companyAddress}</Text>
117
+ )}
118
+ </View>
119
+ )}
120
+ </View>
121
+ <View style={styles.headerRight}>
122
+ <Text style={styles.purpose}>{purpose}</Text>
123
+ <View style={styles.subIdContainer}>
124
+ <Text style={styles.subIdLabel}>{idLabel}:</Text>
125
+ <Text style={styles.subIdValue}>{idValue}</Text>
126
+ </View>
127
+ </View>
128
+ </View>
129
+ <View style={styles.headerDivider} />
130
+ </>
131
+ )
132
+ }
@@ -0,0 +1,48 @@
1
+ import { type NodeProps, StyleSheet, Text, View } from '@react-pdf/renderer'
2
+ import type { ReactNode } from 'react'
3
+ import { colors } from './colors'
4
+
5
+ const defaultStyles = StyleSheet.create({
6
+ item: {
7
+ display: 'flex',
8
+ flexDirection: 'row',
9
+ gap: 6,
10
+ },
11
+ bullet: {
12
+ fontFamily: 'Gotham-Book',
13
+ fontSize: 8,
14
+ fontWeight: 400,
15
+ color: colors.primaryBlack,
16
+ },
17
+ textContainer: {
18
+ flex: 1,
19
+ },
20
+ text: {
21
+ fontFamily: 'Gotham-Book',
22
+ fontSize: 8,
23
+ fontWeight: 400,
24
+ color: colors.primaryBlack,
25
+ },
26
+ })
27
+
28
+ interface LiProps {
29
+ children: ReactNode
30
+ style?: Exclude<NodeProps['style'], Array<unknown>>
31
+ bulletStyle?: Exclude<NodeProps['style'], Array<unknown>>
32
+ bullet?: string
33
+ }
34
+
35
+ export const Li = ({ children, style, bulletStyle, bullet = '•' }: LiProps) => {
36
+ return (
37
+ <View style={[defaultStyles.item, style ?? {}]}>
38
+ <Text style={[defaultStyles.bullet, bulletStyle ?? {}]}>{bullet}</Text>
39
+ <View style={defaultStyles.textContainer}>
40
+ {typeof children === 'string' ? (
41
+ <Text style={defaultStyles.text}>{children}</Text>
42
+ ) : (
43
+ children
44
+ )}
45
+ </View>
46
+ </View>
47
+ )
48
+ }
@@ -0,0 +1,56 @@
1
+ import { StyleSheet, View } from '@react-pdf/renderer'
2
+ import { colors } from './colors'
3
+ import { CompanyDetails } from './company-details'
4
+ import { SplitContainer } from './split-container'
5
+ import type { InvoiceForPDF } from './types'
6
+
7
+ type PlatformAndHostDetailsProps = {
8
+ data: {
9
+ eInvoice: {
10
+ fluxDetails: NonNullable<InvoiceForPDF['eInvoice']['fluxDetails']>
11
+ hostDetails: InvoiceForPDF['eInvoice']['hostDetails']
12
+ }
13
+ }
14
+ }
15
+
16
+ const styles = StyleSheet.create({
17
+ container: {
18
+ padding: 12,
19
+ borderWidth: 1,
20
+ borderColor: colors.lightGrey,
21
+ borderStyle: 'solid',
22
+ },
23
+ })
24
+ export const PlatformAndHostDetails = ({
25
+ data,
26
+ }: PlatformAndHostDetailsProps) => {
27
+ return (
28
+ <View style={styles.container}>
29
+ <SplitContainer
30
+ gap={40}
31
+ left={
32
+ <CompanyDetails
33
+ title="Platform (Payment & Subscription Management):"
34
+ companyName="FLUX Sdn. Bhd. (1375723-H)"
35
+ address="15-2 Jalan Solaris, Solaris Mont Kiara, 50480 Kuala Lumpur, Malaysia"
36
+ sstNumber="W10-2010-32100016"
37
+ tinNumber="C 25801903040"
38
+ invoiceNumber="2025/11/21/0001/F/RL"
39
+ />
40
+ }
41
+ right={
42
+ data.eInvoice.hostDetails && (
43
+ <CompanyDetails
44
+ title="Host (Vehicle Owner):"
45
+ companyName={`${data.eInvoice.hostDetails.companyName} - (${data.eInvoice.hostDetails.companyNumber || data.eInvoice.hostDetails.id || '-'})`}
46
+ address={data.eInvoice.hostDetails.address}
47
+ sstNumber={data.eInvoice.hostDetails.sstNo ?? '-'}
48
+ tinNumber={data.eInvoice.hostDetails.tinNo ?? '-'}
49
+ invoiceNumber={data.eInvoice.hostDetails.invoiceNumber ?? '-'}
50
+ />
51
+ )
52
+ }
53
+ />
54
+ </View>
55
+ )
56
+ }
@@ -0,0 +1,5 @@
1
+ import { View } from '@react-pdf/renderer'
2
+
3
+ export const Spacer = ({ height = 16 }: { height?: number }) => {
4
+ return <View style={{ height }} />
5
+ }
@@ -0,0 +1,80 @@
1
+ import { StyleSheet, Text, View } from '@react-pdf/renderer'
2
+ import type { ReactNode } from 'react'
3
+ import { colors } from './colors'
4
+
5
+ type SplitContainerItem = {
6
+ title: string
7
+ value: ReactNode
8
+ }
9
+
10
+ type SplitContainerItemsProps = {
11
+ items: SplitContainerItem[]
12
+ }
13
+
14
+ const styles = StyleSheet.create({
15
+ container: {
16
+ display: 'flex',
17
+ flexDirection: 'column',
18
+ gap: 4,
19
+ alignSelf: 'stretch',
20
+ },
21
+ item: {
22
+ display: 'flex',
23
+ flexDirection: 'row',
24
+ alignSelf: 'stretch',
25
+ minHeight: 0,
26
+ },
27
+ titleContainer: {
28
+ width: 100,
29
+ flexShrink: 0,
30
+ flexGrow: 0,
31
+ display: 'flex',
32
+ flexDirection: 'row',
33
+ justifyContent: 'flex-start',
34
+ },
35
+ title: {
36
+ fontFamily: 'Gotham-Book',
37
+ fontSize: 10,
38
+ fontWeight: 400,
39
+ color: colors.darkGrey,
40
+ textAlign: 'right',
41
+ },
42
+ colon: {
43
+ fontFamily: 'Gotham-Book',
44
+ fontSize: 10,
45
+ fontWeight: 400,
46
+ color: colors.darkGrey,
47
+ width: 10,
48
+ marginLeft: 2,
49
+ flexShrink: 0,
50
+ flexGrow: 0,
51
+ },
52
+ value: {
53
+ fontFamily: 'Gotham-Medium',
54
+ fontSize: 10,
55
+ fontWeight: 500,
56
+ color: colors.primaryBlack,
57
+ flex: 1,
58
+ marginLeft: 0,
59
+ },
60
+ })
61
+
62
+ export const SplitContainerItems = ({ items }: SplitContainerItemsProps) => {
63
+ return (
64
+ <View style={styles.container}>
65
+ {items.map((item) => (
66
+ <View style={styles.item} key={item.title}>
67
+ <View style={styles.titleContainer}>
68
+ <Text style={styles.title}>{item.title}</Text>
69
+ </View>
70
+ <Text style={styles.colon}>:</Text>
71
+ {typeof item.value === 'string' ? (
72
+ <Text style={styles.value}>{item.value}</Text>
73
+ ) : (
74
+ <View style={styles.value}>{item.value}</View>
75
+ )}
76
+ </View>
77
+ ))}
78
+ </View>
79
+ )
80
+ }
@@ -0,0 +1,35 @@
1
+ import { StyleSheet, View } from '@react-pdf/renderer'
2
+
3
+ type SplitContainerProps = {
4
+ left: React.ReactNode
5
+ right?: React.ReactNode
6
+ gap?: number
7
+ }
8
+
9
+ const styles = StyleSheet.create({
10
+ container: {
11
+ display: 'flex',
12
+ flexDirection: 'row',
13
+ gap: 24,
14
+ alignItems: 'flex-start',
15
+ alignSelf: 'stretch',
16
+ },
17
+ side: {
18
+ width: '50%',
19
+ flexShrink: 0,
20
+ flexGrow: 0,
21
+ },
22
+ })
23
+
24
+ export const SplitContainer = ({
25
+ left,
26
+ right,
27
+ gap = 24,
28
+ }: SplitContainerProps) => {
29
+ return (
30
+ <View style={[styles.container, { gap }]}>
31
+ <View style={styles.side}>{left}</View>
32
+ <View style={styles.side}>{right}</View>
33
+ </View>
34
+ )
35
+ }
@@ -0,0 +1,45 @@
1
+ import { Page, StyleSheet, View } from '@react-pdf/renderer'
2
+ import type { ReactNode } from 'react'
3
+ import { colors } from './colors'
4
+ import { FOOTER_HEIGHT, Footer } from './footer'
5
+
6
+ const styles = StyleSheet.create({
7
+ page: {
8
+ padding: 24,
9
+ fontFamily: 'Gotham-Book',
10
+ fontSize: 10,
11
+ color: colors.primaryBlack,
12
+ },
13
+ pageContent: {
14
+ position: 'relative',
15
+ display: 'flex',
16
+ flexDirection: 'column',
17
+ minHeight: '100%',
18
+ },
19
+ body: {
20
+ marginTop: 24,
21
+ display: 'flex',
22
+ flexDirection: 'column',
23
+ paddingBottom: FOOTER_HEIGHT,
24
+ },
25
+ })
26
+
27
+ type StandardPageProps = {
28
+ children: ReactNode
29
+ letterHead: ReactNode
30
+ }
31
+
32
+ export const StandardPage = ({ children, letterHead }: StandardPageProps) => {
33
+ return (
34
+ <Page size="A4" style={styles.page}>
35
+ <View style={styles.pageContent}>
36
+ {/* Header */}
37
+ {letterHead}
38
+ {/* Body */}
39
+ <View style={styles.body}>{children}</View>
40
+ {/* Footer */}
41
+ <Footer />
42
+ </View>
43
+ </Page>
44
+ )
45
+ }
@@ -0,0 +1,6 @@
1
+ import type { Treaty } from '@elysiajs/eden'
2
+ import type { appTreaty } from '../../preview/client/treaty'
3
+
4
+ export type InvoiceForPDF = Treaty.Data<
5
+ ReturnType<ReturnType<(typeof appTreaty.api)['invoice-for-pdf']>['get']>
6
+ >
@@ -0,0 +1,19 @@
1
+ import { type NodeProps, StyleSheet, View } from '@react-pdf/renderer'
2
+ import type { ReactNode } from 'react'
3
+
4
+ const defaultStyles = StyleSheet.create({
5
+ container: {
6
+ display: 'flex',
7
+ flexDirection: 'column',
8
+ gap: 4,
9
+ },
10
+ })
11
+
12
+ interface UlProps {
13
+ children: ReactNode
14
+ style?: Exclude<NodeProps['style'], Array<unknown>>
15
+ }
16
+
17
+ export const Ul = ({ children, style }: UlProps) => {
18
+ return <View style={[defaultStyles.container, style ?? {}]}>{children}</View>
19
+ }
@@ -0,0 +1,5 @@
1
+ import type { EInvoice } from '@driveflux/db'
2
+
3
+ export const carPlateAndName = (eInvoice: EInvoice) => {
4
+ return `${eInvoice.vehicle.plateNumber} - ${eInvoice.vehicle.name} - ${eInvoice.vehicle.color}`
5
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,21 @@
1
+ {
2
+ "extends": "../../tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "outDir": "./dist",
5
+ "rootDir": ".",
6
+ "composite": true
7
+ },
8
+ "references": [
9
+ {
10
+ "path": "../db"
11
+ },
12
+ {
13
+ "path": "../fix-builds"
14
+ },
15
+ {
16
+ "path": "../logger"
17
+ }
18
+ ],
19
+ "include": ["src/**/*.ts", "src/**/*.tsx", "bun-env.d.ts"],
20
+ "exclude": ["dist", "node_modules"]
21
+ }
@@ -1,3 +0,0 @@
1
- declare const FluxLogo: () => import("react/jsx-runtime").JSX.Element;
2
- export default FluxLogo;
3
- //# sourceMappingURL=FluxLogo.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FluxLogo.d.ts","sourceRoot":"","sources":["../../src/components/FluxLogo.tsx"],"names":[],"mappings":"AAEA,QAAA,MAAM,QAAQ,+CAkDb,CAAA;AAED,eAAe,QAAQ,CAAA"}
@@ -1,66 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Defs, G, Path, Rect, Svg } from '@react-pdf/renderer';
3
- var FluxLogo = function FluxLogo() {
4
- return /*#__PURE__*/ _jsxs(Svg, {
5
- width: "92",
6
- height: "29",
7
- viewBox: "0 0 92 29",
8
- fill: "none",
9
- children: [
10
- /*#__PURE__*/ _jsxs(G, {
11
- clipPath: "url(#clip0_664_102105)",
12
- children: [
13
- /*#__PURE__*/ _jsx(Path, {
14
- d: "M23.6621 6.12305H35.6903V8.00999H25.5568V13.5529H33.805V15.434H25.5568V22.8638H23.6715L23.6621 6.12305Z",
15
- fill: "black"
16
- }),
17
- /*#__PURE__*/ _jsx(Path, {
18
- d: "M40.9981 6.12305H42.8834V20.9827H52.3039V22.8697H40.9922L40.9981 6.12305Z",
19
- fill: "black"
20
- }),
21
- /*#__PURE__*/ _jsx(Path, {
22
- d: "M57.6172 15.6002V6.12305H59.5025V15.4811C59.5025 19.0946 61.4149 21.129 64.6187 21.129C67.7035 21.129 69.6642 19.2621 69.6642 15.6002V6.12305H71.5495V15.4552C71.5495 20.3376 68.751 22.8744 64.5669 22.8744C60.4381 22.8756 57.6172 20.3388 57.6172 15.6002Z",
23
- fill: "black"
24
- }),
25
- /*#__PURE__*/ _jsx(Path, {
26
- d: "M83.2965 14.3324L77.1033 6.12305H79.3338L84.4736 12.9632L89.5663 6.12305H91.7674L85.5742 14.3077L92.0054 22.8756H89.7525L84.4006 15.6722L79.0451 22.8756H76.8594L83.2965 14.3324Z",
27
- fill: "black"
28
- }),
29
- /*#__PURE__*/ _jsx(Path, {
30
- opacity: "0.3",
31
- d: "M3.05934 17.5614C2.45475 17.5598 1.86415 17.3792 1.36192 17.0423C0.859683 16.7054 0.468271 16.2273 0.23697 15.6682C0.00566877 15.1091 -0.0551799 14.494 0.0620863 13.9004C0.179353 13.3068 0.469491 12.7611 0.895964 12.3322L12.3256 0.892604C12.909 0.364801 13.6728 0.0817665 14.459 0.102098C15.2452 0.12243 15.9934 0.444573 16.5488 1.00183C17.1042 1.55908 17.4243 2.30877 17.4426 3.09567C17.461 3.88257 17.1764 4.64641 16.6476 5.22904L5.218 16.6686C4.93441 16.9521 4.59781 17.1768 4.22742 17.33C3.85703 17.4832 3.46011 17.5618 3.05934 17.5614Z",
32
- fill: "#50C8E8"
33
- }),
34
- /*#__PURE__*/ _jsx(Path, {
35
- opacity: "0.3",
36
- d: "M8.77458 23.28C8.16964 23.2788 7.57859 23.0985 7.07593 22.7616C6.57326 22.4248 6.18149 21.9465 5.94999 21.3871C5.7185 20.8277 5.65764 20.2123 5.7751 19.6183C5.89256 19.0244 6.18308 18.4786 6.61002 18.0496L12.3213 12.3334C12.6004 12.027 12.9387 11.7804 13.3158 11.6086C13.6928 11.4368 14.1008 11.3433 14.5149 11.3338C14.9291 11.3243 15.3409 11.399 15.7254 11.5533C16.1099 11.7076 16.4592 11.9384 16.752 12.2317C17.0449 12.525 17.2753 12.8746 17.4293 13.2596C17.5832 13.6445 17.6576 14.0567 17.6479 14.4712C17.6382 14.8858 17.5446 15.294 17.3727 15.6713C17.2008 16.0486 16.9543 16.3871 16.648 16.6663L10.9368 22.3837C10.653 22.6681 10.3159 22.8936 9.94489 23.0474C9.57386 23.2013 9.17617 23.2803 8.77458 23.28Z",
37
- fill: "#50C8E8"
38
- }),
39
- /*#__PURE__*/ _jsx(Path, {
40
- d: "M14.4866 29.0001C16.176 29.0001 17.5455 27.6294 17.5455 25.9385C17.5455 24.2477 16.176 22.877 14.4866 22.877C12.7972 22.877 11.4277 24.2477 11.4277 25.9385C11.4277 27.6294 12.7972 29.0001 14.4866 29.0001Z",
41
- fill: "#50C8E8"
42
- }),
43
- /*#__PURE__*/ _jsx(Path, {
44
- d: "M14.4866 6.12314C16.176 6.12314 17.5455 4.75243 17.5455 3.06157C17.5455 1.37071 16.176 0 14.4866 0C12.7972 0 11.4277 1.37071 11.4277 3.06157C11.4277 4.75243 12.7972 6.12314 14.4866 6.12314Z",
45
- fill: "#50C8E8"
46
- }),
47
- /*#__PURE__*/ _jsx(Path, {
48
- d: "M14.4866 17.5616C16.176 17.5616 17.5455 16.1909 17.5455 14.5C17.5455 12.8092 16.176 11.4385 14.4866 11.4385C12.7972 11.4385 11.4277 12.8092 11.4277 14.5C11.4277 16.1909 12.7972 17.5616 14.4866 17.5616Z",
49
- fill: "#50C8E8"
50
- })
51
- ]
52
- }),
53
- /*#__PURE__*/ _jsx(Defs, {
54
- children: /*#__PURE__*/ _jsx("clipPath", {
55
- id: "clip0_664_102105",
56
- children: /*#__PURE__*/ _jsx(Rect, {
57
- width: "92",
58
- height: "29",
59
- fill: "white"
60
- })
61
- })
62
- })
63
- ]
64
- });
65
- };
66
- export default FluxLogo;
@@ -1 +0,0 @@
1
- {"version":3,"file":"FluxLogo.js","sourceRoot":"","sources":["../../src/components/FluxLogo.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAE9D,MAAM,QAAQ,GAAG,GAAG,EAAE;IACrB,OAAO,CACN,MAAC,GAAG,IAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,aAC1D,MAAC,CAAC,IAAC,QAAQ,EAAC,wBAAwB,aACnC,KAAC,IAAI,IACJ,CAAC,EAAC,yGAAyG,EAC3G,IAAI,EAAC,OAAO,GACX,EACF,KAAC,IAAI,IACJ,CAAC,EAAC,2EAA2E,EAC7E,IAAI,EAAC,OAAO,GACX,EACF,KAAC,IAAI,IACJ,CAAC,EAAC,+PAA+P,EACjQ,IAAI,EAAC,OAAO,GACX,EACF,KAAC,IAAI,IACJ,CAAC,EAAC,mLAAmL,EACrL,IAAI,EAAC,OAAO,GACX,EACF,KAAC,IAAI,IACJ,OAAO,EAAC,KAAK,EACb,CAAC,EAAC,8hBAA8hB,EAChiB,IAAI,EAAC,SAAS,GACb,EACF,KAAC,IAAI,IACJ,OAAO,EAAC,KAAK,EACb,CAAC,EAAC,ssBAAssB,EACxsB,IAAI,EAAC,SAAS,GACb,EACF,KAAC,IAAI,IACJ,CAAC,EAAC,8MAA8M,EAChN,IAAI,EAAC,SAAS,GACb,EACF,KAAC,IAAI,IACJ,CAAC,EAAC,+LAA+L,EACjM,IAAI,EAAC,SAAS,GACb,EACF,KAAC,IAAI,IACJ,CAAC,EAAC,2MAA2M,EAC7M,IAAI,EAAC,SAAS,GACb,IACC,EACJ,KAAC,IAAI,cACJ,mBAAU,EAAE,EAAC,kBAAkB,YAC9B,KAAC,IAAI,IAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,GAAG,GAClC,GACL,IACF,CACN,CAAA;AACF,CAAC,CAAA;AAED,eAAe,QAAQ,CAAA"}
@@ -1,7 +0,0 @@
1
- import { type PageProps } from '@react-pdf/renderer';
2
- import type React from 'react';
3
- import type { PropsWithChildren } from 'react';
4
- type Props = PageProps & {};
5
- declare const StandardDocument: React.FC<PropsWithChildren<Props>>;
6
- export default StandardDocument;
7
- //# sourceMappingURL=StandardPage.d.ts.map