@justifi/webcomponents 6.7.0 → 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.
- package/dist/cjs/{check-pkg-version-nSgWWvdw.js → check-pkg-version-BG-Rfkh5.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 +9 -7
- package/dist/cjs/justifi-apple-pay_8.cjs.entry.js +10 -8
- 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 +98 -6
- 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/loader.cjs.js +1 -1
- package/dist/cjs/{package-B8gOzTFM.js → package-Df5lTFe6.js} +1 -1
- package/dist/cjs/webcomponents.cjs.js +1 -1
- package/dist/collection/actions/void/void-actions.js +31 -0
- package/dist/collection/api/services/google-pay.service.js +2 -1
- package/dist/collection/api/services/void.service.js +9 -0
- package/dist/collection/components/modular-checkout/modular-checkout.js +3 -2
- package/dist/collection/components/modular-checkout/sub-components/bank-account.js +6 -3
- package/dist/collection/components/modular-checkout/sub-components/card-form.js +6 -3
- package/dist/collection/components/modular-checkout/sub-components/google-pay.js +3 -3
- package/dist/collection/components/refund-payment/refund-payment.js +66 -10
- package/dist/docs.json +15 -10
- package/dist/esm/{check-pkg-version-CmkUoEAo.js → check-pkg-version-c_8fDHCB.js} +1 -1
- package/dist/esm/hidden-input_2.entry.js +1 -1
- package/dist/esm/internal-tokenize-payment-method_7.entry.js +9 -7
- package/dist/esm/justifi-apple-pay_8.entry.js +10 -8
- 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 +98 -6
- 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/loader.js +1 -1
- package/dist/esm/{package-CsRppqXL.js → package-BzT9OxlN.js} +1 -1
- package/dist/esm/webcomponents.js +1 -1
- package/dist/module/bank-account-form.js +1 -1
- package/dist/module/bank-account.js +5 -2
- package/dist/module/card-form.js +1 -1
- package/dist/module/card-form2.js +5 -2
- package/dist/module/google-pay.js +5 -4
- package/dist/module/justifi-checkouts-list-filters.js +1 -1
- package/dist/module/justifi-payment-transactions-list.js +1 -1
- package/dist/module/justifi-payments-list-filters.js +1 -1
- package/dist/module/justifi-payout-transactions-list.js +1 -1
- package/dist/module/justifi-payouts-list-filters.js +1 -1
- package/dist/module/justifi-refund-payment.js +97 -4
- package/dist/module/justifi-terminal-orders-list-filters.js +1 -1
- package/dist/module/modular-checkout.js +3 -2
- package/dist/module/package.js +1 -1
- package/dist/module/payments-list-core2.js +1 -1
- package/dist/module/payout-details-core2.js +1 -1
- package/dist/module/payouts-list-core2.js +1 -1
- package/dist/module/terminal-orders-list-core2.js +1 -1
- package/dist/module/utils2.js +1 -1
- package/dist/types/actions/void/void-actions.d.ts +10 -0
- package/dist/types/api/services/google-pay.service.d.ts +1 -1
- package/dist/types/api/services/void.service.d.ts +7 -0
- package/dist/types/components/modular-checkout/sub-components/bank-account.d.ts +1 -0
- package/dist/types/components/modular-checkout/sub-components/card-form.d.ts +1 -0
- package/dist/types/components/refund-payment/refund-payment.d.ts +6 -2
- package/dist/types/components.d.ts +3 -3
- package/dist/webcomponents/{p-c0bd4e9a.entry.js → p-035a4adc.entry.js} +1 -1
- package/dist/webcomponents/{p-c4585b68.entry.js → p-0935600b.entry.js} +1 -1
- package/dist/webcomponents/{p-fc8f55d7.entry.js → p-0ab9a3ae.entry.js} +1 -1
- package/dist/webcomponents/{p-DISrhs4v.js → p-11wdbrqX.js} +1 -1
- package/dist/webcomponents/{p-fe73b09b.entry.js → p-138ada4a.entry.js} +1 -1
- package/dist/webcomponents/p-148d3327.entry.js +1 -0
- package/dist/webcomponents/p-2cb9edad.entry.js +1 -0
- package/dist/webcomponents/{p-04ec17bb.entry.js → p-2d4a2d26.entry.js} +1 -1
- package/dist/webcomponents/p-3f14d0c4.entry.js +1 -0
- package/dist/webcomponents/{p-d2981754.entry.js → p-5c6727ae.entry.js} +1 -1
- package/dist/webcomponents/{p-eada0422.entry.js → p-622af881.entry.js} +1 -1
- package/dist/webcomponents/{p-50400c5e.entry.js → p-64ebff16.entry.js} +1 -1
- package/dist/webcomponents/p-71577fa1.entry.js +1 -0
- package/dist/webcomponents/p-7ec4838f.entry.js +1 -0
- package/dist/webcomponents/p-BzT9OxlN.js +1 -0
- package/dist/webcomponents/p-af7c219d.entry.js +1 -0
- package/dist/webcomponents/{p-74fea39c.entry.js → p-b752c5bc.entry.js} +1 -1
- package/dist/webcomponents/{p-f23428da.entry.js → p-bbff6196.entry.js} +1 -1
- package/dist/webcomponents/p-c0c36187.entry.js +1 -0
- package/dist/webcomponents/{p-ff5981fb.entry.js → p-d077569e.entry.js} +1 -1
- package/dist/webcomponents/{p-87988b4d.entry.js → p-d7b1b7b5.entry.js} +1 -1
- package/dist/webcomponents/{p-095cedc5.entry.js → p-dc6c9c79.entry.js} +1 -1
- package/dist/webcomponents/p-ecbc83bf.entry.js +1 -0
- package/dist/webcomponents/{p-b2a0cbad.entry.js → p-f56d7b4c.entry.js} +1 -1
- package/dist/webcomponents/webcomponents.esm.js +1 -1
- package/docs/.eslintrc.cjs +17 -0
- package/docs/changelog/index.mdx +17 -0
- package/docs/entities/businessdetails/index.mdx +143 -0
- package/docs/entities/businessform/index.mdx +241 -0
- package/docs/entities/index.mdx +19 -0
- package/docs/entities/payment-provisioning/index.mdx +128 -0
- package/docs/frameworks/angular/index.mdx +112 -0
- package/docs/frameworks/index.mdx +18 -0
- package/docs/frameworks/react/index.mdx +125 -0
- package/docs/frameworks/vue/index.mdx +102 -0
- package/docs/helpers/PartsTable.js +50 -0
- package/docs/helpers/PropsTable.js +56 -0
- package/docs/helpers/index.ts +3 -0
- package/docs/helpers/version.js +32 -0
- package/docs/introduction/index.mdx +125 -0
- package/docs/merchant-tools/checkouts-list/index.mdx +97 -0
- package/docs/merchant-tools/gross-payments-chart/index.mdx +83 -0
- package/docs/merchant-tools/index.mdx +25 -0
- package/docs/merchant-tools/order-terminals/index.mdx +84 -0
- package/docs/merchant-tools/payment-details/index.mdx +132 -0
- package/docs/merchant-tools/payment-transactions-list/index.mdx +85 -0
- package/docs/merchant-tools/payments-list/index.mdx +109 -0
- package/docs/merchant-tools/payout-details/index.mdx +84 -0
- package/docs/merchant-tools/payout-transactions-list/index.mdx +84 -0
- package/docs/merchant-tools/payouts-list/index.mdx +92 -0
- package/docs/merchant-tools/terminal-orders-list/index.mdx +85 -0
- package/docs/merchant-tools/terminals-list/index.mdx +93 -0
- package/docs/modular-checkout/complete-examples/index.mdx +20 -0
- package/docs/modular-checkout/index.mdx +20 -0
- package/docs/modular-checkout/introduction/index.mdx +102 -0
- package/docs/modular-checkout/sub-components/apple-pay.mdx +106 -0
- package/docs/modular-checkout/sub-components/bank-account-form.mdx +167 -0
- package/docs/modular-checkout/sub-components/card-form.mdx +178 -0
- package/docs/modular-checkout/sub-components/index.mdx +23 -0
- package/docs/modular-checkout/sub-components/payment-method-options.mdx +87 -0
- package/docs/modular-checkout/sub-components/plaid-payment-method.mdx +158 -0
- package/docs/modular-checkout/sub-components/saved-payment-methods.mdx +183 -0
- package/docs/modular-checkout/sub-components/season-interruption-insurance.mdx +221 -0
- package/docs/modular-checkout/sub-components/sezzle-payment-method.mdx +183 -0
- package/docs/modular-checkout/sub-components/summary.mdx +111 -0
- package/docs/payment-facilitation/dispute-management/index.mdx +99 -0
- package/docs/payment-facilitation/index.mdx +21 -0
- package/docs/payment-facilitation/refund-payment/index.mdx +241 -0
- package/docs/payment-facilitation/tokenize-payment-method/index.mdx +350 -0
- package/docs/payment-facilitation/unified-fintech-checkout/342/204/242/index.mdx +150 -0
- package/package.json +21 -6
- package/dist/webcomponents/p-0e981c28.entry.js +0 -1
- package/dist/webcomponents/p-15ceeea7.entry.js +0 -1
- package/dist/webcomponents/p-9c1aa22d.entry.js +0 -1
- package/dist/webcomponents/p-CsRppqXL.js +0 -1
- package/dist/webcomponents/p-aa145996.entry.js +0 -1
- package/dist/webcomponents/p-b5b49e86.entry.js +0 -1
- package/dist/webcomponents/p-d9cdd873.entry.js +0 -1
- package/dist/webcomponents/p-ef04f334.entry.js +0 -1
- package/dist/webcomponents/p-f5dd3fa4.entry.js +0 -1
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: entities/businessdetails/index
|
|
3
|
+
title: Business Details
|
|
4
|
+
sidebar_label: BusinessDetails
|
|
5
|
+
description: Collect and review business profile information with inline validation and KYC-friendly formatting.
|
|
6
|
+
sidebar_position: 10
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
import {
|
|
10
|
+
PropsTable,
|
|
11
|
+
PartsTable,
|
|
12
|
+
getWebcomponentsVersion,
|
|
13
|
+
} from '@justifi/webcomponents/docs/helpers';
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
Component to render detailed information about a business. You will need to first create a business via [Business API](https://docs.justifi.tech/api-spec#tag/Business) to get the business-id required for this component.
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
|
|
21
|
+
<pre><code className="language-html">{`<!DOCTYPE html>
|
|
22
|
+
<html dir="ltr" lang="en">
|
|
23
|
+
|
|
24
|
+
<head>
|
|
25
|
+
<meta charset="utf-8" />
|
|
26
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=5.0" />
|
|
27
|
+
<title>justifi-business-details</title>
|
|
28
|
+
|
|
29
|
+
<script
|
|
30
|
+
type="module"
|
|
31
|
+
src="https://cdn.jsdelivr.net/npm/@justifi/webcomponents@${getWebcomponentsVersion()}/dist/webcomponents/webcomponents.esm.js"
|
|
32
|
+
></script>
|
|
33
|
+
|
|
34
|
+
<script
|
|
35
|
+
nomodule
|
|
36
|
+
src="https://cdn.jsdelivr.net/npm/@justifi/webcomponents@${getWebcomponentsVersion()}/dist/webcomponents/webcomponents.js"
|
|
37
|
+
></script>
|
|
38
|
+
|
|
39
|
+
<style>
|
|
40
|
+
::part(font-family) {
|
|
41
|
+
font-family: georgia;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
::part(color) {
|
|
45
|
+
color: darkslategray;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
::part(background-color) {
|
|
49
|
+
background-color: transparent;
|
|
50
|
+
}
|
|
51
|
+
</style>
|
|
52
|
+
|
|
53
|
+
</head>
|
|
54
|
+
|
|
55
|
+
<body>
|
|
56
|
+
<justifi-business-details business-id="biz_123" auth-token="authToken" />
|
|
57
|
+
</body>
|
|
58
|
+
|
|
59
|
+
<script>
|
|
60
|
+
(function () {
|
|
61
|
+
const businessDetails = document.querySelector('justifi-business-details');
|
|
62
|
+
|
|
63
|
+
businessDetails.addEventListener('error-event', (event) => {
|
|
64
|
+
// here is where you would handle the error
|
|
65
|
+
console.error('error-event', event.detail);
|
|
66
|
+
});
|
|
67
|
+
})();
|
|
68
|
+
</script>
|
|
69
|
+
|
|
70
|
+
</html>`}</code></pre>
|
|
71
|
+
|
|
72
|
+
## Props, Events & Methods
|
|
73
|
+
|
|
74
|
+
<div
|
|
75
|
+
dangerouslySetInnerHTML={{
|
|
76
|
+
__html: PropsTable([
|
|
77
|
+
{
|
|
78
|
+
name: 'account-id',
|
|
79
|
+
type: 'string',
|
|
80
|
+
required: true,
|
|
81
|
+
description:
|
|
82
|
+
'Owning platform account; used for authorization and data scoping.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
name: 'auth-token',
|
|
86
|
+
type: 'string',
|
|
87
|
+
required: true,
|
|
88
|
+
description: 'Short-lived token with `write:onboarding` scope.',
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
name: 'business-id',
|
|
92
|
+
type: 'string',
|
|
93
|
+
required: true,
|
|
94
|
+
description:
|
|
95
|
+
'Existing business to hydrate; omit for brand-new entities.',
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
name: 'locale',
|
|
99
|
+
type: 'string',
|
|
100
|
+
defaultValue: 'en-US',
|
|
101
|
+
description:
|
|
102
|
+
'Controls localization of labels, address formatting, and validation hints.',
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
name: 'readonly',
|
|
106
|
+
type: 'boolean',
|
|
107
|
+
defaultValue: 'false',
|
|
108
|
+
description: 'Displays the form as read-only for audit surfaces.',
|
|
109
|
+
},
|
|
110
|
+
]),
|
|
111
|
+
}}
|
|
112
|
+
/>
|
|
113
|
+
|
|
114
|
+
### Events
|
|
115
|
+
|
|
116
|
+
- `submitted`: Fires when all sections validate and emit an updated business payload.
|
|
117
|
+
- `error-event`: Emits when API requests fail or validation errors occur; payload includes field-level hints.
|
|
118
|
+
|
|
119
|
+
### Public methods
|
|
120
|
+
|
|
121
|
+
1. `submit()` – Programmatically trigger validation and submission.
|
|
122
|
+
2. `reset()` – Clear the form back to the most recently loaded business payload.
|
|
123
|
+
|
|
124
|
+
## Theming & Layout
|
|
125
|
+
|
|
126
|
+
<div
|
|
127
|
+
dangerouslySetInnerHTML={{
|
|
128
|
+
__html: PartsTable([
|
|
129
|
+
{
|
|
130
|
+
name: 'font-family',
|
|
131
|
+
description: 'Controls the font family for the component.',
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
name: 'color',
|
|
135
|
+
description: 'Controls the text color.',
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
name: 'background-color',
|
|
139
|
+
description: 'Controls the background color.',
|
|
140
|
+
},
|
|
141
|
+
]),
|
|
142
|
+
}}
|
|
143
|
+
/>
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: entities/businessform/index
|
|
3
|
+
title: Business Form
|
|
4
|
+
sidebar_label: BusinessForm
|
|
5
|
+
description: Guided workflow for collecting representative, ownership, and compliance data during onboarding.
|
|
6
|
+
sidebar_position: 11
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
import {
|
|
10
|
+
PropsTable,
|
|
11
|
+
PartsTable,
|
|
12
|
+
getWebcomponentsVersion,
|
|
13
|
+
} from '@justifi/webcomponents/docs/helpers';
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
Component to render a business onboarding form. You will need to first create a business via [Business API](https://docs.justifi.tech/api-spec#tag/Business) to get the business-id required for this component.
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
|
|
21
|
+
<pre><code className="language-html">{`<!DOCTYPE html>
|
|
22
|
+
<html dir="ltr" lang="en">
|
|
23
|
+
|
|
24
|
+
<head>
|
|
25
|
+
<meta charset="utf-8" />
|
|
26
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=5.0" />
|
|
27
|
+
<title>justifi-business-form</title>
|
|
28
|
+
|
|
29
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@justifi/webcomponents@${getWebcomponentsVersion()}/dist/webcomponents/webcomponents.esm.js"></script>
|
|
30
|
+
|
|
31
|
+
<script
|
|
32
|
+
nomodule
|
|
33
|
+
src="https://cdn.jsdelivr.net/npm/@justifi/webcomponents@${getWebcomponentsVersion()}/dist/webcomponents/webcomponents.js"
|
|
34
|
+
></script>
|
|
35
|
+
|
|
36
|
+
<style>
|
|
37
|
+
::part(font-family) {
|
|
38
|
+
font-family: georgia;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
::part(color) {
|
|
42
|
+
color: darkslategray;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
::part(background-color) {
|
|
46
|
+
background-color: transparent;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
::part(input) {
|
|
50
|
+
border-color: #555;
|
|
51
|
+
border-width: 1px;
|
|
52
|
+
border-bottom-width: 1px;
|
|
53
|
+
border-left-width: 1px;
|
|
54
|
+
border-right-width: 1px;
|
|
55
|
+
border-top-width: 1px;
|
|
56
|
+
border-radius: 0;
|
|
57
|
+
border-style: solid;
|
|
58
|
+
box-shadow: none;
|
|
59
|
+
font-size: 1rem;
|
|
60
|
+
font-weight: normal;
|
|
61
|
+
line-height: 1.5;
|
|
62
|
+
padding: 0.375rem 0.75rem;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
::part(input-focused) {
|
|
66
|
+
border-color: #333;
|
|
67
|
+
box-shadow: 0 0 0 0.25rem rgba(0, 0, 0, 0.25);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
::part(input-invalid) {
|
|
71
|
+
border-color: #8a2a35;
|
|
72
|
+
box-shadow: 0 0 0 0.25rem rgba(244, 67, 54, 0.25);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
::part(input-invalid-and-focused) {
|
|
76
|
+
box-shadow: 0 0 0 0.25rem rgba(244, 67, 54, 0.25);
|
|
77
|
+
border-color: #8a2a35;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
::part(button) {
|
|
81
|
+
padding: 0.375rem 0.75rem;
|
|
82
|
+
font-size: 16px;
|
|
83
|
+
box-shadow: none;
|
|
84
|
+
border-radius: 0px;
|
|
85
|
+
line-height: 1.5;
|
|
86
|
+
text-transform: none;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
::part(button-primary) {
|
|
90
|
+
color: #333;
|
|
91
|
+
background-color: transparent;
|
|
92
|
+
border-color: #333;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
::part(button-primary):hover {
|
|
96
|
+
background-color: rgba(0, 0, 0, .05);
|
|
97
|
+
border-color: #333;
|
|
98
|
+
color: #333;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
::part(button-disabled) {
|
|
102
|
+
opacity: 0.5;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
::part(tooltip-inner) {
|
|
106
|
+
color: #fff;
|
|
107
|
+
}
|
|
108
|
+
</style>
|
|
109
|
+
|
|
110
|
+
</head>
|
|
111
|
+
|
|
112
|
+
<body>
|
|
113
|
+
<justifi-business-form business-id="biz_123" auth-token="authToken" />
|
|
114
|
+
</body>
|
|
115
|
+
|
|
116
|
+
<script>
|
|
117
|
+
(function () {
|
|
118
|
+
var businessForm = document.querySelector("justifi-business-form");
|
|
119
|
+
|
|
120
|
+
businessForm.addEventListener("submit-event", (event) => {
|
|
121
|
+
/* this event is raised when the server response is received */
|
|
122
|
+
console.log("server response received", event.detail.response);
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
businessForm.addEventListener("click-event", (data) => {
|
|
126
|
+
let name = data.detail.name;
|
|
127
|
+
|
|
128
|
+
if (name == "submit") {
|
|
129
|
+
console.log("This is a submit button click", data);
|
|
130
|
+
} else {
|
|
131
|
+
console.log("Not an event from the submit button");
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
})();
|
|
135
|
+
</script>
|
|
136
|
+
|
|
137
|
+
</html>`}</code></pre>
|
|
138
|
+
|
|
139
|
+
## Props, Events & Methods
|
|
140
|
+
|
|
141
|
+
<div
|
|
142
|
+
dangerouslySetInnerHTML={{
|
|
143
|
+
__html: PropsTable([
|
|
144
|
+
{
|
|
145
|
+
name: 'account-id',
|
|
146
|
+
type: 'string',
|
|
147
|
+
required: true,
|
|
148
|
+
description: 'Owning platform account used for authorization.',
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
name: 'auth-token',
|
|
152
|
+
type: 'string',
|
|
153
|
+
required: true,
|
|
154
|
+
description:
|
|
155
|
+
'Short-lived onboarding token; must include `write:onboarding` scope.',
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
name: 'business-id',
|
|
159
|
+
type: 'string',
|
|
160
|
+
required: true,
|
|
161
|
+
description:
|
|
162
|
+
'The business whose representatives/owners you are editing.',
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
name: 'show-progress',
|
|
166
|
+
type: 'boolean',
|
|
167
|
+
defaultValue: 'false',
|
|
168
|
+
description: 'Displays a stepper + completion state when true.',
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
name: 'support-phone',
|
|
172
|
+
type: 'string',
|
|
173
|
+
description: 'Optional phone number displayed inside support callouts.',
|
|
174
|
+
},
|
|
175
|
+
]),
|
|
176
|
+
}}
|
|
177
|
+
/>
|
|
178
|
+
|
|
179
|
+
### Events
|
|
180
|
+
|
|
181
|
+
- `submitted`: fires when the flow completes; payload includes representative + ownership data.
|
|
182
|
+
- `step-changed`: emits whenever the form advances to the next required section.
|
|
183
|
+
- `error-event`: emits validation or network issues for logging surfaces.
|
|
184
|
+
|
|
185
|
+
### Public methods
|
|
186
|
+
|
|
187
|
+
1. `next()` – Move to the next step programmatically (only when current step is valid).
|
|
188
|
+
2. `previous()` – Return to the earlier step (useful for custom navigation controls).
|
|
189
|
+
|
|
190
|
+
## Theming & Layout
|
|
191
|
+
|
|
192
|
+
<div
|
|
193
|
+
dangerouslySetInnerHTML={{
|
|
194
|
+
__html: PartsTable([
|
|
195
|
+
{
|
|
196
|
+
name: 'font-family',
|
|
197
|
+
description: 'Controls the font family for the component.',
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
name: 'color',
|
|
201
|
+
description: 'Controls the text color.',
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
name: 'background-color',
|
|
205
|
+
description: 'Controls the background color.',
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
name: 'input',
|
|
209
|
+
description: 'Input field styles.',
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
name: 'input-focused',
|
|
213
|
+
description: 'Input styles when focused.',
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
name: 'input-invalid',
|
|
217
|
+
description: 'Input styles when invalid.',
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
name: 'input-invalid-and-focused',
|
|
221
|
+
description: 'Input styles when invalid and focused.',
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
name: 'button',
|
|
225
|
+
description: 'Button styles.',
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
name: 'button-primary',
|
|
229
|
+
description: 'Primary button styles.',
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
name: 'button-disabled',
|
|
233
|
+
description: 'Disabled button styles.',
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
name: 'tooltip-inner',
|
|
237
|
+
description: 'Tooltip inner content styles.',
|
|
238
|
+
},
|
|
239
|
+
]),
|
|
240
|
+
}}
|
|
241
|
+
/>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: entities/index
|
|
3
|
+
title: Entities
|
|
4
|
+
description: Onboarding components for businesses, principals, and payouts.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Use the Entities toolkit to collect and maintain compliance-ready business
|
|
8
|
+
records.
|
|
9
|
+
|
|
10
|
+
- [BusinessDetails](./businessdetails/index) – guided intake for legal and tax
|
|
11
|
+
profiles.
|
|
12
|
+
- [BusinessForm](./businessform/index) – configurable form shell tailored to
|
|
13
|
+
your onboarding steps.
|
|
14
|
+
- [Payment Provisioning](./payment-provisioning/index) – connect verified
|
|
15
|
+
businesses to the rails they need to accept funds.
|
|
16
|
+
|
|
17
|
+
> Pair these components with back-office workflows so underwriting teams can
|
|
18
|
+
> review submissions without bouncing between tools.
|
|
19
|
+
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: entities/payment-provisioning/index
|
|
3
|
+
title: Payment Provisioning
|
|
4
|
+
description: Embed-ready workflow for collecting payout bank info and provisioning merchants for funding.
|
|
5
|
+
sidebar_position: 12
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
import { PropsTable, PartsTable } from '@justifi/webcomponents/docs/helpers';
|
|
9
|
+
|
|
10
|
+
## Overview
|
|
11
|
+
|
|
12
|
+
Component to render a business onboarding form, segmented into multiple steps. You will need to first create a business via [Business API](https://docs.justifi.tech/api-spec#tag/Business) to get the business-id required for this component.
|
|
13
|
+
|
|
14
|
+
## Usage
|
|
15
|
+
|
|
16
|
+
<pre>
|
|
17
|
+
<code className="language-html">{`<justifi-payment-provisioning
|
|
18
|
+
account-id="acc_123"
|
|
19
|
+
auth-token="wct_provisioning"
|
|
20
|
+
business-id="biz_456"
|
|
21
|
+
on-success-text="Payout method saved"
|
|
22
|
+
/>`}</code>
|
|
23
|
+
</pre>
|
|
24
|
+
|
|
25
|
+
## Props, Events & Methods
|
|
26
|
+
|
|
27
|
+
<div
|
|
28
|
+
dangerouslySetInnerHTML={{
|
|
29
|
+
__html: PropsTable([
|
|
30
|
+
{
|
|
31
|
+
name: 'account-id',
|
|
32
|
+
type: 'string',
|
|
33
|
+
required: true,
|
|
34
|
+
description:
|
|
35
|
+
'Platform account or sub-account context for provisioning.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'auth-token',
|
|
39
|
+
type: 'string',
|
|
40
|
+
required: true,
|
|
41
|
+
description:
|
|
42
|
+
'Token with `write:provisioning` scope to securely store payout details.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'business-id',
|
|
46
|
+
type: 'string',
|
|
47
|
+
required: true,
|
|
48
|
+
description: 'Business whose payout method is being added.',
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
name: 'on-success-text',
|
|
52
|
+
type: 'string',
|
|
53
|
+
description:
|
|
54
|
+
'Overrides the confirmation copy once the payout account is linked.',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: 'disable-ach',
|
|
58
|
+
type: 'boolean',
|
|
59
|
+
defaultValue: 'false',
|
|
60
|
+
description:
|
|
61
|
+
'Hide ACH specific fields when you only support push-to-card or other rails.',
|
|
62
|
+
},
|
|
63
|
+
]),
|
|
64
|
+
}}
|
|
65
|
+
/>
|
|
66
|
+
|
|
67
|
+
### Events
|
|
68
|
+
|
|
69
|
+
- `submitted`: Fires when payout information is collected and saved; payload includes the provisioning status.
|
|
70
|
+
- `error-event`: Provides `code`/`message` details when token scopes or API calls fail.
|
|
71
|
+
|
|
72
|
+
### Public methods
|
|
73
|
+
|
|
74
|
+
1. `submit()` – Trigger provisioning if you render external controls.
|
|
75
|
+
2. `focus()` – Move focus to the first interactive element (helpful after displaying a banner).
|
|
76
|
+
|
|
77
|
+
## Theming & Layout
|
|
78
|
+
|
|
79
|
+
<div
|
|
80
|
+
dangerouslySetInnerHTML={{
|
|
81
|
+
__html: PartsTable([
|
|
82
|
+
{
|
|
83
|
+
name: 'font-family',
|
|
84
|
+
description: 'Controls the font family for the component.',
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
name: 'color',
|
|
88
|
+
description: 'Controls the text color.',
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
name: 'background-color',
|
|
92
|
+
description: 'Controls the background color.',
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
name: 'input',
|
|
96
|
+
description: 'Input field styles.',
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
name: 'input-focused',
|
|
100
|
+
description: 'Input styles when focused.',
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
name: 'input-invalid',
|
|
104
|
+
description: 'Input styles when invalid.',
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
name: 'input-invalid-and-focused',
|
|
108
|
+
description: 'Input styles when invalid and focused.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
name: 'button',
|
|
112
|
+
description: 'Button styles.',
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
name: 'button-primary',
|
|
116
|
+
description: 'Primary button styles.',
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
name: 'button-disabled',
|
|
120
|
+
description: 'Disabled button styles.',
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
name: 'tooltip-inner',
|
|
124
|
+
description: 'Tooltip inner content styles.',
|
|
125
|
+
},
|
|
126
|
+
]),
|
|
127
|
+
}}
|
|
128
|
+
/>
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: frameworks/angular/index
|
|
3
|
+
title: Angular
|
|
4
|
+
description: Registering and using JustiFi web components inside Angular projects.
|
|
5
|
+
sidebar_position: 2
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
import { getWebcomponentsVersion } from '@justifi/webcomponents/docs/helpers';
|
|
9
|
+
|
|
10
|
+
Angular can render the JustiFi custom elements once you load the library and allow custom schemas.
|
|
11
|
+
|
|
12
|
+
## Usage
|
|
13
|
+
|
|
14
|
+
### Load the bundle
|
|
15
|
+
|
|
16
|
+
<pre><code className="language-html">{`<head>
|
|
17
|
+
<script
|
|
18
|
+
type="module"
|
|
19
|
+
src="https://cdn.jsdelivr.net/npm/@justifi/webcomponents@${getWebcomponentsVersion()}/dist/webcomponents/webcomponents.esm.js"
|
|
20
|
+
></script>
|
|
21
|
+
|
|
22
|
+
</head>`}</code></pre>
|
|
23
|
+
|
|
24
|
+
Or install locally:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npm install --save @justifi/webcomponents
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Import specific elements where needed:
|
|
31
|
+
|
|
32
|
+
```ts
|
|
33
|
+
import '@justifi/webcomponents/dist/module/justifi-checkout.js';
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Allow custom elements
|
|
37
|
+
|
|
38
|
+
```ts
|
|
39
|
+
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
|
40
|
+
import { BrowserModule } from '@angular/platform-browser';
|
|
41
|
+
import { AppComponent } from './app.component';
|
|
42
|
+
|
|
43
|
+
@NgModule({
|
|
44
|
+
declarations: [AppComponent],
|
|
45
|
+
imports: [BrowserModule],
|
|
46
|
+
providers: [],
|
|
47
|
+
bootstrap: [AppComponent],
|
|
48
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
49
|
+
})
|
|
50
|
+
export class AppModule {}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Props and event handling
|
|
54
|
+
|
|
55
|
+
Use Angular bindings for attributes and `(event)` syntax for emitted events.
|
|
56
|
+
|
|
57
|
+
```html
|
|
58
|
+
<justifi-checkout
|
|
59
|
+
[auth-token]="authToken"
|
|
60
|
+
[checkout-id]="checkoutId"
|
|
61
|
+
[disable-bank-account]="true"
|
|
62
|
+
(submit-event)="handleSubmit($event)"
|
|
63
|
+
(error-event)="handleError($event)"
|
|
64
|
+
></justifi-checkout>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Calling methods
|
|
68
|
+
|
|
69
|
+
Leverage `ViewChild` to call public methods on the web component.
|
|
70
|
+
|
|
71
|
+
```html
|
|
72
|
+
<!-- app.component.html -->
|
|
73
|
+
<justifi-checkout
|
|
74
|
+
#checkoutForm
|
|
75
|
+
[auth-token]="authToken"
|
|
76
|
+
[checkout-id]="checkoutId"
|
|
77
|
+
(submit-event)="handleSubmit($event)"
|
|
78
|
+
></justifi-checkout>
|
|
79
|
+
<button (click)="fillBillingForm()">Fill billing form</button>
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
```ts
|
|
83
|
+
// app.component.ts
|
|
84
|
+
import { AfterViewInit, Component, ElementRef, ViewChild } from '@angular/core';
|
|
85
|
+
|
|
86
|
+
@Component({
|
|
87
|
+
selector: 'app-root',
|
|
88
|
+
templateUrl: './app.component.html',
|
|
89
|
+
})
|
|
90
|
+
export class AppComponent implements AfterViewInit {
|
|
91
|
+
@ViewChild('checkoutForm')
|
|
92
|
+
checkoutForm!: ElementRef<HTMLJustifiCheckoutElement>;
|
|
93
|
+
|
|
94
|
+
ngAfterViewInit() {
|
|
95
|
+
// Safe place to call component methods
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
fillBillingForm() {
|
|
99
|
+
const billing = {
|
|
100
|
+
name: 'John Doe',
|
|
101
|
+
address_line1: 'Main St',
|
|
102
|
+
address_city: 'Beverly Hills',
|
|
103
|
+
address_state: 'CA',
|
|
104
|
+
address_postal_code: '90210',
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
this.checkoutForm.nativeElement.fillBillingForm(billing);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
> `HTMLJustifiCheckoutElement` is available from `@justifi/webcomponents/dist/components` if you want stronger typing.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: frameworks/index
|
|
3
|
+
title: Frameworks
|
|
4
|
+
description: Entry point for Angular, React, and Vue 3 integration guides.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Pick the framework-specific guide that matches your host app. Each page covers
|
|
8
|
+
bundle registration, component typing, and ergonomics for that stack.
|
|
9
|
+
|
|
10
|
+
1. [Angular](./angular/index) – schemas, module setup, and DI-friendly helpers.
|
|
11
|
+
2. [React](./react/index) – rendering custom elements from JSX plus refs/events.
|
|
12
|
+
3. [Vue 3](./vue/index) – registering components globally or per-view with full
|
|
13
|
+
TypeScript support.
|
|
14
|
+
|
|
15
|
+
> Need another framework? Duplicate `templates/guide-template.mdx`, follow the
|
|
16
|
+
> checklist inside, and add it to this directory so it picks up the same
|
|
17
|
+
> navigation pattern.
|
|
18
|
+
|