@happyvertical/smrt-commerce 0.56.1 → 0.57.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 (186) hide show
  1. package/AGENTS.md +24 -11
  2. package/README.md +159 -93
  3. package/agents/accounting-snapshot-mapper.md +3 -3
  4. package/agents/commercial-ui.md +2 -2
  5. package/agents/contract-money.md +9 -6
  6. package/agents/cost-billing.md +3 -6
  7. package/agents/customer-vendor-ui.md +6 -1
  8. package/agents/document-money.md +59 -31
  9. package/agents/invoice-calculations.md +31 -56
  10. package/agents/invoice-preparation.md +62 -73
  11. package/agents/invoice-quantity.md +9 -21
  12. package/agents/minor-unit-migration.md +4 -4
  13. package/agents/money-calculator.md +7 -8
  14. package/agents/money-model.md +18 -22
  15. package/agents/money-upgrade.md +92 -0
  16. package/agents/revenue-journal.md +2 -2
  17. package/agents/tax-codes.md +17 -14
  18. package/agents/tax-summary.md +12 -8
  19. package/dist/billing/period-close.d.ts.map +1 -1
  20. package/dist/billing/runtime.d.ts +5 -2
  21. package/dist/billing/runtime.d.ts.map +1 -1
  22. package/dist/chunks/{ContractLineItemCollection-DYjhj_pU.js → ContractLineItemCollection-BZcrlrrY.js} +22 -27
  23. package/dist/chunks/ContractLineItemCollection-BZcrlrrY.js.map +1 -0
  24. package/dist/chunks/{CustomerCollection-DQIujn4f.js → CustomerCollection-BIPH2ZUx.js} +3 -3
  25. package/dist/chunks/{CustomerCollection-DQIujn4f.js.map → CustomerCollection-BIPH2ZUx.js.map} +1 -1
  26. package/dist/chunks/{DocumentTaxCollection-BEpoqXAQ.js → DocumentTaxCollection-DDzlywMW.js} +41 -14
  27. package/dist/chunks/DocumentTaxCollection-DDzlywMW.js.map +1 -0
  28. package/dist/chunks/{InvoiceCollection-CKQflFjc.js → InvoiceCollection-cinzAqt6.js} +53 -164
  29. package/dist/chunks/InvoiceCollection-cinzAqt6.js.map +1 -0
  30. package/dist/chunks/{TaxCodeCollection-DOpzW4y8.js → TaxCodeCollection-DaBOPG9c.js} +11 -4
  31. package/dist/chunks/{TaxCodeCollection-DOpzW4y8.js.map → TaxCodeCollection-DaBOPG9c.js.map} +1 -1
  32. package/dist/chunks/{TaxComponentCollection-Cs2uXwEl.js → TaxComponentCollection-C4zxnyVu.js} +3 -3
  33. package/dist/chunks/{TaxComponentCollection-Cs2uXwEl.js.map → TaxComponentCollection-C4zxnyVu.js.map} +1 -1
  34. package/dist/chunks/VendorCollection-D6ZcUYy8.js +100 -0
  35. package/dist/chunks/VendorCollection-D6ZcUYy8.js.map +1 -0
  36. package/dist/chunks/{allocation-integrity-DI3G16BN.js → allocation-integrity-WmWyXhtG.js} +6 -6
  37. package/dist/chunks/{allocation-integrity-DI3G16BN.js.map → allocation-integrity-WmWyXhtG.js.map} +1 -1
  38. package/dist/chunks/calculations-C9daQLsh.js +82 -0
  39. package/dist/chunks/calculations-C9daQLsh.js.map +1 -0
  40. package/dist/chunks/contract-money-EuToOghh.js +301 -0
  41. package/dist/chunks/contract-money-EuToOghh.js.map +1 -0
  42. package/dist/chunks/detect-CY9ufaFb.js +328 -0
  43. package/dist/chunks/detect-CY9ufaFb.js.map +1 -0
  44. package/dist/chunks/{document-money-DNVhDJyC.js → document-money-DV5t4vlK.js} +389 -63
  45. package/dist/chunks/document-money-DV5t4vlK.js.map +1 -0
  46. package/dist/chunks/{invoice-posting-BwV8g7z0.js → invoice-posting-C2i5dOVZ.js} +21 -23
  47. package/dist/chunks/invoice-posting-C2i5dOVZ.js.map +1 -0
  48. package/dist/chunks/{revenue-journal-DY9fro8E.js → revenue-journal-LLA9Kh_i.js} +3 -14
  49. package/dist/chunks/revenue-journal-LLA9Kh_i.js.map +1 -0
  50. package/dist/chunks/tenant-money-barrier-6TlqUeVj.js +255 -0
  51. package/dist/chunks/tenant-money-barrier-6TlqUeVj.js.map +1 -0
  52. package/dist/chunks/{types-LDETvQ1C.js → types-Bbm0Xflc.js} +2 -1
  53. package/dist/chunks/types-Bbm0Xflc.js.map +1 -0
  54. package/dist/chunks/{units-CNcjH_eE.js → units-8ElbjVZK.js} +18 -3
  55. package/dist/chunks/units-8ElbjVZK.js.map +1 -0
  56. package/dist/collections/ContractCollection.d.ts.map +1 -1
  57. package/dist/collections/ContractLineItemCollection.d.ts.map +1 -1
  58. package/dist/collections/InvoiceCollection.d.ts.map +1 -1
  59. package/dist/collections/InvoiceLineItemCollection.d.ts +0 -30
  60. package/dist/collections/InvoiceLineItemCollection.d.ts.map +1 -1
  61. package/dist/collections/TaxCodeCollection.d.ts +5 -1
  62. package/dist/collections/TaxCodeCollection.d.ts.map +1 -1
  63. package/dist/collections/TaxSettingsCollection.d.ts +15 -8
  64. package/dist/collections/TaxSettingsCollection.d.ts.map +1 -1
  65. package/dist/collections/TaxSummaryReportCollection.d.ts +3 -3
  66. package/dist/collections/TaxSummaryReportCollection.d.ts.map +1 -1
  67. package/dist/collections/index.d.ts +0 -1
  68. package/dist/collections/index.d.ts.map +1 -1
  69. package/dist/commerce-money-tools.d.ts.map +1 -1
  70. package/dist/contract-money.d.ts +1 -13
  71. package/dist/contract-money.d.ts.map +1 -1
  72. package/dist/document-money-internal.d.ts +7 -3
  73. package/dist/document-money-internal.d.ts.map +1 -1
  74. package/dist/document-money.d.ts +1 -11
  75. package/dist/document-money.d.ts.map +1 -1
  76. package/dist/index.d.ts +6 -5
  77. package/dist/index.d.ts.map +1 -1
  78. package/dist/index.js +686 -1656
  79. package/dist/index.js.map +1 -1
  80. package/dist/invoice-accounting-sync.d.ts.map +1 -1
  81. package/dist/invoice-mcp.d.ts +3 -3
  82. package/dist/invoice-mcp.d.ts.map +1 -1
  83. package/dist/invoice-posting.d.ts +11 -5
  84. package/dist/invoice-posting.d.ts.map +1 -1
  85. package/dist/invoice-record-screen.d.ts +1 -1
  86. package/dist/invoice-record-screen.d.ts.map +1 -1
  87. package/dist/invoices.d.ts +6 -1
  88. package/dist/invoices.d.ts.map +1 -1
  89. package/dist/invoices.js +2 -2
  90. package/dist/manifest.json +1041 -863
  91. package/dist/migrations/invoiceEditorStorage.d.ts +2 -4
  92. package/dist/migrations/invoiceEditorStorage.d.ts.map +1 -1
  93. package/dist/migrations/partyLinks.d.ts.map +1 -1
  94. package/dist/models/Contract.d.ts +10 -4
  95. package/dist/models/Contract.d.ts.map +1 -1
  96. package/dist/models/ContractLineItem.d.ts +9 -17
  97. package/dist/models/ContractLineItem.d.ts.map +1 -1
  98. package/dist/models/DocumentTax.d.ts.map +1 -1
  99. package/dist/models/Invoice.d.ts +18 -48
  100. package/dist/models/Invoice.d.ts.map +1 -1
  101. package/dist/models/InvoiceLineItem.d.ts +13 -32
  102. package/dist/models/InvoiceLineItem.d.ts.map +1 -1
  103. package/dist/models/TaxSettings.d.ts +0 -10
  104. package/dist/models/TaxSettings.d.ts.map +1 -1
  105. package/dist/models/index.d.ts +1 -2
  106. package/dist/models/index.d.ts.map +1 -1
  107. package/dist/playground.js +1 -1
  108. package/dist/playground.js.map +1 -1
  109. package/dist/recipes.d.ts +8 -11
  110. package/dist/recipes.d.ts.map +1 -1
  111. package/dist/revenue-journal.d.ts +0 -8
  112. package/dist/revenue-journal.d.ts.map +1 -1
  113. package/dist/smrt-knowledge.json +2886 -6121
  114. package/dist/svelte/components/InvoiceEditor.svelte +7 -148
  115. package/dist/svelte/components/InvoiceEditor.svelte.d.ts +4 -1
  116. package/dist/svelte/components/InvoiceEditor.svelte.d.ts.map +1 -1
  117. package/dist/svelte/components/InvoiceTotals.svelte +14 -118
  118. package/dist/svelte/components/InvoiceTotals.svelte.d.ts +4 -27
  119. package/dist/svelte/components/InvoiceTotals.svelte.d.ts.map +1 -1
  120. package/dist/svelte/components/MoneyInvoiceEditor.svelte +3 -23
  121. package/dist/svelte/components/MoneyInvoiceEditor.svelte.d.ts +3 -26
  122. package/dist/svelte/components/MoneyInvoiceEditor.svelte.d.ts.map +1 -1
  123. package/dist/svelte/index.d.ts +2 -3
  124. package/dist/svelte/index.d.ts.map +1 -1
  125. package/dist/svelte/index.js +1 -2
  126. package/dist/svelte/invoices/calculations.d.ts +3 -108
  127. package/dist/svelte/invoices/calculations.d.ts.map +1 -1
  128. package/dist/svelte/invoices/calculations.js +12 -309
  129. package/dist/svelte/invoices/messages.d.ts +1 -37
  130. package/dist/svelte/invoices/messages.d.ts.map +1 -1
  131. package/dist/svelte/invoices/messages.js +1 -37
  132. package/dist/svelte/invoices/money-editor.d.ts +1 -1
  133. package/dist/svelte/invoices/money-editor.d.ts.map +1 -1
  134. package/dist/svelte/invoices/types.d.ts +14 -114
  135. package/dist/svelte/invoices/types.d.ts.map +1 -1
  136. package/dist/svelte/playground/InvoicePreparationPreview.svelte +85 -94
  137. package/dist/svelte/playground/InvoicePreparationPreview.svelte.d.ts.map +1 -1
  138. package/dist/svelte/playground.js +1 -1
  139. package/dist/tax/index.d.ts +2 -1
  140. package/dist/tax/index.d.ts.map +1 -1
  141. package/dist/tax/standard-codes.d.ts +12 -0
  142. package/dist/tax/standard-codes.d.ts.map +1 -0
  143. package/dist/tax/tenant-bootstrap.d.ts +29 -0
  144. package/dist/tax/tenant-bootstrap.d.ts.map +1 -0
  145. package/dist/tenant-money-barrier.d.ts +12 -44
  146. package/dist/tenant-money-barrier.d.ts.map +1 -1
  147. package/dist/types/index.d.ts +11 -23
  148. package/dist/types/index.d.ts.map +1 -1
  149. package/dist/ui.js +1 -1
  150. package/dist/ui.js.map +1 -1
  151. package/dist/upgrade/detect.d.ts +129 -0
  152. package/dist/upgrade/detect.d.ts.map +1 -0
  153. package/dist/upgrade/money-v2.d.ts +81 -0
  154. package/dist/upgrade/money-v2.d.ts.map +1 -0
  155. package/package.json +14 -13
  156. package/agents/line-amount-migration.md +0 -50
  157. package/dist/chunks/ContractLineItemCollection-DYjhj_pU.js.map +0 -1
  158. package/dist/chunks/DocumentTaxCollection-BEpoqXAQ.js.map +0 -1
  159. package/dist/chunks/InvoiceCollection-CKQflFjc.js.map +0 -1
  160. package/dist/chunks/InvoiceLineItemCollection-CHm9zdqh.js +0 -467
  161. package/dist/chunks/InvoiceLineItemCollection-CHm9zdqh.js.map +0 -1
  162. package/dist/chunks/TaxSettingsCollection-BBTZDH1S.js +0 -319
  163. package/dist/chunks/TaxSettingsCollection-BBTZDH1S.js.map +0 -1
  164. package/dist/chunks/calculations-DaHR17il.js +0 -333
  165. package/dist/chunks/calculations-DaHR17il.js.map +0 -1
  166. package/dist/chunks/document-money-DNVhDJyC.js.map +0 -1
  167. package/dist/chunks/invoice-posting-BwV8g7z0.js.map +0 -1
  168. package/dist/chunks/revenue-journal-DY9fro8E.js.map +0 -1
  169. package/dist/chunks/tenant-money-barrier-DjRXgMnX.js +0 -135
  170. package/dist/chunks/tenant-money-barrier-DjRXgMnX.js.map +0 -1
  171. package/dist/chunks/types-LDETvQ1C.js.map +0 -1
  172. package/dist/chunks/units-CNcjH_eE.js.map +0 -1
  173. package/dist/collections/MoneyMigrationDocumentCollection.d.ts +0 -12
  174. package/dist/collections/MoneyMigrationDocumentCollection.d.ts.map +0 -1
  175. package/dist/migrations/commerceLineAmounts.d.ts +0 -84
  176. package/dist/migrations/commerceLineAmounts.d.ts.map +0 -1
  177. package/dist/models/MoneyMigrationDocument.d.ts +0 -28
  178. package/dist/models/MoneyMigrationDocument.d.ts.map +0 -1
  179. package/dist/svelte/components/InvoiceLineEditor.svelte +0 -92
  180. package/dist/svelte/components/InvoiceLineEditor.svelte.d.ts +0 -8
  181. package/dist/svelte/components/InvoiceLineEditor.svelte.d.ts.map +0 -1
  182. package/dist/svelte/invoices/fields.d.ts +0 -6
  183. package/dist/svelte/invoices/fields.d.ts.map +0 -1
  184. package/dist/svelte/invoices/fields.js +0 -22
  185. package/dist/tax/legacy.d.ts +0 -48
  186. package/dist/tax/legacy.d.ts.map +0 -1
