@justifi/webcomponents 6.5.1-rc.5 → 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.
Files changed (120) hide show
  1. package/dist/cjs/{check-pkg-version-T54BeR4n.js → check-pkg-version-BHAFLsKe.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 +2 -2
  4. package/dist/cjs/justifi-apple-pay_7.cjs.entry.js +2 -2
  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 +2 -2
  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/{package-JstJdxIu.js → package-CZK-K7yM.js} +1 -1
  25. package/dist/docs.json +1 -1
  26. package/dist/esm/{check-pkg-version-C8hgGLFx.js → check-pkg-version-ClZuo82s.js} +1 -1
  27. package/dist/esm/hidden-input_2.entry.js +1 -1
  28. package/dist/esm/internal-tokenize-payment-method_7.entry.js +2 -2
  29. package/dist/esm/justifi-apple-pay_7.entry.js +2 -2
  30. package/dist/esm/justifi-business-details.entry.js +2 -2
  31. package/dist/esm/justifi-business-form.entry.js +2 -2
  32. package/dist/esm/justifi-checkout.entry.js +2 -2
  33. package/dist/esm/justifi-checkouts-list.entry.js +2 -2
  34. package/dist/esm/justifi-dispute-management.entry.js +2 -2
  35. package/dist/esm/justifi-dispute-notification_3.entry.js +2 -2
  36. package/dist/esm/justifi-gross-payment-chart.entry.js +2 -2
  37. package/dist/esm/justifi-order-terminals.entry.js +2 -2
  38. package/dist/esm/justifi-payment-details.entry.js +2 -2
  39. package/dist/esm/justifi-payment-provisioning.entry.js +2 -2
  40. package/dist/esm/justifi-payment-transactions-list.entry.js +2 -2
  41. package/dist/esm/justifi-payments-list.entry.js +2 -2
  42. package/dist/esm/justifi-payout-details.entry.js +2 -2
  43. package/dist/esm/justifi-payout-transactions-list.entry.js +2 -2
  44. package/dist/esm/justifi-payouts-list.entry.js +2 -2
  45. package/dist/esm/justifi-refund-payment.entry.js +2 -2
  46. package/dist/esm/justifi-season-interruption-insurance.entry.js +2 -2
  47. package/dist/esm/justifi-terminal-orders-list.entry.js +2 -2
  48. package/dist/esm/justifi-terminals-list.entry.js +2 -2
  49. package/dist/esm/{package-DEhd71m_.js → package-C3_8r8V7.js} +1 -1
  50. package/dist/module/package.js +1 -1
  51. package/dist/webcomponents/{p-266a9aee.entry.js → p-082efda3.entry.js} +1 -1
  52. package/dist/webcomponents/{p-de35abb6.entry.js → p-12499226.entry.js} +1 -1
  53. package/dist/webcomponents/p-1ddddc82.entry.js +1 -0
  54. package/dist/webcomponents/{p-5a3687bf.entry.js → p-215ce79e.entry.js} +1 -1
  55. package/dist/webcomponents/{p-9fef2496.entry.js → p-239d1d07.entry.js} +1 -1
  56. package/dist/webcomponents/{p-04b23547.entry.js → p-23a3e38e.entry.js} +1 -1
  57. package/dist/webcomponents/{p-8cfda6c1.entry.js → p-27b88afd.entry.js} +1 -1
  58. package/dist/webcomponents/{p-cfd858be.entry.js → p-2a347349.entry.js} +1 -1
  59. package/dist/webcomponents/{p-20608f0c.entry.js → p-3787cf63.entry.js} +1 -1
  60. package/dist/webcomponents/{p-73388c68.entry.js → p-476ebd43.entry.js} +1 -1
  61. package/dist/webcomponents/p-64ddd8ea.entry.js +1 -0
  62. package/dist/webcomponents/p-7becc3d3.entry.js +1 -0
  63. package/dist/webcomponents/p-8071daf3.entry.js +1 -0
  64. package/dist/webcomponents/{p-d1951301.entry.js → p-93aa2d31.entry.js} +1 -1
  65. package/dist/webcomponents/{p-a9bd4e27.entry.js → p-9e346c2e.entry.js} +1 -1
  66. package/dist/webcomponents/p-C3_8r8V7.js +1 -0
  67. package/dist/webcomponents/{p-90de8098.entry.js → p-a9ea2c82.entry.js} +1 -1
  68. package/dist/webcomponents/{p-7a3d9c24.entry.js → p-aaef1450.entry.js} +1 -1
  69. package/dist/webcomponents/{p-7128920a.entry.js → p-beb0a3c8.entry.js} +1 -1
  70. package/dist/webcomponents/{p-c364c76d.entry.js → p-d3697504.entry.js} +1 -1
  71. package/dist/webcomponents/{p-42c3bda4.entry.js → p-d9c090b6.entry.js} +1 -1
  72. package/dist/webcomponents/{p-e47a2592.entry.js → p-f11eb1bc.entry.js} +1 -1
  73. package/dist/webcomponents/{p-2bafa257.entry.js → p-f358610a.entry.js} +1 -1
  74. package/dist/webcomponents/{p-C6wS5-M7.js → p-sassRpOu.js} +1 -1
  75. package/dist/webcomponents/webcomponents.esm.js +1 -1
  76. package/docs/entities/businessdetails/index.mdx +50 -70
  77. package/docs/entities/businessform/index.mdx +13 -18
  78. package/docs/entities/payment-provisioning/index.mdx +8 -16
  79. package/docs/helpers/PartsTable.jsx +29 -0
  80. package/docs/helpers/PropsTable.jsx +35 -0
  81. package/docs/merchant-tools/checkouts-list/index.mdx +49 -63
  82. package/docs/merchant-tools/gross-payments-chart/index.mdx +16 -18
  83. package/docs/merchant-tools/order-terminals/index.mdx +12 -16
  84. package/docs/merchant-tools/payment-details/index.mdx +13 -15
  85. package/docs/merchant-tools/payment-transactions-list/index.mdx +12 -16
  86. package/docs/merchant-tools/payments-list/index.mdx +12 -18
  87. package/docs/merchant-tools/payout-details/index.mdx +46 -56
  88. package/docs/merchant-tools/payout-transactions-list/index.mdx +12 -16
  89. package/docs/merchant-tools/payouts-list/index.mdx +12 -18
  90. package/docs/merchant-tools/terminal-orders-list/index.mdx +12 -16
  91. package/docs/merchant-tools/terminals-list/index.mdx +12 -16
  92. package/docs/modular-checkout/index.mdx +0 -5
  93. package/docs/modular-checkout/introduction/index.mdx +12 -14
  94. package/docs/modular-checkout/sub-components/apple-pay.mdx +27 -21
  95. package/docs/modular-checkout/sub-components/bank-account-form.mdx +51 -50
  96. package/docs/modular-checkout/sub-components/card-form.mdx +50 -53
  97. package/docs/modular-checkout/sub-components/payment-method-options.mdx +12 -14
  98. package/docs/modular-checkout/sub-components/plaid-payment-method.mdx +33 -54
  99. package/docs/modular-checkout/sub-components/saved-payment-methods.mdx +56 -54
  100. package/docs/modular-checkout/sub-components/season-interruption-insurance.mdx +21 -23
  101. package/docs/modular-checkout/sub-components/sezzle-payment-method.mdx +104 -108
  102. package/docs/modular-checkout/sub-components/summary.mdx +13 -13
  103. package/docs/payment-facilitation/dispute-management/index.mdx +12 -16
  104. package/docs/payment-facilitation/refund-payment/index.mdx +22 -14
  105. package/docs/payment-facilitation/tokenize-payment-method/index.mdx +28 -44
  106. package/docs/payment-facilitation/unified-fintech-checkout/342/204/242/index.mdx +103 -122
  107. package/package.json +1 -1
  108. package/dist/webcomponents/p-04ed045b.entry.js +0 -1
  109. package/dist/webcomponents/p-3101565c.entry.js +0 -1
  110. package/dist/webcomponents/p-8c07d9f0.entry.js +0 -1
  111. package/dist/webcomponents/p-9efd1bce.entry.js +0 -1
  112. package/dist/webcomponents/p-DEhd71m_.js +0 -1
  113. package/docs/helpers/PartsTable.js +0 -50
  114. package/docs/helpers/PartsTable.ts +0 -55
  115. package/docs/helpers/PropsTable.js +0 -56
  116. package/docs/helpers/PropsTable.ts +0 -63
  117. package/docs/helpers/index.js +0 -4
  118. package/docs/helpers/version.ts +0 -32
  119. package/docs/modular-checkout/docs/index.mdx +0 -32
  120. package/docs/modular-checkout/example/index.mdx +0 -25
@@ -5,7 +5,11 @@ description: Guided UI for issuing full or partial refunds with reason codes and
5
5
  sidebar_position: 33
6
6
  ---
7
7
 
8
- import { PropsTable, PartsTable, getWebcomponentsVersion } from '@justifi/webcomponents/docs/helpers';
8
+ import {
9
+ PropsTable,
10
+ PartsTable,
11
+ getWebcomponentsVersion,
12
+ } from '@justifi/webcomponents/docs/helpers';
9
13
 
10
14
  ## Overview
11
15
 
@@ -22,7 +26,12 @@ Component to render a form for partially or fully refunding a payment based on a
22
26
  <title>justifi-refund-payment</title>
23
27
 
24
28
  <script type="module" src="https://cdn.jsdelivr.net/npm/@justifi/webcomponents@${getWebcomponentsVersion()}/dist/webcomponents/webcomponents.esm.js"></script>
25
- <script nomodule src="https://cdn.jsdelivr.net/npm/@justifi/webcomponents@${getWebcomponentsVersion()}/dist/webcomponents/webcomponents.js"></script>
29
+
30
+ <script
31
+ nomodule
32
+ src="https://cdn.jsdelivr.net/npm/@justifi/webcomponents@${getWebcomponentsVersion()}/dist/webcomponents/webcomponents.js"
33
+ ></script>
34
+
26
35
  <style>
27
36
  ::part(font-family) {
28
37
  font-family: georgia;
@@ -92,6 +101,7 @@ Component to render a form for partially or fully refunding a payment based on a
92
101
  color: #333;
93
102
  }
94
103
  </style>
104
+
95
105
  </head>
96
106
 
97
107
  <body>
@@ -104,6 +114,7 @@ Component to render a form for partially or fully refunding a payment based on a
104
114
 
105
115
  <!-- Optional external button - this is only needed if the built in button is hidden via the hide-submit-button prop
106
116
  and the refund is submitted via provided refundPayment() method - see below. -->
117
+
107
118
  <button id="submit-refund-button">Submit Refund</button>
108
119
  </body>
109
120
 
@@ -128,11 +139,13 @@ Component to render a form for partially or fully refunding a payment based on a
128
139
  });
