@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.
Files changed (119) hide show
  1. package/dist/cjs/{check-pkg-version-Bj0XkWnL.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-Dptg-P5y.js → package-CZK-K7yM.js} +1 -1
  25. package/dist/docs.json +1 -1
  26. package/dist/esm/{check-pkg-version-D6a-vvrO.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-czPIvHxt.js → package-C3_8r8V7.js} +1 -1
  50. package/dist/module/package.js +1 -1
  51. package/dist/webcomponents/{p-2bd821a8.entry.js → p-082efda3.entry.js} +1 -1
  52. package/dist/webcomponents/{p-f6ec50c9.entry.js → p-12499226.entry.js} +1 -1
  53. package/dist/webcomponents/p-1ddddc82.entry.js +1 -0
  54. package/dist/webcomponents/p-215ce79e.entry.js +1 -0
  55. package/dist/webcomponents/{p-aec7a3c8.entry.js → p-239d1d07.entry.js} +1 -1
  56. package/dist/webcomponents/{p-0b760c4f.entry.js → p-23a3e38e.entry.js} +1 -1
  57. package/dist/webcomponents/{p-21c060ce.entry.js → p-27b88afd.entry.js} +1 -1
  58. package/dist/webcomponents/{p-75f3161c.entry.js → p-2a347349.entry.js} +1 -1
  59. package/dist/webcomponents/{p-9d67209d.entry.js → p-3787cf63.entry.js} +1 -1
  60. package/dist/webcomponents/{p-db17bc59.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-26e95adb.entry.js → p-93aa2d31.entry.js} +1 -1
  65. package/dist/webcomponents/{p-e07bf523.entry.js → p-9e346c2e.entry.js} +1 -1
  66. package/dist/webcomponents/p-C3_8r8V7.js +1 -0
  67. package/dist/webcomponents/p-a9ea2c82.entry.js +1 -0
  68. package/dist/webcomponents/{p-306c7c33.entry.js → p-aaef1450.entry.js} +1 -1
  69. package/dist/webcomponents/{p-e00fb7b1.entry.js → p-beb0a3c8.entry.js} +1 -1
  70. package/dist/webcomponents/{p-3aaedf9d.entry.js → p-d3697504.entry.js} +1 -1
  71. package/dist/webcomponents/{p-d7a06b34.entry.js → p-d9c090b6.entry.js} +1 -1
  72. package/dist/webcomponents/{p-38ff97ea.entry.js → p-f11eb1bc.entry.js} +1 -1
  73. package/dist/webcomponents/{p-5981869a.entry.js → p-f358610a.entry.js} +1 -1
  74. package/dist/webcomponents/{p-CApezhx9.js → p-sassRpOu.js} +1 -1
  75. package/dist/webcomponents/webcomponents.esm.js +1 -1
  76. package/docs/entities/businessdetails/index.mdx +55 -72
  77. package/docs/entities/businessform/index.mdx +13 -19
  78. package/docs/entities/payment-provisioning/index.mdx +9 -17
  79. package/docs/helpers/PartsTable.jsx +29 -0
  80. package/docs/helpers/PropsTable.jsx +35 -0
  81. package/docs/helpers/{version.ts → version.js} +2 -2
  82. package/docs/merchant-tools/checkouts-list/index.mdx +50 -64
  83. package/docs/merchant-tools/gross-payments-chart/index.mdx +17 -19
  84. package/docs/merchant-tools/order-terminals/index.mdx +13 -17
  85. package/docs/merchant-tools/payment-details/index.mdx +13 -16
  86. package/docs/merchant-tools/payment-transactions-list/index.mdx +13 -17
  87. package/docs/merchant-tools/payments-list/index.mdx +13 -19
  88. package/docs/merchant-tools/payout-details/index.mdx +47 -57
  89. package/docs/merchant-tools/payout-transactions-list/index.mdx +13 -17
  90. package/docs/merchant-tools/payouts-list/index.mdx +13 -19
  91. package/docs/merchant-tools/terminal-orders-list/index.mdx +13 -17
  92. package/docs/merchant-tools/terminals-list/index.mdx +13 -17
  93. package/docs/modular-checkout/index.mdx +0 -5
  94. package/docs/modular-checkout/introduction/index.mdx +13 -15
  95. package/docs/modular-checkout/sub-components/apple-pay.mdx +27 -22
  96. package/docs/modular-checkout/sub-components/bank-account-form.mdx +51 -51
  97. package/docs/modular-checkout/sub-components/card-form.mdx +50 -54
  98. package/docs/modular-checkout/sub-components/payment-method-options.mdx +13 -15
  99. package/docs/modular-checkout/sub-components/plaid-payment-method.mdx +33 -55
  100. package/docs/modular-checkout/sub-components/saved-payment-methods.mdx +56 -55
  101. package/docs/modular-checkout/sub-components/season-interruption-insurance.mdx +21 -24
  102. package/docs/modular-checkout/sub-components/sezzle-payment-method.mdx +104 -109
  103. package/docs/modular-checkout/sub-components/summary.mdx +13 -14
  104. package/docs/payment-facilitation/dispute-management/index.mdx +13 -17
  105. package/docs/payment-facilitation/refund-payment/index.mdx +22 -15
  106. package/docs/payment-facilitation/tokenize-payment-method/index.mdx +28 -45
  107. package/docs/payment-facilitation/unified-fintech-checkout/342/204/242/index.mdx +104 -123
  108. package/package.json +1 -1
  109. package/dist/webcomponents/p-50a4d4c4.entry.js +0 -1
  110. package/dist/webcomponents/p-7661c41a.entry.js +0 -1
  111. package/dist/webcomponents/p-92a43706.entry.js +0 -1
  112. package/dist/webcomponents/p-9ef4288b.entry.js +0 -1
  113. package/dist/webcomponents/p-c9b50493.entry.js +0 -1
  114. package/dist/webcomponents/p-czPIvHxt.js +0 -1
  115. package/dist/webcomponents/p-deda2e9d.entry.js +0 -1
  116. package/docs/helpers/PartsTable.ts +0 -55
  117. package/docs/helpers/PropsTable.ts +0 -63
  118. package/docs/modular-checkout/docs/index.mdx +0 -32
  119. 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 '../../helpers';
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
- <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 '../../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.4",
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 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
- '&': '&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,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
- '&': '&amp;',
12
- '<': '&lt;',
13
- '>': '&gt;',
14
- '"': '&quot;',
15
- "'": '&#039;',
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
-