@justifi/webcomponents 6.7.1 → 6.7.2

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 (160) hide show
  1. package/dist/cjs/{check-pkg-version-cLAIX_H6.js → check-pkg-version-BG-Rfkh5.js} +1 -1
  2. package/dist/cjs/hidden-input_2.cjs.entry.js +1 -1
  3. package/dist/cjs/internal-tokenize-payment-method_7.cjs.entry.js +9 -7
  4. package/dist/cjs/justifi-apple-pay_8.cjs.entry.js +5 -4
  5. package/dist/cjs/justifi-business-details.cjs.entry.js +2 -2
  6. package/dist/cjs/justifi-business-form.cjs.entry.js +2 -2
  7. package/dist/cjs/justifi-checkout.cjs.entry.js +2 -2
  8. package/dist/cjs/justifi-checkouts-list.cjs.entry.js +2 -2
  9. package/dist/cjs/justifi-dispute-management.cjs.entry.js +2 -2
  10. package/dist/cjs/justifi-dispute-notification_3.cjs.entry.js +2 -2
  11. package/dist/cjs/justifi-gross-payment-chart.cjs.entry.js +2 -2
  12. package/dist/cjs/justifi-order-terminals.cjs.entry.js +2 -2
  13. package/dist/cjs/justifi-payment-details.cjs.entry.js +2 -2
  14. package/dist/cjs/justifi-payment-provisioning.cjs.entry.js +2 -2
  15. package/dist/cjs/justifi-payment-transactions-list.cjs.entry.js +2 -2
  16. package/dist/cjs/justifi-payments-list.cjs.entry.js +2 -2
  17. package/dist/cjs/justifi-payout-details.cjs.entry.js +2 -2
  18. package/dist/cjs/justifi-payout-transactions-list.cjs.entry.js +2 -2
  19. package/dist/cjs/justifi-payouts-list.cjs.entry.js +2 -2
  20. package/dist/cjs/justifi-refund-payment.cjs.entry.js +98 -6
  21. package/dist/cjs/justifi-season-interruption-insurance.cjs.entry.js +2 -2
  22. package/dist/cjs/justifi-terminal-orders-list.cjs.entry.js +2 -2
  23. package/dist/cjs/justifi-terminals-list.cjs.entry.js +2 -2
  24. package/dist/cjs/loader.cjs.js +1 -1
  25. package/dist/cjs/{package-C9E_BIbT.js → package-Df5lTFe6.js} +1 -1
  26. package/dist/cjs/webcomponents.cjs.js +1 -1
  27. package/dist/collection/actions/void/void-actions.js +31 -0
  28. package/dist/collection/api/services/void.service.js +9 -0
  29. package/dist/collection/components/modular-checkout/modular-checkout.js +3 -2
  30. package/dist/collection/components/modular-checkout/sub-components/bank-account.js +6 -3
  31. package/dist/collection/components/modular-checkout/sub-components/card-form.js +6 -3
  32. package/dist/collection/components/refund-payment/refund-payment.js +66 -10
  33. package/dist/docs.json +15 -10
  34. package/dist/esm/{check-pkg-version-o2X_8wJ4.js → check-pkg-version-c_8fDHCB.js} +1 -1
  35. package/dist/esm/hidden-input_2.entry.js +1 -1
  36. package/dist/esm/internal-tokenize-payment-method_7.entry.js +9 -7
  37. package/dist/esm/justifi-apple-pay_8.entry.js +5 -4
  38. package/dist/esm/justifi-business-details.entry.js +2 -2
  39. package/dist/esm/justifi-business-form.entry.js +2 -2
  40. package/dist/esm/justifi-checkout.entry.js +2 -2
  41. package/dist/esm/justifi-checkouts-list.entry.js +2 -2
  42. package/dist/esm/justifi-dispute-management.entry.js +2 -2
  43. package/dist/esm/justifi-dispute-notification_3.entry.js +2 -2
  44. package/dist/esm/justifi-gross-payment-chart.entry.js +2 -2
  45. package/dist/esm/justifi-order-terminals.entry.js +2 -2
  46. package/dist/esm/justifi-payment-details.entry.js +2 -2
  47. package/dist/esm/justifi-payment-provisioning.entry.js +2 -2
  48. package/dist/esm/justifi-payment-transactions-list.entry.js +2 -2
  49. package/dist/esm/justifi-payments-list.entry.js +2 -2
  50. package/dist/esm/justifi-payout-details.entry.js +2 -2
  51. package/dist/esm/justifi-payout-transactions-list.entry.js +2 -2
  52. package/dist/esm/justifi-payouts-list.entry.js +2 -2
  53. package/dist/esm/justifi-refund-payment.entry.js +98 -6
  54. package/dist/esm/justifi-season-interruption-insurance.entry.js +2 -2
  55. package/dist/esm/justifi-terminal-orders-list.entry.js +2 -2
  56. package/dist/esm/justifi-terminals-list.entry.js +2 -2
  57. package/dist/esm/loader.js +1 -1
  58. package/dist/esm/{package-Dr8Z8wfP.js → package-BzT9OxlN.js} +1 -1
  59. package/dist/esm/webcomponents.js +1 -1
  60. package/dist/module/bank-account-form.js +1 -1
  61. package/dist/module/bank-account.js +5 -2
  62. package/dist/module/card-form.js +1 -1
  63. package/dist/module/card-form2.js +5 -2
  64. package/dist/module/justifi-checkouts-list-filters.js +1 -1
  65. package/dist/module/justifi-payment-transactions-list.js +1 -1
  66. package/dist/module/justifi-payments-list-filters.js +1 -1
  67. package/dist/module/justifi-payout-transactions-list.js +1 -1
  68. package/dist/module/justifi-payouts-list-filters.js +1 -1
  69. package/dist/module/justifi-refund-payment.js +97 -4
  70. package/dist/module/justifi-terminal-orders-list-filters.js +1 -1
  71. package/dist/module/modular-checkout.js +3 -2
  72. package/dist/module/package.js +1 -1
  73. package/dist/module/payments-list-core2.js +1 -1
  74. package/dist/module/payout-details-core2.js +1 -1
  75. package/dist/module/payouts-list-core2.js +1 -1
  76. package/dist/module/terminal-orders-list-core2.js +1 -1
  77. package/dist/module/utils2.js +1 -1
  78. package/dist/types/actions/void/void-actions.d.ts +10 -0
  79. package/dist/types/api/services/void.service.d.ts +7 -0
  80. package/dist/types/components/modular-checkout/sub-components/bank-account.d.ts +1 -0
  81. package/dist/types/components/modular-checkout/sub-components/card-form.d.ts +1 -0
  82. package/dist/types/components/refund-payment/refund-payment.d.ts +6 -2
  83. package/dist/types/components.d.ts +3 -3
  84. package/dist/webcomponents/{p-4dc358aa.entry.js → p-035a4adc.entry.js} +1 -1
  85. package/dist/webcomponents/{p-e2d33311.entry.js → p-0935600b.entry.js} +1 -1
  86. package/dist/webcomponents/{p-c8a5a2a9.entry.js → p-0ab9a3ae.entry.js} +1 -1
  87. package/dist/webcomponents/{p-BEu9YFnf.js → p-11wdbrqX.js} +1 -1
  88. package/dist/webcomponents/{p-cbd52897.entry.js → p-138ada4a.entry.js} +1 -1
  89. package/dist/webcomponents/{p-d5765545.entry.js → p-148d3327.entry.js} +1 -1
  90. package/dist/webcomponents/p-2cb9edad.entry.js +1 -0
  91. package/dist/webcomponents/{p-ad3a73af.entry.js → p-2d4a2d26.entry.js} +1 -1
  92. package/dist/webcomponents/p-3f14d0c4.entry.js +1 -0
  93. package/dist/webcomponents/{p-cc2a1c7c.entry.js → p-5c6727ae.entry.js} +1 -1
  94. package/dist/webcomponents/{p-3fbe8ac3.entry.js → p-622af881.entry.js} +1 -1
  95. package/dist/webcomponents/{p-062fcfd5.entry.js → p-64ebff16.entry.js} +1 -1
  96. package/dist/webcomponents/p-71577fa1.entry.js +1 -0
  97. package/dist/webcomponents/{p-3fb1cf2b.entry.js → p-7ec4838f.entry.js} +1 -1
  98. package/dist/webcomponents/p-BzT9OxlN.js +1 -0
  99. package/dist/webcomponents/{p-5a7207c0.entry.js → p-af7c219d.entry.js} +1 -1
  100. package/dist/webcomponents/{p-5e6f2128.entry.js → p-b752c5bc.entry.js} +1 -1
  101. package/dist/webcomponents/{p-8884e000.entry.js → p-bbff6196.entry.js} +1 -1
  102. package/dist/webcomponents/p-c0c36187.entry.js +1 -0
  103. package/dist/webcomponents/{p-262e4b23.entry.js → p-d077569e.entry.js} +1 -1
  104. package/dist/webcomponents/{p-abcb4945.entry.js → p-d7b1b7b5.entry.js} +1 -1
  105. package/dist/webcomponents/{p-7bb7aaca.entry.js → p-dc6c9c79.entry.js} +1 -1
  106. package/dist/webcomponents/p-ecbc83bf.entry.js +1 -0
  107. package/dist/webcomponents/{p-cf644e46.entry.js → p-f56d7b4c.entry.js} +1 -1
  108. package/dist/webcomponents/webcomponents.esm.js +1 -1
  109. package/docs/.eslintrc.cjs +17 -0
  110. package/docs/changelog/index.mdx +17 -0
  111. package/docs/entities/businessdetails/index.mdx +143 -0
  112. package/docs/entities/businessform/index.mdx +241 -0
  113. package/docs/entities/index.mdx +19 -0
  114. package/docs/entities/payment-provisioning/index.mdx +128 -0
  115. package/docs/frameworks/angular/index.mdx +112 -0
  116. package/docs/frameworks/index.mdx +18 -0
  117. package/docs/frameworks/react/index.mdx +125 -0
  118. package/docs/frameworks/vue/index.mdx +102 -0
  119. package/docs/helpers/PartsTable.js +50 -0
  120. package/docs/helpers/PropsTable.js +56 -0
  121. package/docs/helpers/index.ts +3 -0
  122. package/docs/helpers/version.js +32 -0
  123. package/docs/introduction/index.mdx +125 -0
  124. package/docs/merchant-tools/checkouts-list/index.mdx +97 -0
  125. package/docs/merchant-tools/gross-payments-chart/index.mdx +83 -0
  126. package/docs/merchant-tools/index.mdx +25 -0
  127. package/docs/merchant-tools/order-terminals/index.mdx +84 -0
  128. package/docs/merchant-tools/payment-details/index.mdx +132 -0
  129. package/docs/merchant-tools/payment-transactions-list/index.mdx +85 -0
  130. package/docs/merchant-tools/payments-list/index.mdx +109 -0
  131. package/docs/merchant-tools/payout-details/index.mdx +84 -0
  132. package/docs/merchant-tools/payout-transactions-list/index.mdx +84 -0
  133. package/docs/merchant-tools/payouts-list/index.mdx +92 -0
  134. package/docs/merchant-tools/terminal-orders-list/index.mdx +85 -0
  135. package/docs/merchant-tools/terminals-list/index.mdx +93 -0
  136. package/docs/modular-checkout/complete-examples/index.mdx +20 -0
  137. package/docs/modular-checkout/index.mdx +20 -0
  138. package/docs/modular-checkout/introduction/index.mdx +102 -0
  139. package/docs/modular-checkout/sub-components/apple-pay.mdx +106 -0
  140. package/docs/modular-checkout/sub-components/bank-account-form.mdx +167 -0
  141. package/docs/modular-checkout/sub-components/card-form.mdx +178 -0
  142. package/docs/modular-checkout/sub-components/index.mdx +23 -0
  143. package/docs/modular-checkout/sub-components/payment-method-options.mdx +87 -0
  144. package/docs/modular-checkout/sub-components/plaid-payment-method.mdx +158 -0
  145. package/docs/modular-checkout/sub-components/saved-payment-methods.mdx +183 -0
  146. package/docs/modular-checkout/sub-components/season-interruption-insurance.mdx +221 -0
  147. package/docs/modular-checkout/sub-components/sezzle-payment-method.mdx +183 -0
  148. package/docs/modular-checkout/sub-components/summary.mdx +111 -0
  149. package/docs/payment-facilitation/dispute-management/index.mdx +99 -0
  150. package/docs/payment-facilitation/index.mdx +21 -0
  151. package/docs/payment-facilitation/refund-payment/index.mdx +241 -0
  152. package/docs/payment-facilitation/tokenize-payment-method/index.mdx +350 -0
  153. package/docs/payment-facilitation/unified-fintech-checkout/342/204/242/index.mdx +150 -0
  154. package/package.json +21 -6
  155. package/dist/webcomponents/p-1df660a9.entry.js +0 -1
  156. package/dist/webcomponents/p-296bd0b6.entry.js +0 -1
  157. package/dist/webcomponents/p-Dr8Z8wfP.js +0 -1
  158. package/dist/webcomponents/p-ca0d1c6c.entry.js +0 -1
  159. package/dist/webcomponents/p-cc0c722c.entry.js +0 -1
  160. package/dist/webcomponents/p-def84700.entry.js +0 -1