@@ -1,152 +1,11 @@
1
1
  <script lang="ts">
2
- import { CurrencyDisplay } from '@happyvertical/smrt-ui';
3
- import {
4
- CurrencySelect,
5
- Form,
6
- FormGroup,
7
- Input,
8
- Select,
9
- } from '@happyvertical/smrt-ui/forms';
10
- import { useI18n } from '@happyvertical/smrt-ui/i18n';
11
- import { Button } from '@happyvertical/smrt-ui/ui';
12
- import { calculateInvoiceDraft } from '../invoices/calculations.js';
13
- import {
14
- invoiceFieldNames,
15
- invoiceLineFieldNames,
16
- } from '../invoices/fields.js';
17
- import { invoicePreparationMessages as M } from '../invoices/messages.js';
18
- import type {
19
- InvoiceDraftValues,
20
- InvoiceEditorProps,
21
- InvoiceLineFieldNames,
22
- } from '../invoices/types.js';
23
- import InvoiceLineEditor from './InvoiceLineEditor.svelte';
24
- import InvoiceReview from './InvoiceReview.svelte';
2
+ import type { InvoiceEditorProps } from '../invoices/types.js';
25
3
  import MoneyInvoiceEditor from './MoneyInvoiceEditor.svelte';
26
- /** General native invoice editor; server owns prices, tax, authorization and persistence. */
4
+ /**
5
+ * Native invoice editor. The v2 money model is the only invoice model: tax comes
6
+ * from tax codes, and the server recomputes and owns every stored amount.
7
+ */
27
8
  export interface Props extends InvoiceEditorProps {}
