@arslankhan/doc-forge 0.0.0-stage → 0.1.1

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 (246) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/LICENSE +13 -0
  3. package/LICENSING.md +80 -0
  4. package/README.md +547 -2
  5. package/RELEASE.md +50 -0
  6. package/dist/binding-path.d.ts +15 -0
  7. package/dist/binding-path.d.ts.map +1 -0
  8. package/dist/binding-path.js +37 -0
  9. package/dist/binding-path.js.map +1 -0
  10. package/dist/binding.d.ts +91 -0
  11. package/dist/binding.d.ts.map +1 -0
  12. package/dist/binding.js +229 -0
  13. package/dist/binding.js.map +1 -0
  14. package/dist/designer/Canvas.d.ts +51 -0
  15. package/dist/designer/Canvas.d.ts.map +1 -0
  16. package/dist/designer/Canvas.js +188 -0
  17. package/dist/designer/Canvas.js.map +1 -0
  18. package/dist/designer/DocumentDesigner.d.ts +14 -0
  19. package/dist/designer/DocumentDesigner.d.ts.map +1 -0
  20. package/dist/designer/DocumentDesigner.js +351 -0
  21. package/dist/designer/DocumentDesigner.js.map +1 -0
  22. package/dist/designer/HtmlPreview.d.ts +9 -0
  23. package/dist/designer/HtmlPreview.d.ts.map +1 -0
  24. package/dist/designer/HtmlPreview.js +20 -0
  25. package/dist/designer/HtmlPreview.js.map +1 -0
  26. package/dist/designer/ImageBindingFields.d.ts +11 -0
  27. package/dist/designer/ImageBindingFields.d.ts.map +1 -0
  28. package/dist/designer/ImageBindingFields.js +106 -0
  29. package/dist/designer/ImageBindingFields.js.map +1 -0
  30. package/dist/designer/InvoiceFields.d.ts +13 -0
  31. package/dist/designer/InvoiceFields.d.ts.map +1 -0
  32. package/dist/designer/InvoiceFields.js +85 -0
  33. package/dist/designer/InvoiceFields.js.map +1 -0
  34. package/dist/designer/PreviewDataDialog.d.ts +13 -0
  35. package/dist/designer/PreviewDataDialog.d.ts.map +1 -0
  36. package/dist/designer/PreviewDataDialog.js +16 -0
  37. package/dist/designer/PreviewDataDialog.js.map +1 -0
  38. package/dist/designer/PropertiesPanel.d.ts +15 -0
  39. package/dist/designer/PropertiesPanel.d.ts.map +1 -0
  40. package/dist/designer/PropertiesPanel.js +63 -0
  41. package/dist/designer/PropertiesPanel.js.map +1 -0
  42. package/dist/designer/ReportFields.d.ts +14 -0
  43. package/dist/designer/ReportFields.d.ts.map +1 -0
  44. package/dist/designer/ReportFields.js +257 -0
  45. package/dist/designer/ReportFields.js.map +1 -0
  46. package/dist/designer/StyleFields.d.ts +16 -0
  47. package/dist/designer/StyleFields.d.ts.map +1 -0
  48. package/dist/designer/StyleFields.js +138 -0
  49. package/dist/designer/StyleFields.js.map +1 -0
  50. package/dist/designer/TextBindingFields.d.ts +11 -0
  51. package/dist/designer/TextBindingFields.d.ts.map +1 -0
  52. package/dist/designer/TextBindingFields.js +105 -0
  53. package/dist/designer/TextBindingFields.js.map +1 -0
  54. package/dist/designer/Toolbar.d.ts +52 -0
  55. package/dist/designer/Toolbar.d.ts.map +1 -0
  56. package/dist/designer/Toolbar.js +62 -0
  57. package/dist/designer/Toolbar.js.map +1 -0
  58. package/dist/designer/Toolbox.d.ts +8 -0
  59. package/dist/designer/Toolbox.d.ts.map +1 -0
  60. package/dist/designer/Toolbox.js +43 -0
  61. package/dist/designer/Toolbox.js.map +1 -0
  62. package/dist/designer/border-preview.d.ts +15 -0
  63. package/dist/designer/border-preview.d.ts.map +1 -0
  64. package/dist/designer/border-preview.js +34 -0
  65. package/dist/designer/border-preview.js.map +1 -0
  66. package/dist/designer/history.d.ts +13 -0
  67. package/dist/designer/history.d.ts.map +1 -0
  68. package/dist/designer/history.js +51 -0
  69. package/dist/designer/history.js.map +1 -0
  70. package/dist/designer/index.d.ts +5 -0
  71. package/dist/designer/index.d.ts.map +1 -0
  72. package/dist/designer/index.js +3 -0
  73. package/dist/designer/index.js.map +1 -0
  74. package/dist/designer/page-geometry.d.ts +35 -0
  75. package/dist/designer/page-geometry.d.ts.map +1 -0
  76. package/dist/designer/page-geometry.js +123 -0
  77. package/dist/designer/page-geometry.js.map +1 -0
  78. package/dist/designer/styles.d.ts +3 -0
  79. package/dist/designer/styles.d.ts.map +1 -0
  80. package/dist/designer/styles.js +594 -0
  81. package/dist/designer/styles.js.map +1 -0
  82. package/dist/designer/template-edits.d.ts +26 -0
  83. package/dist/designer/template-edits.d.ts.map +1 -0
  84. package/dist/designer/template-edits.js +323 -0
  85. package/dist/designer/template-edits.js.map +1 -0
  86. package/dist/designer/theme.d.ts +31 -0
  87. package/dist/designer/theme.d.ts.map +1 -0
  88. package/dist/designer/theme.js +92 -0
  89. package/dist/designer/theme.js.map +1 -0
  90. package/dist/examples/bound-invoice.d.ts +143 -0
  91. package/dist/examples/bound-invoice.d.ts.map +1 -0
  92. package/dist/examples/bound-invoice.js +99 -0
  93. package/dist/examples/bound-invoice.js.map +1 -0
  94. package/dist/examples/full-invoice-data.d.ts +81 -0
  95. package/dist/examples/full-invoice-data.d.ts.map +1 -0
  96. package/dist/examples/full-invoice-data.js +86 -0
  97. package/dist/examples/full-invoice-data.js.map +1 -0
  98. package/dist/examples/full-invoice.d.ts +402 -0
  99. package/dist/examples/full-invoice.d.ts.map +1 -0
  100. package/dist/examples/full-invoice.js +199 -0
  101. package/dist/examples/full-invoice.js.map +1 -0
  102. package/dist/examples/invoice-data.d.ts +51 -0
  103. package/dist/examples/invoice-data.d.ts.map +1 -0
  104. package/dist/examples/invoice-data.js +51 -0
  105. package/dist/examples/invoice-data.js.map +1 -0
  106. package/dist/examples/invoice.d.ts +90 -0
  107. package/dist/examples/invoice.d.ts.map +1 -0
  108. package/dist/examples/invoice.js +62 -0
  109. package/dist/examples/invoice.js.map +1 -0
  110. package/dist/examples/jobs-report-data.d.ts +84 -0
  111. package/dist/examples/jobs-report-data.d.ts.map +1 -0
  112. package/dist/examples/jobs-report-data.js +79 -0
  113. package/dist/examples/jobs-report-data.js.map +1 -0
  114. package/dist/examples/jobs-report.d.ts +182 -0
  115. package/dist/examples/jobs-report.d.ts.map +1 -0
  116. package/dist/examples/jobs-report.js +96 -0
  117. package/dist/examples/jobs-report.js.map +1 -0
  118. package/dist/index.d.ts +31 -0
  119. package/dist/index.d.ts.map +1 -0
  120. package/dist/index.js +21 -0
  121. package/dist/index.js.map +1 -0
  122. package/dist/invoice/calculate.d.ts +59 -0
  123. package/dist/invoice/calculate.d.ts.map +1 -0
  124. package/dist/invoice/calculate.js +270 -0
  125. package/dist/invoice/calculate.js.map +1 -0
  126. package/dist/invoice/context.d.ts +15 -0
  127. package/dist/invoice/context.d.ts.map +1 -0
  128. package/dist/invoice/context.js +79 -0
  129. package/dist/invoice/context.js.map +1 -0
  130. package/dist/invoice/format.d.ts +10 -0
  131. package/dist/invoice/format.d.ts.map +1 -0
  132. package/dist/invoice/format.js +95 -0
  133. package/dist/invoice/format.js.map +1 -0
  134. package/dist/license/capabilities.d.ts +17 -0
  135. package/dist/license/capabilities.d.ts.map +1 -0
  136. package/dist/license/capabilities.js +46 -0
  137. package/dist/license/capabilities.js.map +1 -0
  138. package/dist/license/client.d.ts +109 -0
  139. package/dist/license/client.d.ts.map +1 -0
  140. package/dist/license/client.js +346 -0
  141. package/dist/license/client.js.map +1 -0
  142. package/dist/license/codec.d.ts +5 -0
  143. package/dist/license/codec.d.ts.map +1 -0
  144. package/dist/license/codec.js +26 -0
  145. package/dist/license/codec.js.map +1 -0
  146. package/dist/license/errors.d.ts +11 -0
  147. package/dist/license/errors.d.ts.map +1 -0
  148. package/dist/license/errors.js +19 -0
  149. package/dist/license/errors.js.map +1 -0
  150. package/dist/license/features.d.ts +20 -0
  151. package/dist/license/features.d.ts.map +1 -0
  152. package/dist/license/features.js +28 -0
  153. package/dist/license/features.js.map +1 -0
  154. package/dist/license/index.d.ts +16 -0
  155. package/dist/license/index.d.ts.map +1 -0
  156. package/dist/license/index.js +9 -0
  157. package/dist/license/index.js.map +1 -0
  158. package/dist/license/provider.d.ts +59 -0
  159. package/dist/license/provider.d.ts.map +1 -0
  160. package/dist/license/provider.js +150 -0
  161. package/dist/license/provider.js.map +1 -0
  162. package/dist/license/redact.d.ts +4 -0
  163. package/dist/license/redact.d.ts.map +1 -0
  164. package/dist/license/redact.js +15 -0
  165. package/dist/license/redact.js.map +1 -0
  166. package/dist/license/store.d.ts +26 -0
  167. package/dist/license/store.d.ts.map +1 -0
  168. package/dist/license/store.js +90 -0
  169. package/dist/license/store.js.map +1 -0
  170. package/dist/license/token.d.ts +45 -0
  171. package/dist/license/token.d.ts.map +1 -0
  172. package/dist/license/token.js +195 -0
  173. package/dist/license/token.js.map +1 -0
  174. package/dist/pdf/browser-blocked.d.ts +12 -0
  175. package/dist/pdf/browser-blocked.d.ts.map +1 -0
  176. package/dist/pdf/browser-blocked.js +25 -0
  177. package/dist/pdf/browser-blocked.js.map +1 -0
  178. package/dist/pdf/browser.d.ts +12 -0
  179. package/dist/pdf/browser.d.ts.map +1 -0
  180. package/dist/pdf/browser.js +69 -0
  181. package/dist/pdf/browser.js.map +1 -0
  182. package/dist/pdf/errors.d.ts +6 -0
  183. package/dist/pdf/errors.d.ts.map +1 -0
  184. package/dist/pdf/errors.js +11 -0
  185. package/dist/pdf/errors.js.map +1 -0
  186. package/dist/pdf/index.d.ts +10 -0
  187. package/dist/pdf/index.d.ts.map +1 -0
  188. package/dist/pdf/index.js +9 -0
  189. package/dist/pdf/index.js.map +1 -0
  190. package/dist/pdf/options.d.ts +143 -0
  191. package/dist/pdf/options.d.ts.map +1 -0
  192. package/dist/pdf/options.js +322 -0
  193. package/dist/pdf/options.js.map +1 -0
  194. package/dist/pdf/render-pdf.d.ts +13 -0
  195. package/dist/pdf/render-pdf.d.ts.map +1 -0
  196. package/dist/pdf/render-pdf.js +195 -0
  197. package/dist/pdf/render-pdf.js.map +1 -0
  198. package/dist/render/appearance.d.ts +25 -0
  199. package/dist/render/appearance.d.ts.map +1 -0
  200. package/dist/render/appearance.js +149 -0
  201. package/dist/render/appearance.js.map +1 -0
  202. package/dist/render/css.d.ts +17 -0
  203. package/dist/render/css.d.ts.map +1 -0
  204. package/dist/render/css.js +170 -0
  205. package/dist/render/css.js.map +1 -0
  206. package/dist/render/errors.d.ts +6 -0
  207. package/dist/render/errors.d.ts.map +1 -0
  208. package/dist/render/errors.js +11 -0
  209. package/dist/render/errors.js.map +1 -0
  210. package/dist/render/escape.d.ts +7 -0
  211. package/dist/render/escape.d.ts.map +1 -0
  212. package/dist/render/escape.js +27 -0
  213. package/dist/render/escape.js.map +1 -0
  214. package/dist/render/image-policy.d.ts +21 -0
  215. package/dist/render/image-policy.d.ts.map +1 -0
  216. package/dist/render/image-policy.js +62 -0
  217. package/dist/render/image-policy.js.map +1 -0
  218. package/dist/render/render-html.d.ts +28 -0
  219. package/dist/render/render-html.d.ts.map +1 -0
  220. package/dist/render/render-html.js +364 -0
  221. package/dist/render/render-html.js.map +1 -0
  222. package/dist/render/render-report.d.ts +23 -0
  223. package/dist/render/render-report.d.ts.map +1 -0
  224. package/dist/render/render-report.js +313 -0
  225. package/dist/render/render-report.js.map +1 -0
  226. package/dist/report/process.d.ts +48 -0
  227. package/dist/report/process.d.ts.map +1 -0
  228. package/dist/report/process.js +347 -0
  229. package/dist/report/process.js.map +1 -0
  230. package/dist/schema.d.ts +30 -0
  231. package/dist/schema.d.ts.map +1 -0
  232. package/dist/schema.js +8 -0
  233. package/dist/schema.js.map +1 -0
  234. package/dist/serialize.d.ts +13 -0
  235. package/dist/serialize.d.ts.map +1 -0
  236. package/dist/serialize.js +42 -0
  237. package/dist/serialize.js.map +1 -0
  238. package/dist/types.d.ts +335 -0
  239. package/dist/types.d.ts.map +1 -0
  240. package/dist/types.js +40 -0
  241. package/dist/types.js.map +1 -0
  242. package/dist/validate.d.ts +15 -0
  243. package/dist/validate.d.ts.map +1 -0
  244. package/dist/validate.js +977 -0
  245. package/dist/validate.js.map +1 -0
  246. package/package.json +105 -4