@@ -0,0 +1,158 @@
1
+ ---
2
+ id: modular-checkout/sub-components/plaid-payment-method
3
+ title: Plaid Payment Method
4
+ description: Plaid-powered ACH rail for Modular Checkout with hosted Link flow.
5
+ sidebar_position: 23
6
+ ---
7
+
8
+ import {
9
+ PropsTable,
10
+ PartsTable,
11
+ getWebcomponentsVersion,
12
+ } from '@justifi/webcomponents/docs/helpers';
13
+
14
+ ## Overview
15
+
16
+ Renders a radio input for selecting the Plaid bank account payment method, and orchestrates the Plaid Link flow to securely connect a bank account when selected.
17
+
18
+ This component is designed to be used within the `justifi-modular-checkout` and does not accept props directly. It relies on the shared state and context managed by `justifi-modular-checkout` (auth token, account ID, and checkout ID). Saving a new payment method is controlled via the `justifi-save-new-payment-method` checkbox when a payment method group is available.
19
+
20
+ It exposes no public properties for configuration, but does emit Plaid-specific events for error handling and recovery.
21
+
22
+ > Note: This component renders nothing and logs a console warning when bank account verification is not enabled for the checkout (`payment_settings.bank_account_verification !== true`).
23
+
24
+ ## Usage
25
+
26
+ <pre><code className="language-html">{`<!DOCTYPE html>
27
+ <html dir="ltr" lang="en">
28
+
29
+ <head>
30
+ <meta charset="utf-8" />
31
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=5.0" />
32
+ <title>justifi-plaid-payment-method</title>
33
+
34
+ <script type="module" src="https://cdn.jsdelivr.net/npm/@justifi/webcomponents@${getWebcomponentsVersion()}/dist/webcomponents/webcomponents.esm.js"></script>
35
+
36
+ <script
37
+ nomodule
38
+ src="https://cdn.jsdelivr.net/npm/@justifi/webcomponents@${getWebcomponentsVersion()}/dist/webcomponents/webcomponents.js"
39
+ ></script>
40
+
41
+ <style>
42
+ /** These are the available parts for styling the component. */ ::part(text){' '}
43
+ {/* text styles */}
44
+ ::part(text-danger) {/* text danger styles */}
45
+ ::part(label) {/* label styles */}
46
+ ::part(input-radio) {/* input radio styles */}
47
+ ::part(input-radio-focused) {/* input radio focused styles */}
48
+ ::part(input-radio-checked) {/* input radio checked styles */}
49
+ ::part(input-radio-checked-focused) {/* input radio checked focused styles */}
50
+ ::part(input-radio-invalid) {/* input radio invalid styles */}
51
+ </style>
52
+
53
+ </head>
54
+
55
+ <body>
56
+ <justifi-modular-checkout auth-token="authToken" checkout-id="ch_123">
57
+ <justifi-plaid-payment-method />
58
+ </justifi-modular-checkout>
59
+ </body>
60
+
61
+ <script>
62
+ (function() {
63
+ const modularCheckout = document.querySelector('justifi-modular-checkout');
64
+
65
+ modularCheckout?.addEventListener('plaidError', (event) => {
66
+ console.warn('Plaid error', event.detail);
67
+ });
68
+
69
+ modularCheckout?.addEventListener('plaidErrorRecovered', (event) => {
70
+ console.log('Plaid recovered', event.detail);
71
+ });
72
+ })();
73
+ </script>
74
+
75
+ </html>`}</code></pre>
76
+
77
+ ## Props, Events & Methods
78
+
79
+ <div
80
+ dangerouslySetInnerHTML={{
81
+ __html: PropsTable([
82
+ {
83
+ name: 'link-token',
84
+ type: 'string',
85
+ required: true,
86
+ description:
87
+ 'Server-generated Plaid link token scoped to the current customer.',
88
+ },
89
+ {
90
+ name: 'locale',
91
+ type: 'string',
92
+ defaultValue: 'en-US',
93
+ description: 'Pass through to Plaid for language + formatting.',
94
+ },
95
+ {
96
+ name: 'theme',
97
+ type: '"dark" | "light"',
98
+ defaultValue: 'dark',
99
+ description: 'Controls Plaid Link UI theme.',
100
+ },
101
+ ]),
102
+ }}
103
+ />
104
+
105
+ ### Events
106
+
107
+ - `plaid-success`: Provides the Plaid public token and metadata when customers finish linking.
108
+ - `plaid-exit`: Emits when Link closes without success and includes exit metadata.
109
+ - `error`: Surfaces integration failures (expired link token, network issues).
110
+
111
+ ### Public methods
112
+
113
+ 1. `open()` – Programmatically open Plaid Link (if you render a custom CTA).
114
+ 2. `close()` – Force-close the Link flow.
115
+
116
+ ## Theming & Layout
117
+
118
+ - Styling is limited to the wrapper since Plaid controls the Link modal.
119
+ - Provide fallback instructions for devices where Plaid is unavailable.
120
+
121
+ <div
122
+ dangerouslySetInnerHTML={{
123
+ __html: PartsTable([
124
+ {
125
+ name: 'text',
126
+ description: 'Text styles.',
127
+ },
128
+ {
129
+ name: 'text-danger',
130
+ description: 'Danger/error text styles.',
131
+ },
132
+ {
133
+ name: 'label',
134
+ description: 'Label styles.',
135
+ },
136
+ {
137
+ name: 'input-radio',
138
+ description: 'Radio input styles.',
139
+ },
140
+ {
141
+ name: 'input-radio-focused',
142
+ description: 'Radio input styles when focused.',
143
+ },
144
+ {
145
+ name: 'input-radio-checked',
146
+ description: 'Radio input styles when checked.',
147
+ },
148
+ {
149
+ name: 'input-radio-checked-focused',
150
+ description: 'Radio input styles when checked and focused.',
151
+ },
152
+ {
153
+ name: 'input-radio-invalid',
154
+ description: 'Radio input styles when invalid.',
155
+ },
156
+ ]),
157
+ }}
158
+ />
@@ -0,0 +1,183 @@
1
+ ---
2
+ id: modular-checkout/sub-components/saved-payment-methods
3
+ title: Saved Payment Methods
4
+ description: Saved payment selector for Modular Checkout that handles defaulting, deletion, and fallback to new entries.
5
+ sidebar_position: 26
6
+ ---
7
+
8
+ import {
9
+ PropsTable,
10
+ PartsTable,
11
+ getWebcomponentsVersion,
12
+ } from '@justifi/webcomponents/docs/helpers';
13
+
14
+ ## Overview
15
+
16
+ Renders a radio input list of saved payment methods as part of a checkout flow.
17
+
18
+ > Note: This sub component will only display saved payment methods if a `payment_method_group_id` with associated payment methods was passed to the [create checkout](https://docs.justifi.tech/api-spec#tag/Checkouts/operation/CreateCheckout) API request.
19
+
20
+ This component is **designed to be used within** the `justifi-modular-checkout` and **does not accept props directly**. Instead, it relies on shared state passed through the Stencil Store, managed by the wrapper component.
21
+
22
+ **Authorization** and business context are also handled by `justifi-modular-checkout`, which manages authentication tokens and related configuration.
23
+
24
+ This component exposes **no public methods or properties** and is not intended for standalone use.
25
+
26
+ ## Usage
27
+
28
+ <pre><code className="language-html">{`<!DOCTYPE html>
29
+ <html dir="ltr" lang="en">
30
+
31
+ <head>
32
+ <meta charset="utf-8" />
33
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=5.0" />
34
+ <title>justifi-saved-payment-methods</title>
35
+
36
+ <script type="module" src="https://cdn.jsdelivr.net/npm/@justifi/webcomponents@${getWebcomponentsVersion()}/dist/webcomponents/webcomponents.esm.js"></script>
37
+
38
+ <script
39
+ nomodule
40
+ src="https://cdn.jsdelivr.net/npm/@justifi/webcomponents@${getWebcomponentsVersion()}/dist/webcomponents/webcomponents.js"
41
+ ></script>
42
+
43
+ <style>
44
+ /** These are the available parts for styling the component. */ ::part(text){' '}
45
+ {
46
+ // text styles
47
+ }
48
+ ::part(text-danger){' '}
49
+ {
50
+ // text danger styles
51
+ }
52
+ ::part(label){' '}
53
+ {
54
+ // label styles
55
+ }
56
+ ::part(input-radio){' '}
57
+ {
58
+ // input radio styles
59
+ }
60
+ ::part(input-radio-focused){' '}
61
+ {
62
+ // input radio focused styles
63
+ }
64
+ ::part(input-radio-checked){' '}
65
+ {
66
+ // input radio checked styles
67
+ }
68
+ ::part(input-radio-checked-focused){' '}
69
+ {
70
+ // input radio checked focused styles
71
+ }
72
+ ::part(input-radio-invalid){' '}
73
+ {
74
+ // input radio invalid styles
75
+ }
76
+ </style>
77
+
78
+ </head>
79
+
80
+ <body>
81
+ <justifi-modular-checkout auth-token="authToken" checkout-id="ch_123">
82
+ <justifi-saved-payment-methods />
83
+ </justifi-modular-checkout>
84
+ </body>
85
+
86
+ <script>
87
+ (function() {
88
+ const checkoutWrapper = document.querySelector('justifi-modular-checkout');
89
+ const submitButton = document.querySelector('#submit-button');
90
+
91
+ submitButton.addEventListener('click', () => {
92
+ checkoutWrapper.submitCheckout();
93
+ });
94
+
95
+ checkoutWrapper.addEventListener('error-event', (event) => {
96
+ console.error(event.detail);
97
+ });
98
+
99
+ document.addEventListener('submit-event', (event) => {
100
+ console.log('Checkout completed successfully!', event.detail);
101
+ });
102
+ })();
103
+ </script>
104
+
105
+ </html>`}</code></pre>
106
+
107
+ ## Props, Events & Methods
108
+
109
+ <div
110
+ dangerouslySetInnerHTML={{
111
+ __html: PropsTable([
112
+ {
113
+ name: 'customer-id',
114
+ type: 'string',
115
+ required: true,
116
+ description: 'Identifies which saved methods to fetch.',
117
+ },
118
+ {
119
+ name: 'allow-delete',
120
+ type: 'boolean',
121
+ defaultValue: 'true',
122
+ description: 'Shows the delete button for each saved method.',
123
+ },
124
+ {
125
+ name: 'show-add-new',
126
+ type: 'boolean',
127
+ defaultValue: 'true',
128
+ description:
129
+ 'Displays a control that reveals the card/bank forms when no method is selected.',
130
+ },
131
+ ]),
132
+ }}
133
+ />
134
+
135
+ ### Events
136
+
137
+ - `selection-changed`: Emits when customers choose a different saved method.
138
+ - `delete-requested`: Fires when someone clicks delete on a saved method (confirm server-side permissions).
139
+
140
+ ### Public methods
141
+
142
+ 1. `clearSelection()` – Deselect saved methods so the new card/bank forms reappear.
143
+
144
+ ## Theming & Layout
145
+
146
+ <div
147
+ dangerouslySetInnerHTML={{
148
+ __html: PartsTable([
149
+ {
150
+ name: 'text',
151
+ description: 'Text styles.',
152
+ },
153
+ {
154
+ name: 'text-danger',
155
+ description: 'Danger/error text styles.',
156
+ },
157
+ {
158
+ name: 'label',
159
+ description: 'Label styles.',
160
+ },
161
+ {
162
+ name: 'input-radio',
163
+ description: 'Radio input styles.',
164
+ },
165
+ {
166
+ name: 'input-radio-focused',
167
+ description: 'Radio input styles when focused.',
168
+ },
169
+ {
170
+ name: 'input-radio-checked',
171
+ description: 'Radio input styles when checked.',
172
+ },
173
+ {
174
+ name: 'input-radio-checked-focused',
175
+ description: 'Radio input styles when checked and focused.',
176
+ },
177
+ {
178
+ name: 'input-radio-invalid',
179
+ description: 'Radio input styles when invalid.',
180
+ },
181
+ ]),
182
+ }}
183
+ />
@@ -0,0 +1,221 @@
1
+ ---
2
+ id: modular-checkout/sub-components/season-interruption-insurance
3
+ title: Season Interruption Insurance
4
+ description: Optional insurance add-on rail that pairs with Modular Checkout summaries.
5
+ sidebar_position: 25
6
+ ---
7
+
8
+ import {
9
+ PropsTable,
10
+ PartsTable,
11
+ getWebcomponentsVersion,
12
+ } from '@justifi/webcomponents/docs/helpers';
13
+
14
+ ## Overview
15
+
16
+ Component to render a formated list of season interruption insurance for the requested account.
17
+
18
+ ## Usage
19
+
20
+ <pre><code className="language-html">{`<!DOCTYPE html>
21
+ <html dir="ltr" lang="en">
22
+
23
+ <head>
24
+ <meta charset="utf-8" />
25
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=5.0" />
26
+ <title>justifi-season-interruption-insurance</title>
27
+
28
+ <script type="module" src="https://cdn.jsdelivr.net/npm/@justifi/webcomponents@${getWebcomponentsVersion()}/dist/webcomponents/webcomponents.esm.js"></script>
29
+
30
+ <script
31
+ nomodule
32
+ src="https://cdn.jsdelivr.net/npm/@justifi/webcomponents@${getWebcomponentsVersion()}/dist/webcomponents/webcomponents.js"
33
+ ></script>
34
+
35
+ <style>
36
+ ::part(font-family) {
37
+ font-family: georgia;
38
+ }
39
+
40
+ ::part(color) {
41
+ color: darkslategray;
42
+ }
43
+
44
+ ::part(background-color) {
45
+ background-color: transparent;
46
+ }
47
+
48
+ ::part(input-radio) {
49
+ background-color: #fff;
50
+ border-color: #333;
51
+ }
52
+
53
+ ::part(input-radio-checked) {
54
+ background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="-5 -5 30 30" fill="white"><circle cx="10" cy="10" r="10"/></svg>');
55
+ background-color: #000;
56
+ }
57
+
58
+ ::part(input-radio-focused) {
59
+ background-color: #333;
60
+ border-color: #333;
61
+ box-shadow: 0 0 0 0.25rem rgba(0, 0, 0, 0.25);
62
+ }
63
+
64
+ ::part(input-radio-checked-focused) {
65
+ background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="-5 -5 30 30" fill="white"><circle cx="10" cy="10" r="10"/></svg>');
66
+ background-color: #000;
67
+ border-color: #333;
68
+ box-shadow: 0 0 0 0.25rem rgba(0, 0, 0, 0.25);
69
+ }
70
+ </style>
71
+
72
+ </head>
73
+
74
+ <body>
75
+ <justifi-season-interruption-insurance
76
+ auth-token="your-auth-token"
77
+ checkout-id="your-checkout-id"
78
+ primary-identity-first-name="John"
79
+ primary-identity-last-name="Doe"
80
+ primary-identity-state="CA"
81
+ primary-identity-postal-code="90210"
82
+ primary-identity-country="US"
83
+ primary-identity-email-address="john.doe@email.com"
84
+ policy-attributes-insurable-amount="100000"
85
+ />
86
+ </body>
87
+
88
+ </html>`}</code></pre>
89
+
90
+ ## Props, Events & Methods
91
+
92
+ <div
93
+ dangerouslySetInnerHTML={{
94
+ __html: PropsTable([
95
+ {
96
+ name: 'auth-token',
97
+ type: 'string',
98
+ description:
99
+ 'JWT used to call the insurance service. Optional when the checkout store already contains an auth token.',
100
+ },
101
+ {
102
+ name: 'checkout-id',
103
+ type: 'string',
104
+ description:
105
+ 'Checkout identifier passed to the quote endpoint. Optional when running inside `<justifi-modular-checkout>` where it is pulled from the shared store.',
106
+ },
107
+ {
108
+ name: 'primary-identity-first-name',
109
+ type: 'string',
110
+ required: true,
111
+ description: 'First name of the person purchasing the coverage.',
112
+ },
113
+ {
114
+ name: 'primary-identity-last-name',
115
+ type: 'string',
116
+ required: true,
117
+ description: 'Last name of the person purchasing the coverage.',
118
+ },
119
+ {
120
+ name: 'primary-identity-email-address',
121
+ type: 'string',
122
+ required: true,
123
+ description: 'Email address used in the quote payload.',
124
+ },
125
+ {
126
+ name: 'primary-identity-state',
127
+ type: 'string',
128
+ required: true,
129
+ description: '2-letter state or province for the insured person.',
130
+ },
131
+ {
132
+ name: 'primary-identity-postal-code',
133
+ type: 'string',
134
+ required: true,
135
+ description: 'Postal or ZIP code for the insured person.',
136
+ },
137
+ {
138
+ name: 'primary-identity-country',
139
+ type: 'string',
140
+ required: true,
141
+ description: 'ISO 3166-1 alpha-2 country code for the insured person.',
142
+ },
143
+ {
144
+ name: 'policy-attributes-insurable-amount',
145
+ type: 'number',
146
+ required: true,
147
+ description: 'Amount (in cents) that should be covered by the policy.',
148
+ },
149
+ {
150
+ name: 'policy-attributes-start-date',
151
+ type: 'string',
152
+ description: 'ISO 8601 start date for the coverage period.',
153
+ },
154
+ {
155
+ name: 'policy-attributes-end-date',
156
+ type: 'string',
157
+ description: 'ISO 8601 end date for the coverage period.',
158
+ },
159
+ {
160
+ name: 'covered-identity-first-name',
161
+ type: 'string',
162
+ description:
163
+ 'First name of the person whose season is being covered (if different from the purchaser).',
164
+ },
165
+ {
166
+ name: 'covered-identity-last-name',
167
+ type: 'string',
168
+ description: 'Last name of the covered person.',
169
+ },
170
+ ]),
171
+ }}
172
+ />
173
+
174
+ ### Events
175
+
176
+ - `insurance-updated`: Fires after the component successfully toggles coverage via the insurance API.
177
+ - `error-event`: Emits a `ComponentErrorEvent` if required props are missing or an API call fails.
178
+
179
+ ### Public methods
180
+
181
+ 1. `validate()` – Returns `{ isValid: boolean }` indicating whether the customer selected accept or decline. Uses the shared insurance validation helpers.
182
+
183
+ ## Theming & Layout
184
+
185
+ - The host inherits the same typography tokens as other Modular Checkout rails via `StyledHost`, so it naturally matches surrounding content.
186
+ - Use the exposed parts to restyle copy or validation messaging without affecting the radios themselves.
187
+
188
+ <div
189
+ dangerouslySetInnerHTML={{
190
+ __html: PartsTable([
191
+ {
192
+ name: 'font-family',
193
+ description: 'Controls the font family for the component.',
194
+ },
195
+ {
196
+ name: 'color',
197
+ description: 'Controls the text color.',
198
+ },
199
+ {
200
+ name: 'background-color',
201
+ description: 'Controls the background color.',
202
+ },
203
+ {
204
+ name: 'input-radio',
205
+ description: 'Radio input styles.',
206
+ },
207
+ {
208
+ name: 'input-radio-checked',
209
+ description: 'Radio input styles when checked.',
210
+ },
211
+ {
212
+ name: 'input-radio-focused',
213
+ description: 'Radio input styles when focused.',
214
+ },
215
+ {
216
+ name: 'input-radio-checked-focused',
217
+ description: 'Radio input styles when checked and focused.',
218
+ },
219
+ ]),
220
+ }}
221
+ />