129
140
  })();
130
141
  </script>
142
+
131
143
  </html>`}</code></pre>
132
144
 
133
145
  ## Props, Events & Methods
134
146
 
135
- <div dangerouslySetInnerHTML={{ __html: PropsTable([
147
+ <PropsTable
148
+ rows={[
136
149
  {
137
150
  name: 'account-id',
138
151
  type: 'string',
@@ -163,7 +176,8 @@ Component to render a form for partially or fully refunding a payment based on a
163
176
  type: 'string',
164
177
  description: 'Preselects a refund reason code.',
165
178
  },
166
- ]) }} />
179
+ ]}
180
+ />
167
181
 
168
182
  ### Events
169
183
 
@@ -177,7 +191,8 @@ Component to render a form for partially or fully refunding a payment based on a
177
191
 
178
192
  ## Theming & Layout
179
193
 
180
- <div dangerouslySetInnerHTML={{ __html: PartsTable([
194
+ <PartsTable
195
+ parts={[
181
196
  {
182
197
  name: 'font-family',
183
198
  description: 'Controls the font family for the component.',
@@ -218,12 +233,5 @@ Component to render a form for partially or fully refunding a payment based on a
218
233
  name: 'button-primary',
219
234
  description: 'Primary button styles.',
220
235
  },
221
- ]) }} />
222
-
223
- ## Static examples
224
-
225
- ### Programmatic refunds
226
-
227
- <pre><code className="language-js">{`const component = document.querySelector('justifi-refund-payment');
228
-
229
- document.querySelector('#confirm-refund').onclick = () => component.submit();`}</code></pre>
236
+ ]}
237
+ />
@@ -5,7 +5,11 @@ description: Secure standalone card/bank tokenization form with built-in validat
5
5
  sidebar_position: 1
6
6
  ---
7
7
 
8
- import { PropsTable, PartsTable, getWebcomponentsVersion } from '@justifi/webcomponents/docs/helpers';
8
+ import {
9
+ PropsTable,
10
+ PartsTable,
11
+ getWebcomponentsVersion,
12
+ } from '@justifi/webcomponents/docs/helpers';
9
13
 
10
14
  ## Overview
11
15
 
@@ -22,7 +26,12 @@ Component to render an entire form including a switch to use a credit card or ba
22
26
  <title>justifi-tokenize-payment-method</title>
23
27
 
24
28
  <script type="module" src="https://cdn.jsdelivr.net/npm/@justifi/webcomponents@${getWebcomponentsVersion()}/dist/webcomponents/webcomponents.esm.js"></script>
25
- <script nomodule src="https://cdn.jsdelivr.net/npm/@justifi/webcomponents@${getWebcomponentsVersion()}/dist/webcomponents/webcomponents.js"></script>
29
+
30
+ <script
31
+ nomodule
32
+ src="https://cdn.jsdelivr.net/npm/@justifi/webcomponents@${getWebcomponentsVersion()}/dist/webcomponents/webcomponents.js"
33
+ ></script>
34
+
26
35
  <style>
27
36
  ::part(font-family) {
28
37
  font-family: georgia;
@@ -125,16 +134,17 @@ Component to render an entire form including a switch to use a credit card or ba
125
134
  cursor: pointer;
126
135
  }
127
136
  </style>
137
+
128
138
  </head>
129
139
 
130
- <body>
131
- <justifi-tokenize-payment-method
132
- account-id="acc_123"
133
- auth-token="authToken"
134
- payment-method-group-id="pmg_123"
135
- submit-button-text="Tokenize Payment Method"
136
- />
137
- </body>
140
+ <body>
141
+ <justifi-tokenize-payment-method
142
+ account-id="acc_123"
143
+ auth-token="authToken"
144
+ payment-method-group-id="pmg_123"
145
+ submit-button-text="Tokenize Payment Method"
146
+ />
147
+ </body>
138
148
 
139
149
  <script>
140
150
  const justifiTokenizePaymentMethod = document.querySelector("justifi-tokenize-payment-method");
@@ -199,7 +209,8 @@ Component to render an entire form including a switch to use a credit card or ba
199
209
 
200
210
  ## Props, Events & Methods
201
211
 
202
- <div dangerouslySetInnerHTML={{ __html: PropsTable([
212
+ <PropsTable
213
+ rows={[
203
214
  {
204
215
  name: 'account-id',
205
216
  type: 'string',
@@ -245,7 +256,8 @@ Component to render an entire form including a switch to use a credit card or ba
245
256
  type: 'string',
246
257
  description: 'Name of a predefined theme exported by JustiFi (optional).',
247
258
  },
248
- ]) }} />
259
+ ]}
260
+ />
249
261
 
250
262
  ### Events
251
263
 
@@ -261,7 +273,8 @@ Component to render an entire form including a switch to use a credit card or ba
261
273
 
262
274
  - Hosted fields remain inside PCI-safe iframes, so styling focuses on the outer wrapper plus the `::part` hooks listed below.
263
275
 
264
- <div dangerouslySetInnerHTML={{ __html: PartsTable([
276
+ <PartsTable
277
+ parts={[
265
278
  {
266
279
  name: 'font-family',
267
280
  description: 'Controls the font family for the component.',
@@ -326,36 +339,7 @@ Component to render an entire form including a switch to use a credit card or ba
326
339
  name: 'radio-list-item',
327
340
  description: 'Radio list item styles.',
328
341
  },
329
- ]) }} />
330
-
331
- - Slots are not exposed (all inputs are encapsulated in PCI iframes), so styling relies on CSS variables and `::part` hooks for wrapper elements.
332
-
333
- ## Static examples
334
-
335
- ### External submission control
336
-
337
- Hide the internal CTA and trigger tokenization manually (e.g., to combine with a review step).
338
-
339
- <pre><code className="language-html">{`<justifi-tokenize-payment-method
340
- account-id="acc_123"
341
- auth-token="wct_abc123"
342
- hide-submit-button
343
- ref={el => (window.tokenizer = el)}
342
+ ]}
344
343
  />
