@happyvertical/smrt-commerce 0.55.23 → 0.56.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 (66) hide show
  1. package/AGENTS.md +9 -9
  2. package/README.md +75 -4
  3. package/agents/customer-vendor-ui.md +61 -2
  4. package/agents/purchasing-ui.md +4 -3
  5. package/agents/quote-ui.md +3 -2
  6. package/dist/chunks/types-zVnIjSOk.js.map +1 -1
  7. package/dist/collections/ContractCollection.d.ts +2 -0
  8. package/dist/collections/ContractCollection.d.ts.map +1 -1
  9. package/dist/collections/PurchaseContractCollection.d.ts +8 -0
  10. package/dist/collections/PurchaseContractCollection.d.ts.map +1 -0
  11. package/dist/collections/SalesContractCollection.d.ts +8 -0
  12. package/dist/collections/SalesContractCollection.d.ts.map +1 -0
  13. package/dist/collections/index.d.ts +2 -0
  14. package/dist/collections/index.d.ts.map +1 -1
  15. package/dist/index.d.ts +5 -3
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +502 -88
  18. package/dist/index.js.map +1 -1
  19. package/dist/manifest.json +2253 -847
  20. package/dist/migrations/partyLinks.d.ts +39 -0
  21. package/dist/migrations/partyLinks.d.ts.map +1 -0
  22. package/dist/models/Contract.d.ts +37 -27
  23. package/dist/models/Contract.d.ts.map +1 -1
  24. package/dist/models/ContractLineItem.d.ts.map +1 -1
  25. package/dist/models/Customer.d.ts +13 -1
  26. package/dist/models/Customer.d.ts.map +1 -1
  27. package/dist/models/Invoice.d.ts.map +1 -1
  28. package/dist/models/InvoiceLineItem.d.ts.map +1 -1
  29. package/dist/models/PaymentAllocation.d.ts.map +1 -1
  30. package/dist/models/Vendor.d.ts +6 -1
  31. package/dist/models/Vendor.d.ts.map +1 -1
  32. package/dist/models/index.d.ts +1 -1
  33. package/dist/models/index.d.ts.map +1 -1
  34. package/dist/party-contacts.d.ts +146 -0
  35. package/dist/party-contacts.d.ts.map +1 -0
  36. package/dist/recipes.d.ts +2 -32
  37. package/dist/recipes.d.ts.map +1 -1
  38. package/dist/smrt-knowledge.json +967 -365
  39. package/dist/svelte/components/CustomerDetail.svelte +16 -5
  40. package/dist/svelte/components/CustomerDetail.svelte.d.ts +5 -0
  41. package/dist/svelte/components/CustomerDetail.svelte.d.ts.map +1 -1
  42. package/dist/svelte/components/CustomerDirectory.svelte +16 -5
  43. package/dist/svelte/components/CustomerDirectory.svelte.d.ts +5 -0
  44. package/dist/svelte/components/CustomerDirectory.svelte.d.ts.map +1 -1
  45. package/dist/svelte/components/CustomerForm.svelte +23 -0
  46. package/dist/svelte/components/CustomerForm.svelte.d.ts +9 -2
  47. package/dist/svelte/components/CustomerForm.svelte.d.ts.map +1 -1
  48. package/dist/svelte/components/PartyContactFields.svelte +4 -0
  49. package/dist/svelte/components/PartyContactFields.svelte.d.ts.map +1 -1
  50. package/dist/svelte/components/VendorDetail.svelte +16 -5
  51. package/dist/svelte/components/VendorDetail.svelte.d.ts +5 -0
  52. package/dist/svelte/components/VendorDetail.svelte.d.ts.map +1 -1
  53. package/dist/svelte/components/VendorDirectory.svelte +16 -5
  54. package/dist/svelte/components/VendorDirectory.svelte.d.ts +5 -0
  55. package/dist/svelte/components/VendorDirectory.svelte.d.ts.map +1 -1
  56. package/dist/svelte/components/VendorForm.svelte +23 -0
  57. package/dist/svelte/components/VendorForm.svelte.d.ts +9 -2
  58. package/dist/svelte/components/VendorForm.svelte.d.ts.map +1 -1
  59. package/dist/svelte/index.d.ts +1 -1
  60. package/dist/svelte/index.d.ts.map +1 -1
  61. package/dist/svelte/party-types.d.ts +15 -1
  62. package/dist/svelte/party-types.d.ts.map +1 -1
  63. package/dist/svelte/party-types.js +1 -0
  64. package/dist/types/index.d.ts +25 -4
  65. package/dist/types/index.d.ts.map +1 -1
  66. package/package.json +11 -11
@@ -3,6 +3,7 @@ import { StatusBadge } from '@happyvertical/smrt-ui';
3
3
  import { useI18n } from '@happyvertical/smrt-ui/i18n';
4
4
  import { PageHeader } from '@happyvertical/smrt-ui/layout';
5
5
  import { Button, Card } from '@happyvertical/smrt-ui/ui';
6
+ import type { Snippet } from 'svelte';
6
7
  import { M } from '../i18n.js';