28
- let {
29
- action,
30
- method = 'post',
31
- id,
32
- title,
33
- values = {
34
- customerId: '',
35
- issuedOn: '',
36
- dueOn: '',
37
- currency: 'USD',
38
- paymentTerms: '',
39
- taxRate: '0',
40
- lines: [],
41
- },
42
- roundingScope = 'line',
43
- customers = [],
44
- errors = {},
45
- fields = {},
46
- lineFields = {},
47
- canEdit = true,
48
- pending = false,
49
- retryStatus = 'idle',
50
- message,
51
- review,
52
- hiddenFields = [],
53
- saveIntent = 'save',
54
- addIntent = 'addLine',
55
- removePrefix = 'removeLine:',
56
- saveLabel,
57
- cancelHref,
58
- children,
59
- onsubmit,
60
- money,
61
- }: Props = $props();
62
- const { t } = useI18n();
63
- const instanceId = $props.id();
64
- const formId = $derived(id ?? `invoice-editor-${instanceId}`);
65
- const names = $derived({ ...invoiceFieldNames, ...fields });
66
- const rowNames = $derived({ ...invoiceLineFieldNames, ...lineFields });
67
- const busy = $derived(
68
- pending || retryStatus === 'submitting' || retryStatus === 'busy',
69
- );
70
- let draft = $derived(values);
71
- const calculation = $derived(calculateInvoiceDraft(draft, { roundingScope }));
72
- function refresh(event: Event) {
73
- const data = new FormData(event.currentTarget as HTMLFormElement);
74
- const text = (name: string) => String(data.get(name) ?? '');
75
- draft = {
76
- ...draft,
77
- ...Object.fromEntries(
78
- Object.entries(names)
79
- .filter(([key]) => key !== 'intent')
80
- .map(([key, name]) => [key, text(name)]),
81
- ),
82
- lines: draft.lines.map((line, index) => ({
83
- ...line,
84
- ...Object.fromEntries(
85
- Object.entries(rowNames).map(([key, name]) => [
86
- key,
87
- String(data.getAll(name)[index] ?? ''),
88
- ]),
89
- ),
90
- })),
91
- } as InvoiceDraftValues;
92
- }
93
- function lineErrors(key: string) {
94
- return Object.fromEntries(
95
- Object.keys(rowNames).map((field) => [field, errors[`${key}.${field}`]]),
96
- ) as Partial<Record<keyof InvoiceLineFieldNames, string>>;
97
- }
9
+ let props: Props = $props();
98
10
  </script>