345
344
 
346
- <button onclick="window.tokenizer.tokenizePaymentMethod()">
347
- Submit Payment
348
- </button>
349
- `}</code></pre>
350
-
351
- ### Prefill billing info
352
-
353
- <pre><code className="language-js">{`const tokenizer = document.querySelector('justifi-tokenize-payment-method');
354
-
355
- tokenizer.fillBillingForm({
356
- name: 'Leslie Knope',
357
- address_line1: '123 Main St',
358
- address_city: 'Pawnee',
359
- address_state: 'IN',
360
- address_postal_code: '47998',
361
- });`}</code></pre>
345
+ - Slots are not exposed (all inputs are encapsulated in PCI iframes), so styling relies on CSS variables and `::part` hooks for wrapper elements.
@@ -24,45 +24,42 @@ import { PropsTable, PartsTable } from '@justifi/webcomponents/docs/helpers';
24
24
 
25
25
  ## Props, Events & Methods
26
26
 
27
- <div
28
- dangerouslySetInnerHTML={{
29
- __html: PropsTable([
30
- {
31
- name: 'account-id',
32
- type: 'string',
33
- required: true,
34
- description:
35
- 'Owning platform account; determines branding + permissions.',
36
- },
37
- {
38
- name: 'auth-token',
39
- type: 'string',
40
- required: true,
41
- description: 'Web Component Token with `write:checkout` scope.',
42
- },
43
- {
44
- name: 'checkout-id',
45
- type: 'string',
46
- required: true,
47
- description:
48
- 'Server-generated checkout session controlling line items and totals.',
49
- },
50
- {
51
- name: 'require-save-payment-method',
52
- type: 'boolean',
53
- defaultValue: 'false',
54
- description:
55
- 'When true, forces customers to save the payment method for future use.',
56
- },
57
- {
58
- name: 'locale',
59
- type: 'string',
60
- defaultValue: 'en-US',
61
- description:
62
- 'Controls currency formatting, copy, and date presentation.',
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 '@justifi/webcomponents/docs/helpers';
78
75
 
79
76
  ## Theming & Layout
80
77
 
81
- <div
82
- dangerouslySetInnerHTML={{
83
- __html: PartsTable([
84
- {
85
- name: 'font-family',
86
- description: 'Controls the font family for the component.',
87
- },
88
- {
89
- name: 'color',
90
- description: 'Controls the text color.',
91
- },
92
- {
93
- name: 'background-color',
94
- description: 'Controls the background color.',
95
- },
96
- {
97
- name: 'button',
98
- description: 'Button styles.',
99
- },
100
- {
101
- name: 'button-disabled',
102
- description: 'Disabled button styles.',
103
- },
104
- {
105
- name: 'input',
106
- description: 'Input field styles.',
107
- },
108
- {
109
- name: 'input-focused',
110
- description: 'Input styles when focused.',
111
- },
112
- {
113
- name: 'input-invalid',
114
- description: 'Input styles when invalid.',
115
- },
116
- {
117
- name: 'input-invalid-and-focused',
118
- description: 'Input styles when invalid and focused.',
119
- },
120
- {
121
- name: 'input-radio',
122
- description: 'Radio input styles.',
123
- },
124
- {
125
- name: 'input-checkbox',
126
- description: 'Checkbox input styles.',
127
- },
128
- {
129
- name: 'input-checkbox-checked',
130
- description: 'Checkbox input styles when checked.',
131
- },
132
- {
133
- name: 'input-checkbox-checked-focused',
134
- description: 'Checkbox input styles when checked and focused.',
135
- },
136
- {
137
- name: 'input-checkbox-focused',
138
- description: 'Checkbox input styles when focused.',
139
- },
140
- {
141
- name: 'button-primary',
142
- description: 'Primary button styles.',
143
- },
144
- {
145
- name: 'radio-list-item',
146
- description: 'Radio list item styles.',
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,6 +1,6 @@
1
1
  {
2
2
  "name": "@justifi/webcomponents",
3
- "version": "6.5.1-rc.5",
3
+ "version": "6.5.1-rc.7",
4
4
  "description": "JustiFi Web Components",
5
5
  "collection": "dist/collection/collection-manifest.json",
6
6
  "main": "dist/index.cjs.js",
@@ -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 i,a as e}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{E as p}from"./p-BNqo3kt0.js";import{c as h,J as c}from"./p-C6wS5-M7.js";import"./p-tGDdRx0W.js";import"./p-BYsgavgS.js";import"./p-BS7OgSQe.js";import"./p-HXpYMWUU.js";import"./p-wtuY7MT2.js";import"./p-DEhd71m_.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:e})=>{var p;try{const h=await r.fetchGrossVolumeChartData(t,s);h.error?e({error:n(h.error),code:a(null===(p=h.error)||void 0===p?void 0:p.code),severity:i.ERROR}):o(h.data)}catch(t){const s=a(null==t?void 0:t.code);e({error:n(t),code:s,severity:i.ERROR})}})({id:this.accountId,authToken:this.authToken,service:new u}):(this.errorMessage="Account ID and Auth Token are required",this.errorEvent.emit({errorCode:e.MISSING_PROPS,message:this.errorMessage,severity:i.ERROR}))}render(){return this.errorMessage?p(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{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-C6wS5-M7.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 d}from"./p-D2muobcE.js";import{A as h}from"./p-C8yN3uBj.js";import"./p-DEhd71m_.js";import"./p-wtuY7MT2.js";import"./p-BS7OgSQe.js";import"./p-DOLBAxYf.js";import"./p-BYsgavgS.js";const l=h();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,h;try{const a=await t.fetchTerminalOrders(r,s,i);if(a.error)return o({error:d(a.error),code:m(null===(h=a.error)||void 0===h?void 0:h.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 +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-C6wS5-M7.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-DEhd71m_.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{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-C6wS5-M7.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-DEhd71m_.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.5"};export{e as p}
@@ -1,50 +0,0 @@
1
- function escapeHtml(text) {
2
- const map = {
3
- '&': '&amp;',
4
- '<': '&lt;',
5
- '>': '&gt;',
6
- '"': '&quot;',
7
- "'": '&#039;',
8
- };
9
- return text.replace(/[&<>"']/g, (m) => map[m]);
10
- }
11
-
12
- export function PartsTable(parts, caption) {
13
- if (!parts?.length) {
14
- return '';
15
- }
16
-
17
- let html = '<table class="docs-parts-table">';
18
-
19
- if (caption) {
20
- html += `<caption>${escapeHtml(caption)}</caption>`;
21
- }
22
-
23
- html += `
24
- <thead>
25
- <tr>
26
- <th scope="col">Part</th>
27
- <th scope="col">Description</th>
28
- <th scope="col">DOM target</th>
29
- </tr>
30
- </thead>
31
- <tbody>`;
32
-
33
- for (const part of parts) {
34
- html += `
35
- <tr>
36
- <td>
37
- <code>::part(${escapeHtml(part.name)})</code>
38
- </td>
39
- <td>${escapeHtml(part.description)}</td>
40
- <td>${part.target ? escapeHtml(part.target) : '—'}</td>
41
- </tr>`;
42
- }
43
-
44
- html += `
45
- </tbody>
46
- </table>`;
47
-
48
- return html;
49
- }
50
-
@@ -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
- '&': '&amp;',
10
- '<': '&lt;',
11
- '>': '&gt;',
12
- '"': '&quot;',
13
- "'": '&#039;',
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,56 +0,0 @@
1
- function escapeHtml(text) {
2
- const map = {
3
- '&': '&amp;',
4
- '<': '&lt;',
5
- '>': '&gt;',
6
- '"': '&quot;',
7
- "'": '&#039;',
8
- };
9
- return text.replace(/[&<>"']/g, (m) => map[m]);
10
- }
11
-
12
- export function PropsTable(rows, caption) {
13
- if (!rows?.length) {
14
- return '';
15
- }
16
-
17
- let html = '<table class="docs-props-table">';
18
-
19
- if (caption) {
20
- html += `<caption>${escapeHtml(caption)}</caption>`;
21
- }
22
-
23
- html += `
24
- <thead>
25
- <tr>
26
- <th scope="col">Name</th>
27
- <th scope="col">Type</th>
28
- <th scope="col">Required</th>
29
- <th scope="col">Default</th>
30
- <th scope="col">Description</th>
31
- </tr>
32
- </thead>
33
- <tbody>`;
34
-
35
- for (const row of rows) {
36
- html += `
37
- <tr>
38
- <td>
39
- <code>${escapeHtml(row.name)}</code>
40
- </td>
41
- <td>
42
- <code>${escapeHtml(row.type)}</code>
43
- </td>
44
- <td>${row.required ? 'Yes' : 'No'}</td>
45
- <td>${row.defaultValue ? `<code>${escapeHtml(row.defaultValue)}</code>` : '—'}</td>
46
- <td>${escapeHtml(row.description)}</td>
47
- </tr>`;
48
- }
49
-
50
- html += `
51
- </tbody>
52
- </table>`;
53
-
54
- return html;
55
- }
56
-