7
8
  import type {
8
9
  CustomerDisplayData,
@@ -35,6 +36,10 @@ export interface Props {
35
36
  locale?: string;
36
37
  /** Consumer content rendered after the standard customer sections. */
37
38
  extension?: PartyExtension<CustomerDisplayData>;
39
+ /** Omits the built-in page header (title, subtitle, and its create/edit action) for hosts that frame the page themselves. */
40
+ headless?: boolean;
41
+ /** Replaces the built-in page header; not rendered when `headless` is set. */
42
+ header?: Snippet;
38
43
  }
39
44
 
40
45
  const {
@@ -48,6 +53,8 @@ const {
48
53
  minorUnitExponent = 2,
49
54
  locale = 'en',
50
55
  extension,
56
+ headless = false,
57
+ header,
51
58
  }: Props = $props();
52
59
 
53
60
  const { t } = useI18n();
@@ -101,11 +108,15 @@ function creditLimit(amountMinor: number): string {
101
108
 
102
109
  <section class="party-detail" data-smrt-component="CustomerDetail">
103
110
  {#if backHref}<Button href={backHref} variant="ghost">{t(M['commerce.party.back_to'], { plural })}</Button>{/if}
104
- <PageHeader title={customer.profile.name} subtitle={customer.profile.description ?? t(M['commerce.customer.details'])}>
105
- {#snippet actions()}
106
- {#if canEdit && editHref}<Button href={editHref}>{labels.edit ?? (labels.singular ? t(M['commerce.party.edit_named'], { singular }) : t(M['commerce.customer.edit']))}</Button>{/if}
107
- {/snippet}
108
- </PageHeader>
111
+ {#if header && !headless}
112
+ {@render header()}
113
+ {:else if !headless}
114
+ <PageHeader title={customer.profile.name} subtitle={customer.profile.description ?? t(M['commerce.customer.details'])}>
115
+ {#snippet actions()}
116
+ {#if canEdit && editHref}<Button href={editHref}>{labels.edit ?? (labels.singular ? t(M['commerce.party.edit_named'], { singular }) : t(M['commerce.customer.edit']))}</Button>{/if}
117
+ {/snippet}
118
+ </PageHeader>
119
+ {/if}
109
120
 
110
121
  <div class="summary-grid">
111
122
  <Card padding="md">
@@ -1,3 +1,4 @@
1
+ import type { Snippet } from 'svelte';
1
2
  import type { CustomerDisplayData, PartyContactLabels, PartyExtension, PartySurfaceLabels } from '../party-types.js';
2
3
  /** Props for the customer detail/summary surface. */
3
4
  export interface Props {
@@ -21,6 +22,10 @@ export interface Props {
21
22
  locale?: string;
22
23
  /** Consumer content rendered after the standard customer sections. */
23
24
  extension?: PartyExtension<CustomerDisplayData>;
25
+ /** Omits the built-in page header (title, subtitle, and its create/edit action) for hosts that frame the page themselves. */
26
+ headless?: boolean;
27
+ /** Replaces the built-in page header; not rendered when `headless` is set. */
28
+ header?: Snippet;
24
29
  }
25
30
  declare const CustomerDetail: import("svelte").Component<Props, {}, "">;
26
31
  type CustomerDetail = ReturnType<typeof CustomerDetail>;
@@ -1 +1 @@
1
- {"version":3,"file":"CustomerDetail.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/CustomerDetail.svelte.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAK3B,qDAAqD;AACrD,MAAM,WAAW,KAAK;IACpB,iDAAiD;IACjD,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,uDAAuD;IACvD,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,qCAAqC;IACrC,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,SAAS,CAAC,EAAE,cAAc,CAAC,mBAAmB,CAAC,CAAC;CACjD;AAoHD,QAAA,MAAM,cAAc,2CAAwC,CAAC;AAC7D,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AACxD,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"CustomerDetail.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/CustomerDetail.svelte.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAK3B,qDAAqD;AACrD,MAAM,WAAW,KAAK;IACpB,iDAAiD;IACjD,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,uDAAuD;IACvD,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,qCAAqC;IACrC,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,SAAS,CAAC,EAAE,cAAc,CAAC,mBAAmB,CAAC,CAAC;IAChD,6HAA6H;IAC7H,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AA2HD,QAAA,MAAM,cAAc,2CAAwC,CAAC;AAC7D,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AACxD,eAAe,cAAc,CAAC"}
@@ -5,6 +5,7 @@ import { Form, FormGroup, Input, Select } from '@happyvertical/smrt-ui/forms';
5
5
  import { useI18n } from '@happyvertical/smrt-ui/i18n';
6
6
  import { EmptyState, PageHeader } from '@happyvertical/smrt-ui/layout';
7
7
  import { Button, Card, Skeleton } from '@happyvertical/smrt-ui/ui';
8
+ import type { Snippet } from 'svelte';
8
9
  import { M } from '../i18n.js';
9
10
  import type {
10
11
  CustomerDisplayData,
@@ -60,6 +61,10 @@ export interface Props {
60
61
  labels?: PartySurfaceLabels;
61
62
  /** Consumer content appended to every customer row. */
62
63
  extension?: PartyDirectoryExtension<CustomerDisplayData>;
64
+ /** Omits the built-in page header (title, subtitle, and its create/edit action) for hosts that frame the page themselves. */
65
+ headless?: boolean;
66
+ /** Replaces the built-in page header; not rendered when `headless` is set. */
67
+ header?: Snippet;
63
68
  }
64
69
 
65
70
  const {
@@ -85,6 +90,8 @@ const {
85
90
  errorMessage,
86
91
  labels = {},
87
92
  extension,
93
+ headless = false,
94
+ header,
88
95
  }: Props = $props();
89
96
 
90
97
  const { t } = useI18n();
@@ -132,11 +139,15 @@ function customerTypeLabel(value: string | undefined): string {
132
139
  </script>
133
140
 
134
141
  <section class="party-directory" data-smrt-component="CustomerDirectory">
135
- <PageHeader title={plural} subtitle={labels.plural ? t(M['commerce.party.manage_named'], { plural }) : t(M['commerce.customer.manage'])}>
136
- {#snippet actions()}
137
- {#if canCreate && addHref}<Button href={addHref}>{labels.add ?? (labels.singular ? t(M['commerce.party.add_named'], { singular }) : t(M['commerce.customer.add']))}</Button>{/if}
138
- {/snippet}
139
- </PageHeader>
142
+ {#if header && !headless}
143
+ {@render header()}
144
+ {:else if !headless}
145
+ <PageHeader title={plural} subtitle={labels.plural ? t(M['commerce.party.manage_named'], { plural }) : t(M['commerce.customer.manage'])}>
146
+ {#snippet actions()}
147
+ {#if canCreate && addHref}<Button href={addHref}>{labels.add ?? (labels.singular ? t(M['commerce.party.add_named'], { singular }) : t(M['commerce.customer.add']))}</Button>{/if}
148
+ {/snippet}
149
+ </PageHeader>
150
+ {/if}
140
151
 
141
152
  <Form class="directory-search" method="get" action={searchAction} preventDefault={false} stagedReview={false}>
142
153
  {#each searchHiddenFields as [name, value]}
@@ -1,3 +1,4 @@
1
+ import type { Snippet } from 'svelte';
1
2
  import type { CustomerDisplayData, PartyDirectoryExtension, PartyDirectoryFilters, PartyDirectoryItem, PartySurfaceLabels } from '../party-types.js';
2
3
  /** Props for the searchable, paginated customer directory. */
3
4
  export interface Props {
@@ -45,6 +46,10 @@ export interface Props {
45
46
  labels?: PartySurfaceLabels;
46
47
  /** Consumer content appended to every customer row. */
47
48
  extension?: PartyDirectoryExtension<CustomerDisplayData>;
49
+ /** Omits the built-in page header (title, subtitle, and its create/edit action) for hosts that frame the page themselves. */
50
+ headless?: boolean;
51
+ /** Replaces the built-in page header; not rendered when `headless` is set. */
52
+ header?: Snippet;
48
53
  }
49
54
  declare const CustomerDirectory: import("svelte").Component<Props, {}, "">;
50
55
  type CustomerDirectory = ReturnType<typeof CustomerDirectory>;
@@ -1 +1 @@
1
- {"version":3,"file":"CustomerDirectory.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/CustomerDirectory.svelte.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAG3B,8DAA8D;AAC9D,MAAM,WAAW,KAAK;IACpB,mDAAmD;IACnD,KAAK,CAAC,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,EAAE,CAAC;IAClD,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kGAAkG;IAClG,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,mEAAmE;IACnE,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,gEAAgE;IAChE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8CAA8C;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,uDAAuD;IACvD,SAAS,CAAC,EAAE,uBAAuB,CAAC,mBAAmB,CAAC,CAAC;CAC1D;AAuJD,QAAA,MAAM,iBAAiB,2CAAwC,CAAC;AAChE,KAAK,iBAAiB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC9D,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"CustomerDirectory.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/CustomerDirectory.svelte.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EACV,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAG3B,8DAA8D;AAC9D,MAAM,WAAW,KAAK;IACpB,mDAAmD;IACnD,KAAK,CAAC,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,EAAE,CAAC;IAClD,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kGAAkG;IAClG,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,mEAAmE;IACnE,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,gEAAgE;IAChE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8CAA8C;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,uDAAuD;IACvD,SAAS,CAAC,EAAE,uBAAuB,CAAC,mBAAmB,CAAC,CAAC;IACzD,6HAA6H;IAC7H,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AA8JD,QAAA,MAAM,iBAAiB,2CAAwC,CAAC;AAChE,KAAK,iBAAiB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC9D,eAAe,iBAAiB,CAAC"}
@@ -13,12 +13,14 @@ import {
13
13
  import { useI18n } from '@happyvertical/smrt-ui/i18n';
14
14
  import { Button } from '@happyvertical/smrt-ui/ui';
15
15
  import type { Snippet } from 'svelte';
16
+ import type { HTMLFormAttributes } from 'svelte/elements';
16
17
  import { M } from '../i18n.js';
17
18
  import type {
18
19
  CustomerFieldNames,
19
20
  CustomerFormValues,
20
21
  PartyContactLabels,
21
22
  PartyExtension,
23
+ PartyFormEnhance,
22
24
  PartyFormErrors,
23
25
  PartyFormTransport,
24
26
  PartySurfaceLabels,
@@ -63,6 +65,10 @@ export interface Props {
63
65
  extension?: PartyExtension<CustomerFormValues>;
64
66
  /** Replaces the default cancel and save action bar. */
65
67
  actions?: Snippet;
68
+ /** Progressive-enhancement hook for the native form element, such as SvelteKit's `enhance`. Needed when an `ssr = false` app must not answer a native post with its empty shell. */
69
+ enhance?: PartyFormEnhance;
70
+ /** Native submit handler. Submission stays native unless the handler calls `event.preventDefault()`. */
71
+ onsubmit?: HTMLFormAttributes['onsubmit'];
66
72
  }
67
73
 
68
74
  const {
@@ -83,6 +89,8 @@ const {
83
89
  cancelHref,
84
90
  extension,
85
91
  actions,
92
+ enhance,
93
+ onsubmit,
86
94
  }: Props = $props();
87
95
 
88
96
  const { t } = useI18n();
@@ -100,14 +108,29 @@ const errorList = $derived(
100
108
  message,
101
109
  })),
102
110
  );
111
+
112
+ let formComponent = $state<ReturnType<typeof Form>>();
113
+
114
+ /** Returns the native form while mounted, or null before mount/after unmount. */
115
+ export function getFormElement(): HTMLFormElement | null {
116
+ return formComponent?.getFormElement() ?? null;
117
+ }
118
+
119
+ function attachEnhance(form: HTMLFormElement) {
120
+ const handle = enhance?.(form);
121
+ return () => handle?.destroy?.();
122
+ }
103
123
  </script>
104
124
 
105
125
  <Form
126
+ bind:this={formComponent}
106
127
  class="party-form"
107
128
  action={transport.action}
108
129
  method={transport.method ?? 'post'}
109
130
  preventDefault={false}
110
131
  stagedReview={false}
132
+ {onsubmit}
133
+ {@attach attachEnhance}
111
134
  >
112
135
  {#each Object.entries(transport.hiddenFields ?? {}) as [name, value]}
113
136
  <Input interaction={false} type="hidden" {name} {value} />
@@ -1,6 +1,7 @@
1
1
  import type { CodeSelectOption } from '@happyvertical/smrt-ui/forms';
2
2
  import type { Snippet } from 'svelte';
3
- import type { CustomerFieldNames, CustomerFormValues, PartyContactLabels, PartyExtension, PartyFormErrors, PartyFormTransport, PartySurfaceLabels } from '../party-types.js';
3
+ import type { HTMLFormAttributes } from 'svelte/elements';
4
+ import type { CustomerFieldNames, CustomerFormValues, PartyContactLabels, PartyExtension, PartyFormEnhance, PartyFormErrors, PartyFormTransport, PartySurfaceLabels } from '../party-types.js';
4
5
  /** Props for the native, SSR-safe customer create/edit form. */
5
6
  export interface Props {
6
7
  /** Selects create or edit copy and identity-lock defaults. */
@@ -37,8 +38,14 @@ export interface Props {
37
38
  extension?: PartyExtension<CustomerFormValues>;
38
39
  /** Replaces the default cancel and save action bar. */
39
40
  actions?: Snippet;
41
+ /** Progressive-enhancement hook for the native form element, such as SvelteKit's `enhance`. Needed when an `ssr = false` app must not answer a native post with its empty shell. */
42
+ enhance?: PartyFormEnhance;
43
+ /** Native submit handler. Submission stays native unless the handler calls `event.preventDefault()`. */
44
+ onsubmit?: HTMLFormAttributes['onsubmit'];
40
45
  }
41
- declare const CustomerForm: import("svelte").Component<Props, {}, "">;
46
+ declare const CustomerForm: import("svelte").Component<Props, {
47
+ getFormElement: () => HTMLFormElement | null;
48
+ }, "">;
42
49
  type CustomerForm = ReturnType<typeof CustomerForm>;
43
50
  export default CustomerForm;
44
51
  //# sourceMappingURL=CustomerForm.svelte.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CustomerForm.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/CustomerForm.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAarE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAM3B,gEAAgE;AAChE,MAAM,WAAW,KAAK;IACpB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IACzB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,8EAA8E;IAC9E,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,+EAA+E;IAC/E,UAAU,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACzC,8DAA8D;IAC9D,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,uDAAuD;IACvD,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,qCAAqC;IACrC,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,4DAA4D;IAC5D,cAAc,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC7C,2DAA2D;IAC3D,eAAe,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC9C,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wDAAwD;IACxD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sEAAsE;IACtE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,SAAS,CAAC,EAAE,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAC/C,uDAAuD;IACvD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AA6JD,QAAA,MAAM,YAAY,2CAAwC,CAAC;AAC3D,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AACpD,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"CustomerForm.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/CustomerForm.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAarE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAM3B,gEAAgE;AAChE,MAAM,WAAW,KAAK;IACpB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IACzB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,8EAA8E;IAC9E,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,+EAA+E;IAC/E,UAAU,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACzC,8DAA8D;IAC9D,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,uDAAuD;IACvD,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,qCAAqC;IACrC,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,4DAA4D;IAC5D,cAAc,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC7C,2DAA2D;IAC3D,eAAe,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC9C,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wDAAwD;IACxD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sEAAsE;IACtE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,SAAS,CAAC,EAAE,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAC/C,uDAAuD;IACvD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oLAAoL;IACpL,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,wGAAwG;IACxG,QAAQ,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;CAC3C;AA4KD,QAAA,MAAM,YAAY;0BApHU,eAAe,GAAG,IAAI;MAoHQ,CAAC;AAC3D,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AACpD,eAAe,YAAY,CAAC"}
@@ -66,6 +66,10 @@ const text = $derived({
66
66
  </script>
67
67
 
68
68
  <section class="contacts" aria-labelledby={headingId} data-smrt-component="PartyContactFields">
69
+ {#if !readOnly}
70
+ <!-- Presence marker: the server only treats zero posted rows as "remove all" when this block rendered. -->
71
+ <Input interaction={false} type="hidden" name={names.contactCount} value={String(contacts.length)} />
72
+ {/if}
69
73
  <div class="contacts-heading">
70
74
  <h2 id={headingId}>{text.heading}</h2>
71
75
  {#if !readOnly && canAdd}
@@ -1 +1 @@
1
- {"version":3,"file":"PartyContactFields.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/PartyContactFields.svelte.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAI3B,kEAAkE;AAClE,MAAM,WAAW,KAAK;IACpB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC9B,8EAA8E;IAC9E,UAAU,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACtC,0DAA0D;IAC1D,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC;IAC/D,0DAA0D;IAC1D,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uDAAuD;IACvD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,yEAAyE;IACzE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CAC1C;AAmGD,QAAA,MAAM,kBAAkB,2CAAwC,CAAC;AACjE,KAAK,kBAAkB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAChE,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"PartyContactFields.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/PartyContactFields.svelte.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAI3B,kEAAkE;AAClE,MAAM,WAAW,KAAK;IACpB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC9B,8EAA8E;IAC9E,UAAU,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACtC,0DAA0D;IAC1D,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC;IAC/D,0DAA0D;IAC1D,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uDAAuD;IACvD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,yEAAyE;IACzE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CAC1C;AAuGD,QAAA,MAAM,kBAAkB,2CAAwC,CAAC;AACjE,KAAK,kBAAkB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAChE,eAAe,kBAAkB,CAAC"}
@@ -3,6 +3,7 @@ import { StatusBadge } from '@happyvertical/smrt-ui';
3
3
  import { useI18n } from '@happyvertical/smrt-ui/i18n';
4
4
  import { PageHeader } from '@happyvertical/smrt-ui/layout';
5
5
  import { Button, Card } from '@happyvertical/smrt-ui/ui';
6
+ import type { Snippet } from 'svelte';
6
7
  import { M } from '../i18n.js';
7
8
  import type {
8
9
  PartyContactLabels,
@@ -33,6 +34,10 @@ export interface Props {
33
34
  locale?: string;
34
35
  /** Consumer content rendered after the standard vendor sections. */
35
36
  extension?: PartyExtension<VendorDisplayData>;
37
+ /** Omits the built-in page header (title, subtitle, and its create/edit action) for hosts that frame the page themselves. */
38
+ headless?: boolean;
39
+ /** Replaces the built-in page header; not rendered when `headless` is set. */
40
+ header?: Snippet;
36
41
  }
37
42
 
38
43
  const {
@@ -45,6 +50,8 @@ const {
45
50
  minorUnitExponent = 2,
46
51
  locale = 'en',
47
52
  extension,
53
+ headless = false,
54
+ header,
48
55
  }: Props = $props();
49
56
  const { t } = useI18n();
50
57
  const singular = $derived(labels.singular ?? t(M['commerce.vendor.singular']));
@@ -82,11 +89,15 @@ function minimumOrder(amountMinor: number): string {
82
89
 
83
90
  <section class="party-detail" data-smrt-component="VendorDetail">
84
91
  {#if backHref}<Button href={backHref} variant="ghost">{t(M['commerce.party.back_to'], { plural })}</Button>{/if}
85
- <PageHeader title={vendor.profile.name} subtitle={vendor.profile.description ?? t(M['commerce.vendor.details'])}>
86
- {#snippet actions()}
87
- {#if canEdit && editHref}<Button href={editHref}>{labels.edit ?? (labels.singular ? t(M['commerce.party.edit_named'], { singular }) : t(M['commerce.vendor.edit']))}</Button>{/if}
88
- {/snippet}
89
- </PageHeader>
92
+ {#if header && !headless}
93
+ {@render header()}
94
+ {:else if !headless}
95
+ <PageHeader title={vendor.profile.name} subtitle={vendor.profile.description ?? t(M['commerce.vendor.details'])}>
96
+ {#snippet actions()}
97
+ {#if canEdit && editHref}<Button href={editHref}>{labels.edit ?? (labels.singular ? t(M['commerce.party.edit_named'], { singular }) : t(M['commerce.vendor.edit']))}</Button>{/if}
98
+ {/snippet}
99
+ </PageHeader>
100
+ {/if}
90
101
 
91
102
  <div class="summary-grid">
92
103
  <Card padding="md">
@@ -1,3 +1,4 @@
1
+ import type { Snippet } from 'svelte';
1
2
  import type { PartyContactLabels, PartyExtension, PartySurfaceLabels, VendorDisplayData } from '../party-types.js';
2
3
  /** Props for the vendor detail/summary surface. */
3
4
  export interface Props {
@@ -19,6 +20,10 @@ export interface Props {
19
20
  locale?: string;
20
21
  /** Consumer content rendered after the standard vendor sections. */
21
22
  extension?: PartyExtension<VendorDisplayData>;
23
+ /** Omits the built-in page header (title, subtitle, and its create/edit action) for hosts that frame the page themselves. */
24
+ headless?: boolean;
25
+ /** Replaces the built-in page header; not rendered when `headless` is set. */
26
+ header?: Snippet;
22
27
  }
23
28
  declare const VendorDetail: import("svelte").Component<Props, {}, "">;
24
29
  type VendorDetail = ReturnType<typeof VendorDetail>;
@@ -1 +1 @@
1
- {"version":3,"file":"VendorDetail.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/VendorDetail.svelte.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAK3B,mDAAmD;AACnD,MAAM,WAAW,KAAK;IACpB,+CAA+C;IAC/C,MAAM,EAAE,iBAAiB,CAAC;IAC1B,qDAAqD;IACrD,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,qCAAqC;IACrC,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,SAAS,CAAC,EAAE,cAAc,CAAC,iBAAiB,CAAC,CAAC;CAC/C;AAsGD,QAAA,MAAM,YAAY,2CAAwC,CAAC;AAC3D,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AACpD,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"VendorDetail.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/VendorDetail.svelte.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAK3B,mDAAmD;AACnD,MAAM,WAAW,KAAK;IACpB,+CAA+C;IAC/C,MAAM,EAAE,iBAAiB,CAAC;IAC1B,qDAAqD;IACrD,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,qCAAqC;IACrC,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,SAAS,CAAC,EAAE,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAC9C,6HAA6H;IAC7H,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AA6GD,QAAA,MAAM,YAAY,2CAAwC,CAAC;AAC3D,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AACpD,eAAe,YAAY,CAAC"}
@@ -5,6 +5,7 @@ import { Form, FormGroup, Input, Select } from '@happyvertical/smrt-ui/forms';
5
5
  import { useI18n } from '@happyvertical/smrt-ui/i18n';
6
6
  import { EmptyState, PageHeader } from '@happyvertical/smrt-ui/layout';
7
7
  import { Button, Card, Skeleton } from '@happyvertical/smrt-ui/ui';
8
+ import type { Snippet } from 'svelte';
8
9
  import { M } from '../i18n.js';
9
10
  import type {
10
11
  PartyDirectoryExtension,
@@ -60,6 +61,10 @@ export interface Props {
60
61
  labels?: PartySurfaceLabels;
61
62
  /** Consumer content appended to every vendor row. */
62
63
  extension?: PartyDirectoryExtension<VendorDisplayData>;
64
+ /** Omits the built-in page header (title, subtitle, and its create/edit action) for hosts that frame the page themselves. */
65
+ headless?: boolean;
66
+ /** Replaces the built-in page header; not rendered when `headless` is set. */
67
+ header?: Snippet;
63
68
  }
64
69
 
65
70
  const {
@@ -85,6 +90,8 @@ const {
85
90
  errorMessage,
86
91
  labels = {},
87
92
  extension,
93
+ headless = false,
94
+ header,
88
95
  }: Props = $props();
89
96
 
90
97
  const { t } = useI18n();
@@ -133,11 +140,15 @@ function vendorMeta(vendor: VendorDisplayData): string {
133
140
  </script>
134
141
 
135
142
  <section class="party-directory" data-smrt-component="VendorDirectory">
136
- <PageHeader title={plural} subtitle={labels.plural ? t(M['commerce.party.manage_named'], { plural }) : t(M['commerce.vendor.manage'])}>
137
- {#snippet actions()}
138
- {#if canCreate && addHref}<Button href={addHref}>{labels.add ?? (labels.singular ? t(M['commerce.party.add_named'], { singular }) : t(M['commerce.vendor.add']))}</Button>{/if}
139
- {/snippet}
140
- </PageHeader>
143
+ {#if header && !headless}
144
+ {@render header()}
145
+ {:else if !headless}
146
+ <PageHeader title={plural} subtitle={labels.plural ? t(M['commerce.party.manage_named'], { plural }) : t(M['commerce.vendor.manage'])}>
147
+ {#snippet actions()}
148
+ {#if canCreate && addHref}<Button href={addHref}>{labels.add ?? (labels.singular ? t(M['commerce.party.add_named'], { singular }) : t(M['commerce.vendor.add']))}</Button>{/if}
149
+ {/snippet}
150
+ </PageHeader>
151
+ {/if}
141
152
 
142
153
  <Form class="directory-search" method="get" action={searchAction} preventDefault={false} stagedReview={false}>
143
154
  {#each searchHiddenFields as [name, value]}
@@ -1,3 +1,4 @@
1
+ import type { Snippet } from 'svelte';
1
2
  import type { PartyDirectoryExtension, PartyDirectoryFilters, PartyDirectoryItem, PartySurfaceLabels, VendorDisplayData } from '../party-types.js';
2
3
  /** Props for the searchable, paginated vendor directory. */
3
4
  export interface Props {
@@ -45,6 +46,10 @@ export interface Props {
45
46
  labels?: PartySurfaceLabels;
46
47
  /** Consumer content appended to every vendor row. */
47
48
  extension?: PartyDirectoryExtension<VendorDisplayData>;
49
+ /** Omits the built-in page header (title, subtitle, and its create/edit action) for hosts that frame the page themselves. */
50
+ headless?: boolean;
51
+ /** Replaces the built-in page header; not rendered when `headless` is set. */
52
+ header?: Snippet;
48
53
  }
49
54
  declare const VendorDirectory: import("svelte").Component<Props, {}, "">;
50
55
  type VendorDirectory = ReturnType<typeof VendorDirectory>;
@@ -1 +1 @@
1
- {"version":3,"file":"VendorDirectory.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/VendorDirectory.svelte.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAG3B,4DAA4D;AAC5D,MAAM,WAAW,KAAK;IACpB,iDAAiD;IACjD,KAAK,CAAC,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,EAAE,CAAC;IAChD,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kGAAkG;IAClG,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,mEAAmE;IACnE,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,gEAAgE;IAChE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8CAA8C;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,qDAAqD;IACrD,SAAS,CAAC,EAAE,uBAAuB,CAAC,iBAAiB,CAAC,CAAC;CACxD;AAwJD,QAAA,MAAM,eAAe,2CAAwC,CAAC;AAC9D,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAC1D,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"VendorDirectory.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/VendorDirectory.svelte.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EACV,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAG3B,4DAA4D;AAC5D,MAAM,WAAW,KAAK;IACpB,iDAAiD;IACjD,KAAK,CAAC,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,EAAE,CAAC;IAChD,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kGAAkG;IAClG,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,mEAAmE;IACnE,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,gEAAgE;IAChE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8CAA8C;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,qDAAqD;IACrD,SAAS,CAAC,EAAE,uBAAuB,CAAC,iBAAiB,CAAC,CAAC;IACvD,6HAA6H;IAC7H,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AA+JD,QAAA,MAAM,eAAe,2CAAwC,CAAC;AAC9D,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAC1D,eAAe,eAAe,CAAC"}
@@ -13,10 +13,12 @@ import {
13
13
  import { useI18n } from '@happyvertical/smrt-ui/i18n';
14
14
  import { Button } from '@happyvertical/smrt-ui/ui';
15
15
  import type { Snippet } from 'svelte';
16
+ import type { HTMLFormAttributes } from 'svelte/elements';
16
17
  import { M } from '../i18n.js';
17
18
  import type {
18
19
  PartyContactLabels,
19
20
  PartyExtension,
21
+ PartyFormEnhance,
20
22
  PartyFormErrors,
21
23
  PartyFormTransport,
22
24
  PartySurfaceLabels,
@@ -60,6 +62,10 @@ export interface Props {
60
62
  extension?: PartyExtension<VendorFormValues>;
61
63
  /** Replaces the default cancel and save action bar. */
62
64
  actions?: Snippet;
65
+ /** Progressive-enhancement hook for the native form element, such as SvelteKit's `enhance`. Needed when an `ssr = false` app must not answer a native post with its empty shell. */
66
+ enhance?: PartyFormEnhance;
67
+ /** Native submit handler. Submission stays native unless the handler calls `event.preventDefault()`. */
68
+ onsubmit?: HTMLFormAttributes['onsubmit'];
63
69
  }
64
70
 
65
71
  const {
@@ -79,6 +85,8 @@ const {
79
85
  cancelHref,
80
86
  extension,
81
87
  actions,
88
+ enhance,
89
+ onsubmit,
82
90
  }: Props = $props();
83
91
 
84
92
  const i18n = useI18n();
@@ -95,14 +103,29 @@ const errorList = $derived(
95
103
  message,
96
104
  })),
97
105
  );
106
+
107
+ let formComponent = $state<ReturnType<typeof Form>>();
108
+
109
+ /** Returns the native form while mounted, or null before mount/after unmount. */
110
+ export function getFormElement(): HTMLFormElement | null {
111
+ return formComponent?.getFormElement() ?? null;
112
+ }
113
+
114
+ function attachEnhance(form: HTMLFormElement) {
115
+ const handle = enhance?.(form);
116
+ return () => handle?.destroy?.();
117
+ }
98
118
  </script>
99
119
 
100
120
  <Form
121
+ bind:this={formComponent}
101
122
  class="party-form"
102
123
  action={transport.action}
103
124
  method={transport.method ?? 'post'}
104
125
  preventDefault={false}
105
126
  stagedReview={false}
127
+ {onsubmit}
128
+ {@attach attachEnhance}
106
129
  >
107
130
  {#each Object.entries(transport.hiddenFields ?? {}) as [name, value]}
108
131
  <Input interaction={false} type="hidden" {name} {value} />
@@ -1,6 +1,7 @@
1
1
  import type { CodeSelectOption } from '@happyvertical/smrt-ui/forms';
2
2
  import type { Snippet } from 'svelte';
3
- import type { PartyContactLabels, PartyExtension, PartyFormErrors, PartyFormTransport, PartySurfaceLabels, VendorFieldNames, VendorFormValues } from '../party-types.js';
3
+ import type { HTMLFormAttributes } from 'svelte/elements';
4
+ import type { PartyContactLabels, PartyExtension, PartyFormEnhance, PartyFormErrors, PartyFormTransport, PartySurfaceLabels, VendorFieldNames, VendorFormValues } from '../party-types.js';
4
5
  /** Props for the native, SSR-safe vendor create/edit form. */
5
6
  export interface Props {
6
7
  /** Selects create or edit copy and identity-lock defaults. */
@@ -35,8 +36,14 @@ export interface Props {
35
36
  extension?: PartyExtension<VendorFormValues>;
36
37
  /** Replaces the default cancel and save action bar. */
37
38
  actions?: Snippet;
39
+ /** Progressive-enhancement hook for the native form element, such as SvelteKit's `enhance`. Needed when an `ssr = false` app must not answer a native post with its empty shell. */
40
+ enhance?: PartyFormEnhance;
41
+ /** Native submit handler. Submission stays native unless the handler calls `event.preventDefault()`. */
42
+ onsubmit?: HTMLFormAttributes['onsubmit'];
38
43
  }
39
- declare const VendorForm: import("svelte").Component<Props, {}, "">;
44
+ declare const VendorForm: import("svelte").Component<Props, {
45
+ getFormElement: () => HTMLFormElement | null;
46
+ }, "">;
40
47
  type VendorForm = ReturnType<typeof VendorForm>;
41
48
  export default VendorForm;
42
49
  //# sourceMappingURL=VendorForm.svelte.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VendorForm.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/VendorForm.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAarE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAK3B,8DAA8D;AAC9D,MAAM,WAAW,KAAK;IACpB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IACzB,wEAAwE;IACxE,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,8EAA8E;IAC9E,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,+EAA+E;IAC/E,UAAU,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACvC,8DAA8D;IAC9D,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,qDAAqD;IACrD,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,qCAAqC;IACrC,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,gFAAgF;IAChF,eAAe,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC9C,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wDAAwD;IACxD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sEAAsE;IACtE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,SAAS,CAAC,EAAE,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAC7C,uDAAuD;IACvD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAsJD,QAAA,MAAM,UAAU,2CAAwC,CAAC;AACzD,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAChD,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"VendorForm.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/VendorForm.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAarE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAK3B,8DAA8D;AAC9D,MAAM,WAAW,KAAK;IACpB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IACzB,wEAAwE;IACxE,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,8EAA8E;IAC9E,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,+EAA+E;IAC/E,UAAU,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACvC,8DAA8D;IAC9D,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,qDAAqD;IACrD,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,qCAAqC;IACrC,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,gFAAgF;IAChF,eAAe,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC9C,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wDAAwD;IACxD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sEAAsE;IACtE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,SAAS,CAAC,EAAE,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAC7C,uDAAuD;IACvD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oLAAoL;IACpL,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,wGAAwG;IACxG,QAAQ,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;CAC3C;AAqKD,QAAA,MAAM,UAAU;0BAhHY,eAAe,GAAG,IAAI;MAgHM,CAAC;AACzD,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAChD,eAAe,UAAU,CAAC"}
@@ -65,7 +65,7 @@ export type VendorFormProps = ComponentProps<typeof VendorForm>;
65
65
  export { default as VendorForm } from './components/VendorForm.svelte';
66
66
  export type { InvoiceMinorAmount, RetainedInvoiceCardView, RetainedInvoiceHeaderView, RetainedInvoiceLineItemsView, RetainedInvoiceLineView, RetainedInvoiceTaxView, RetainedInvoiceTotalsView, } from './invoice-display.js';
67
67
  export { formatInvoiceMinorUnits } from './invoice-display.js';
68
- export type { CustomerDisplayData, CustomerFieldNames, CustomerFormValues, PartyAddressData, PartyContactData, PartyContactLabels, PartyDirectoryExtension, PartyDirectoryFilters, PartyDirectoryItem, PartyExtension, PartyFieldNames, PartyFormErrors, PartyFormTransport, PartyIdentityKind, PartyProfileData, PartySurfaceLabels, VendorDisplayData, VendorFieldNames, VendorFormValues, } from './party-types.js';
68
+ export type { CustomerDisplayData, CustomerFieldNames, CustomerFormValues, PartyAddressData, PartyContactData, PartyContactLabels, PartyDirectoryExtension, PartyDirectoryFilters, PartyDirectoryItem, PartyExtension, PartyFieldNames, PartyFormEnhance, PartyFormErrors, PartyFormTransport, PartyIdentityKind, PartyProfileData, PartySurfaceLabels, VendorDisplayData, VendorFieldNames, VendorFormValues, } from './party-types.js';
69
69
  export { DEFAULT_CUSTOMER_FIELD_NAMES, DEFAULT_PARTY_FIELD_NAMES, DEFAULT_VENDOR_FIELD_NAMES, formatPartyAddress, formatPartyMinorUnits, } from './party-types.js';
70
70
  export type { InvoiceData, InvoiceStatus, LineItem, UnbilledItem, } from './types.js';
71
71
  import QuoteEditor from './components/QuoteEditor.svelte';
@@ -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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"}
@@ -111,7 +111,20 @@ export interface PartyFormTransport {
111
111
  addContactIntent?: string;
112
112
  removeContactIntent?: (index: number) => string;
113
113
  }
114
- /** Adaptable common field names. Repeated contact names are submitted in DOM order. */
114
+ /**
115
+ * Progressive-enhancement hook applied to a party form's native `<form>`
116
+ * element while it is mounted, with the same shape as a Svelte action.
117
+ * SvelteKit's `enhance` from `$app/forms` satisfies it directly; wrap it to
118
+ * pass a submit callback: `(form) => enhance(form, onSubmit)`.
119
+ */
120
+ export type PartyFormEnhance = (form: HTMLFormElement) => {
121
+ destroy?: () => void;
122
+ } | void;
123
+ /**
124
+ * Adaptable common field names. Repeated contact names are submitted in DOM
125
+ * order; `contactCount` is a hidden presence marker carrying the number of
126
+ * rendered contact rows, posted whenever the editable contact block renders.
127
+ */
115
128
  export interface PartyFieldNames {
116
129
  profileId: string;
117
130
  identityKind: string;
@@ -124,6 +137,7 @@ export interface PartyFieldNames {
124
137
  contactEmail: string;
125
138
  contactPhone: string;
126
139
  contactAddress: string;
140
+ contactCount: string;
127
141
  }
128
142
  /** Customer-specific field names. */
129
143
  export interface CustomerFieldNames extends PartyFieldNames {
@@ -1 +1 @@
1
- {"version":3,"file":"party-types.d.ts","sourceRoot":"","sources":["../../src/svelte/party-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"party-types.d.ts","sourceRoot":"","sources":["../../src/svelte/party-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,2GAA2G;AAC3G,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEtD,oFAAoF;AACpF,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,iBAAiB,CAAC;CAClC;AAED,yGAAyG;AACzG,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,iEAAiE;AACjE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,+FAA+F;AAC/F,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sEAAsE;IACtE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sBAAsB,CAAC,EAAE,gBAAgB,CAAC;IAC1C,qBAAqB,CAAC,EAAE,gBAAgB,CAAC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAED,6FAA6F;AAC7F,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAED,gHAAgH;AAChH,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC5C,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC;CAClE;AAED,0GAA0G;AAC1G,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,iBAAiB,GAAG,EAAE,CAAC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAED,wGAAwG;AACxG,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,iBAAiB,GAAG,EAAE,CAAC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAED,uGAAuG;AACvG,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CACjD;AAED;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAC7B,IAAI,EAAE,eAAe,KAClB;IAAE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CAAE,GAAG,IAAI,CAAC;AAErC;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,qCAAqC;AACrC,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,mCAAmC;AACnC,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,sFAAsF;AACtF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,uDAAuD;AACvD,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,oEAAoE;AACpE,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,IAAI,EAAE,CAAC,CAAC;IACR,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,6DAA6D;AAC7D,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEtD,oFAAoF;AACpF,MAAM,MAAM,qBAAqB,GAAG,OAAO,CAAC;AAE5C,8DAA8D;AAC9D,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7C,eAAO,MAAM,yBAAyB,EAAE,eAavC,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,kBAoB1C,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,gBAUxC,CAAC;AAEF,oFAAoF;AACpF,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,iBAAiB,SAAI,EACrB,MAAM,SAAO,GACZ,MAAM,CAuBR;AAED,sDAAsD;AACtD,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAWrE"}
@@ -10,6 +10,7 @@ export const DEFAULT_PARTY_FIELD_NAMES = {
10
10
  contactEmail: 'contactEmail',
11
11
  contactPhone: 'contactPhone',
12
12
  contactAddress: 'contactAddress',
13
+ contactCount: 'contactCount',
13
14
  };
14
15
  export const DEFAULT_CUSTOMER_FIELD_NAMES = {
15
16
  ...DEFAULT_PARTY_FIELD_NAMES,