@justifi/webcomponents 6.5.1-rc.4 → 6.5.1-rc.7
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.
- package/dist/cjs/{check-pkg-version-Bj0XkWnL.js → check-pkg-version-BHAFLsKe.js} +1 -1
- package/dist/cjs/hidden-input_2.cjs.entry.js +1 -1
- package/dist/cjs/internal-tokenize-payment-method_7.cjs.entry.js +2 -2
- package/dist/cjs/justifi-apple-pay_7.cjs.entry.js +2 -2
- package/dist/cjs/justifi-business-details.cjs.entry.js +2 -2
- package/dist/cjs/justifi-business-form.cjs.entry.js +2 -2
- package/dist/cjs/justifi-checkout.cjs.entry.js +2 -2
- package/dist/cjs/justifi-checkouts-list.cjs.entry.js +2 -2
- package/dist/cjs/justifi-dispute-management.cjs.entry.js +2 -2
- package/dist/cjs/justifi-dispute-notification_3.cjs.entry.js +2 -2
- package/dist/cjs/justifi-gross-payment-chart.cjs.entry.js +2 -2
- package/dist/cjs/justifi-order-terminals.cjs.entry.js +2 -2
- package/dist/cjs/justifi-payment-details.cjs.entry.js +2 -2
- package/dist/cjs/justifi-payment-provisioning.cjs.entry.js +2 -2
- package/dist/cjs/justifi-payment-transactions-list.cjs.entry.js +2 -2
- package/dist/cjs/justifi-payments-list.cjs.entry.js +2 -2
- package/dist/cjs/justifi-payout-details.cjs.entry.js +2 -2
- package/dist/cjs/justifi-payout-transactions-list.cjs.entry.js +2 -2
- package/dist/cjs/justifi-payouts-list.cjs.entry.js +2 -2
- package/dist/cjs/justifi-refund-payment.cjs.entry.js +2 -2
- package/dist/cjs/justifi-season-interruption-insurance.cjs.entry.js +2 -2
- package/dist/cjs/justifi-terminal-orders-list.cjs.entry.js +2 -2
- package/dist/cjs/justifi-terminals-list.cjs.entry.js +2 -2
- package/dist/cjs/{package-Dptg-P5y.js → package-CZK-K7yM.js} +1 -1
- package/dist/docs.json +1 -1
- package/dist/esm/{check-pkg-version-D6a-vvrO.js → check-pkg-version-ClZuo82s.js} +1 -1
- package/dist/esm/hidden-input_2.entry.js +1 -1
- package/dist/esm/internal-tokenize-payment-method_7.entry.js +2 -2
- package/dist/esm/justifi-apple-pay_7.entry.js +2 -2
- package/dist/esm/justifi-business-details.entry.js +2 -2
- package/dist/esm/justifi-business-form.entry.js +2 -2
- package/dist/esm/justifi-checkout.entry.js +2 -2
- package/dist/esm/justifi-checkouts-list.entry.js +2 -2
- package/dist/esm/justifi-dispute-management.entry.js +2 -2
- package/dist/esm/justifi-dispute-notification_3.entry.js +2 -2
- package/dist/esm/justifi-gross-payment-chart.entry.js +2 -2
- package/dist/esm/justifi-order-terminals.entry.js +2 -2
- package/dist/esm/justifi-payment-details.entry.js +2 -2
- package/dist/esm/justifi-payment-provisioning.entry.js +2 -2
- package/dist/esm/justifi-payment-transactions-list.entry.js +2 -2
- package/dist/esm/justifi-payments-list.entry.js +2 -2
- package/dist/esm/justifi-payout-details.entry.js +2 -2
- package/dist/esm/justifi-payout-transactions-list.entry.js +2 -2
- package/dist/esm/justifi-payouts-list.entry.js +2 -2
- package/dist/esm/justifi-refund-payment.entry.js +2 -2
- package/dist/esm/justifi-season-interruption-insurance.entry.js +2 -2
- package/dist/esm/justifi-terminal-orders-list.entry.js +2 -2
- package/dist/esm/justifi-terminals-list.entry.js +2 -2
- package/dist/esm/{package-czPIvHxt.js → package-C3_8r8V7.js} +1 -1
- package/dist/module/package.js +1 -1
- package/dist/webcomponents/{p-2bd821a8.entry.js → p-082efda3.entry.js} +1 -1
- package/dist/webcomponents/{p-f6ec50c9.entry.js → p-12499226.entry.js} +1 -1
- package/dist/webcomponents/p-1ddddc82.entry.js +1 -0
- package/dist/webcomponents/p-215ce79e.entry.js +1 -0
- package/dist/webcomponents/{p-aec7a3c8.entry.js → p-239d1d07.entry.js} +1 -1
- package/dist/webcomponents/{p-0b760c4f.entry.js → p-23a3e38e.entry.js} +1 -1
- package/dist/webcomponents/{p-21c060ce.entry.js → p-27b88afd.entry.js} +1 -1
- package/dist/webcomponents/{p-75f3161c.entry.js → p-2a347349.entry.js} +1 -1
- package/dist/webcomponents/{p-9d67209d.entry.js → p-3787cf63.entry.js} +1 -1
- package/dist/webcomponents/{p-db17bc59.entry.js → p-476ebd43.entry.js} +1 -1
- package/dist/webcomponents/p-64ddd8ea.entry.js +1 -0
- package/dist/webcomponents/p-7becc3d3.entry.js +1 -0
- package/dist/webcomponents/p-8071daf3.entry.js +1 -0
- package/dist/webcomponents/{p-26e95adb.entry.js → p-93aa2d31.entry.js} +1 -1
- package/dist/webcomponents/{p-e07bf523.entry.js → p-9e346c2e.entry.js} +1 -1
- package/dist/webcomponents/p-C3_8r8V7.js +1 -0
- package/dist/webcomponents/p-a9ea2c82.entry.js +1 -0
- package/dist/webcomponents/{p-306c7c33.entry.js → p-aaef1450.entry.js} +1 -1
- package/dist/webcomponents/{p-e00fb7b1.entry.js → p-beb0a3c8.entry.js} +1 -1
- package/dist/webcomponents/{p-3aaedf9d.entry.js → p-d3697504.entry.js} +1 -1
- package/dist/webcomponents/{p-d7a06b34.entry.js → p-d9c090b6.entry.js} +1 -1
- package/dist/webcomponents/{p-38ff97ea.entry.js → p-f11eb1bc.entry.js} +1 -1
- package/dist/webcomponents/{p-5981869a.entry.js → p-f358610a.entry.js} +1 -1
- package/dist/webcomponents/{p-CApezhx9.js → p-sassRpOu.js} +1 -1
- package/dist/webcomponents/webcomponents.esm.js +1 -1
- package/docs/entities/businessdetails/index.mdx +55 -72
- package/docs/entities/businessform/index.mdx +13 -19
- package/docs/entities/payment-provisioning/index.mdx +9 -17
- package/docs/helpers/PartsTable.jsx +29 -0
- package/docs/helpers/PropsTable.jsx +35 -0
- package/docs/helpers/{version.ts → version.js} +2 -2
- package/docs/merchant-tools/checkouts-list/index.mdx +50 -64
- package/docs/merchant-tools/gross-payments-chart/index.mdx +17 -19
- package/docs/merchant-tools/order-terminals/index.mdx +13 -17
- package/docs/merchant-tools/payment-details/index.mdx +13 -16
- package/docs/merchant-tools/payment-transactions-list/index.mdx +13 -17
- package/docs/merchant-tools/payments-list/index.mdx +13 -19
- package/docs/merchant-tools/payout-details/index.mdx +47 -57
- package/docs/merchant-tools/payout-transactions-list/index.mdx +13 -17
- package/docs/merchant-tools/payouts-list/index.mdx +13 -19
- package/docs/merchant-tools/terminal-orders-list/index.mdx +13 -17
- package/docs/merchant-tools/terminals-list/index.mdx +13 -17
- package/docs/modular-checkout/index.mdx +0 -5
- package/docs/modular-checkout/introduction/index.mdx +13 -15
- package/docs/modular-checkout/sub-components/apple-pay.mdx +27 -22
- package/docs/modular-checkout/sub-components/bank-account-form.mdx +51 -51
- package/docs/modular-checkout/sub-components/card-form.mdx +50 -54
- package/docs/modular-checkout/sub-components/payment-method-options.mdx +13 -15
- package/docs/modular-checkout/sub-components/plaid-payment-method.mdx +33 -55
- package/docs/modular-checkout/sub-components/saved-payment-methods.mdx +56 -55
- package/docs/modular-checkout/sub-components/season-interruption-insurance.mdx +21 -24
- package/docs/modular-checkout/sub-components/sezzle-payment-method.mdx +104 -109
- package/docs/modular-checkout/sub-components/summary.mdx +13 -14
- package/docs/payment-facilitation/dispute-management/index.mdx +13 -17
- package/docs/payment-facilitation/refund-payment/index.mdx +22 -15
- package/docs/payment-facilitation/tokenize-payment-method/index.mdx +28 -45
- package/docs/payment-facilitation/unified-fintech-checkout/342/204/242/index.mdx +104 -123
- package/package.json +1 -1
- package/dist/webcomponents/p-50a4d4c4.entry.js +0 -1
- package/dist/webcomponents/p-7661c41a.entry.js +0 -1
- package/dist/webcomponents/p-92a43706.entry.js +0 -1
- package/dist/webcomponents/p-9ef4288b.entry.js +0 -1
- package/dist/webcomponents/p-c9b50493.entry.js +0 -1
- package/dist/webcomponents/p-czPIvHxt.js +0 -1
- package/dist/webcomponents/p-deda2e9d.entry.js +0 -1
- package/docs/helpers/PartsTable.ts +0 -55
- package/docs/helpers/PropsTable.ts +0 -63
- package/docs/modular-checkout/docs/index.mdx +0 -32
- package/docs/modular-checkout/example/index.mdx +0 -25
|
@@ -5,7 +5,7 @@ description: Unified Fintech Checkout™ component that orchestrates payment cap
|
|
|
5
5
|
sidebar_position: 20
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
import { PropsTable, PartsTable } from '
|
|
8
|
+
import { PropsTable, PartsTable } from '@justifi/webcomponents/docs/helpers';
|
|
9
9
|
|
|
10
10
|
## Overview
|
|
11
11
|
|
|
@@ -24,45 +24,42 @@ import { PropsTable, PartsTable } from '../../helpers';
|
|
|
24
24
|
|
|
25
25
|
## Props, Events & Methods
|
|
26
26
|
|
|
27
|
-
<
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
},
|
|
64
|
-
]),
|
|
65
|
-
}}
|
|
27
|
+
<PropsTable
|
|
28
|
+
rows={[
|
|
29
|
+
{
|
|
30
|
+
name: 'account-id',
|
|
31
|
+
type: 'string',
|
|
32
|
+
required: true,
|
|
33
|
+
description:
|
|
34
|
+
'Owning platform account; determines branding + permissions.',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
name: 'auth-token',
|
|
38
|
+
type: 'string',
|
|
39
|
+
required: true,
|
|
40
|
+
description: 'Web Component Token with `write:checkout` scope.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'checkout-id',
|
|
44
|
+
type: 'string',
|
|
45
|
+
required: true,
|
|
46
|
+
description:
|
|
47
|
+
'Server-generated checkout session controlling line items and totals.',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: 'require-save-payment-method',
|
|
51
|
+
type: 'boolean',
|
|
52
|
+
defaultValue: 'false',
|
|
53
|
+
description:
|
|
54
|
+
'When true, forces customers to save the payment method for future use.',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: 'locale',
|
|
58
|
+
type: 'string',
|
|
59
|
+
defaultValue: 'en-US',
|
|
60
|
+
description: 'Controls currency formatting, copy, and date presentation.',
|
|
61
|
+
},
|
|
62
|
+
]}
|
|
66
63
|
/>
|
|
67
64
|
|
|
68
65
|
### Events
|
|
@@ -78,87 +75,71 @@ import { PropsTable, PartsTable } from '../../helpers';
|
|
|
78
75
|
|
|
79
76
|
## Theming & Layout
|
|
80
77
|
|
|
81
|
-
<
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
]),
|
|
149
|
-
}}
|
|
78
|
+
<PartsTable
|
|
79
|
+
parts={[
|
|
80
|
+
{
|
|
81
|
+
name: 'font-family',
|
|
82
|
+
description: 'Controls the font family for the component.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
name: 'color',
|
|
86
|
+
description: 'Controls the text color.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
name: 'background-color',
|
|
90
|
+
description: 'Controls the background color.',
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
name: 'button',
|
|
94
|
+
description: 'Button styles.',
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
name: 'button-disabled',
|
|
98
|
+
description: 'Disabled button styles.',
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
name: 'input',
|
|
102
|
+
description: 'Input field styles.',
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
name: 'input-focused',
|
|
106
|
+
description: 'Input styles when focused.',
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
name: 'input-invalid',
|
|
110
|
+
description: 'Input styles when invalid.',
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
name: 'input-invalid-and-focused',
|
|
114
|
+
description: 'Input styles when invalid and focused.',
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
name: 'input-radio',
|
|
118
|
+
description: 'Radio input styles.',
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
name: 'input-checkbox',
|
|
122
|
+
description: 'Checkbox input styles.',
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
name: 'input-checkbox-checked',
|
|
126
|
+
description: 'Checkbox input styles when checked.',
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
name: 'input-checkbox-checked-focused',
|
|
130
|
+
description: 'Checkbox input styles when checked and focused.',
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
name: 'input-checkbox-focused',
|
|
134
|
+
description: 'Checkbox input styles when focused.',
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
name: 'button-primary',
|
|
138
|
+
description: 'Primary button styles.',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
name: 'radio-list-item',
|
|
142
|
+
description: 'Radio list item styles.',
|
|
143
|
+
},
|
|
144
|
+
]}
|
|
150
145
|
/>
|
|
151
|
-
|
|
152
|
-
## Static examples
|
|
153
|
-
|
|
154
|
-
### Listen for completion
|
|
155
|
-
|
|
156
|
-
Trigger downstream logic when checkout completes.
|
|
157
|
-
|
|
158
|
-
<pre>
|
|
159
|
-
<code className="language-js">{`const checkout = document.querySelector('justifi-checkout');
|
|
160
|
-
|
|
161
|
-
checkout.addEventListener('completed', (event) => {
|
|
162
|
-
analytics.track('checkout_completed', event.detail);
|
|
163
|
-
});`}</code>
|
|
164
|
-
</pre>
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as t,c as s,h as i}from"./p-DwYM91AU.js";import{P as e}from"./p-C8QOezo8.js";import{m as r}from"./p-Ch9cTPyq.js";import{E as o}from"./p-BNqo3kt0.js";import{C as p,a as h}from"./p-Cjcsf8ku.js";import{c as a,J as n}from"./p-CApezhx9.js";import"./p-C8yN3uBj.js";import"./p-tGDdRx0W.js";import"./p-BYsgavgS.js";import"./p-BS7OgSQe.js";import"./p-HXpYMWUU.js";import"./p-BpaE8q5f.js";import"./p-BH0Xfn-F.js";import"./p-CLHwhyvu.js";import"./p-B5rtFhtR.js";import"./p-D2muobcE.js";import"./p-wtuY7MT2.js";import"./p-czPIvHxt.js";const m=class{constructor(i){t(this,i),this.errorEvent=s(this,"error-event"),this.recordClickEvent=s(this,"record-click-event"),this.errorMessage=null,this.paymentService=new e,this.handleErrorEvent=t=>{this.errorMessage=t.detail.message,this.errorEvent.emit(t.detail)},this.handleRecordClickEvent=t=>{this.recordClickEvent.emit({id:t.detail.id,type:t.detail.type})}}componentWillLoad(){a(),this.analytics=new n(this),this.initializeGetPaymentDetails()}disconnectedCallback(){var t;null===(t=this.analytics)||void 0===t||t.cleanup()}propChanged(){this.initializeGetPaymentDetails()}initializeGetPaymentDetails(){this.paymentId&&this.authToken?this.getPaymentDetails=r({id:this.paymentId,authToken:this.authToken,service:new e}):(this.errorMessage="Payment ID and Auth Token are required",this.errorEvent.emit({message:this.errorMessage,errorCode:h.MISSING_PROPS,severity:p.ERROR}))}render(){return this.errorMessage?o(this.errorMessage):i("payment-details-core",{getPaymentDetails:this.getPaymentDetails,"onError-event":this.handleErrorEvent,"onRecord-click-event":this.handleRecordClickEvent,"enable-record-click":"true"})}static get watchers(){return{paymentId:["propChanged"],authToken:["propChanged"]}}};export{m as justifi_payment_details}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as t,c as s,h as i}from"./p-DwYM91AU.js";import{P as o}from"./p-CPtsjcdm.js";import"./p-tGDdRx0W.js";import"./p-HXpYMWUU.js";import{C as r,a as e}from"./p-Cjcsf8ku.js";import{d as p}from"./p-BpaE8q5f.js";import"./p-CLHwhyvu.js";import"./p-B5rtFhtR.js";import"./p-BH0Xfn-F.js";import{g as a,a as h}from"./p-D2muobcE.js";import{E as n}from"./p-BNqo3kt0.js";import{c,J as m}from"./p-CApezhx9.js";import{m as d}from"./p-DYGIC0QH.js";import"./p-C8yN3uBj.js";import"./p-BS7OgSQe.js";import"./p-BYsgavgS.js";import"./p-wtuY7MT2.js";import"./p-czPIvHxt.js";const u=class{constructor(i){t(this,i),this.errorEvent=s(this,"error-event"),this.enableRecordClick=!1,this.errorMessage=null,this.handleErrorEvent=t=>{this.errorMessage=t.detail.message,this.errorEvent.emit(t.detail)}}componentWillLoad(){c(),this.analytics=new m(this),this.initializeServices()}disconnectedCallback(){var t;null===(t=this.analytics)||void 0===t||t.cleanup()}propChanged(){this.initializeServices()}initializeServices(){this.payoutId&&this.authToken?(this.getPayout=(({id:t,authToken:s,service:i})=>async({onSuccess:o,onError:e})=>{var n;try{const c=await i.fetchPayout(t,s);c.error?e({error:h(c.error),code:a(null===(n=c.error)||void 0===n?void 0:n.code),severity:r.ERROR}):o(new p(c.data))}catch(t){e({error:h(t),code:a(null==t?void 0:t.code),severity:r.ERROR})}})({id:this.payoutId,authToken:this.authToken,service:new o}),this.getPayoutCSV=d({authToken:this.authToken,service:new o})):(this.errorMessage="Failed to load payout details. payoutId or authToken is not provided.",this.errorEvent.emit({message:this.errorMessage,errorCode:e.MISSING_PROPS,severity:r.ERROR}))}render(){return this.errorMessage?n(this.errorMessage):i("payout-details-core",{getPayout:this.getPayout,getPayoutCSV:this.getPayoutCSV,"onError-event":this.handleErrorEvent,enableRecordClick:this.enableRecordClick})}static get watchers(){return{payoutId:["propChanged"],authToken:["propChanged"]}}};export{u as justifi_payout_details}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{h as t,r as s,c as i}from"./p-DwYM91AU.js";import{A as e}from"./p-C8yN3uBj.js";import{C as r,a as o}from"./p-Cjcsf8ku.js";import"./p-BpaE8q5f.js";import"./p-CLHwhyvu.js";import"./p-B5rtFhtR.js";import"./p-BH0Xfn-F.js";import{g as a,a as n}from"./p-D2muobcE.js";import{c,J as l}from"./p-CApezhx9.js";import{c as h}from"./p-DU8dqq9U.js";import{p as d,f as p,r as u,j as v}from"./p-BS7OgSQe.js";import{v as m,i as f,a as y,H as j}from"./p-nrZ9yHcl.js";import{D as g,E as _}from"./p-wtuY7MT2.js";import{S as w}from"./p-BP2sTIQV.js";import"./p-CZfYo5-1.js";import{S as C}from"./p-c7MCfTgE.js";import"./p-tGDdRx0W.js";import"./p-BYsgavgS.js";import"./p-czPIvHxt.js";import"./p-DCIW8z1f.js";import"./p-HXpYMWUU.js";const k=e();class T{async fetchQuote(t,s){return k.post({endpoint:"insurance/quotes",body:s,authToken:t})}async toggleCoverage(t,s,i){return k.post({endpoint:`insurance/quotes/${s}/toggle`,body:i,authToken:t})}}const b=()=>t("div",{class:"row gap-3"},t("div",{class:"col-12"},t(C,{width:"35%",height:"30px"})),t("div",{class:"col-12"},t(C,{width:"70%"})),t("div",{class:"col-12"},t(C,{width:"40%"})),t("div",{class:"col-12"},t(C,{width:"40%"})),t("div",{class:"col-12"},t(C,{width:"100%"})),t("div",{class:"col-12"},t(C,{width:"80%"}))),H=class{constructor(t){s(this,t),this.insuranceUpdated=i(this,"insurance-updated"),this.errorEvent=i(this,"error-event"),this.isLoading=!0}async validate(){return m()}processHTMLContent(t){return d(t,[t=>u(t,"style"),t=>v(t,"a","part",g),t=>v(t,"p","part",g)])}componentWillLoad(){c(),this.analytics=new l(this),this.initializeServiceMethods(),this.getQuote&&this.fetchData()}disconnectedCallback(){var t;null===(t=this.analytics)||void 0===t||t.cleanup()}initializeServiceMethods(){const t=this.authToken||h.authToken;if(!t)return void this.errorEvent.emit({errorCode:o.MISSING_PROPS,message:"Missing authToken",severity:r.ERROR});const s={authToken:t,service:new T};this.getQuote=(({authToken:t,service:s})=>async({payload:i,onSuccess:e,onError:o})=>{var c;try{const l=await s.fetchQuote(t,i);if(l.error)return o({error:n(l.error),code:a(null===(c=l.error)||void 0===c?void 0:c.code),severity:r.ERROR});e({quote:l.data})}catch(t){const s=a(null==t?void 0:t.code);return o({error:t.message||t,code:s,severity:r.ERROR})}})(s),this.toggleCoverage=(({authToken:t,service:s})=>async({quoteId:i,payload:e,onSuccess:o,onError:c})=>{var l;try{const h=await s.toggleCoverage(t,i,e);if(h.error)return c({error:n(h.error),code:a(null===(l=h.error)||void 0===l?void 0:l.code),severity:r.ERROR});o({quote:h.data})}catch(t){const s=a(null==t?void 0:t.code);return c({error:t.message||t,code:s,severity:r.ERROR})}})(s)}fetchData(){this.isLoading=!0,this.getQuote({payload:{checkout_id:this.checkoutId||h.checkoutId,policy_type:"season_interruption",primary_identity:{state:this.primaryIdentityState,email:this.primaryIdentityEmailAddress,first_name:this.primaryIdentityFirstName,last_name:this.primaryIdentityLastName,postal_code:this.primaryIdentityPostalCode,country:this.primaryIdentityCountry},policy_attributes:{insurable_amount:this.policyAttributesInsurableAmount,start_date:this.policyAttributesStartDate,end_date:this.policyAttributesEndDate,covered_identity:{first_name:this.coveredIdentityFirstName,last_name:this.coveredIdentityLastName}}},onSuccess:({quote:t})=>{this.quote=t,this.quote.product.description=this.processHTMLContent(this.quote.product.description),this.quote.product.legal_disclaimer=this.processHTMLContent(this.quote.product.legal_disclaimer),f[t.policy_type]=t.accepted,this.isLoading=!1},onError:({error:t,code:s,severity:i})=>{this.isLoading=!1,this.errorEvent.emit({errorCode:s,message:t,severity:i})}})}onChangeHandler(t,s){this.accepted=s,y[this.quote.policy_type]=!1,this.toggleCoverage({quoteId:this.quote.id,payload:{accepted:this.accepted},onSuccess:()=>{this.insuranceUpdated.emit(),f[this.quote.policy_type]=this.accepted},onError:({error:t,code:s,severity:i})=>{this.errorEvent.emit({errorCode:s,message:t,severity:i})}})}get error(){var t;return y[null===(t=this.quote)||void 0===t?void 0:t.policy_type]}render(){var s,i,e,r;return h&&!1===h.insuranceEnabled?(console.warn("[justifi-season-interruption-insurance] Insurance is disabled for this checkout (payment_settings.insurance_payments=false)."),null):t(w,null,this.isLoading?t(b,null):t("div",null,t(j,{text:null===(s=this.quote)||void 0===s?void 0:s.product.title,class:"fs-5 fw-bold pb-3"}),t("small",{part:g,innerHTML:null===(i=this.quote)||void 0===i?void 0:i.product.description}),t("form-control-radio",{label:`Accept coverage for ${p(null===(e=this.quote)||void 0===e?void 0:e.total_cents)}`,name:"opt-in",value:"true",checked:"true"===this.accepted,inputHandler:this.onChangeHandler.bind(this),errorText:this.error?" ":void 0}),t("form-control-radio",{label:"Decline coverage",name:"opt-in",value:"false",checked:"false"===this.accepted,inputHandler:this.onChangeHandler.bind(this),errorText:this.error?" ":void 0}),t("div",{class:"invalid-feedback",style:{display:this.error?"block":"none"},part:_},"Please select an option"),t("small",{part:g,innerHTML:null===(r=this.quote)||void 0===r?void 0:r.product.legal_disclaimer})))}};export{H as justifi_season_interruption_insurance}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as t,c as s,h as r}from"./p-DwYM91AU.js";import{A as o}from"./p-C8yN3uBj.js";import{C as e,a as i}from"./p-Cjcsf8ku.js";import"./p-BpaE8q5f.js";import"./p-CLHwhyvu.js";import"./p-B5rtFhtR.js";import"./p-BH0Xfn-F.js";import{g as a,a as p}from"./p-D2muobcE.js";import{E as n}from"./p-BNqo3kt0.js";import{c as h,J as c}from"./p-CApezhx9.js";import"./p-tGDdRx0W.js";import"./p-BYsgavgS.js";import"./p-BS7OgSQe.js";import"./p-HXpYMWUU.js";import"./p-wtuY7MT2.js";import"./p-czPIvHxt.js";const m=o();class u{async fetchGrossVolumeChartData(t,s){return m.get({endpoint:`account/${t}/reports/gross_volume`,authToken:s})}}const d=class{constructor(r){t(this,r),this.errorEvent=s(this,"error-event"),this.errorMessage=null,this.handleErrorEvent=t=>{this.errorMessage=t.detail.message,this.errorEvent.emit(t.detail)}}componentWillLoad(){h(),this.analytics=new c(this),this.initializeGetGrossPayment()}disconnectedCallback(){var t;null===(t=this.analytics)||void 0===t||t.cleanup()}propChanged(){this.initializeGetGrossPayment()}initializeGetGrossPayment(){this.accountId&&this.authToken?this.getGrossPayment=(({id:t,authToken:s,service:r})=>async({onSuccess:o,onError:i})=>{var n;try{const h=await r.fetchGrossVolumeChartData(t,s);h.error?i({error:p(h.error),code:a(null===(n=h.error)||void 0===n?void 0:n.code),severity:e.ERROR}):o(h.data)}catch(t){const s=a(null==t?void 0:t.code);i({error:p(t),code:s,severity:e.ERROR})}})({id:this.accountId,authToken:this.authToken,service:new u}):(this.errorMessage="Account ID and Auth Token are required",this.errorEvent.emit({errorCode:i.MISSING_PROPS,message:this.errorMessage,severity:e.ERROR}))}render(){return this.errorMessage?n(this.errorMessage):r("gross-payment-chart-core",{getGrossPayment:this.getGrossPayment,"onError-event":this.handleErrorEvent})}static get watchers(){return{accountId:["propChanged"],authToken:["propChanged"]}}};export{d as justifi_gross_payment_chart}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{h as i,r as s,c as t}from"./p-DwYM91AU.js";import{ao as e,am as r,af as o,D as l}from"./p-wtuY7MT2.js";import{S as d}from"./p-BP2sTIQV.js";import"./p-CZfYo5-1.js";import{c as n,J as a}from"./p-CApezhx9.js";import{C as h,a as c}from"./p-Cjcsf8ku.js";import{B as u}from"./p-BCPutgAi.js";import{B as v}from"./p-B5rtFhtR.js";import{m as p}from"./p-sCHf--Vc.js";import{S as m}from"./p-c7MCfTgE.js";import"./p-tGDdRx0W.js";import"./p-HXpYMWUU.js";import{j as f,i as w,b as g}from"./p-BpaE8q5f.js";import"./p-CLHwhyvu.js";import"./p-BH0Xfn-F.js";import{g as x,a as j}from"./p-D2muobcE.js";import{T as y}from"./p-MQxr_LMC.js";import{k as b}from"./p-BS7OgSQe.js";import"./p-czPIvHxt.js";import"./p-C8yN3uBj.js";import"./p-BYsgavgS.js";const S=()=>i("div",{class:"row gap-3"},i("div",{class:"col-12"},i(m,{width:"25%"})),i("div",{class:"col-12"},i(m,{width:"100%"})),i("div",{class:"col-12 d-flex gap-3"},i(m,{width:"50%"}),i(m,{width:"50%"})),i("div",{class:"col-12 d-flex gap-3"},i(m,{width:"65%"}),i(m,{width:"35%"}))),C=()=>i("div",{class:"row gap-5"},i("div",{class:"col-12"},i(m,{width:"40%",height:"40px"})),i(S,null)),k=()=>i("div",{class:"terminal-selector-skeleton mt-4 rounded shadow-sm"},i("div",{class:"d-flex align-items-center gap-3"},i(m,{width:"125px",height:"125px",styles:{borderRadius:"8px"}}),i("div",{class:"flex-grow-1"},i("div",{class:"d-flex row flex-row"},i("div",{class:"col-6 flex-column"},i(m,null),i(m,{width:"60%"})),i("div",{class:"d-flex justify-content-end align-items-center gap-2 col-6"},i(m,{width:"32px",height:"32px",styles:{borderRadius:"50%"}}),i(m,{width:"80px",height:"32px"}),i(m,{width:"32px",height:"32px",styles:{borderRadius:"50%"}}))),i("div",{class:"mt-4"},i("div",{class:"d-flex flex-column gap-2"},i(m,null),i(m,null)))))),B=class{constructor(i){s(this,i),this.errorEvent=t(this,"error-event"),this.submitted=t(this,"submit-event"),this.shipping=!1,this.submitButtonText="Submit Order",this.loading={business:!0,terminals:!0},this.submitting=!1,this.error=null,this.totalQuantity=0}componentWillLoad(){this.order=new w({business_id:this.businessId,sub_account_id:this.accountId,order_type:this.shipping?g.boardingShipping:g.boardingOnly}),n(),this.analytics=new a(this),this.loadData()}disconnectedCallback(){var i;null===(i=this.analytics)||void 0===i||i.cleanup()}handleError(i,s,t){this.error={message:i,code:s,severity:t},this.errorEvent.emit({errorCode:s,message:i,severity:t})}loadData(){this.businessId&&this.authToken?(this.initializeGetBusiness(),this.initializeGetTerminalModels()):this.handleError("Invalid business id or auth token",c.MISSING_PROPS,h.ERROR)}initializeGetBusiness(){p({id:this.businessId,authToken:this.authToken,service:new u})({onSuccess:({business:i})=>{this.business=new v(i),this.loading.business=!1},onError:({error:i,code:s,severity:t})=>{this.handleError(i,s,t),this.loading.business=!1}})}initializeGetTerminalModels(){(({id:i,authToken:s,service:t})=>async({onSuccess:e,onError:r})=>{var o,l,d,n;try{const a=await t.fetchTerminalModels(i,s);if(a.error)return r({error:j(a.error),code:x(null===(n=a.error)||void 0===n?void 0:n.code),severity:h.ERROR});e({terminals:(null===(l=null===(o=a.data)||void 0===o?void 0:o.terminal_order_models)||void 0===l?void 0:l.map((i=>new f(i))))||[],orderLimit:null===(d=a.data)||void 0===d?void 0:d.order_limit})}catch(i){const s=x(null==i?void 0:i.code);return r({error:i.message||i,code:s,severity:h.ERROR})}})({id:this.accountId,authToken:this.authToken,service:new y})({onSuccess:({terminals:i,orderLimit:s})=>{this.terminalModels=i,this.orderLimit=s,this.loading.terminals=!1},onError:({error:i,code:s,severity:t})=>{this.handleError(i,s,t),this.loading.terminals=!1}})}submitOrder(){const i=(({authToken:i,service:s,apiOrigin:t="https://wc-proxy.justifi.ai"})=>async({terminalOrder:e,onSuccess:r,onError:o})=>{var l;try{const d=await s.orderTerminals(i,e,t);if(d.error)return o({error:j(d.error),code:x(null===(l=d.error)||void 0===l?void 0:l.code),severity:h.ERROR});{const{data:i}=d;r({data:i})}}catch(i){const s=x(null==i?void 0:i.code);return o({error:i.message||i,code:s,severity:h.ERROR})}})({authToken:this.authToken,service:new y});this.submitting=!0,i({terminalOrder:this.order.payload,onSuccess:({data:i})=>{this.submitted.emit(i),this.submitting=!1},onError:({error:i,code:s,severity:t})=>{this.handleError(i,s,t),this.submitting=!1}})}onSelectedQuantityChange(i){this.order.updateTerminal(i.detail.modelName,i.detail.quantity),this.totalQuantity=this.order.totalQuantity}renderLoading(){return i("div",null,this.loading.business&&i(C,null),this.loading.terminals&&i("div",{class:"mt-5"},i(k,null),i(k,null),i(k,null)))}renderBusinessDetails(){var s,t,o,l,d,n,a,h;if(!this.loading.business&&this.business)return i("div",{class:"d-flex flex-column gap-4 mb-5 pt-5"},i("div",{class:"row"},i("div",{class:"col-12"},i("h2",{part:r},this.business.legal_name))),i("div",{class:"row"},i("div",{class:"col-6"},i("h5",{part:e},"Representative:"),i("div",null,i("div",null,null===(t=null===(s=this.business)||void 0===s?void 0:s.representative)||void 0===t?void 0:t.name),i("div",null,null===(l=null===(o=this.business)||void 0===o?void 0:o.representative)||void 0===l?void 0:l.title),i("div",null,null===(n=null===(d=this.business)||void 0===d?void 0:d.representative)||void 0===n?void 0:n.email),i("div",null,b(null===(h=null===(a=this.business)||void 0===a?void 0:a.representative)||void 0===h?void 0:h.phone)))),i("div",{class:"col-6"},i("h5",{part:e},this.shipping?"Shipping Address:":"Business Address:"),i("div",null,this.business.legal_address.line1,this.business.legal_address.line2?`, ${this.business.legal_address.line2}`:"",i("br",null),this.business.legal_address.city,", ",this.business.legal_address.state," ",this.business.legal_address.postal_code))))}renderTerminals(){if(!this.loading.terminals&&this.terminalModels)return i("div",{class:"d-flex flex-column gap-2 mt-5"},this.terminalModels.map((s=>i("terminal-quantity-selector",{modelName:s.model_name,description:s.description,imageUrl:s.image_url,helpUrl:s.help_url,limit:this.orderLimit-this.order.totalQuantity,onSelectedQuantityChange:this.onSelectedQuantityChange.bind(this)}))))}renderOrderSection(){return i("div",{class:"mt-3"},i("div",{class:"text-end"},"Order limit: ",this.orderLimit),i("div",{class:"d-flex justify-content-end mt-3"},i("button",{class:"btn btn-primary submit-btn",onClick:this.submitOrder.bind(this),disabled:0===this.order.totalQuantity||this.submitting,part:o},this.submitting?"Submitting...":this.submitButtonText)))}render(){return i(d,{key:"f9c515ea3cf3dd616d894cef2cc64789663608e8"},i("div",{key:"6b3d49555fe21563c251896300d313bed336f9fd",part:l},this.renderLoading(),this.renderBusinessDetails(),this.renderTerminals(),this.renderOrderSection()))}};export{B as justifi_order_terminals}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={name:"@justifi/webcomponents",version:"6.5.1-rc.4"};export{e as p}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r,c as s,h as t}from"./p-DwYM91AU.js";import{S as i}from"./p-BP2sTIQV.js";import"./p-CZfYo5-1.js";import{c as e,J as o}from"./p-CApezhx9.js";import{d as a}from"./p-CFevTCAJ.js";import"./p-tGDdRx0W.js";import"./p-HXpYMWUU.js";import{C as n,a as p}from"./p-Cjcsf8ku.js";import{i as c}from"./p-BpaE8q5f.js";import"./p-CLHwhyvu.js";import"./p-B5rtFhtR.js";import"./p-BH0Xfn-F.js";import{g as m,a as h}from"./p-D2muobcE.js";import{A as d}from"./p-C8yN3uBj.js";import"./p-czPIvHxt.js";import"./p-wtuY7MT2.js";import"./p-BS7OgSQe.js";import"./p-DOLBAxYf.js";import"./p-BYsgavgS.js";const l=d();class u{async fetchTerminalOrders(r,s,t){return l.get({endpoint:"terminals/orders",params:t,headers:{account:r},authToken:s})}}const f=class{constructor(t){r(this,t),this.errorEvent=s(this,"error-event"),this.errorMessage=null,this.columns=a,this.handleErrorEvent=r=>{this.errorMessage=r.detail.message,this.errorEvent.emit(r.detail)}}componentWillLoad(){e(),this.analytics=new o(this),this.initializeGetData()}disconnectedCallback(){var r;null===(r=this.analytics)||void 0===r||r.cleanup()}initializeGetData(){this.accountId&&this.authToken?this.getTerminalOrders=(({id:r,authToken:s,service:t})=>async({params:i,onSuccess:e,onError:o,final:a})=>{var p,d;try{const a=await t.fetchTerminalOrders(r,s,i);if(a.error)return o({error:h(a.error),code:m(null===(d=a.error)||void 0===d?void 0:d.code),severity:n.ERROR});{const r=Object.assign({},a.page_info);e({terminalOrders:(null===(p=a.data)||void 0===p?void 0:p.map((r=>new c(r))))||[],pagingInfo:r})}}catch(r){const s=m(null==r?void 0:r.code);return o({error:r.message||r,code:s,severity:n.ERROR})}finally{return a()}})({id:this.accountId,authToken:this.authToken,service:new u}):(this.errorMessage="Account ID and Auth Token are required",this.errorEvent.emit({errorCode:p.MISSING_PROPS,message:this.errorMessage,severity:n.ERROR}))}render(){return t(i,{key:"f89cb75d014a5d43c6766f0e0e7a572807c3df9f"},t("terminal-orders-list-core",{key:"c38fd6424ebca672c9577255d81b9e97712f3b9b",getTerminalOrders:this.getTerminalOrders,"onError-event":this.handleErrorEvent,columns:this.columns}))}};export{f as justifi_terminal_orders_list}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
export interface PartsTableRow {
|
|
2
|
-
name: string;
|
|
3
|
-
description: string;
|
|
4
|
-
target?: string;
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
function escapeHtml(text: string): string {
|
|
8
|
-
const map: Record<string, string> = {
|
|
9
|
-
'&': '&',
|
|
10
|
-
'<': '<',
|
|
11
|
-
'>': '>',
|
|
12
|
-
'"': '"',
|
|
13
|
-
"'": ''',
|
|
14
|
-
};
|
|
15
|
-
return text.replace(/[&<>"']/g, (m) => map[m]);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export function PartsTable(parts: PartsTableRow[], caption?: string): string {
|
|
19
|
-
if (!parts?.length) {
|
|
20
|
-
return '';
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
let html = '<table class="docs-parts-table">';
|
|
24
|
-
|
|
25
|
-
if (caption) {
|
|
26
|
-
html += `<caption>${escapeHtml(caption)}</caption>`;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
html += `
|
|
30
|
-
<thead>
|
|
31
|
-
<tr>
|
|
32
|
-
<th scope="col">Part</th>
|
|
33
|
-
<th scope="col">Description</th>
|
|
34
|
-
<th scope="col">DOM target</th>
|
|
35
|
-
</tr>
|
|
36
|
-
</thead>
|
|
37
|
-
<tbody>`;
|
|
38
|
-
|
|
39
|
-
for (const part of parts) {
|
|
40
|
-
html += `
|
|
41
|
-
<tr>
|
|
42
|
-
<td>
|
|
43
|
-
<code>::part(${escapeHtml(part.name)})</code>
|
|
44
|
-
</td>
|
|
45
|
-
<td>${escapeHtml(part.description)}</td>
|
|
46
|
-
<td>${part.target ? escapeHtml(part.target) : '—'}</td>
|
|
47
|
-
</tr>`;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
html += `
|
|
51
|
-
</tbody>
|
|
52
|
-
</table>`;
|
|
53
|
-
|
|
54
|
-
return html;
|
|
55
|
-
}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
export interface PropsTableRow {
|
|
2
|
-
name: string;
|
|
3
|
-
type: string;
|
|
4
|
-
required?: boolean;
|
|
5
|
-
description: string;
|
|
6
|
-
defaultValue?: string;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
function escapeHtml(text: string): string {
|
|
10
|
-
const map: Record<string, string> = {
|
|
11
|
-
'&': '&',
|
|
12
|
-
'<': '<',
|
|
13
|
-
'>': '>',
|
|
14
|
-
'"': '"',
|
|
15
|
-
"'": ''',
|
|
16
|
-
};
|
|
17
|
-
return text.replace(/[&<>"']/g, (m) => map[m]);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export function PropsTable(rows: PropsTableRow[], caption?: string): string {
|
|
21
|
-
if (!rows?.length) {
|
|
22
|
-
return '';
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
let html = '<table class="docs-props-table">';
|
|
26
|
-
|
|
27
|
-
if (caption) {
|
|
28
|
-
html += `<caption>${escapeHtml(caption)}</caption>`;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
html += `
|
|
32
|
-
<thead>
|
|
33
|
-
<tr>
|
|
34
|
-
<th scope="col">Name</th>
|
|
35
|
-
<th scope="col">Type</th>
|
|
36
|
-
<th scope="col">Required</th>
|
|
37
|
-
<th scope="col">Default</th>
|
|
38
|
-
<th scope="col">Description</th>
|
|
39
|
-
</tr>
|
|
40
|
-
</thead>
|
|
41
|
-
<tbody>`;
|
|
42
|
-
|
|
43
|
-
for (const row of rows) {
|
|
44
|
-
html += `
|
|
45
|
-
<tr>
|
|
46
|
-
<td>
|
|
47
|
-
<code>${escapeHtml(row.name)}</code>
|
|
48
|
-
</td>
|
|
49
|
-
<td>
|
|
50
|
-
<code>${escapeHtml(row.type)}</code>
|
|
51
|
-
</td>
|
|
52
|
-
<td>${row.required ? 'Yes' : 'No'}</td>
|
|
53
|
-
<td>${row.defaultValue ? `<code>${escapeHtml(row.defaultValue)}</code>` : '—'}</td>
|
|
54
|
-
<td>${escapeHtml(row.description)}</td>
|
|
55
|
-
</tr>`;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
html += `
|
|
59
|
-
</tbody>
|
|
60
|
-
</table>`;
|
|
61
|
-
|
|
62
|
-
return html;
|
|
63
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: modular-checkout/docs/index
|
|
3
|
-
title: Modular Checkout Docs
|
|
4
|
-
sidebar_label: Docs
|
|
5
|
-
description: Standards for documenting Modular Checkout and every child component.
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
Document every Modular Checkout building block the same way so product, design,
|
|
9
|
-
and engineering teams can stay in sync. The guidance below applies to the parent
|
|
10
|
-
shell plus each entry in [`Sub-components`](../sub-components/index).
|
|
11
|
-
|
|
12
|
-
## How component docs are structured
|
|
13
|
-
|
|
14
|
-
Every page follows the same scaffolding:
|
|
15
|
-
|
|
16
|
-
1. **Overview** – when to use the component.
|
|
17
|
-
2. **Usage** – minimal markup plus contextual variants.
|
|
18
|
-
3. **Props & Events** – rendered via `<PropsTable>` for consistency.
|
|
19
|
-
4. **Theming & Parts** – CSS custom properties and enumerated `::part` selectors (via `<PartsTable>`).
|
|
20
|
-
5. **Accessibility** – focus management, aria attributes, localization guidance.
|
|
21
|
-
6. **Static Examples** – non-interactive snippets that mirror Storybook stories.
|
|
22
|
-
|
|
23
|
-
## Authoring checklist
|
|
24
|
-
|
|
25
|
-
- Duplicate `../../templates/component-template.mdx` and adjust the frontmatter
|
|
26
|
-
`id` plus title to match the new slug.
|
|
27
|
-
- Keep prose declarative and actionable—no conversational filler.
|
|
28
|
-
- Include at least one code example using `<pre><code>`, `<PropsTable>`, and `<PartsTable>` block.
|
|
29
|
-
- Reference shared guides when overlapping content would otherwise drift.
|
|
30
|
-
- Document `::part` styling hooks plus any CSS variables the component exposes.
|
|
31
|
-
- Add cross-links back to [`Modular Checkout`](../index) and any related
|
|
32
|
-
components so readers can navigate without scrolling the sidebar.
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: modular-checkout/example/index
|
|
3
|
-
title: Modular Checkout Example
|
|
4
|
-
sidebar_label: Example
|
|
5
|
-
description: Minimal implementation that wires auth, account, and summary slots.
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
Plug this snippet into any HTML sandbox to validate auth tokens, slot content,
|
|
9
|
-
and submission hooks before integrating into your production host app.
|
|
10
|
-
|
|
11
|
-
### Embedded checkout with summary
|
|
12
|
-
|
|
13
|
-
<pre><code className="language-html">{`<justifi-modular-checkout
|
|
14
|
-
account-id="acc_demo"
|
|
15
|
-
auth-token="token_checkout"
|
|
16
|
-
checkout-id="chk_demo"
|
|
17
|
-
submit-label="Pay now"
|
|
18
|
-
>
|
|
19
|
-
<justifi-modular-checkout-card-form slot="payment-methods" />
|
|
20
|
-
<justifi-modular-checkout-summary slot="summary" />
|
|
21
|
-
</justifi-modular-checkout>`}</code></pre>
|
|
22
|
-
|
|
23
|
-
> Combine this structure with your own `<justifi-payment-method-options>` UI
|
|
24
|
-
> when you need to pre-select rails outside of the checkout shell.
|
|
25
|
-
|