99
- {#if money?.mode === 'v2'}
100
- <MoneyInvoiceEditor {action} {method} {money} {canEdit} {pending} {hiddenFields} intentField={names.intent} {saveIntent} {saveLabel} {onsubmit} />
101
- {:else}
102
- <section class="invoice-editor" aria-labelledby={`${formId}-title`} data-smrt-component="InvoiceEditor">
103
- <h2 id={`${formId}-title`}>{title ?? t(M['commerce.preparation.title'])}</h2>
104
- {#if review}<InvoiceReview {review} />{/if}
105
- {#if !canEdit}<p>{t(M['commerce.preparation.readonly'])}</p>{/if}
106
- <Form id={formId} {action} {method} preventDefault={false} {onsubmit} oninput={refresh} onchange={refresh} aria-busy={busy}>
107
- <div class="fields">
108
- {#if message}<p role="alert">{message}</p>{/if}
109
- {#if retryStatus === 'transport-error'}<p role="status">{t(M['commerce.preparation.uncertain'])}</p>{/if}
110
- {#each hiddenFields as field}<Input type="hidden" name={field.name} value={field.value} interaction={false} />{/each}
111
- {#if canEdit}<Button type="submit" name={names.intent} value={saveIntent} disabled={busy}>{saveLabel ?? t(M['commerce.preparation.save'])}</Button>{/if}
112
- <fieldset disabled={!canEdit} class="header-fields">
113
- <FormGroup id={`${formId}-customer`} label={t(M['commerce.invoice.customer'])} error={errors.customerId}>
114
- <Select name={names.customerId} value={draft.customerId}>
115
- <option value="">{t(M['commerce.invoice.chooseCustomer'])}</option>
116
- {#if draft.customerId && !customers.some(customer => customer.id === draft.customerId)}<option value={draft.customerId}>{t(M['commerce.invoice.retained'], { reference: draft.customerId })}</option>{/if}
117
- {#each customers as customer}<option value={customer.id}>{customer.label}</option>{/each}
118
- </Select>
119
- </FormGroup>
120
- <FormGroup id={`${formId}-issued`} label={t(M['commerce.invoice.issued'])} error={errors.issuedOn}><Input name={names.issuedOn} value={draft.issuedOn} /></FormGroup>
121
- <FormGroup id={`${formId}-due`} label={t(M['commerce.invoice.due'])} error={errors.dueOn}><Input name={names.dueOn} value={draft.dueOn} /></FormGroup>
122
- <FormGroup id={`${formId}-currency`} label={t(M['commerce.invoice.currency'])} error={errors.currency}><CurrencySelect name={names.currency} value={draft.currency} /></FormGroup>
123
- <FormGroup id={`${formId}-terms`} label={t(M['commerce.invoice.terms'])} error={errors.paymentTerms}><Input name={names.paymentTerms} value={draft.paymentTerms} /></FormGroup>
124
- <FormGroup id={`${formId}-tax`} label={t(M['commerce.invoice.defaultTax'])} error={errors.taxRate}><Input name={names.taxRate} value={draft.taxRate} inputmode="decimal" /></FormGroup>
125
- </fieldset>
126
- {#if draft.lines.length === 0}<p>{t(M['commerce.invoice.empty'])}</p>{/if}
127
- {#each draft.lines as line, index (line.key)}
128
- <InvoiceLineEditor {line} {roundingScope} currency={draft.currency} inheritedTaxRate={draft.taxRate} number={index + 1} id={`${formId}-line-${index}`} fields={rowNames} errors={lineErrors(line.key)} {canEdit} pending={busy} intentField={names.intent} {removePrefix} />
129
- {/each}
130
- {#if canEdit}<Button type="submit" name={names.intent} value={addIntent} formnovalidate disabled={busy} variant="secondary">{t(M['commerce.invoice.add'])}</Button>{/if}
131
- <div aria-live="polite" class="summary">
132
- {#if calculation.valid}
133
- <dl>{#each ['gross', 'discount', 'subtotal', 'tax', 'total'] as key}<div><dt>{t(M[`commerce.invoice.${key}` as 'commerce.invoice.total'])}</dt><dd><CurrencyDisplay amount={calculation[`${key}Minor` as 'totalMinor']} currency={draft.currency} unit="cents" /></dd></div>{/each}</dl>
134
- {:else}<p>{t(M['commerce.invoice.invalid'])}</p>{/if}
135
- </div>
136
- <p>{t(M['commerce.invoice.preview'])}</p>
137
- {@render children?.(draft)}
138
- {#if cancelHref}<Button href={cancelHref} variant="ghost">{t(M['commerce.preparation.cancel'])}</Button>{/if}
139
- </div>
140
- </Form>
141
- </section>
142
- {/if}
143
- <style>
144
- @layer smrt.reset, smrt.structure, smrt.theme;
145
- @layer smrt.theme {
146
- .invoice-editor, .fields, .header-fields { display: grid; grid-template-columns: minmax(0,1fr); gap: var(--smrt-spacing-4); min-width: 0; }
147
- .invoice-editor { max-width: 48rem; overflow-wrap: anywhere; }
148
- .header-fields { margin: 0; padding: 0; border: 0; }
149
- h2, p, dl, dd { margin: 0; }
150
- .summary dl { display: flex; flex-wrap: wrap; gap: var(--smrt-spacing-4); }
151
- }
152
- </style>
11
+ <MoneyInvoiceEditor {...props} />
@@ -1,5 +1,8 @@
1
1
  import type { InvoiceEditorProps } from '../invoices/types.js';
2
- /** General native invoice editor; server owns prices, tax, authorization and persistence. */
2
+ /**
3
+ * Native invoice editor. The v2 money model is the only invoice model: tax comes
4
+ * from tax codes, and the server recomputes and owns every stored amount.
5
+ */
3
6
  export interface Props extends InvoiceEditorProps {
4
7
  }
5
8
  declare const InvoiceEditor: import("svelte").Component<Props, {}, "">;
@@ -1 +1 @@
1
- {"version":3,"file":"InvoiceEditor.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/InvoiceEditor.svelte.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAEV,kBAAkB,EAEnB,MAAM,sBAAsB,CAAC;AAK9B,6FAA6F;AAC7F,MAAM,WAAW,KAAM,SAAQ,kBAAkB;CAAG;AAqIpD,QAAA,MAAM,aAAa,2CAAwC,CAAC;AAC5D,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACtD,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"InvoiceEditor.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/InvoiceEditor.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG/D;;;GAGG;AACH,MAAM,WAAW,KAAM,SAAQ,kBAAkB;CAAG;AAWpD,QAAA,MAAM,aAAa,2CAAwC,CAAC;AAC5D,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACtD,eAAe,aAAa,CAAC"}
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * InvoiceTotals - Totals section for invoices/estimates
4
4
  *
5
- * Displays subtotal, tax, total, and optional amount paid/balance due.
5
+ * Displays stored subtotal, discount, tax lines, total, paid and payable facts.
6
6
  */
7
7
 
8
8
  import { useI18n } from '@happyvertical/smrt-ui/i18n';
@@ -15,31 +15,7 @@ import {
15
15
 
16
16
  const { t } = useI18n();
17
17
 
18
- /** Props for InvoiceTotals component */
19
- export interface LegacyInvoiceTotalsProps {
20
- /** Subtotal in decimal dollars */
21
- subtotal: number;
22
- /** Tax rate as percentage (e.g., 5 for 5%) */
23
- taxRate?: number;
24
- /** Tax amount in decimal dollars (calculated from rate if not provided) */
25
- taxAmount?: number;
26
- /** Total in decimal dollars */
27
- total: number;
28
- /** Amount already paid in decimal dollars */
29
- amountPaid?: number;
30
- /** Currency code */
31
- currency?: 'CAD' | 'USD';
32
- /** Show tax breakdown */
33
- showTax?: boolean;
34
- /** Show payment status */
35
- showPaid?: boolean;
36
- /** Tax label */
37
- taxLabel?: string;
38
- /** Size variant */
39
- size?: 'sm' | 'md' | 'lg';
40
- }
41
-
42
- /** Exact retained totals branch. */
18
+ /** Exact stored totals; the component never derives tax from a rate. */
43
19
  export interface RetainedInvoiceTotalsProps {
44
20
  /** Caller-authoritative totals; omitted facts remain omitted. */
45
21
  retained: RetainedInvoiceTotalsView;
@@ -49,91 +25,21 @@ export interface RetainedInvoiceTotalsProps {
49
25
  size?: 'sm' | 'md' | 'lg';
50
26
  }
51
27
 
52
- /** Legacy decimal-major totals or exact retained totals. */
53
- export type Props = LegacyInvoiceTotalsProps | RetainedInvoiceTotalsProps;
54
-
55
- const props: Props = $props();
56
- const retained = $derived('retained' in props ? props.retained : null);
57
- const details = $derived('details' in props ? props.details : undefined);
58
- const legacy = $derived(retained ? null : (props as LegacyInvoiceTotalsProps));
59
- const subtotal = $derived(legacy?.subtotal ?? 0);
60
- const taxRate = $derived(legacy?.taxRate ?? 0);
61
- const taxAmount = $derived(legacy?.taxAmount);
62
- const total = $derived(legacy?.total ?? 0);
63
- const amountPaid = $derived(legacy?.amountPaid ?? 0);
64
- const currency = $derived(legacy?.currency ?? 'CAD');
65
- const showTax = $derived(legacy?.showTax ?? true);
66
- const showPaid = $derived(legacy?.showPaid ?? false);
67
- const taxLabel = $derived(legacy?.taxLabel ?? 'GST');
68
- const size = $derived(props.size ?? 'md');
69
-
70
- // Calculate tax if not provided. `taxRate` is a percentage (e.g. 5 for 5%), so
71
- // the `/ 100` converts percent → fraction — it is NOT a cents conversion. The
72
- // result is decimal dollars and must not be rounded to whole units.
73
- const calculatedTax = $derived(taxAmount ?? subtotal * (taxRate / 100));
74
-
75
- // Calculate balance due
76
- const balanceDue = $derived(total - amountPaid);
77
-
78
- // This legacy branch receives decimal-major values from its historical API.
79
- // Exact retained views above use integer minor units through formatInvoiceMinorUnits.
80
- function formatMoney(amount: number): string {
81
- return new Intl.NumberFormat('en-CA', {
82
- style: 'currency',
83
- currency,
84
- minimumFractionDigits: 2,
85
- }).format(amount);
86
- }
28
+ /** Stored invoice totals, displayed exactly as supplied in integer minor units. */
29
+ export type Props = RetainedInvoiceTotalsProps;
30
+
31
+ const { retained, details, size = 'md' }: Props = $props();
87
32
  </script>
88
33
 
89
34
  <div class="invoice-totals" class:sm={size === 'sm'} class:lg={size === 'lg'} data-smrt-component="InvoiceTotals">
90
- {#if retained}
91
- <div class="totals-row"><span class="totals-label">Subtotal</span><span class="totals-value">{formatInvoiceMinorUnits(retained.subtotalMinor, retained.currency)}</span></div>
92
- {#if retained.discountMinor !== undefined}<div class="totals-row"><span class="totals-label">Discount</span><span class="totals-value">{formatInvoiceMinorUnits(retained.discountMinor, retained.currency)}</span></div>{/if}
93
- {#each retained.taxes ?? [] as tax (tax.id)}<div class="totals-row"><span class="totals-label">{tax.label}</span><span class="totals-value">{formatInvoiceMinorUnits(tax.amountMinor, retained.currency)}</span></div>{/each}
94
- {#if retained.holdbackMinor !== undefined}<div class="totals-row"><span class="totals-label">{retained.holdbackLabel ?? 'Holdback'}</span><span class="totals-value">{formatInvoiceMinorUnits(retained.holdbackMinor, retained.currency)}</span></div>{/if}
95
- <div class="totals-row total"><span class="totals-label">Total</span><span class="totals-value">{formatInvoiceMinorUnits(retained.totalMinor, retained.currency)}</span></div>
96
- {#if retained.paidMinor !== undefined}<div class="totals-row paid"><span class="totals-label">{t(M['commerce.invoice_totals.amount_paid'])}</span><span class="totals-value">{formatInvoiceMinorUnits(retained.paidMinor, retained.currency)}</span></div>{/if}
97
- {#if retained.payableMinor !== undefined}<div class="totals-row balance"><span class="totals-label">Payable</span><span class="totals-value">{formatInvoiceMinorUnits(retained.payableMinor, retained.currency)}</span></div>{/if}
98
- {@render details?.(retained)}
99
- {:else}
100
- <div class="totals-row">
101
- <span class="totals-label">Subtotal</span>
102
- <span class="totals-value">{formatMoney(subtotal)}</span>
103
- </div>
104
-
105
- {#if showTax && (taxRate > 0 || calculatedTax > 0)}
106
- <div class="totals-row">
107
- <span class="totals-label">{taxLabel} ({taxRate}%)</span>
108
- <span class="totals-value">{formatMoney(calculatedTax)}</span>
109
- </div>
110
- {/if}
111
-
112
- <div class="totals-row total">
113
- <span class="totals-label">Total</span>
114
- <span class="totals-value">{formatMoney(total)}</span>
115
- </div>
116
-
117
- {#if showPaid && amountPaid > 0}
118
- <div class="totals-row paid">
119
- <span class="totals-label">{t(M['commerce.invoice_totals.amount_paid'])}</span>
120
- <span class="totals-value">-{formatMoney(amountPaid)}</span>
121
- </div>
122
-
123
- <div class="totals-row balance" class:due={balanceDue > 0} class:credit={balanceDue < 0}>
124
- <span class="totals-label">
125
- {#if balanceDue > 0}
126
- {t(M['commerce.invoice_totals.balance_due'])}
127
- {:else if balanceDue < 0}
128
- {t(M['commerce.invoice_totals.credit'])}
129
- {:else}
130
- {t(M['commerce.invoice_totals.paid_in_full'])}
131
- {/if}
132
- </span>
133
- <span class="totals-value">{formatMoney(Math.abs(balanceDue))}</span>
134
- </div>
135
- {/if}
136
- {/if}
35
+ <div class="totals-row"><span class="totals-label">Subtotal</span><span class="totals-value">{formatInvoiceMinorUnits(retained.subtotalMinor, retained.currency)}</span></div>
36
+ {#if retained.discountMinor !== undefined}<div class="totals-row"><span class="totals-label">Discount</span><span class="totals-value">{formatInvoiceMinorUnits(retained.discountMinor, retained.currency)}</span></div>{/if}
37
+ {#each retained.taxes ?? [] as tax (tax.id)}<div class="totals-row"><span class="totals-label">{tax.label}</span><span class="totals-value">{formatInvoiceMinorUnits(tax.amountMinor, retained.currency)}</span></div>{/each}
38
+ {#if retained.holdbackMinor !== undefined}<div class="totals-row"><span class="totals-label">{retained.holdbackLabel ?? 'Holdback'}</span><span class="totals-value">{formatInvoiceMinorUnits(retained.holdbackMinor, retained.currency)}</span></div>{/if}
39
+ <div class="totals-row total"><span class="totals-label">Total</span><span class="totals-value">{formatInvoiceMinorUnits(retained.totalMinor, retained.currency)}</span></div>
40
+ {#if retained.paidMinor !== undefined}<div class="totals-row paid"><span class="totals-label">{t(M['commerce.invoice_totals.amount_paid'])}</span><span class="totals-value">{formatInvoiceMinorUnits(retained.paidMinor, retained.currency)}</span></div>{/if}
41
+ {#if retained.payableMinor !== undefined}<div class="totals-row balance"><span class="totals-label">Payable</span><span class="totals-value">{formatInvoiceMinorUnits(retained.payableMinor, retained.currency)}</span></div>{/if}
42
+ {@render details?.(retained)}
137
43
  </div>
138
44
 
139
45
  <style>
@@ -214,15 +120,5 @@ function formatMoney(amount: number): string {
214
120
  border-top: var(--smrt-hairline);
215
121
  font-weight: var(--smrt-typography-weight-semibold, 600);
216
122
  }
217
-
218
- .totals-row.balance.due .totals-label,
219
- .totals-row.balance.due .totals-value {
220
- color: var(--smrt-color-error);
221
- }
222
-
223
- .totals-row.balance.credit .totals-label,
224
- .totals-row.balance.credit .totals-value {
225
- color: var(--smrt-color-tertiary);
226
- }
227
123
  }
228
124
  </style>
@@ -1,29 +1,6 @@
1
1
  import type { Snippet } from 'svelte';
2
2
  import { type RetainedInvoiceTotalsView } from '../invoice-display.js';
3
- /** Props for InvoiceTotals component */
4
- export interface LegacyInvoiceTotalsProps {
5
- /** Subtotal in decimal dollars */
6
- subtotal: number;
7
- /** Tax rate as percentage (e.g., 5 for 5%) */
8
- taxRate?: number;
9
- /** Tax amount in decimal dollars (calculated from rate if not provided) */
10
- taxAmount?: number;
11
- /** Total in decimal dollars */
12
- total: number;
13
- /** Amount already paid in decimal dollars */
14
- amountPaid?: number;
15
- /** Currency code */
16
- currency?: 'CAD' | 'USD';
17
- /** Show tax breakdown */
18
- showTax?: boolean;
19
- /** Show payment status */
20
- showPaid?: boolean;
21
- /** Tax label */
22
- taxLabel?: string;
23
- /** Size variant */
24
- size?: 'sm' | 'md' | 'lg';
25
- }
26
- /** Exact retained totals branch. */
3
+ /** Exact stored totals; the component never derives tax from a rate. */
27
4
  export interface RetainedInvoiceTotalsProps {
28
5
  /** Caller-authoritative totals; omitted facts remain omitted. */
29
6
  retained: RetainedInvoiceTotalsView;
@@ -32,9 +9,9 @@ export interface RetainedInvoiceTotalsProps {
32
9
  /** Size variant. */
33
10
  size?: 'sm' | 'md' | 'lg';
34
11
  }
35
- /** Legacy decimal-major totals or exact retained totals. */
36
- export type Props = LegacyInvoiceTotalsProps | RetainedInvoiceTotalsProps;
37
- declare const InvoiceTotals: import("svelte").Component<Props, {}, "">;
12
+ /** Stored invoice totals, displayed exactly as supplied in integer minor units. */
13
+ export type Props = RetainedInvoiceTotalsProps;
14
+ declare const InvoiceTotals: import("svelte").Component<RetainedInvoiceTotalsProps, {}, "">;
38
15
  type InvoiceTotals = ReturnType<typeof InvoiceTotals>;
39
16
  export default InvoiceTotals;
40
17
  //# sourceMappingURL=InvoiceTotals.svelte.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InvoiceTotals.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/InvoiceTotals.svelte.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,uBAAuB,CAAC;AAG/B,wCAAwC;AACxC,MAAM,WAAW,wBAAwB;IACvC,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB;IACpB,QAAQ,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACzB,yBAAyB;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAC3B;AAED,oCAAoC;AACpC,MAAM,WAAW,0BAA0B;IACzC,iEAAiE;IACjE,QAAQ,EAAE,yBAAyB,CAAC;IACpC,mDAAmD;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAC/C,oBAAoB;IACpB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAC3B;AAED,4DAA4D;AAC5D,MAAM,MAAM,KAAK,GAAG,wBAAwB,GAAG,0BAA0B,CAAC;AAsG1E,QAAA,MAAM,aAAa,2CAAwC,CAAC;AAC5D,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACtD,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"InvoiceTotals.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/InvoiceTotals.svelte.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,uBAAuB,CAAC;AAG/B,wEAAwE;AACxE,MAAM,WAAW,0BAA0B;IACzC,iEAAiE;IACjE,QAAQ,EAAE,yBAAyB,CAAC;IACpC,mDAAmD;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAC/C,oBAAoB;IACpB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAC3B;AAED,mFAAmF;AACnF,MAAM,MAAM,KAAK,GAAG,0BAA0B,CAAC;AA+B/C,QAAA,MAAM,aAAa,gEAAwC,CAAC;AAC5D,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACtD,eAAe,aAAa,CAAC"}
@@ -3,36 +3,16 @@ import { CurrencyDisplay } from '@happyvertical/smrt-ui';
3
3
  import { Form, Input, Select } from '@happyvertical/smrt-ui/forms';
4
4
  import { useI18n } from '@happyvertical/smrt-ui/i18n';
5
5
  import { Button } from '@happyvertical/smrt-ui/ui';
6
- import type { HTMLFormAttributes } from 'svelte/elements';
7
6
  import { M } from '../i18n.js';
8
7
  import {
9
8
  calculateMoneyEditorDraft,
10
9
  type MoneyEditorProps,
11
10
  moneyEditorFieldNames,
12
11
  } from '../invoices/money-editor.js';
12
+ import type { InvoiceEditorProps } from '../invoices/types.js';
13
13
 
14
- export interface Props {
15
- /** Native form action owned by the caller's invoice route. */
16
- action: string;
17
- /** Native HTTP method retained for progressive enhancement. */
18
- method?: 'post' | 'get';
19
- /** Typed v2 money draft, tax-code choices, and stored issued snapshot. */
20
- money: MoneyEditorProps;
21
- /** Presentation capability; the server remains the authority for writes. */
22
- canEdit?: boolean;
23
- /** Caller transport state that disables edits and the save submitter. */
24
- pending?: boolean;
25
- /** Caller-owned request identity and route fields submitted unchanged. */
26
- hiddenFields?: readonly { name: string; value: string }[];
27
- /** Native submitter field name expected by the caller. */
28
- intentField?: string;
29
- /** Submitter value that requests a draft save. */
30
- saveIntent?: string;
31
- /** Caller-visible label for the save submitter. */
32
- saveLabel?: string;
33
- /** Optional native form enhancement; omitted submissions stay native. */
34
- onsubmit?: HTMLFormAttributes['onsubmit'];
35
- }
14
+ /** The invoice editor's form; the v2 money model is the only invoice model. */
15
+ export interface Props extends InvoiceEditorProps {}
36
16
 
37
17
  let {
38
18
  action,
@@ -1,29 +1,6 @@
1
- import type { HTMLFormAttributes } from 'svelte/elements';
2
- import { type MoneyEditorProps } from '../invoices/money-editor.js';
3
- export interface Props {
4
- /** Native form action owned by the caller's invoice route. */
5
- action: string;
6
- /** Native HTTP method retained for progressive enhancement. */
7
- method?: 'post' | 'get';
8
- /** Typed v2 money draft, tax-code choices, and stored issued snapshot. */
9
- money: MoneyEditorProps;
10
- /** Presentation capability; the server remains the authority for writes. */
11
- canEdit?: boolean;
12
- /** Caller transport state that disables edits and the save submitter. */
13
- pending?: boolean;
14
- /** Caller-owned request identity and route fields submitted unchanged. */
15
- hiddenFields?: readonly {
16
- name: string;
17
- value: string;
18
- }[];
19
- /** Native submitter field name expected by the caller. */
20
- intentField?: string;
21
- /** Submitter value that requests a draft save. */
22
- saveIntent?: string;
23
- /** Caller-visible label for the save submitter. */
24
- saveLabel?: string;
25
- /** Optional native form enhancement; omitted submissions stay native. */
26
- onsubmit?: HTMLFormAttributes['onsubmit'];
1
+ import type { InvoiceEditorProps } from '../invoices/types.js';
2
+ /** The invoice editor's form; the v2 money model is the only invoice model. */
3
+ export interface Props extends InvoiceEditorProps {
27
4
  }
28
5
  declare const MoneyInvoiceEditor: import("svelte").Component<Props, {}, "">;
29
6
  type MoneyInvoiceEditor = ReturnType<typeof MoneyInvoiceEditor>;
@@ -1 +1 @@
1
- {"version":3,"file":"MoneyInvoiceEditor.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/MoneyInvoiceEditor.svelte.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAEL,KAAK,gBAAgB,EAEtB,MAAM,6BAA6B,CAAC;AAGrC,MAAM,WAAW,KAAK;IACpB,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACxB,0EAA0E;IAC1E,KAAK,EAAE,gBAAgB,CAAC;IACxB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yEAAyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1D,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;CAC3C;AAoPD,QAAA,MAAM,kBAAkB,2CAAwC,CAAC;AACjE,KAAK,kBAAkB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAChE,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"MoneyInvoiceEditor.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/MoneyInvoiceEditor.svelte.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG/D,+EAA+E;AAC/E,MAAM,WAAW,KAAM,SAAQ,kBAAkB;CAAG;AAoPpD,QAAA,MAAM,kBAAkB,2CAAwC,CAAC;AACjE,KAAK,kBAAkB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAChE,eAAe,kBAAkB,CAAC"}
@@ -88,13 +88,12 @@ export type PricingVersionSummaryProps = ComponentProps<typeof PricingVersionSum
88
88
  export type PricingVersionDecisionProps = ComponentProps<typeof PricingVersionDecision>;
89
89
  import InvoiceAllocationFields from './components/InvoiceAllocationFields.svelte';
90
90
  import InvoiceEditor from './components/InvoiceEditor.svelte';
91
- import InvoiceLineEditor from './components/InvoiceLineEditor.svelte';
92
91
  import InvoiceReview from './components/InvoiceReview.svelte';
93
92
  import MoneyInvoiceEditor from './components/MoneyInvoiceEditor.svelte';
94
- export { InvoiceAllocationFields, InvoiceEditor, InvoiceLineEditor, InvoiceReview, MoneyInvoiceEditor, };
93
+ export { InvoiceAllocationFields, InvoiceEditor, InvoiceReview, MoneyInvoiceEditor, };
95
94
  export type InvoiceReviewProps = ComponentProps<typeof InvoiceReview>;
96
95
  export { calculateMoneyEditorDraft, moneyEditorFieldNames, moneyEditorSubmission, } from './invoices/money-editor.js';
97
- export type { InvoiceAllocationDraft, InvoiceAllocationFieldsProps, InvoiceDraftValues, InvoiceEditorProps, InvoiceFieldNames, InvoiceLineDraft, InvoiceLineEditorProps, InvoiceLineFieldNames, InvoicePreparationFields, InvoicePreparationHiddenField, InvoicePreparationReview, InvoicePreparationSource, MoneyEditorDraft, MoneyEditorFieldNames, MoneyEditorLineDraft, MoneyEditorProps, MoneyEditorTaxCode, MoneyStoredDocument, MoneyStoredTax, } from './invoices/types.js';
96
+ export type { InvoiceAllocationDraft, InvoiceAllocationFieldsProps, InvoiceEditorProps, InvoicePreparationFields, InvoicePreparationHiddenField, InvoicePreparationReview, InvoicePreparationSource, MoneyEditorDraft, MoneyEditorFieldNames, MoneyEditorLineDraft, MoneyEditorProps, MoneyEditorTaxCode, MoneyStoredDocument, MoneyStoredTax, } from './invoices/types.js';
98
97
  import PurchaseOrderEditor from './components/PurchaseOrderEditor.svelte';
99
98
  import PurchaseSourceSelector from './components/PurchaseSourceSelector.svelte';
100
99
  export { PurchaseOrderEditor, PurchaseSourceSelector };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/svelte/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/svelte/index.ts"],"names":[],"mappings":"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"}
@@ -85,10 +85,9 @@ ModuleUIRegistry.register('@happyvertical/smrt-commerce', 'pricing-version-summa
85
85
  ModuleUIRegistry.register('@happyvertical/smrt-commerce', 'pricing-version-decision', PricingVersionDecision);
86
86
  import InvoiceAllocationFields from './components/InvoiceAllocationFields.svelte';
87
87
  import InvoiceEditor from './components/InvoiceEditor.svelte';
88
- import InvoiceLineEditor from './components/InvoiceLineEditor.svelte';
89
88
  import InvoiceReview from './components/InvoiceReview.svelte';
90
89
  import MoneyInvoiceEditor from './components/MoneyInvoiceEditor.svelte';
91
- export { InvoiceAllocationFields, InvoiceEditor, InvoiceLineEditor, InvoiceReview, MoneyInvoiceEditor, };
90
+ export { InvoiceAllocationFields, InvoiceEditor, InvoiceReview, MoneyInvoiceEditor, };
92
91
  export { calculateMoneyEditorDraft, moneyEditorFieldNames, moneyEditorSubmission, } from './invoices/money-editor.js';
93
92
  ModuleUIRegistry.register('@happyvertical/smrt-commerce', 'invoice-editor', InvoiceEditor);
94
93
  ModuleUIRegistry.register('@happyvertical/smrt-commerce', 'invoice-review', InvoiceReview);