@tesouro/embedded-components-react 0.2.264 → 0.2.267
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/README.md +8 -6
- package/dist/experimental/WidgetSuite.d.ts +93 -2
- package/dist/experimental/WidgetSuite.js +5 -5
- package/dist/experimental/index.d.ts +93 -2
- package/dist/experimental/index.js +5 -5
- package/dist/index.css +45 -9
- package/dist/index.d.ts +29 -9
- package/dist/index.js +2 -2
- package/dist/lib/AcceptDisclosuresWidget.d.ts +17 -5
- package/dist/lib/AcceptDisclosuresWidget.js +1 -1
- package/dist/lib/BillPayWidget.js +1 -1
- package/dist/lib/WidgetProvider.d.ts +12 -4
- package/dist/libs/tesouro-embedded-components-react/accept-disclosures-widget/data-access/dist/index2.js +3 -3
- package/dist/libs/tesouro-embedded-components-react/accept-disclosures-widget/feature/dist/index3.js +1 -1
- package/dist/libs/tesouro-embedded-components-react/accept-disclosures-widget/feature/dist/index4.js +36 -34
- package/dist/libs/tesouro-embedded-components-react/accept-disclosures-widget/ui/dist/index.js +2 -2
- package/dist/libs/tesouro-embedded-components-react/accept-disclosures-widget/ui/dist/{index3.js → lib/AcceptDisclosuresWidget/AcceptDisclosuresWidget.js} +3 -3
- package/dist/libs/tesouro-embedded-components-react/accept-disclosures-widget/ui/dist/{index2.js → lib/AcceptDisclosuresWidget/labels.js} +1 -1
- package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index.js +6 -6
- package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index10.js +99 -7
- package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index11.js +7 -97
- package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index12.js +99 -4
- package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index13.js +4 -4
- package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index14.js +2 -41
- package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index15.js +43 -1
- package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index16.js +1 -50
- package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index17.js +48 -6
- package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index18.js +9 -5
- package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index19.js +8 -91
- package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index2.js +6 -2
- package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index20.js +7 -3
- package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index21.js +100 -6
- package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index22.js +3 -9
- package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index23.js +6 -83
- package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index24.js +9 -3
- package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index25.js +83 -6
- package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index26.js +2 -111
- package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index27.js +8 -1
- package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index28.js +103 -16
- package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index29.js +1 -0
- package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index30.js +25 -0
- package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index6.js +37 -27
- package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index7.js +15 -116
- package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index8.js +126 -31
- package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index9.js +32 -69
- package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/ui/dist/index12.js +0 -3
- package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/ui/dist/index13.js +34 -69
- package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/ui/dist/index15.js +4 -0
- package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/ui/dist/index16.js +261 -181
- package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/ui/dist/index28.js +32 -33
- package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/ui/dist/index7.js +2 -2
- package/dist/libs/tesouro-embedded-components-react/shared/feature/dist/lib/analytics/build-info.js +1 -1
- package/dist/libs/tesouro-embedded-components-react/widget-suite/feature/dist/index.js +5 -5
- package/dist/libs/tesouro-embedded-components-react/widget-suite/feature/dist/index3.js +4 -15
- package/dist/libs/tesouro-embedded-components-react/widget-suite/feature/dist/index4.js +26 -91
- package/dist/libs/tesouro-embedded-components-react/widget-suite/feature/dist/index5.js +87 -74
- package/dist/libs/tesouro-embedded-components-react/widget-suite/feature/dist/index6.js +142 -0
- package/dist/libs/tesouro-embedded-components-react/widget-suite/ui/dist/index2.js +1 -0
- package/dist/libs/tesouro-embedded-components-react/widget-suite/ui/dist/index3.js +49 -33
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -183,9 +183,11 @@ listed here.
|
|
|
183
183
|
|
|
184
184
|
### AcceptDisclosuresWidget
|
|
185
185
|
|
|
186
|
-
A self-contained widget for reviewing and accepting required banking disclosures
|
|
186
|
+
A self-contained widget for reviewing and accepting required banking disclosures. Renders an inline bordered card with disclosure links, an agreement checkbox, and an Accept action. You supply the four bank-issued document URLs via `disclosureLinks`; the provider attribution and agreement copy come from the widget init tenant identity.
|
|
187
187
|
|
|
188
|
-
|
|
188
|
+
**Two flows, one surface.** In the **pre-auth invite flow**, pass `invitationToken` and `userId` from the invite link. For an **already-active user who owes a re-acceptance** — a new disclosure version was published, so widget init reports `disclosuresRequired: 'REQUIRED'` with `disclosuresAccepted: false` — pass neither: they hold no invite, and the widget token identifies them on both calls. Read those two init fields rather than `status` to decide whether to mount this widget, because an active user can owe an acceptance while never being invited again.
|
|
189
|
+
|
|
190
|
+
Accept posts `POST /api/widget-gateway/disclosure-acceptance` after reading the disclosure version in force from `GET /identity/v1/disclosures` (hosts rewrite that onto `/api/widget-gateway/proxy/identity/v1/disclosures` the same way as other identity calls — do not call the generated catch-all proxy helper, which percent-encodes path slashes and surfaces as a browser CORS error). `version` may be `null` when the org's requirement is `NOT_REQUIRED`; that value is posted through and ignored by the gateway so invitees in those orgs can still activate. When you pass the invite credential, the disclosures lookup can reject a revoked/expired invite before activation. The accept is one transaction: it activates the invitee and records disclosure acceptance together, so a failed second hop cannot leave an `ACTIVE` user with no acceptance on record. After accept succeeds, the widget awaits any async `onAccepted` continuation, then kicks a widget-init refresh so host gates keyed on `INVITED` — or on the disclosure flags — can clear. Accept and `onAccepted` failures are handled separately — a rejected host continuation does not look like (or re-run) a failed gateway accept. The refresh is fire-and-forget and runs only after `onAccepted` settles — hosts that unmount this widget when status leaves `INVITED` would otherwise hide a rejected continuation. Auth uses the normal `widgetToken` provider contract — **never** pass an application (APP) / M2M bearer as `widgetToken`. In the invite flow, the host passes `invitationToken` and `userId` from the invite link; this widget does not read URL search params.
|
|
189
191
|
|
|
190
192
|
The widget carries no document URLs of its own — disclosures are bank-issued legal instruments whose hosting is yours to control, and an embeddable library must not depend on infrastructure your content-security policy cannot see. It renders nothing until `disclosureLinks` is supplied and init resolves a `bankName`; it never substitutes another tenant's legal copy. If init omits `vspName`, provider attribution falls back to the bank name so the sentence remains complete.
|
|
191
193
|
|
|
@@ -193,10 +195,10 @@ Once the atomic accept _and_ any async `onAccepted` continuation succeed, the ch
|
|
|
193
195
|
|
|
194
196
|
#### Props
|
|
195
197
|
|
|
196
|
-
| Prop | Type | Default
|
|
197
|
-
| ----------------- | -------- |
|
|
198
|
-
| `invitationToken` | `string` |
|
|
199
|
-
| `userId` | `string` |
|
|
198
|
+
| Prop | Type | Default | Description |
|
|
199
|
+
| ----------------- | -------- | ----------- | ---------------------------------------------------------------------------------------------------------------- |
|
|
200
|
+
| `invitationToken` | `string` | `undefined` | Invitation token from the invite link (`code` query param). Bound into the disclosures lookup before activation. |
|
|
201
|
+
| `userId` | `string` | `undefined` | Invited user id from the invite link (`userId` query param). Paired with `invitationToken`. |
|
|
200
202
|
|
|
201
203
|
| Prop | Type | Default | Description |
|
|
202
204
|
| ----------------- | ---------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
@@ -10,6 +10,11 @@ import { FallbackProps } from 'react-error-boundary';
|
|
|
10
10
|
interface WidgetSuiteShellLabels {
|
|
11
11
|
/** Names the section menu for assistive technology. */
|
|
12
12
|
navAriaLabel: string;
|
|
13
|
+
/**
|
|
14
|
+
* Announces the placeholder shell while the caller resolves which sections
|
|
15
|
+
* exist. Read out in place of the menu, which has no items yet to name.
|
|
16
|
+
*/
|
|
17
|
+
loadingAriaLabel: string;
|
|
13
18
|
/** Shown in place of the menu when the caller supplies no sections. */
|
|
14
19
|
emptyState: {
|
|
15
20
|
title: string;
|
|
@@ -590,6 +595,23 @@ interface WidgetProviderProps extends WidgetProviderBaseProps {
|
|
|
590
595
|
onError?: (error: unknown, info: ErrorInfo) => void;
|
|
591
596
|
}
|
|
592
597
|
|
|
598
|
+
/**
|
|
599
|
+
* The four disclosure documents a host supplies. Keyed rather than a free-form
|
|
600
|
+
* array because `agreementTextTemplate` names exactly these four instruments —
|
|
601
|
+
* an arbitrary-length list would let the rendered links and the text the user
|
|
602
|
+
* agrees to disagree with each other.
|
|
603
|
+
*
|
|
604
|
+
* URLs are host-supplied on purpose: they are bank-issued legal documents whose
|
|
605
|
+
* hosting is the integrator's concern, and a published package must not carry a
|
|
606
|
+
* Tesouro infrastructure URL a consumer's CSP can block (PLAT-1179).
|
|
607
|
+
*/
|
|
608
|
+
interface AcceptDisclosuresLinks {
|
|
609
|
+
termsOfUseUrl: string;
|
|
610
|
+
privacyPolicyUrl: string;
|
|
611
|
+
electronicCommunicationsAgreementUrl: string;
|
|
612
|
+
usaPatriotActUrl: string;
|
|
613
|
+
}
|
|
614
|
+
|
|
593
615
|
/**
|
|
594
616
|
* The sections the suite can offer, declared in the default menu order
|
|
595
617
|
* (EMBD-4875). Order here is documentation only — the suite renders whatever
|
|
@@ -663,10 +685,52 @@ interface WidgetSuiteContentLabels {
|
|
|
663
685
|
expensesUnavailable: string;
|
|
664
686
|
};
|
|
665
687
|
}
|
|
688
|
+
/**
|
|
689
|
+
* Copy for the states where the suite cannot prove it may show normal content.
|
|
690
|
+
*
|
|
691
|
+
* Both are places the gate cannot proceed, and neither is reachable by a correct
|
|
692
|
+
* integration against a healthy API.
|
|
693
|
+
*/
|
|
694
|
+
interface WidgetSuiteDisclosureLabels {
|
|
695
|
+
/**
|
|
696
|
+
* The first init fetch failed before the disclosure flags were known. The suite
|
|
697
|
+
* must fail closed here, because an unknown requirement is not permission to
|
|
698
|
+
* show ungated sections.
|
|
699
|
+
*/
|
|
700
|
+
initFailedState: {
|
|
701
|
+
title: string;
|
|
702
|
+
body: string;
|
|
703
|
+
retryButton: string;
|
|
704
|
+
};
|
|
705
|
+
/**
|
|
706
|
+
* The acceptance was recorded and the init refresh that clears the gate
|
|
707
|
+
* failed, so only our view of it is stale.
|
|
708
|
+
*
|
|
709
|
+
* The failure is the title and the reassurance is the body, in that order on
|
|
710
|
+
* purpose: `ErrorState` puts a destructive-toned glyph above the title, so
|
|
711
|
+
* leading with "accepted" reads at a glance as the acceptance having failed —
|
|
712
|
+
* the one thing this state must not imply, since a user who believes that will
|
|
713
|
+
* try to accept again.
|
|
714
|
+
*/
|
|
715
|
+
refreshFailedState: {
|
|
716
|
+
title: string;
|
|
717
|
+
body: string;
|
|
718
|
+
retryButton: string;
|
|
719
|
+
};
|
|
720
|
+
/**
|
|
721
|
+
* Acceptance is owed and the host supplied no documents to accept. A host
|
|
722
|
+
* misconfiguration, so it names no cause the user could act on.
|
|
723
|
+
*/
|
|
724
|
+
unavailableState: {
|
|
725
|
+
title: string;
|
|
726
|
+
body: string;
|
|
727
|
+
};
|
|
728
|
+
}
|
|
666
729
|
/** Named as the shipped white-label header names them. */
|
|
667
730
|
declare const WIDGET_SUITE_SECTION_LABELS_EN: WidgetSuiteSectionLabels;
|
|
668
731
|
declare const WIDGET_SUITE_SECTION_TITLE_LABELS_EN: WidgetSuiteSectionTitleLabels;
|
|
669
732
|
declare const WIDGET_SUITE_CONTENT_LABELS_EN: WidgetSuiteContentLabels;
|
|
733
|
+
declare const WIDGET_SUITE_DISCLOSURE_LABELS_EN: WidgetSuiteDisclosureLabels;
|
|
670
734
|
|
|
671
735
|
interface WidgetSuiteProps extends WidgetProviderProps {
|
|
672
736
|
/**
|
|
@@ -682,6 +746,21 @@ interface WidgetSuiteProps extends WidgetProviderProps {
|
|
|
682
746
|
* this is the host's ceiling rather than a promise of what renders.
|
|
683
747
|
*/
|
|
684
748
|
sections: readonly WidgetSuiteSectionId[];
|
|
749
|
+
/**
|
|
750
|
+
* URLs of the bank-issued disclosure documents, for the acceptance state.
|
|
751
|
+
*
|
|
752
|
+
* Required only to *render* that state, and only reached when the session owes
|
|
753
|
+
* an acceptance — an organization whose requirement is `NOT_REQUIRED` never
|
|
754
|
+
* needs this. Host-supplied for the same reason `AcceptDisclosuresWidget` takes
|
|
755
|
+
* them: they are bank-issued legal instruments whose hosting is the
|
|
756
|
+
* integrator's to control, and a published package must not carry a URL a
|
|
757
|
+
* consumer's content-security policy can block (PLAT-1179).
|
|
758
|
+
*
|
|
759
|
+
* A session that owes an acceptance with none of these supplied gets the
|
|
760
|
+
* unavailable notice, not the suite — the gate is never dropped because the
|
|
761
|
+
* host under-configured it.
|
|
762
|
+
*/
|
|
763
|
+
disclosureLinks?: AcceptDisclosuresLinks;
|
|
685
764
|
/** Overrides for the shell's own copy — the nav landmark name, empty state. */
|
|
686
765
|
labels?: PartialDeep<WidgetSuiteShellLabels>;
|
|
687
766
|
/** Overrides for the section names in the menu. */
|
|
@@ -696,6 +775,11 @@ interface WidgetSuiteProps extends WidgetProviderProps {
|
|
|
696
775
|
* and the Expenses placeholder.
|
|
697
776
|
*/
|
|
698
777
|
contentLabels?: PartialDeep<WidgetSuiteContentLabels>;
|
|
778
|
+
/**
|
|
779
|
+
* Overrides for the copy the disclosure gate owns: its refresh-failure recovery
|
|
780
|
+
* and its unavailable notice. The acceptance surface carries its own labels.
|
|
781
|
+
*/
|
|
782
|
+
disclosureLabels?: PartialDeep<WidgetSuiteDisclosureLabels>;
|
|
699
783
|
/**
|
|
700
784
|
* Shows a heading above each section, named as its menu item is.
|
|
701
785
|
*
|
|
@@ -720,6 +804,13 @@ interface WidgetSuiteProps extends WidgetProviderProps {
|
|
|
720
804
|
* pass-through mode. See `sections.tsx` for the two composition rules that
|
|
721
805
|
* arrangement depends on.
|
|
722
806
|
*
|
|
807
|
+
* That one response also decides which state the suite is in before the shell
|
|
808
|
+
* renders: placeholders while init has not settled, a closed retry state when
|
|
809
|
+
* init fails before answering the disclosure flags, the acceptance surface
|
|
810
|
+
* alone when the session owes the bank's disclosures, or the nav over its
|
|
811
|
+
* sections. States rather than an overlay over a mounted shell — see
|
|
812
|
+
* `WidgetSuiteInner` for why each boundary sits where it does.
|
|
813
|
+
*
|
|
723
814
|
* The active section is held here rather than taken as a prop, matching
|
|
724
815
|
* `BillPayWidgetNative` and `SettingsWidget`. A host-controlled
|
|
725
816
|
* `selectedSectionId` / `onSectionChange` pair is the natural next step for
|
|
@@ -728,5 +819,5 @@ interface WidgetSuiteProps extends WidgetProviderProps {
|
|
|
728
819
|
*/
|
|
729
820
|
declare function WidgetSuite({ baseUrl, widgetToken, organizationId, configClient, linkComponent, implementation, uiFramework, errorFallback, onError, analytics, ...innerProps }: WidgetSuiteProps): React.JSX.Element;
|
|
730
821
|
|
|
731
|
-
export { WIDGET_SUITE_CONTENT_LABELS_EN, WIDGET_SUITE_DEFAULT_SECTIONS, WIDGET_SUITE_SECTION_LABELS_EN, WIDGET_SUITE_SECTION_TITLE_LABELS_EN, WIDGET_SUITE_SHELL_LABELS_EN, WidgetSuite, WidgetSuiteSectionId };
|
|
732
|
-
export type { PartialDeep, WidgetSuiteContentLabels, WidgetSuiteProps, WidgetSuiteSectionLabels, WidgetSuiteSectionTitleLabels, WidgetSuiteShellLabels };
|
|
822
|
+
export { WIDGET_SUITE_CONTENT_LABELS_EN, WIDGET_SUITE_DEFAULT_SECTIONS, WIDGET_SUITE_DISCLOSURE_LABELS_EN, WIDGET_SUITE_SECTION_LABELS_EN, WIDGET_SUITE_SECTION_TITLE_LABELS_EN, WIDGET_SUITE_SHELL_LABELS_EN, WidgetSuite, WidgetSuiteSectionId };
|
|
823
|
+
export type { AcceptDisclosuresLinks, PartialDeep, WidgetSuiteContentLabels, WidgetSuiteDisclosureLabels, WidgetSuiteProps, WidgetSuiteSectionLabels, WidgetSuiteSectionTitleLabels, WidgetSuiteShellLabels };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { WIDGET_SUITE_CONTENT_LABELS_EN as e,
|
|
2
|
-
import { WIDGET_SUITE_DEFAULT_SECTIONS as
|
|
3
|
-
import { WIDGET_SUITE_SHELL_LABELS_EN as
|
|
4
|
-
import { WidgetSuite as
|
|
1
|
+
import { WIDGET_SUITE_CONTENT_LABELS_EN as e, WIDGET_SUITE_DISCLOSURE_LABELS_EN as t, WIDGET_SUITE_SECTION_LABELS_EN as n, WIDGET_SUITE_SECTION_TITLE_LABELS_EN as r } from "../libs/tesouro-embedded-components-react/widget-suite/feature/dist/index4.js";
|
|
2
|
+
import { WIDGET_SUITE_DEFAULT_SECTIONS as i, WidgetSuiteSectionId as a } from "../libs/tesouro-embedded-components-react/widget-suite/feature/dist/index5.js";
|
|
3
|
+
import { WIDGET_SUITE_SHELL_LABELS_EN as o } from "../libs/tesouro-embedded-components-react/widget-suite/ui/dist/index2.js";
|
|
4
|
+
import { WidgetSuite as s } from "../libs/tesouro-embedded-components-react/widget-suite/feature/dist/index6.js";
|
|
5
5
|
import "../libs/tesouro-embedded-components-react/widget-suite/feature/dist/index.js";
|
|
6
|
-
export { e as WIDGET_SUITE_CONTENT_LABELS_EN,
|
|
6
|
+
export { e as WIDGET_SUITE_CONTENT_LABELS_EN, i as WIDGET_SUITE_DEFAULT_SECTIONS, t as WIDGET_SUITE_DISCLOSURE_LABELS_EN, n as WIDGET_SUITE_SECTION_LABELS_EN, r as WIDGET_SUITE_SECTION_TITLE_LABELS_EN, o as WIDGET_SUITE_SHELL_LABELS_EN, s as WidgetSuite, a as WidgetSuiteSectionId };
|
|
@@ -10,6 +10,11 @@ import { FallbackProps } from 'react-error-boundary';
|
|
|
10
10
|
interface WidgetSuiteShellLabels {
|
|
11
11
|
/** Names the section menu for assistive technology. */
|
|
12
12
|
navAriaLabel: string;
|
|
13
|
+
/**
|
|
14
|
+
* Announces the placeholder shell while the caller resolves which sections
|
|
15
|
+
* exist. Read out in place of the menu, which has no items yet to name.
|
|
16
|
+
*/
|
|
17
|
+
loadingAriaLabel: string;
|
|
13
18
|
/** Shown in place of the menu when the caller supplies no sections. */
|
|
14
19
|
emptyState: {
|
|
15
20
|
title: string;
|
|
@@ -590,6 +595,23 @@ interface WidgetProviderProps extends WidgetProviderBaseProps {
|
|
|
590
595
|
onError?: (error: unknown, info: ErrorInfo) => void;
|
|
591
596
|
}
|
|
592
597
|
|
|
598
|
+
/**
|
|
599
|
+
* The four disclosure documents a host supplies. Keyed rather than a free-form
|
|
600
|
+
* array because `agreementTextTemplate` names exactly these four instruments —
|
|
601
|
+
* an arbitrary-length list would let the rendered links and the text the user
|
|
602
|
+
* agrees to disagree with each other.
|
|
603
|
+
*
|
|
604
|
+
* URLs are host-supplied on purpose: they are bank-issued legal documents whose
|
|
605
|
+
* hosting is the integrator's concern, and a published package must not carry a
|
|
606
|
+
* Tesouro infrastructure URL a consumer's CSP can block (PLAT-1179).
|
|
607
|
+
*/
|
|
608
|
+
interface AcceptDisclosuresLinks {
|
|
609
|
+
termsOfUseUrl: string;
|
|
610
|
+
privacyPolicyUrl: string;
|
|
611
|
+
electronicCommunicationsAgreementUrl: string;
|
|
612
|
+
usaPatriotActUrl: string;
|
|
613
|
+
}
|
|
614
|
+
|
|
593
615
|
/**
|
|
594
616
|
* The sections the suite can offer, declared in the default menu order
|
|
595
617
|
* (EMBD-4875). Order here is documentation only — the suite renders whatever
|
|
@@ -663,10 +685,52 @@ interface WidgetSuiteContentLabels {
|
|
|
663
685
|
expensesUnavailable: string;
|
|
664
686
|
};
|
|
665
687
|
}
|
|
688
|
+
/**
|
|
689
|
+
* Copy for the states where the suite cannot prove it may show normal content.
|
|
690
|
+
*
|
|
691
|
+
* Both are places the gate cannot proceed, and neither is reachable by a correct
|
|
692
|
+
* integration against a healthy API.
|
|
693
|
+
*/
|
|
694
|
+
interface WidgetSuiteDisclosureLabels {
|
|
695
|
+
/**
|
|
696
|
+
* The first init fetch failed before the disclosure flags were known. The suite
|
|
697
|
+
* must fail closed here, because an unknown requirement is not permission to
|
|
698
|
+
* show ungated sections.
|
|
699
|
+
*/
|
|
700
|
+
initFailedState: {
|
|
701
|
+
title: string;
|
|
702
|
+
body: string;
|
|
703
|
+
retryButton: string;
|
|
704
|
+
};
|
|
705
|
+
/**
|
|
706
|
+
* The acceptance was recorded and the init refresh that clears the gate
|
|
707
|
+
* failed, so only our view of it is stale.
|
|
708
|
+
*
|
|
709
|
+
* The failure is the title and the reassurance is the body, in that order on
|
|
710
|
+
* purpose: `ErrorState` puts a destructive-toned glyph above the title, so
|
|
711
|
+
* leading with "accepted" reads at a glance as the acceptance having failed —
|
|
712
|
+
* the one thing this state must not imply, since a user who believes that will
|
|
713
|
+
* try to accept again.
|
|
714
|
+
*/
|
|
715
|
+
refreshFailedState: {
|
|
716
|
+
title: string;
|
|
717
|
+
body: string;
|
|
718
|
+
retryButton: string;
|
|
719
|
+
};
|
|
720
|
+
/**
|
|
721
|
+
* Acceptance is owed and the host supplied no documents to accept. A host
|
|
722
|
+
* misconfiguration, so it names no cause the user could act on.
|
|
723
|
+
*/
|
|
724
|
+
unavailableState: {
|
|
725
|
+
title: string;
|
|
726
|
+
body: string;
|
|
727
|
+
};
|
|
728
|
+
}
|
|
666
729
|
/** Named as the shipped white-label header names them. */
|
|
667
730
|
declare const WIDGET_SUITE_SECTION_LABELS_EN: WidgetSuiteSectionLabels;
|
|
668
731
|
declare const WIDGET_SUITE_SECTION_TITLE_LABELS_EN: WidgetSuiteSectionTitleLabels;
|
|
669
732
|
declare const WIDGET_SUITE_CONTENT_LABELS_EN: WidgetSuiteContentLabels;
|
|
733
|
+
declare const WIDGET_SUITE_DISCLOSURE_LABELS_EN: WidgetSuiteDisclosureLabels;
|
|
670
734
|
|
|
671
735
|
interface WidgetSuiteProps extends WidgetProviderProps {
|
|
672
736
|
/**
|
|
@@ -682,6 +746,21 @@ interface WidgetSuiteProps extends WidgetProviderProps {
|
|
|
682
746
|
* this is the host's ceiling rather than a promise of what renders.
|
|
683
747
|
*/
|
|
684
748
|
sections: readonly WidgetSuiteSectionId[];
|
|
749
|
+
/**
|
|
750
|
+
* URLs of the bank-issued disclosure documents, for the acceptance state.
|
|
751
|
+
*
|
|
752
|
+
* Required only to *render* that state, and only reached when the session owes
|
|
753
|
+
* an acceptance — an organization whose requirement is `NOT_REQUIRED` never
|
|
754
|
+
* needs this. Host-supplied for the same reason `AcceptDisclosuresWidget` takes
|
|
755
|
+
* them: they are bank-issued legal instruments whose hosting is the
|
|
756
|
+
* integrator's to control, and a published package must not carry a URL a
|
|
757
|
+
* consumer's content-security policy can block (PLAT-1179).
|
|
758
|
+
*
|
|
759
|
+
* A session that owes an acceptance with none of these supplied gets the
|
|
760
|
+
* unavailable notice, not the suite — the gate is never dropped because the
|
|
761
|
+
* host under-configured it.
|
|
762
|
+
*/
|
|
763
|
+
disclosureLinks?: AcceptDisclosuresLinks;
|
|
685
764
|
/** Overrides for the shell's own copy — the nav landmark name, empty state. */
|
|
686
765
|
labels?: PartialDeep<WidgetSuiteShellLabels>;
|
|
687
766
|
/** Overrides for the section names in the menu. */
|
|
@@ -696,6 +775,11 @@ interface WidgetSuiteProps extends WidgetProviderProps {
|
|
|
696
775
|
* and the Expenses placeholder.
|
|
697
776
|
*/
|
|
698
777
|
contentLabels?: PartialDeep<WidgetSuiteContentLabels>;
|
|
778
|
+
/**
|
|
779
|
+
* Overrides for the copy the disclosure gate owns: its refresh-failure recovery
|
|
780
|
+
* and its unavailable notice. The acceptance surface carries its own labels.
|
|
781
|
+
*/
|
|
782
|
+
disclosureLabels?: PartialDeep<WidgetSuiteDisclosureLabels>;
|
|
699
783
|
/**
|
|
700
784
|
* Shows a heading above each section, named as its menu item is.
|
|
701
785
|
*
|
|
@@ -720,6 +804,13 @@ interface WidgetSuiteProps extends WidgetProviderProps {
|
|
|
720
804
|
* pass-through mode. See `sections.tsx` for the two composition rules that
|
|
721
805
|
* arrangement depends on.
|
|
722
806
|
*
|
|
807
|
+
* That one response also decides which state the suite is in before the shell
|
|
808
|
+
* renders: placeholders while init has not settled, a closed retry state when
|
|
809
|
+
* init fails before answering the disclosure flags, the acceptance surface
|
|
810
|
+
* alone when the session owes the bank's disclosures, or the nav over its
|
|
811
|
+
* sections. States rather than an overlay over a mounted shell — see
|
|
812
|
+
* `WidgetSuiteInner` for why each boundary sits where it does.
|
|
813
|
+
*
|
|
723
814
|
* The active section is held here rather than taken as a prop, matching
|
|
724
815
|
* `BillPayWidgetNative` and `SettingsWidget`. A host-controlled
|
|
725
816
|
* `selectedSectionId` / `onSectionChange` pair is the natural next step for
|
|
@@ -728,5 +819,5 @@ interface WidgetSuiteProps extends WidgetProviderProps {
|
|
|
728
819
|
*/
|
|
729
820
|
declare function WidgetSuite({ baseUrl, widgetToken, organizationId, configClient, linkComponent, implementation, uiFramework, errorFallback, onError, analytics, ...innerProps }: WidgetSuiteProps): React.JSX.Element;
|
|
730
821
|
|
|
731
|
-
export { WIDGET_SUITE_CONTENT_LABELS_EN, WIDGET_SUITE_DEFAULT_SECTIONS, WIDGET_SUITE_SECTION_LABELS_EN, WIDGET_SUITE_SECTION_TITLE_LABELS_EN, WIDGET_SUITE_SHELL_LABELS_EN, WidgetSuite, WidgetSuiteSectionId };
|
|
732
|
-
export type { PartialDeep, WidgetSuiteContentLabels, WidgetSuiteProps, WidgetSuiteSectionLabels, WidgetSuiteSectionTitleLabels, WidgetSuiteShellLabels };
|
|
822
|
+
export { WIDGET_SUITE_CONTENT_LABELS_EN, WIDGET_SUITE_DEFAULT_SECTIONS, WIDGET_SUITE_DISCLOSURE_LABELS_EN, WIDGET_SUITE_SECTION_LABELS_EN, WIDGET_SUITE_SECTION_TITLE_LABELS_EN, WIDGET_SUITE_SHELL_LABELS_EN, WidgetSuite, WidgetSuiteSectionId };
|
|
823
|
+
export type { AcceptDisclosuresLinks, PartialDeep, WidgetSuiteContentLabels, WidgetSuiteDisclosureLabels, WidgetSuiteProps, WidgetSuiteSectionLabels, WidgetSuiteSectionTitleLabels, WidgetSuiteShellLabels };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { WIDGET_SUITE_CONTENT_LABELS_EN as e,
|
|
2
|
-
import { WIDGET_SUITE_DEFAULT_SECTIONS as
|
|
3
|
-
import { WIDGET_SUITE_SHELL_LABELS_EN as
|
|
4
|
-
import { WidgetSuite as
|
|
1
|
+
import { WIDGET_SUITE_CONTENT_LABELS_EN as e, WIDGET_SUITE_DISCLOSURE_LABELS_EN as t, WIDGET_SUITE_SECTION_LABELS_EN as n, WIDGET_SUITE_SECTION_TITLE_LABELS_EN as r } from "../libs/tesouro-embedded-components-react/widget-suite/feature/dist/index4.js";
|
|
2
|
+
import { WIDGET_SUITE_DEFAULT_SECTIONS as i, WidgetSuiteSectionId as a } from "../libs/tesouro-embedded-components-react/widget-suite/feature/dist/index5.js";
|
|
3
|
+
import { WIDGET_SUITE_SHELL_LABELS_EN as o } from "../libs/tesouro-embedded-components-react/widget-suite/ui/dist/index2.js";
|
|
4
|
+
import { WidgetSuite as s } from "../libs/tesouro-embedded-components-react/widget-suite/feature/dist/index6.js";
|
|
5
5
|
import "./WidgetSuite.js";
|
|
6
|
-
export { e as WIDGET_SUITE_CONTENT_LABELS_EN,
|
|
6
|
+
export { e as WIDGET_SUITE_CONTENT_LABELS_EN, i as WIDGET_SUITE_DEFAULT_SECTIONS, t as WIDGET_SUITE_DISCLOSURE_LABELS_EN, n as WIDGET_SUITE_SECTION_LABELS_EN, r as WIDGET_SUITE_SECTION_TITLE_LABELS_EN, o as WIDGET_SUITE_SHELL_LABELS_EN, s as WidgetSuite, a as WidgetSuiteSectionId };
|
package/dist/index.css
CHANGED
|
@@ -155,6 +155,10 @@
|
|
|
155
155
|
container-type: inline-size;
|
|
156
156
|
container-name: field-group;
|
|
157
157
|
}
|
|
158
|
+
.ttw\:\@container\/line-item {
|
|
159
|
+
container-type: inline-size;
|
|
160
|
+
container-name: line-item;
|
|
161
|
+
}
|
|
158
162
|
.ttw\:\@container\/widget {
|
|
159
163
|
container-type: inline-size;
|
|
160
164
|
container-name: widget;
|
|
@@ -353,6 +357,12 @@
|
|
|
353
357
|
.ttw\:order-last {
|
|
354
358
|
order: 9999;
|
|
355
359
|
}
|
|
360
|
+
.ttw\:col-span-1 {
|
|
361
|
+
grid-column: span 1 / span 1;
|
|
362
|
+
}
|
|
363
|
+
.ttw\:col-span-3 {
|
|
364
|
+
grid-column: span 3 / span 3;
|
|
365
|
+
}
|
|
356
366
|
.ttw\:col-start-2 {
|
|
357
367
|
grid-column-start: 2;
|
|
358
368
|
}
|
|
@@ -1624,9 +1634,6 @@
|
|
|
1624
1634
|
.ttw\:grid-cols-3 {
|
|
1625
1635
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
1626
1636
|
}
|
|
1627
|
-
.ttw\:grid-cols-4 {
|
|
1628
|
-
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
1629
|
-
}
|
|
1630
1637
|
.ttw\:grid-cols-\[0_1fr\] {
|
|
1631
1638
|
grid-template-columns: 0 1fr;
|
|
1632
1639
|
}
|
|
@@ -1958,6 +1965,10 @@
|
|
|
1958
1965
|
border-top-left-radius: calc(var(--ttw-radius) - 2px);
|
|
1959
1966
|
border-bottom-left-radius: calc(var(--ttw-radius) - 2px);
|
|
1960
1967
|
}
|
|
1968
|
+
.ttw\:rounded-l-none {
|
|
1969
|
+
border-top-left-radius: 0;
|
|
1970
|
+
border-bottom-left-radius: 0;
|
|
1971
|
+
}
|
|
1961
1972
|
.ttw\:rounded-tl-\[14px\] {
|
|
1962
1973
|
border-top-left-radius: 14px;
|
|
1963
1974
|
}
|
|
@@ -1968,6 +1979,10 @@
|
|
|
1968
1979
|
border-top-right-radius: calc(var(--ttw-radius) - 2px);
|
|
1969
1980
|
border-bottom-right-radius: calc(var(--ttw-radius) - 2px);
|
|
1970
1981
|
}
|
|
1982
|
+
.ttw\:rounded-r-none {
|
|
1983
|
+
border-top-right-radius: 0;
|
|
1984
|
+
border-bottom-right-radius: 0;
|
|
1985
|
+
}
|
|
1971
1986
|
.ttw\:rounded-tr-\[14px\] {
|
|
1972
1987
|
border-top-right-radius: 14px;
|
|
1973
1988
|
}
|
|
@@ -2817,9 +2832,6 @@
|
|
|
2817
2832
|
.ttw\:pt-6 {
|
|
2818
2833
|
padding-top: calc(var(--ttw-spacing) * 6);
|
|
2819
2834
|
}
|
|
2820
|
-
.ttw\:pt-7 {
|
|
2821
|
-
padding-top: calc(var(--ttw-spacing) * 7);
|
|
2822
|
-
}
|
|
2823
2835
|
.ttw\:pt-8 {
|
|
2824
2836
|
padding-top: calc(var(--ttw-spacing) * 8);
|
|
2825
2837
|
}
|
|
@@ -2949,9 +2961,6 @@
|
|
|
2949
2961
|
.ttw\:text-right {
|
|
2950
2962
|
text-align: right;
|
|
2951
2963
|
}
|
|
2952
|
-
.ttw\:align-baseline {
|
|
2953
|
-
vertical-align: baseline;
|
|
2954
|
-
}
|
|
2955
2964
|
.ttw\:align-middle {
|
|
2956
2965
|
vertical-align: middle;
|
|
2957
2966
|
}
|
|
@@ -4572,6 +4581,28 @@
|
|
|
4572
4581
|
.ttw\:has-\[\:disabled\]\:opacity-60:has(:is(:disabled)) {
|
|
4573
4582
|
opacity: 60%;
|
|
4574
4583
|
}
|
|
4584
|
+
.ttw\:has-\[\:focus-visible\]\:border-ring:has(:is(:focus-visible)) {
|
|
4585
|
+
border-color: var(--ttw-ring);
|
|
4586
|
+
}
|
|
4587
|
+
.ttw\:has-\[\:focus-visible\]\:ring-\[3px\]:has(:is(:focus-visible)) {
|
|
4588
|
+
--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
|
|
4589
|
+
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
4590
|
+
}
|
|
4591
|
+
.ttw\:has-\[\:focus-visible\]\:ring-ring\/50:has(:is(:focus-visible)) {
|
|
4592
|
+
--tw-ring-color: var(--ttw-ring);
|
|
4593
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
4594
|
+
--tw-ring-color: color-mix(in oklab, var(--ttw-ring) 50%, transparent);
|
|
4595
|
+
}
|
|
4596
|
+
}
|
|
4597
|
+
.ttw\:has-\[\[aria-invalid\=true\]\]\:border-destructive:has(:is([aria-invalid=true])) {
|
|
4598
|
+
border-color: var(--ttw-destructive);
|
|
4599
|
+
}
|
|
4600
|
+
.ttw\:has-\[\[aria-invalid\=true\]\]\:ring-destructive\/20:has(:is([aria-invalid=true])) {
|
|
4601
|
+
--tw-ring-color: var(--ttw-destructive);
|
|
4602
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
4603
|
+
--tw-ring-color: color-mix(in oklab, var(--ttw-destructive) 20%, transparent);
|
|
4604
|
+
}
|
|
4605
|
+
}
|
|
4575
4606
|
.ttw\:has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:border-ring:has(:is([data-slot=input-group-control]:focus-visible)) {
|
|
4576
4607
|
border-color: var(--ttw-ring);
|
|
4577
4608
|
}
|
|
@@ -5453,6 +5484,11 @@
|
|
|
5453
5484
|
align-items: flex-start;
|
|
5454
5485
|
}
|
|
5455
5486
|
}
|
|
5487
|
+
@container line-item (width >= 32rem) {
|
|
5488
|
+
.ttw\:\@lg\/line-item\:grid-cols-6 {
|
|
5489
|
+
grid-template-columns: repeat(6, minmax(0, 1fr));
|
|
5490
|
+
}
|
|
5491
|
+
}
|
|
5456
5492
|
.ttw\:dark\:border-input:is(.dark *) {
|
|
5457
5493
|
border-color: var(--ttw-input);
|
|
5458
5494
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1186,10 +1186,18 @@ declare function useOwnWidgetConfig(): WidgetConfigInput | null;
|
|
|
1186
1186
|
* the correct fetch-owning ancestor regardless of nesting depth.
|
|
1187
1187
|
*
|
|
1188
1188
|
* Re-fetching keeps the current `initResponse` visible while the request is in
|
|
1189
|
-
* flight — the previous data is not cleared until the new response arrives
|
|
1190
|
-
*
|
|
1191
|
-
*
|
|
1192
|
-
*
|
|
1189
|
+
* flight — the previous data is not cleared until the new response arrives. This
|
|
1190
|
+
* prevents a blank/loading flash during background refreshes.
|
|
1191
|
+
*
|
|
1192
|
+
* **A failed re-fetch keeps it visible too**, and only sets
|
|
1193
|
+
* {@link useWidgetError}. `useWidgetFetch` clears the retained response for a
|
|
1194
|
+
* *client* change, which is an auth boundary; a re-fetch is not one, so the
|
|
1195
|
+
* previous response is still valid for the active token. This line previously
|
|
1196
|
+
* said the opposite, which matters: a consumer branching on `!initResponse`
|
|
1197
|
+
* would conclude a failed refresh drops it back to its pre-init state, when in
|
|
1198
|
+
* fact it keeps rendering the response it already had. Verified against the
|
|
1199
|
+
* running provider (EMBD-4911) — a suite gating on a field of the init response
|
|
1200
|
+
* holds that gate closed after a failed refresh rather than falling open.
|
|
1193
1201
|
*
|
|
1194
1202
|
* @returns A stable `() => void` function. Calling it increments an internal counter
|
|
1195
1203
|
* that re-triggers the fetch effect. Returns a no-op when called outside any provider.
|
|
@@ -1355,13 +1363,19 @@ type InnerProps = Omit<AcceptDisclosuresWidgetProps$1, UiOwnedProps> & {
|
|
|
1355
1363
|
* Invitation token from the invite link. Bound into the disclosures lookup
|
|
1356
1364
|
* before activation, and used to remount consent state when the invite
|
|
1357
1365
|
* changes. This widget does not read URL search params.
|
|
1366
|
+
*
|
|
1367
|
+
* Supply it (with {@link userId}) for the invite flow. Omit both for an
|
|
1368
|
+
* already-active user re-accepting a newly published version — they hold no
|
|
1369
|
+
* invite, and the widget token identifies them on both calls. See
|
|
1370
|
+
* `useAcceptWidgetDisclosures`.
|
|
1358
1371
|
*/
|
|
1359
|
-
invitationToken
|
|
1372
|
+
invitationToken?: string;
|
|
1360
1373
|
/**
|
|
1361
|
-
* Invited user id from the invite link.
|
|
1362
|
-
* for the disclosures lookup and remount identity
|
|
1374
|
+
* Invited user id from the invite link. Paired with {@link invitationToken}
|
|
1375
|
+
* for the disclosures lookup and remount identity; omitted with it outside the
|
|
1376
|
+
* invite flow.
|
|
1363
1377
|
*/
|
|
1364
|
-
userId
|
|
1378
|
+
userId?: string;
|
|
1365
1379
|
/**
|
|
1366
1380
|
* URLs of the four bank-issued disclosure documents. Required to render along
|
|
1367
1381
|
* with a bank name from widget init: the widget carries no document URLs of its
|
|
@@ -1379,13 +1393,19 @@ type InnerProps = Omit<AcceptDisclosuresWidgetProps$1, UiOwnedProps> & {
|
|
|
1379
1393
|
};
|
|
1380
1394
|
type AcceptDisclosuresWidgetProps = WidgetProviderProps & InnerProps;
|
|
1381
1395
|
/**
|
|
1382
|
-
* Self-contained AcceptDisclosures widget
|
|
1396
|
+
* Self-contained AcceptDisclosures widget.
|
|
1383
1397
|
* Posts `POST /api/widget-gateway/disclosure-acceptance` (after reading the
|
|
1384
1398
|
* disclosure version in force via the widget-gateway proxy), which activates
|
|
1385
1399
|
* the invitee and records acceptance in one transaction, then awaits any
|
|
1386
1400
|
* `onAccepted` continuation and kicks a widget-init refresh so host gates
|
|
1387
1401
|
* keyed on `INVITED` can clear. Auth uses the normal WidgetToken provider
|
|
1388
1402
|
* contract — never an APP/M2M bearer.
|
|
1403
|
+
*
|
|
1404
|
+
* Two flows, one surface: the pre-auth invite flow passes `invitationToken` +
|
|
1405
|
+
* `userId`; an already-active user who owes a re-acceptance (widget init reports
|
|
1406
|
+
* `disclosuresRequired: 'REQUIRED'` with `disclosuresAccepted: false`) passes
|
|
1407
|
+
* neither, and the same init refresh clears the gate that mounted this. See
|
|
1408
|
+
* `WidgetSuite`, which mounts it as its acceptance state.
|
|
1389
1409
|
*/
|
|
1390
1410
|
declare function AcceptDisclosuresWidget({ baseUrl, widgetToken, organizationId, configClient, linkComponent, implementation, uiFramework, errorFallback, onError, analytics, ...innerProps }: AcceptDisclosuresWidgetProps): React.JSX.Element;
|
|
1391
1411
|
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ACCEPT_DISCLOSURES_WIDGET_LABELS_EN as e } from "./libs/tesouro-embedded-components-react/accept-disclosures-widget/ui/dist/
|
|
1
|
+
import { ACCEPT_DISCLOSURES_WIDGET_LABELS_EN as e } from "./libs/tesouro-embedded-components-react/accept-disclosures-widget/ui/dist/lib/AcceptDisclosuresWidget/labels.js";
|
|
2
2
|
import { cloneEmbeddedClient as t } from "./libs/tesouro-embedded-components-react/shared/data-access/dist/lib/createEmbeddedClient.js";
|
|
3
3
|
import { Implementation as n } from "./libs/tesouro-embedded-components-react/shared/feature/dist/lib/WidgetProvider/types.js";
|
|
4
4
|
import { getGlobalWidgetConfig as r, setGlobalWidgetConfig as i, updateGlobalWidgetConfig as a } from "./libs/tesouro-embedded-components-react/shared/feature/dist/lib/WidgetProvider/globalStore.js";
|
|
@@ -15,7 +15,7 @@ import "./lib/AcceptDisclosuresWidget.js";
|
|
|
15
15
|
import { BankAccountsWidget as x } from "./libs/tesouro-embedded-components-react/bank-accounts-widget/feature/dist/index8.js";
|
|
16
16
|
import "./lib/BankAccountsWidget.js";
|
|
17
17
|
import { CounterpartsWidget as S } from "./libs/tesouro-embedded-components-react/counterparts-widget/feature/dist/index8.js";
|
|
18
|
-
import { BillPayWidget as C } from "./libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/
|
|
18
|
+
import { BillPayWidget as C } from "./libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index30.js";
|
|
19
19
|
import "./lib/BillPayWidget.js";
|
|
20
20
|
import { CardDetailsWidget as w } from "./libs/tesouro-embedded-components-react/card-details-widget/feature/dist/index6.js";
|
|
21
21
|
import { CardFormatValue as T } from "./libs/tesouro-embedded-components-react/create-card-widget/feature/dist/index3.js";
|
|
@@ -641,13 +641,19 @@ type InnerProps = Omit<AcceptDisclosuresWidgetProps$1, UiOwnedProps> & {
|
|
|
641
641
|
* Invitation token from the invite link. Bound into the disclosures lookup
|
|
642
642
|
* before activation, and used to remount consent state when the invite
|
|
643
643
|
* changes. This widget does not read URL search params.
|
|
644
|
+
*
|
|
645
|
+
* Supply it (with {@link userId}) for the invite flow. Omit both for an
|
|
646
|
+
* already-active user re-accepting a newly published version — they hold no
|
|
647
|
+
* invite, and the widget token identifies them on both calls. See
|
|
648
|
+
* `useAcceptWidgetDisclosures`.
|
|
644
649
|
*/
|
|
645
|
-
invitationToken
|
|
650
|
+
invitationToken?: string;
|
|
646
651
|
/**
|
|
647
|
-
* Invited user id from the invite link.
|
|
648
|
-
* for the disclosures lookup and remount identity
|
|
652
|
+
* Invited user id from the invite link. Paired with {@link invitationToken}
|
|
653
|
+
* for the disclosures lookup and remount identity; omitted with it outside the
|
|
654
|
+
* invite flow.
|
|
649
655
|
*/
|
|
650
|
-
userId
|
|
656
|
+
userId?: string;
|
|
651
657
|
/**
|
|
652
658
|
* URLs of the four bank-issued disclosure documents. Required to render along
|
|
653
659
|
* with a bank name from widget init: the widget carries no document URLs of its
|
|
@@ -665,13 +671,19 @@ type InnerProps = Omit<AcceptDisclosuresWidgetProps$1, UiOwnedProps> & {
|
|
|
665
671
|
};
|
|
666
672
|
type AcceptDisclosuresWidgetProps = WidgetProviderProps & InnerProps;
|
|
667
673
|
/**
|
|
668
|
-
* Self-contained AcceptDisclosures widget
|
|
674
|
+
* Self-contained AcceptDisclosures widget.
|
|
669
675
|
* Posts `POST /api/widget-gateway/disclosure-acceptance` (after reading the
|
|
670
676
|
* disclosure version in force via the widget-gateway proxy), which activates
|
|
671
677
|
* the invitee and records acceptance in one transaction, then awaits any
|
|
672
678
|
* `onAccepted` continuation and kicks a widget-init refresh so host gates
|
|
673
679
|
* keyed on `INVITED` can clear. Auth uses the normal WidgetToken provider
|
|
674
680
|
* contract — never an APP/M2M bearer.
|
|
681
|
+
*
|
|
682
|
+
* Two flows, one surface: the pre-auth invite flow passes `invitationToken` +
|
|
683
|
+
* `userId`; an already-active user who owes a re-acceptance (widget init reports
|
|
684
|
+
* `disclosuresRequired: 'REQUIRED'` with `disclosuresAccepted: false`) passes
|
|
685
|
+
* neither, and the same init refresh clears the gate that mounted this. See
|
|
686
|
+
* `WidgetSuite`, which mounts it as its acceptance state.
|
|
675
687
|
*/
|
|
676
688
|
declare function AcceptDisclosuresWidget({ baseUrl, widgetToken, organizationId, configClient, linkComponent, implementation, uiFramework, errorFallback, onError, analytics, ...innerProps }: AcceptDisclosuresWidgetProps): React.JSX.Element;
|
|
677
689
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ACCEPT_DISCLOSURES_WIDGET_LABELS_EN as e } from "../libs/tesouro-embedded-components-react/accept-disclosures-widget/ui/dist/
|
|
1
|
+
import { ACCEPT_DISCLOSURES_WIDGET_LABELS_EN as e } from "../libs/tesouro-embedded-components-react/accept-disclosures-widget/ui/dist/lib/AcceptDisclosuresWidget/labels.js";
|
|
2
2
|
import "../libs/tesouro-embedded-components-react/accept-disclosures-widget/ui/dist/index.js";
|
|
3
3
|
import { AcceptDisclosuresWidget as t } from "../libs/tesouro-embedded-components-react/accept-disclosures-widget/feature/dist/index4.js";
|
|
4
4
|
import "../libs/tesouro-embedded-components-react/accept-disclosures-widget/feature/dist/index.js";
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { BillPayWidget as e } from "../libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/
|
|
1
|
+
import { BillPayWidget as e } from "../libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index30.js";
|
|
2
2
|
import "../libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index.js";
|
|
3
3
|
export { e as BillPayWidget };
|
|
@@ -1070,10 +1070,18 @@ declare function useOwnWidgetConfig(): WidgetConfigInput | null;
|
|
|
1070
1070
|
* the correct fetch-owning ancestor regardless of nesting depth.
|
|
1071
1071
|
*
|
|
1072
1072
|
* Re-fetching keeps the current `initResponse` visible while the request is in
|
|
1073
|
-
* flight — the previous data is not cleared until the new response arrives
|
|
1074
|
-
*
|
|
1075
|
-
*
|
|
1076
|
-
*
|
|
1073
|
+
* flight — the previous data is not cleared until the new response arrives. This
|
|
1074
|
+
* prevents a blank/loading flash during background refreshes.
|
|
1075
|
+
*
|
|
1076
|
+
* **A failed re-fetch keeps it visible too**, and only sets
|
|
1077
|
+
* {@link useWidgetError}. `useWidgetFetch` clears the retained response for a
|
|
1078
|
+
* *client* change, which is an auth boundary; a re-fetch is not one, so the
|
|
1079
|
+
* previous response is still valid for the active token. This line previously
|
|
1080
|
+
* said the opposite, which matters: a consumer branching on `!initResponse`
|
|
1081
|
+
* would conclude a failed refresh drops it back to its pre-init state, when in
|
|
1082
|
+
* fact it keeps rendering the response it already had. Verified against the
|
|
1083
|
+
* running provider (EMBD-4911) — a suite gating on a field of the init response
|
|
1084
|
+
* holds that gate closed after a failed refresh rather than falling open.
|
|
1077
1085
|
*
|
|
1078
1086
|
* @returns A stable `() => void` function. Calling it increments an internal counter
|
|
1079
1087
|
* that re-triggers the fetch effect. Returns a no-op when called outside any provider.
|