@@ -0,0 +1,99 @@
1
+ import { SCHEMA_VERSION } from "../schema.js";
2
+ import { standardPageDimensions } from "../types.js";
3
+ /**
4
+ * Invoice template whose text elements are bound to {@link exampleInvoiceData}.
5
+ * The `text` values are design placeholders. Preview data is not stored on the template.
6
+ */
7
+ export const exampleBoundInvoiceTemplate = {
8
+ schemaVersion: SCHEMA_VERSION,
9
+ id: "invoice-bound",
10
+ name: "Bound Invoice",
11
+ documentType: "invoice",
12
+ page: {
13
+ paperSize: "A4",
14
+ orientation: "portrait",
15
+ dimensions: standardPageDimensions("A4", "portrait"),
16
+ margins: {
17
+ top: 15,
18
+ right: 15,
19
+ bottom: 15,
20
+ left: 15,
21
+ },
22
+ layoutMode: "fixed",
23
+ },
24
+ elements: [
25
+ {
26
+ id: "company-name",
27
+ type: "text",
28
+ position: { x: 20, y: 20 },
29
+ dimensions: { width: 110, height: 10 },
30
+ text: "Company Name",
31
+ binding: { path: "company.name", fallback: "Company Name" },
32
+ style: { fontFamily: "Helvetica", fontSize: 18, fontWeight: "bold", color: "#111111" },
33
+ },
34
+ {
35
+ id: "company-address",
36
+ type: "text",
37
+ position: { x: 20, y: 32 },
38
+ dimensions: { width: 110, height: 8 },
39
+ text: "Company Address",
40
+ binding: { path: "company.address", fallback: "Company Address" },
41
+ style: { fontFamily: "Helvetica", fontSize: 11, color: "#333333" },
42
+ },
43
+ {
44
+ id: "customer-name",
45
+ type: "text",
46
+ position: { x: 20, y: 52 },
47
+ dimensions: { width: 110, height: 8 },
48
+ text: "Customer Name",
49
+ binding: { path: "customer.name", fallback: "Customer Name" },
50
+ style: { fontFamily: "Helvetica", fontSize: 12, fontWeight: "bold", color: "#111111" },
51
+ },
52
+ {
53
+ id: "customer-city",
54
+ type: "text",
55
+ position: { x: 20, y: 62 },
56
+ dimensions: { width: 110, height: 8 },
57
+ text: "City",
58
+ binding: { path: "customer.address.city", fallback: "City" },
59
+ style: { fontFamily: "Helvetica", fontSize: 11, color: "#333333" },
60
+ },
61
+ {
62
+ id: "invoice-number",
63
+ type: "text",
64
+ position: { x: 140, y: 20 },
65
+ dimensions: { width: 50, height: 8 },
66
+ text: "INV-0001",
67
+ binding: { path: "invoice.number", fallback: "INV-0001" },
68
+ style: { fontFamily: "Helvetica", fontSize: 12, textAlign: "right", color: "#333333" },
69
+ },
70
+ {
71
+ id: "invoice-date",
72
+ type: "text",
73
+ position: { x: 140, y: 30 },
74
+ dimensions: { width: 50, height: 8 },
75
+ text: "Date",
76
+ binding: { path: "invoice.date", fallback: "Date" },
77
+ style: { fontFamily: "Helvetica", fontSize: 11, textAlign: "right", color: "#333333" },
78
+ },
79
+ {
80
+ id: "invoice-total",
81
+ type: "text",
82
+ position: { x: 140, y: 40 },
83
+ dimensions: { width: 50, height: 8 },
84
+ text: "Total",
85
+ binding: { path: "invoice.total", fallback: "Total" },
86
+ style: { fontFamily: "Helvetica", fontSize: 12, fontWeight: "bold", textAlign: "right", color: "#111111" },
87
+ },
88
+ {
89
+ id: "company-logo",
90
+ type: "image",
91
+ position: { x: 150, y: 18 },
92
+ dimensions: { width: 40, height: 20 },
93
+ src: "assets/logo.png",
94
+ alt: "Company logo",
95
+ binding: { path: "company.logo", fallback: "assets/logo.png" },
96
+ },
97
+ ],
98
+ };
99
+ //# sourceMappingURL=bound-invoice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bound-invoice.js","sourceRoot":"","sources":["../../src/examples/bound-invoice.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Illustrative invoice datasets. The URLs document bindings; they are not hosted files.
3
+ * Smartbooks and AED are sample values, not engine defaults.
4
+ */
5
+ export declare const exampleFullInvoiceData: {
6
+ readonly company: {
7
+ readonly name: "Smartbooks";
8
+ readonly logo: "https://example.com/company-logo.png";
9
+ readonly address: "Dubai, UAE";
10
+ readonly phone: "+971500000000";
11
+ readonly email: "accounts@example.com";
12
+ readonly taxNumber: "TRN-123456789";
13
+ };
14
+ readonly customer: {
15
+ readonly name: "ABC Trading LLC";
16
+ readonly address: "Business Bay, Dubai";
17
+ readonly email: "customer@example.com";
18
+ readonly taxNumber: "CUSTOMER-TRN-123";
19
+ };
20
+ readonly invoice: {
21
+ readonly number: "INV-0001";
22
+ readonly date: "2026-10-13";
23
+ readonly dueDate: "2026-10-27";
24
+ readonly currency: "AED";
25
+ readonly notes: "Thank you for your business.";
26
+ readonly discount: {
27
+ readonly type: "percentage";
28
+ readonly value: 10;
29
+ };
30
+ readonly taxRate: 5;
31
+ readonly items: readonly [{
32
+ readonly description: "Web Development";
33
+ readonly quantity: 10;
34
+ readonly unit: "hours";
35
+ readonly rate: 150;
36
+ readonly taxRate: 5;
37
+ }, {
38
+ readonly description: "UI Design";
39
+ readonly quantity: 5;
40
+ readonly unit: "hours";
41
+ readonly rate: 100;
42
+ readonly taxRate: 5;
43
+ }];
44
+ };
45
+ };
46
+ /** A second invoice for the same template. The discount is a fixed amount and tax is zero. */
47
+ export declare const exampleFullInvoiceDataAlternate: {
48
+ readonly company: {
49
+ readonly name: "Northwind Traders";
50
+ readonly logo: "https://example.com/northwind-logo.png";
51
+ readonly address: "Austin, USA";
52
+ readonly phone: "+15125550100";
53
+ readonly email: "billing@example.com";
54
+ readonly taxNumber: "TRN-000111";
55
+ };
56
+ readonly customer: {
57
+ readonly name: "Contoso Ltd";
58
+ readonly address: "Austin, USA";
59
+ readonly email: "ap@example.com";
60
+ readonly taxNumber: "C-9";
61
+ };
62
+ readonly invoice: {
63
+ readonly number: "INV-2042";
64
+ readonly date: "2026-11-02";
65
+ readonly dueDate: "2026-11-16";
66
+ readonly currency: "USD";
67
+ readonly notes: "Payment due on receipt.";
68
+ readonly discount: {
69
+ readonly type: "fixed";
70
+ readonly value: 25;
71
+ };
72
+ readonly taxRate: 0;
73
+ readonly items: readonly [{
74
+ readonly description: "Consulting";
75
+ readonly quantity: 2;
76
+ readonly unit: "days";
77
+ readonly rate: 400;
78
+ }];
79
+ };
80
+ };
81
+ //# sourceMappingURL=full-invoice-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"full-invoice-data.d.ts","sourceRoot":"","sources":["../../src/examples/full-invoice-data.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CzB,CAAC;AAEX,8FAA8F;AAC9F,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmClC,CAAC"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Illustrative invoice datasets. The URLs document bindings; they are not hosted files.
3
+ * Smartbooks and AED are sample values, not engine defaults.
4
+ */
5
+ export const exampleFullInvoiceData = {
6
+ company: {
7
+ name: "Smartbooks",
8
+ logo: "https://example.com/company-logo.png",
9
+ address: "Dubai, UAE",
10
+ phone: "+971500000000",
11
+ email: "accounts@example.com",
12
+ taxNumber: "TRN-123456789",
13
+ },
14
+ customer: {
15
+ name: "ABC Trading LLC",
16
+ address: "Business Bay, Dubai",
17
+ email: "customer@example.com",
18
+ taxNumber: "CUSTOMER-TRN-123",
19
+ },
20
+ invoice: {
21
+ number: "INV-0001",
22
+ date: "2026-10-13",
23
+ dueDate: "2026-10-27",
24
+ currency: "AED",
25
+ notes: "Thank you for your business.",
26
+ discount: {
27
+ type: "percentage",
28
+ value: 10,
29
+ },
30
+ taxRate: 5,
31
+ items: [
32
+ {
33
+ description: "Web Development",
34
+ quantity: 10,
35
+ unit: "hours",
36
+ rate: 150,
37
+ taxRate: 5,
38
+ },
39
+ {
40
+ description: "UI Design",
41
+ quantity: 5,
42
+ unit: "hours",
43
+ rate: 100,
44
+ taxRate: 5,
45
+ },
46
+ ],
47
+ },
48
+ };
49
+ /** A second invoice for the same template. The discount is a fixed amount and tax is zero. */
50
+ export const exampleFullInvoiceDataAlternate = {
51
+ company: {
52
+ name: "Northwind Traders",
53
+ logo: "https://example.com/northwind-logo.png",
54
+ address: "Austin, USA",
55
+ phone: "+15125550100",
56
+ email: "billing@example.com",
57
+ taxNumber: "TRN-000111",
58
+ },
59
+ customer: {
60
+ name: "Contoso Ltd",
61
+ address: "Austin, USA",
62
+ email: "ap@example.com",
63
+ taxNumber: "C-9",
64
+ },
65
+ invoice: {
66
+ number: "INV-2042",
67
+ date: "2026-11-02",
68
+ dueDate: "2026-11-16",
69
+ currency: "USD",
70
+ notes: "Payment due on receipt.",
71
+ discount: {
72
+ type: "fixed",
73
+ value: 25,
74
+ },
75
+ taxRate: 0,
76
+ items: [
77
+ {
78
+ description: "Consulting",
79
+ quantity: 2,
80
+ unit: "days",
81
+ rate: 400,
82
+ },
83
+ ],
84
+ },
85
+ };
86
+ //# sourceMappingURL=full-invoice-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"full-invoice-data.js","sourceRoot":"","sources":["../../src/examples/full-invoice-data.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,OAAO,EAAE;QACP,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,sCAAsC;QAC5C,OAAO,EAAE,YAAY;QACrB,KAAK,EAAE,eAAe;QACtB,KAAK,EAAE,sBAAsB;QAC7B,SAAS,EAAE,eAAe;KAC3B;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,qBAAqB;QAC9B,KAAK,EAAE,sBAAsB;QAC7B,SAAS,EAAE,kBAAkB;KAC9B;IACD,OAAO,EAAE;QACP,MAAM,EAAE,UAAU;QAClB,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,YAAY;QACrB,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,8BAA8B;QACrC,QAAQ,EAAE;YACR,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,EAAE;SACV;QACD,OAAO,EAAE,CAAC;QACV,KAAK,EAAE;YACL;gBACE,WAAW,EAAE,iBAAiB;gBAC9B,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,GAAG;gBACT,OAAO,EAAE,CAAC;aACX;YACD;gBACE,WAAW,EAAE,WAAW;gBACxB,QAAQ,EAAE,CAAC;gBACX,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,GAAG;gBACT,OAAO,EAAE,CAAC;aACX;SACF;KACF;CACO,CAAC;AAEX,8FAA8F;AAC9F,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,OAAO,EAAE;QACP,IAAI,EAAE,mBAAmB;QACzB,IAAI,EAAE,wCAAwC;QAC9C,OAAO,EAAE,aAAa;QACtB,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,qBAAqB;QAC5B,SAAS,EAAE,YAAY;KACxB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,aAAa;QACtB,KAAK,EAAE,gBAAgB;QACvB,SAAS,EAAE,KAAK;KACjB;IACD,OAAO,EAAE;QACP,MAAM,EAAE,UAAU;QAClB,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,YAAY;QACrB,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,yBAAyB;QAChC,QAAQ,EAAE;YACR,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,EAAE;SACV;QACD,OAAO,EAAE,CAAC;QACV,KAAK,EAAE;YACL;gBACE,WAAW,EAAE,YAAY;gBACzB,QAAQ,EAAE,CAAC;gBACX,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,GAAG;aACV;SACF;KACF;CACO,CAAC"}
@@ -0,0 +1,402 @@
1
+ /**
2
+ * A saved invoice template. Company, customer, and money values come from JSON.
3
+ * `invoice.currency` supplies the currency code when a format does not set one.
4
+ */
5
+ export declare const exampleFullInvoiceTemplate: {
6
+ schemaVersion: 1;
7
+ id: string;
8
+ name: string;
9
+ documentType: "invoice";
10
+ page: {
11
+ paperSize: "A4";
12
+ orientation: "portrait";
13
+ dimensions: import("../types.js").PageDimensions;
14
+ margins: {
15
+ top: number;
16
+ right: number;
17
+ bottom: number;
18
+ left: number;
19
+ };
20
+ layoutMode: "fixed";
21
+ };
22
+ elements: ({
23
+ id: string;
24
+ type: "image";
25
+ position: {
26
+ x: number;
27
+ y: number;
28
+ };
29
+ dimensions: {
30
+ width: number;
31
+ height: number;
32
+ };
33
+ alt: string;
34
+ binding: {
35
+ path: string;
36
+ fallback?: undefined;
37
+ prefix?: undefined;
38
+ format?: undefined;
39
+ };
40
+ text?: undefined;
41
+ style?: undefined;
42
+ itemsPath?: undefined;
43
+ showHeader?: undefined;
44
+ emptyText?: undefined;
45
+ padding?: undefined;
46
+ columns?: undefined;
47
+ headerStyle?: undefined;
48
+ rows?: undefined;
49
+ } | {
50
+ id: string;
51
+ type: "text";
52
+ position: {
53
+ x: number;
54
+ y: number;
55
+ };
56
+ dimensions: {
57
+ width: number;
58
+ height: number;
59
+ };
60
+ text: string;
61
+ binding: {
62
+ path: string;
63
+ fallback: string;
64
+ prefix?: undefined;
65
+ format?: undefined;
66
+ };
67
+ style: {
68
+ fontFamily: string;
69
+ fontSize: number;
70
+ fontWeight: "bold";
71
+ color: string;
72
+ textAlign?: undefined;
73
+ borderColor?: undefined;
74
+ borderWidth?: undefined;
75
+ borderStyle?: undefined;
76
+ padding?: undefined;
77
+ };
78
+ alt?: undefined;
79
+ itemsPath?: undefined;
80
+ showHeader?: undefined;
81
+ emptyText?: undefined;
82
+ padding?: undefined;
83
+ columns?: undefined;
84
+ headerStyle?: undefined;
85
+ rows?: undefined;
86
+ } | {
87
+ id: string;
88
+ type: "text";
89
+ position: {
90
+ x: number;
91
+ y: number;
92
+ };
93
+ dimensions: {
94
+ width: number;
95
+ height: number;
96
+ };
97
+ text: string;
98
+ binding: {
99
+ path: string;
100
+ fallback?: undefined;
101
+ prefix?: undefined;
102
+ format?: undefined;
103
+ };
104
+ style: {
105
+ fontFamily: string;
106
+ fontSize: number;
107
+ color: string;
108
+ fontWeight?: undefined;
109
+ textAlign?: undefined;
110
+ borderColor?: undefined;
111
+ borderWidth?: undefined;
112
+ borderStyle?: undefined;
113
+ padding?: undefined;
114
+ };
115
+ alt?: undefined;
116
+ itemsPath?: undefined;
117
+ showHeader?: undefined;
118
+ emptyText?: undefined;
119
+ padding?: undefined;
120
+ columns?: undefined;
121
+ headerStyle?: undefined;
122
+ rows?: undefined;
123
+ } | {
124
+ id: string;
125
+ type: "text";
126
+ position: {
127
+ x: number;
128
+ y: number;
129
+ };
130
+ dimensions: {
131
+ width: number;
132
+ height: number;
133
+ };
134
+ text: string;
135
+ binding: {
136
+ path: string;
137
+ prefix: string;
138
+ fallback?: undefined;
139
+ format?: undefined;
140
+ };
141
+ style: {
142
+ fontFamily: string;
143
+ fontSize: number;
144
+ color: string;
145
+ fontWeight?: undefined;
146
+ textAlign?: undefined;
147
+ borderColor?: undefined;
148
+ borderWidth?: undefined;
149
+ borderStyle?: undefined;
150
+ padding?: undefined;
151
+ };
152
+ alt?: undefined;
153
+ itemsPath?: undefined;
154
+ showHeader?: undefined;
155
+ emptyText?: undefined;
156
+ padding?: undefined;
157
+ columns?: undefined;
158
+ headerStyle?: undefined;
159
+ rows?: undefined;
160
+ } | {
161
+ id: string;
162
+ type: "text";
163
+ position: {
164
+ x: number;
165
+ y: number;
166
+ };
167
+ dimensions: {
168
+ width: number;
169
+ height: number;
170
+ };
171
+ text: string;
172
+ binding: {
173
+ path: string;
174
+ prefix: string;
175
+ fallback: string;
176
+ format?: undefined;
177
+ };
178
+ style: {
179
+ fontFamily: string;
180
+ fontSize: number;
181
+ fontWeight: "bold";
182
+ textAlign: "right";
183
+ color: string;
184
+ borderColor?: undefined;
185
+ borderWidth?: undefined;
186
+ borderStyle?: undefined;
187
+ padding?: undefined;
188
+ };
189
+ alt?: undefined;
190
+ itemsPath?: undefined;
191
+ showHeader?: undefined;
192
+ emptyText?: undefined;
193
+ padding?: undefined;
194
+ columns?: undefined;
195
+ headerStyle?: undefined;
196
+ rows?: undefined;
197
+ } | {
198
+ id: string;
199
+ type: "text";
200
+ position: {
201
+ x: number;
202
+ y: number;
203
+ };
204
+ dimensions: {
205
+ width: number;
206
+ height: number;
207
+ };
208
+ text: string;
209
+ binding: {
210
+ path: string;
211
+ prefix: string;
212
+ format: {
213
+ style: "date";
214
+ dateStyle: "medium";
215
+ };
216
+ fallback?: undefined;
217
+ };
218
+ style: {
219
+ fontFamily: string;
220
+ fontSize: number;
221
+ textAlign: "right";
222
+ color: string;
223
+ fontWeight?: undefined;
224
+ borderColor?: undefined;
225
+ borderWidth?: undefined;
226
+ borderStyle?: undefined;
227
+ padding?: undefined;
228
+ };
229
+ alt?: undefined;
230
+ itemsPath?: undefined;
231
+ showHeader?: undefined;
232
+ emptyText?: undefined;
233
+ padding?: undefined;
234
+ columns?: undefined;
235
+ headerStyle?: undefined;
236
+ rows?: undefined;
237
+ } | {
238
+ id: string;
239
+ type: "text";
240
+ position: {
241
+ x: number;
242
+ y: number;
243
+ };
244
+ dimensions: {
245
+ width: number;
246
+ height: number;
247
+ };
248
+ text: string;
249
+ style: {
250
+ fontFamily: string;
251
+ fontSize: number;
252
+ fontWeight: "bold";
253
+ color: string;
254
+ textAlign?: undefined;
255
+ borderColor?: undefined;
256
+ borderWidth?: undefined;
257
+ borderStyle?: undefined;
258
+ padding?: undefined;
259
+ };
260
+ alt?: undefined;
261
+ binding?: undefined;
262
+ itemsPath?: undefined;
263
+ showHeader?: undefined;
264
+ emptyText?: undefined;
265
+ padding?: undefined;
266
+ columns?: undefined;
267
+ headerStyle?: undefined;
268
+ rows?: undefined;
269
+ } | {
270
+ id: string;
271
+ type: "items";
272
+ position: {
273
+ x: number;
274
+ y: number;
275
+ };
276
+ dimensions: {
277
+ width: number;
278
+ height: number;
279
+ };
280
+ itemsPath: string;
281
+ showHeader: true;
282
+ emptyText: string;
283
+ padding: number;
284
+ columns: ({
285
+ id: string;
286
+ header: string;
287
+ binding: {
288
+ path: string;
289
+ format?: undefined;
290
+ };
291
+ width: number;
292
+ align?: undefined;
293
+ } | {
294
+ id: string;
295
+ header: string;
296
+ binding: {
297
+ path: string;
298
+ format: {
299
+ style: "decimal";
300
+ maximumFractionDigits: number;
301
+ };
302
+ };
303
+ width: number;
304
+ align: "right";
305
+ } | {
306
+ id: string;
307
+ header: string;
308
+ binding: {
309
+ path: string;
310
+ format: {
311
+ style: "currency";
312
+ minimumFractionDigits: number;
313
+ maximumFractionDigits: number;
314
+ };
315
+ };
316
+ width: number;
317
+ align: "right";
318
+ })[];
319
+ style: {
320
+ fontFamily: string;
321
+ fontSize: number;
322
+ color: string;
323
+ borderColor: string;
324
+ borderWidth: number;
325
+ borderStyle: "solid";
326
+ padding: {
327
+ top: number;
328
+ right: number;
329
+ bottom: number;
330
+ left: number;
331
+ };
332
+ fontWeight?: undefined;
333
+ textAlign?: undefined;
334
+ };
335
+ headerStyle: {
336
+ backgroundColor: string;
337
+ color: string;
338
+ fontWeight: "bold";
339
+ };
340
+ alt?: undefined;
341
+ binding?: undefined;
342
+ text?: undefined;
343
+ rows?: undefined;
344
+ } | {
345
+ id: string;
346
+ type: "totals";
347
+ position: {
348
+ x: number;
349
+ y: number;
350
+ };
351
+ dimensions: {
352
+ width: number;
353
+ height: number;
354
+ };
355
+ rows: ({
356
+ id: string;
357
+ label: string;
358
+ binding: {
359
+ path: string;
360
+ format: {
361
+ style: "currency";
362
+ minimumFractionDigits: number;
363
+ maximumFractionDigits: number;
364
+ };
365
+ };
366
+ hideWhenZero?: undefined;
367
+ } | {
368
+ id: string;
369
+ label: string;
370
+ binding: {
371
+ path: string;
372
+ format: {
373
+ style: "currency";
374
+ minimumFractionDigits: number;
375
+ maximumFractionDigits: number;
376
+ };
377
+ };
378
+ hideWhenZero: true;
379
+ })[];
380
+ style: {
381
+ fontFamily: string;
382
+ fontSize: number;
383
+ color: string;
384
+ fontWeight?: undefined;
385
+ textAlign?: undefined;
386
+ borderColor?: undefined;
387
+ borderWidth?: undefined;
388
+ borderStyle?: undefined;
389
+ padding?: undefined;
390
+ };
391
+ alt?: undefined;
392
+ binding?: undefined;
393
+ text?: undefined;
394
+ itemsPath?: undefined;
395
+ showHeader?: undefined;
396
+ emptyText?: undefined;
397
+ padding?: undefined;
398
+ columns?: undefined;
399
+ headerStyle?: undefined;
400
+ })[];
401
+ };
402
+ //# sourceMappingURL=full-invoice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"full-invoice.d.ts","sourceRoot":"","sources":["../../src/examples/full-invoice.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6LX,CAAC"}