@daimo/sdk 1.2.4 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/common/account.d.ts +16 -3
- package/dist/common/account.d.ts.map +1 -1
- package/dist/common/api.d.ts +15 -0
- package/dist/common/api.d.ts.map +1 -1
- package/dist/common/api.js +1 -0
- package/dist/common/api.js.map +1 -1
- package/dist/common/chain.d.ts +1 -0
- package/dist/common/chain.d.ts.map +1 -1
- package/dist/common/chain.js +10 -0
- package/dist/common/chain.js.map +1 -1
- package/dist/common/session.d.ts +6 -1
- package/dist/common/session.d.ts.map +1 -1
- package/dist/common/session.js.map +1 -1
- package/dist/common/token.d.ts +13 -6
- package/dist/common/token.d.ts.map +1 -1
- package/dist/common/token.js +127 -58
- package/dist/common/token.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/web/components/ConfirmationPage.d.ts.map +1 -1
- package/dist/web/components/ConfirmationPage.js +2 -5
- package/dist/web/components/ConfirmationPage.js.map +1 -1
- package/dist/web/components/DaimoModal.d.ts.map +1 -1
- package/dist/web/components/DaimoModal.js +31 -17
- package/dist/web/components/DaimoModal.js.map +1 -1
- package/dist/web/components/ErrorPage.d.ts +1 -3
- package/dist/web/components/ErrorPage.d.ts.map +1 -1
- package/dist/web/components/ErrorPage.js +6 -2
- package/dist/web/components/ErrorPage.js.map +1 -1
- package/dist/web/components/ProgressPulse.d.ts +14 -0
- package/dist/web/components/ProgressPulse.d.ts.map +1 -0
- package/dist/web/components/ProgressPulse.js +15 -0
- package/dist/web/components/ProgressPulse.js.map +1 -0
- package/dist/web/components/QRCode.js +3 -3
- package/dist/web/components/QRCode.js.map +1 -1
- package/dist/web/components/SelectTokenPage.d.ts +2 -1
- package/dist/web/components/SelectTokenPage.d.ts.map +1 -1
- package/dist/web/components/SelectTokenPage.js +3 -3
- package/dist/web/components/SelectTokenPage.js.map +1 -1
- package/dist/web/components/account/AccountBankPickerPage.d.ts.map +1 -1
- package/dist/web/components/account/AccountBankPickerPage.js +1 -1
- package/dist/web/components/account/AccountBankPickerPage.js.map +1 -1
- package/dist/web/components/account/AccountCreatingWalletPage.d.ts.map +1 -1
- package/dist/web/components/account/AccountCreatingWalletPage.js +3 -3
- package/dist/web/components/account/AccountCreatingWalletPage.js.map +1 -1
- package/dist/web/components/account/AccountDeeplinkPage.d.ts.map +1 -1
- package/dist/web/components/account/AccountDeeplinkPage.js +6 -1
- package/dist/web/components/account/AccountDeeplinkPage.js.map +1 -1
- package/dist/web/components/account/AccountEmailPage.d.ts.map +1 -1
- package/dist/web/components/account/AccountEmailPage.js +1 -1
- package/dist/web/components/account/AccountEmailPage.js.map +1 -1
- package/dist/web/components/account/AccountEnrollmentPage.d.ts +15 -6
- package/dist/web/components/account/AccountEnrollmentPage.d.ts.map +1 -1
- package/dist/web/components/account/AccountEnrollmentPage.js +95 -35
- package/dist/web/components/account/AccountEnrollmentPage.js.map +1 -1
- package/dist/web/components/account/AccountOtpPage.d.ts.map +1 -1
- package/dist/web/components/account/AccountOtpPage.js +12 -8
- package/dist/web/components/account/AccountOtpPage.js.map +1 -1
- package/dist/web/components/account/AccountStatusPage.d.ts +4 -3
- package/dist/web/components/account/AccountStatusPage.d.ts.map +1 -1
- package/dist/web/components/account/AccountStatusPage.js +49 -10
- package/dist/web/components/account/AccountStatusPage.js.map +1 -1
- package/dist/web/components/account/openDeeplink.d.ts.map +1 -1
- package/dist/web/components/account/openDeeplink.js +20 -3
- package/dist/web/components/account/openDeeplink.js.map +1 -1
- package/dist/web/components/containers.d.ts.map +1 -1
- package/dist/web/components/containers.js +8 -2
- package/dist/web/components/containers.js.map +1 -1
- package/dist/web/components/shared.d.ts.map +1 -1
- package/dist/web/components/shared.js +10 -5
- package/dist/web/components/shared.js.map +1 -1
- package/dist/web/hooks/locales/en.d.ts +16 -0
- package/dist/web/hooks/locales/en.d.ts.map +1 -1
- package/dist/web/hooks/locales/en.js +20 -3
- package/dist/web/hooks/locales/en.js.map +1 -1
- package/dist/web/hooks/locales/es.d.ts.map +1 -1
- package/dist/web/hooks/locales/es.js +19 -3
- package/dist/web/hooks/locales/es.js.map +1 -1
- package/dist/web/hooks/useAccountFlow.d.ts.map +1 -1
- package/dist/web/hooks/useAccountFlow.js +2 -0
- package/dist/web/hooks/useAccountFlow.js.map +1 -1
- package/dist/web/hooks/useSessionNav.d.ts.map +1 -1
- package/dist/web/hooks/useSessionNav.js +4 -2
- package/dist/web/hooks/useSessionNav.js.map +1 -1
- package/dist/web/hooks/useWalletFlow.d.ts.map +1 -1
- package/dist/web/hooks/useWalletFlow.js +2 -4
- package/dist/web/hooks/useWalletFlow.js.map +1 -1
- package/dist/web/styles.css +1 -1
- package/dist/web/theme.css +1 -1
- package/package.json +11 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountDeeplinkPage.js","sourceRoot":"","sources":["../../../../src/web/components/account/AccountDeeplinkPage.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,CAAC,EAAE,MAAM,uBAAuB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"AccountDeeplinkPage.js","sourceRoot":"","sources":["../../../../src/web/components/account/AccountDeeplinkPage.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,CAAC,EAAE,MAAM,uBAAuB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAYjD,sEAAsE;AACtE,MAAM,UAAU,mBAAmB,CAAC,EAClC,SAAS,EACT,YAAY,EACZ,OAAO,EACP,IAAI,EACJ,MAAM,EACN,SAAS,GACgB;IACzB,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAChC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,MAAM,YAAY,GAAG,WAAW,EAAE,YAAY,CAAC;IAC/C,MAAM,OAAO,GAAG,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC;IAC7C,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;IAEnC,iEAAiE;IACjE,MAAM,mBAAmB,GAAG,YAAY,EAAE,OAAO,EAAE,YAAY,CAAC,IAAI,CAClE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,YAAY,EAAE,qBAAqB,CAC1D,CAAC;IAEF,gBAAgB,CAAC;QACf,MAAM;QACN,SAAS;QACT,YAAY;QACZ,QAAQ,CAAC,OAAO;YACd,IACE,OAAO,CAAC,MAAM,KAAK,WAAW;gBAC9B,OAAO,CAAC,MAAM,KAAK,kBAAkB,EACrC,CAAC;gBACD,SAAS,EAAE,CAAC;YACd,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,CACL,eAAK,SAAS,EAAC,sDAAsD,aACnE,KAAC,UAAU,IAAC,KAAK,EAAE,CAAC,CAAC,mBAAmB,EAAE,MAAM,EAAE,MAAM,GAAI,EAC5D,KAAC,eAAe,cACd,eAAK,SAAS,EAAC,0DAA0D,aACtE,OAAO,IAAI,OAAO,IAAI,CACrB,cAAK,SAAS,EAAC,kCAAkC,YAC/C,KAAC,MAAM,IACL,KAAK,EAAE,OAAO,EACd,KAAK,EACH,IAAI,CAAC,CAAC,CAAC,CACL,cACE,GAAG,EAAE,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,EAClC,GAAG,EAAC,EAAE,EACN,SAAS,EAAC,gDAAgD,GAC1D,CACH,CAAC,CAAC,CAAC,SAAS,GAEf,GACE,CACP,EACD,YAAG,SAAS,EAAC,yFAAyF,YACnG,YAAY,EAAE,OAAO,EAAE,YAAY,GAClC,EACH,mBAAmB,IAAI,CACtB,MAAC,aAAa,IACZ,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EACzD,IAAI,EAAE,KAAC,gBAAgB,IAAC,IAAI,EAAE,EAAE,GAAI,aAEnC,CAAC,CAAC,IAAI,OAAG,mBAAmB,CAAC,IAAI,IACpB,CACjB,IACG,GACU,IACd,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountEmailPage.d.ts","sourceRoot":"","sources":["../../../../src/web/components/account/AccountEmailPage.tsx"],"names":[],"mappings":"AAYA,KAAK,qBAAqB,GAAG;IAC3B,MAAM,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"AccountEmailPage.d.ts","sourceRoot":"","sources":["../../../../src/web/components/account/AccountEmailPage.tsx"],"names":[],"mappings":"AAYA,KAAK,qBAAqB,GAAG;IAC3B,MAAM,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,qBAAqB,2CA2D5E"}
|
|
@@ -28,6 +28,6 @@ export function AccountEmailPage({ onBack, onOtpSent }) {
|
|
|
28
28
|
handleSubmit();
|
|
29
29
|
}, [localEmail, handleSubmit]);
|
|
30
30
|
const isValidEmail = /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(localEmail);
|
|
31
|
-
return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0", children: [_jsx(PageHeader, { title: t.accountEmail, onBack: onBack }), _jsxs(CenteredContent, { children: [_jsx(TextInput, { type: "email", value: localEmail, onChange: (e) => setLocalEmail(e.target.value), onKeyDown: handleKeyDown, placeholder: t.accountEmailPlaceholder, autoFocus: true, className: "daimo-max-w-xs daimo-px-4 daimo-py-3 daimo-text-base" }), account?.authError && _jsx(ErrorMessage, { message: account.authError })] }), _jsx("div", { className: "daimo-px-6 daimo-pb-6 daimo-flex daimo-flex-col daimo-items-center", children: _jsx(PrimaryButton, { onClick: handleSubmit, disabled: !isValidEmail || account?.isLoggingIn, children: account?.isLoggingIn ? t.loading : t.continue }) })] }));
|
|
31
|
+
return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0", children: [_jsx(PageHeader, { title: t.accountEmail, onBack: onBack }), _jsxs(CenteredContent, { children: [_jsx("p", { className: "daimo-text-sm daimo-text-[var(--daimo-text-secondary)] daimo-text-center", children: t.accountEmailDesc }), _jsx(TextInput, { type: "email", value: localEmail, onChange: (e) => setLocalEmail(e.target.value), onKeyDown: handleKeyDown, placeholder: t.accountEmailPlaceholder, autoFocus: true, className: "daimo-max-w-xs daimo-px-4 daimo-py-3 daimo-text-base" }), account?.authError && _jsx(ErrorMessage, { message: account.authError })] }), _jsx("div", { className: "daimo-px-6 daimo-pb-6 daimo-flex daimo-flex-col daimo-items-center", children: _jsx(PrimaryButton, { onClick: handleSubmit, disabled: !isValidEmail || account?.isLoggingIn, children: account?.isLoggingIn ? t.loading : t.continue }) })] }));
|
|
32
32
|
}
|
|
33
33
|
//# sourceMappingURL=AccountEmailPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountEmailPage.js","sourceRoot":"","sources":["../../../../src/web/components/account/AccountEmailPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjE,OAAO,EAAE,CAAC,EAAE,MAAM,uBAAuB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EACL,eAAe,EACf,YAAY,EACZ,UAAU,EACV,SAAS,GACV,MAAM,cAAc,CAAC;AAOtB,MAAM,UAAU,gBAAgB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAyB;IAC3E,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IACnE,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAEjC,mEAAmE;IACnE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,UAAU,CAAC,OAAO;YAAE,OAAO;QAC/B,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;QAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC1C,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU;YAAE,OAAO;QACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC7B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,IAAI;YAAE,SAAS,EAAE,CAAC;IACxB,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;IAErC,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,CAAsB,EAAE,EAAE;QACzB,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,UAAU;YAAE,YAAY,EAAE,CAAC;IACtD,CAAC,EACD,CAAC,UAAU,EAAE,YAAY,CAAC,CAC3B,CAAC;IAEF,MAAM,YAAY,GAAG,4BAA4B,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAEnE,OAAO,CACL,eAAK,SAAS,EAAC,sDAAsD,aACnE,KAAC,UAAU,IAAC,KAAK,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,GAAI,EAErD,MAAC,eAAe,eACd,KAAC,SAAS,IACR,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC9C,SAAS,EAAE,aAAa,EACxB,WAAW,EAAE,CAAC,CAAC,uBAAuB,EACtC,SAAS,QACT,SAAS,EAAC,sDAAsD,GAChE,EACD,OAAO,EAAE,SAAS,IAAI,KAAC,YAAY,IAAC,OAAO,EAAE,OAAO,CAAC,SAAS,GAAI,IACnD,EAElB,cAAK,SAAS,EAAC,oEAAoE,YACjF,KAAC,aAAa,IACZ,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,CAAC,YAAY,IAAI,OAAO,EAAE,WAAW,YAE9C,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAChC,GACZ,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"AccountEmailPage.js","sourceRoot":"","sources":["../../../../src/web/components/account/AccountEmailPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjE,OAAO,EAAE,CAAC,EAAE,MAAM,uBAAuB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EACL,eAAe,EACf,YAAY,EACZ,UAAU,EACV,SAAS,GACV,MAAM,cAAc,CAAC;AAOtB,MAAM,UAAU,gBAAgB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAyB;IAC3E,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IACnE,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAEjC,mEAAmE;IACnE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,UAAU,CAAC,OAAO;YAAE,OAAO;QAC/B,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;QAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC1C,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU;YAAE,OAAO;QACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC7B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,IAAI;YAAE,SAAS,EAAE,CAAC;IACxB,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;IAErC,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,CAAsB,EAAE,EAAE;QACzB,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,UAAU;YAAE,YAAY,EAAE,CAAC;IACtD,CAAC,EACD,CAAC,UAAU,EAAE,YAAY,CAAC,CAC3B,CAAC;IAEF,MAAM,YAAY,GAAG,4BAA4B,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAEnE,OAAO,CACL,eAAK,SAAS,EAAC,sDAAsD,aACnE,KAAC,UAAU,IAAC,KAAK,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,GAAI,EAErD,MAAC,eAAe,eACd,YAAG,SAAS,EAAC,0EAA0E,YACpF,CAAC,CAAC,gBAAgB,GACjB,EAEJ,KAAC,SAAS,IACR,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC9C,SAAS,EAAE,aAAa,EACxB,WAAW,EAAE,CAAC,CAAC,uBAAuB,EACtC,SAAS,QACT,SAAS,EAAC,sDAAsD,GAChE,EACD,OAAO,EAAE,SAAS,IAAI,KAAC,YAAY,IAAC,OAAO,EAAE,OAAO,CAAC,SAAS,GAAI,IACnD,EAElB,cAAK,SAAS,EAAC,oEAAoE,YACjF,KAAC,aAAa,IACZ,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,CAAC,YAAY,IAAI,OAAO,EAAE,WAAW,YAE9C,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAChC,GACZ,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,16 +1,25 @@
|
|
|
1
1
|
import type { AccountRegion } from "../../../common/account.js";
|
|
2
2
|
type AccountEnrollmentPageProps = {
|
|
3
3
|
region: AccountRegion;
|
|
4
|
+
sessionId: string;
|
|
4
5
|
onBack: () => void;
|
|
5
6
|
onReady: () => void;
|
|
6
7
|
};
|
|
7
8
|
/**
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
9
|
+
* Enrollment page — renders the right view for the current enrollment state.
|
|
10
|
+
* The modal is dumb: it polls `startEnrollment`, reads the response, and
|
|
11
|
+
* renders. All state transitions are driven by the server.
|
|
12
|
+
*
|
|
13
|
+
* States:
|
|
14
|
+
* kyc_required → SumSub widget (first-time docs)
|
|
15
|
+
* kyc_retry → retry banner + SumSub widget
|
|
16
|
+
* kyc_pending_review → pulsing dots, "reviewing your documents"
|
|
17
|
+
* kyc_rejected_final → terminal error
|
|
18
|
+
* provider_pending → pulsing dots, "setting up your account"
|
|
19
|
+
* active → auto-advance to payment
|
|
20
|
+
* suspended → terminal error
|
|
21
|
+
* error → error with optional retry
|
|
13
22
|
*/
|
|
14
|
-
export declare function AccountEnrollmentPage({ region, onBack, onReady, }: AccountEnrollmentPageProps): import("react/jsx-runtime").JSX.Element | null;
|
|
23
|
+
export declare function AccountEnrollmentPage({ region, sessionId, onBack, onReady, }: AccountEnrollmentPageProps): import("react/jsx-runtime").JSX.Element | null;
|
|
15
24
|
export {};
|
|
16
25
|
//# sourceMappingURL=AccountEnrollmentPage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountEnrollmentPage.d.ts","sourceRoot":"","sources":["../../../../src/web/components/account/AccountEnrollmentPage.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAsB,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"AccountEnrollmentPage.d.ts","sourceRoot":"","sources":["../../../../src/web/components/account/AccountEnrollmentPage.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAsB,MAAM,4BAA4B,CAAC;AAUpF,KAAK,0BAA0B,GAAG;IAChC,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAqBF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,MAAM,EACN,SAAS,EACT,MAAM,EACN,OAAO,GACR,EAAE,0BAA0B,kDAmK5B"}
|
|
@@ -2,26 +2,54 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import SumsubWebSdk from "@sumsub/websdk-react";
|
|
3
3
|
import { useCallback, useEffect, useRef, useState } from "react";
|
|
4
4
|
import { useDaimoClient } from "../../hooks/DaimoClientContext.js";
|
|
5
|
-
import { ConfirmationSpinner } from "../ConfirmationSpinner.js";
|
|
6
|
-
import { ErrorPage } from "../ErrorPage.js";
|
|
7
5
|
import { t } from "../../hooks/locale.js";
|
|
8
6
|
import { useAccountFlow } from "../../hooks/useAccountFlow.js";
|
|
9
|
-
import {
|
|
7
|
+
import { PrimaryButton } from "../buttons.js";
|
|
8
|
+
import { ErrorPage } from "../ErrorPage.js";
|
|
9
|
+
import { ErrorIcon } from "../icons.js";
|
|
10
|
+
import { ProgressPulse } from "../ProgressPulse.js";
|
|
11
|
+
import { CenteredContent, ContactSupportButton, PageHeader } from "../shared.js";
|
|
12
|
+
/** Actions that should trigger polling — the state is still advancing. */
|
|
13
|
+
const POLLING_ACTIONS = new Set([
|
|
14
|
+
"kyc_required",
|
|
15
|
+
"kyc_retry",
|
|
16
|
+
"kyc_pending_review",
|
|
17
|
+
"provider_pending",
|
|
18
|
+
]);
|
|
19
|
+
/** After KYC submission, only these actions represent forward progress.
|
|
20
|
+
* Anything else (e.g. stale kyc_required) is suppressed until the
|
|
21
|
+
* webhook arrives and the server catches up. */
|
|
22
|
+
const FORWARD_FROM_KYC = new Set([
|
|
23
|
+
"kyc_pending_review",
|
|
24
|
+
"kyc_retry",
|
|
25
|
+
"kyc_rejected_final",
|
|
26
|
+
"provider_pending",
|
|
27
|
+
"active",
|
|
28
|
+
]);
|
|
10
29
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
30
|
+
* Enrollment page — renders the right view for the current enrollment state.
|
|
31
|
+
* The modal is dumb: it polls `startEnrollment`, reads the response, and
|
|
32
|
+
* renders. All state transitions are driven by the server.
|
|
33
|
+
*
|
|
34
|
+
* States:
|
|
35
|
+
* kyc_required → SumSub widget (first-time docs)
|
|
36
|
+
* kyc_retry → retry banner + SumSub widget
|
|
37
|
+
* kyc_pending_review → pulsing dots, "reviewing your documents"
|
|
38
|
+
* kyc_rejected_final → terminal error
|
|
39
|
+
* provider_pending → pulsing dots, "setting up your account"
|
|
40
|
+
* active → auto-advance to payment
|
|
41
|
+
* suspended → terminal error
|
|
42
|
+
* error → error with optional retry
|
|
16
43
|
*/
|
|
17
|
-
export function AccountEnrollmentPage({ region, onBack, onReady, }) {
|
|
44
|
+
export function AccountEnrollmentPage({ region, sessionId, onBack, onReady, }) {
|
|
18
45
|
const account = useAccountFlow();
|
|
19
46
|
const client = useDaimoClient();
|
|
20
47
|
const [response, setResponse] = useState(null);
|
|
21
48
|
const [isLoading, setIsLoading] = useState(true);
|
|
49
|
+
const [kycAccepted, setKycAccepted] = useState(false);
|
|
22
50
|
const started = useRef(false);
|
|
23
51
|
const responseRef = useRef(null);
|
|
24
|
-
// After KYC submit, suppress
|
|
52
|
+
// After KYC submit, suppress stale responses until webhook arrives
|
|
25
53
|
const awaitingWebhook = useRef(false);
|
|
26
54
|
const fetchEnrollment = useCallback(async () => {
|
|
27
55
|
if (!account)
|
|
@@ -35,22 +63,21 @@ export function AccountEnrollmentPage({ region, onBack, onReady, }) {
|
|
|
35
63
|
}
|
|
36
64
|
catch (err) {
|
|
37
65
|
console.error("[enrollment] fetch failed:", err);
|
|
38
|
-
// While awaiting webhook, swallow errors — backend may be mid-processing
|
|
39
66
|
if (awaitingWebhook.current)
|
|
40
67
|
return;
|
|
41
|
-
result = { action: "error", message: t.errorGeneric };
|
|
68
|
+
result = { action: "error", message: t.errorGeneric, retryable: true };
|
|
42
69
|
}
|
|
43
70
|
if (isInitial)
|
|
44
71
|
setIsLoading(false);
|
|
45
72
|
if (!result)
|
|
46
73
|
return;
|
|
47
|
-
// While awaiting webhook, only accept forward progress
|
|
74
|
+
// While awaiting webhook, only accept forward progress
|
|
48
75
|
if (awaitingWebhook.current) {
|
|
49
|
-
if (
|
|
76
|
+
if (FORWARD_FROM_KYC.has(result.action)) {
|
|
50
77
|
awaitingWebhook.current = false;
|
|
51
78
|
}
|
|
52
79
|
else {
|
|
53
|
-
return;
|
|
80
|
+
return;
|
|
54
81
|
}
|
|
55
82
|
}
|
|
56
83
|
if (result.action === "active") {
|
|
@@ -58,51 +85,84 @@ export function AccountEnrollmentPage({ region, onBack, onReady, }) {
|
|
|
58
85
|
setResponse(result);
|
|
59
86
|
onReady();
|
|
60
87
|
}
|
|
61
|
-
else if (!responseRef.current ||
|
|
88
|
+
else if (!responseRef.current ||
|
|
89
|
+
responseRef.current.action !== result.action) {
|
|
62
90
|
responseRef.current = result;
|
|
63
91
|
setResponse(result);
|
|
64
92
|
}
|
|
65
93
|
}, [account, client, region, onReady]);
|
|
66
|
-
/** Called when SumSub reports
|
|
94
|
+
/** Called when SumSub reports docs submitted. Optimistically show review. */
|
|
67
95
|
const handleKycSubmitted = useCallback(() => {
|
|
68
|
-
// Optimistically show pending spinner while we wait for the webhook
|
|
69
96
|
awaitingWebhook.current = true;
|
|
70
|
-
responseRef.current = { action: "
|
|
71
|
-
setResponse({ action: "
|
|
97
|
+
responseRef.current = { action: "kyc_pending_review" };
|
|
98
|
+
setResponse({ action: "kyc_pending_review" });
|
|
72
99
|
}, []);
|
|
73
|
-
// Initial
|
|
100
|
+
// Initial fetch
|
|
74
101
|
useEffect(() => {
|
|
75
102
|
if (started.current)
|
|
76
103
|
return;
|
|
77
104
|
started.current = true;
|
|
78
105
|
fetchEnrollment();
|
|
79
106
|
}, [fetchEnrollment]);
|
|
80
|
-
// Poll while
|
|
107
|
+
// Poll while the state is still advancing
|
|
81
108
|
useEffect(() => {
|
|
82
|
-
if (response
|
|
109
|
+
if (!response || !POLLING_ACTIONS.has(response.action))
|
|
83
110
|
return;
|
|
84
111
|
const interval = setInterval(fetchEnrollment, 2000);
|
|
85
112
|
return () => clearInterval(interval);
|
|
86
113
|
}, [response?.action, fetchEnrollment]);
|
|
114
|
+
// --- Render ---
|
|
87
115
|
if (isLoading) {
|
|
88
|
-
return (
|
|
89
|
-
}
|
|
90
|
-
if (response?.action === "kyc_required") {
|
|
91
|
-
return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0", children: [_jsx(PageHeader, { title: t.accountEnrollment, onBack: onBack }), _jsx(SumSubWidget, { kycToken: response.kycToken, onComplete: handleKycSubmitted })] }));
|
|
92
|
-
}
|
|
93
|
-
if (response?.action === "pending") {
|
|
94
|
-
return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0", children: [_jsx(PageHeader, { title: t.accountEnrollment, onBack: onBack }), _jsx(CenteredContent, { children: _jsx(ConfirmationSpinner, { done: false }) })] }));
|
|
116
|
+
return (_jsx(EnrollmentWaiting, { title: t.accountEnrollment, label: t.loading, onBack: onBack }));
|
|
95
117
|
}
|
|
96
|
-
if (response
|
|
97
|
-
return
|
|
118
|
+
if (!response)
|
|
119
|
+
return null;
|
|
120
|
+
switch (response.action) {
|
|
121
|
+
case "kyc_required":
|
|
122
|
+
if (!kycAccepted) {
|
|
123
|
+
return (_jsx(KycIntro, { onContinue: () => setKycAccepted(true), onBack: onBack }));
|
|
124
|
+
}
|
|
125
|
+
return (_jsx("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0 daimo-pt-14", children: _jsx(SumSubWidget, { kycToken: response.kycToken, onComplete: handleKycSubmitted }) }));
|
|
126
|
+
case "kyc_retry":
|
|
127
|
+
return (_jsx("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0 daimo-pt-14", children: _jsx(SumSubWidget, { kycToken: response.kycToken, onComplete: handleKycSubmitted }) }));
|
|
128
|
+
case "kyc_pending_review":
|
|
129
|
+
return (_jsx(EnrollmentWaiting, { title: t.accountEnrollmentPending, label: t.accountEnrollmentPendingDesc, onBack: onBack }));
|
|
130
|
+
case "provider_pending":
|
|
131
|
+
return (_jsx(EnrollmentWaiting, { title: t.accountProviderPending, label: t.accountProviderPendingDesc }));
|
|
132
|
+
case "kyc_rejected_final":
|
|
133
|
+
return (_jsx(EnrollmentTerminal, { title: t.accountEnrollmentRejected, message: response.reason, sessionId: sessionId }));
|
|
134
|
+
case "suspended":
|
|
135
|
+
return (_jsx(EnrollmentTerminal, { title: t.accountSuspended, message: response.reason, sessionId: sessionId }));
|
|
136
|
+
case "error":
|
|
137
|
+
return (_jsx(ErrorPage, { message: response.message, sessionId: sessionId, retryText: t.tryAgain, onRetry: response.retryable ? fetchEnrollment : undefined, hideRetry: !response.retryable }));
|
|
138
|
+
case "active":
|
|
139
|
+
return null;
|
|
98
140
|
}
|
|
99
|
-
return null;
|
|
100
141
|
}
|
|
101
|
-
// ---
|
|
142
|
+
// --- Sub-components ---
|
|
143
|
+
/** Pre-KYC intro — explains why verification is needed. */
|
|
144
|
+
function KycIntro({ onContinue, onBack, }) {
|
|
145
|
+
return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0", children: [_jsx(PageHeader, { title: t.accountKycIntroTitle, onBack: onBack }), _jsxs("div", { className: "daimo-flex-1 daimo-flex daimo-flex-col daimo-items-center daimo-justify-center daimo-px-10", children: [_jsx("div", { className: "daimo-w-12 daimo-h-12 daimo-rounded-full daimo-flex daimo-items-center daimo-justify-center", style: {
|
|
146
|
+
backgroundColor: "var(--daimo-surface-secondary)",
|
|
147
|
+
animation: "daimo-scale-in 400ms cubic-bezier(0.175, 0.885, 0.32, 1.1) both",
|
|
148
|
+
}, children: _jsxs("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", style: { color: "var(--daimo-text-secondary)" }, children: [_jsx("path", { d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z" }), _jsx("path", { d: "m9 12 2 2 4-4" })] }) }), _jsx("p", { className: "daimo-text-xs daimo-text-[var(--daimo-text-muted)] daimo-text-center daimo-leading-relaxed daimo-mt-4 daimo-max-w-[240px]", style: { animation: "daimo-fade-up 300ms cubic-bezier(0.19, 1, 0.22, 1) 100ms both" }, children: t.accountKycIntroDesc }), _jsxs("div", { className: "daimo-flex daimo-items-center daimo-gap-6 daimo-mt-5 daimo-mb-4", style: { animation: "daimo-fade-up 300ms cubic-bezier(0.19, 1, 0.22, 1) 200ms both" }, children: [_jsx(TrustSignal, { icon: "lock", label: "Encrypted" }), _jsx(TrustSignal, { icon: "eye-off", label: "Private" }), _jsx(TrustSignal, { icon: "clock", label: "2 min" })] })] }), _jsx("div", { className: "daimo-px-6 daimo-pb-8 daimo-flex daimo-flex-col daimo-items-center", style: { animation: "daimo-fade-up 300ms cubic-bezier(0.19, 1, 0.22, 1) 300ms both" }, children: _jsx(PrimaryButton, { onClick: onContinue, children: t.accountKycIntroCta }) })] }));
|
|
149
|
+
}
|
|
150
|
+
/** Small trust signal with icon + label. */
|
|
151
|
+
function TrustSignal({ icon, label }) {
|
|
152
|
+
return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-items-center daimo-gap-1.5", children: [_jsxs("div", { className: "daimo-w-8 daimo-h-8 daimo-rounded-full daimo-flex daimo-items-center daimo-justify-center", style: { backgroundColor: "var(--daimo-surface-secondary)" }, children: [icon === "lock" && (_jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", style: { color: "var(--daimo-text-muted)" }, children: [_jsx("rect", { width: "18", height: "11", x: "3", y: "11", rx: "2", ry: "2" }), _jsx("path", { d: "M7 11V7a5 5 0 0 1 10 0v4" })] })), icon === "eye-off" && (_jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", style: { color: "var(--daimo-text-muted)" }, children: [_jsx("path", { d: "M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49" }), _jsx("path", { d: "M14.084 14.158a3 3 0 0 1-4.242-4.242" }), _jsx("path", { d: "M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143" }), _jsx("path", { d: "m2 2 20 20" })] })), icon === "clock" && (_jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", style: { color: "var(--daimo-text-muted)" }, children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("polyline", { points: "12 6 12 12 16 14" })] }))] }), _jsx("span", { className: "daimo-text-[10px] daimo-text-[var(--daimo-text-muted)]", children: label })] }));
|
|
153
|
+
}
|
|
154
|
+
/** Terminal error — specific title, error icon, message, and support link. */
|
|
155
|
+
function EnrollmentTerminal({ title, message, sessionId, }) {
|
|
156
|
+
return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0", children: [_jsx(PageHeader, { title: title }), _jsxs("div", { className: "daimo-flex-1 daimo-flex daimo-flex-col daimo-items-center daimo-justify-center daimo-p-6 daimo-gap-6", children: [_jsx("div", { className: "daimo-w-16 daimo-h-16 daimo-rounded-full daimo-flex daimo-items-center daimo-justify-center", style: { backgroundColor: "var(--daimo-error-light)" }, children: _jsx(ErrorIcon, { size: 32 }) }), _jsx("p", { className: "daimo-text-sm daimo-text-[var(--daimo-text-secondary)] daimo-text-center daimo-leading-relaxed daimo-px-4", children: message }), _jsx(ContactSupportButton, { subject: title, info: { sessionId, error: message } })] })] }));
|
|
157
|
+
}
|
|
158
|
+
/** Waiting view — pulsing dots with title and optional description. */
|
|
159
|
+
function EnrollmentWaiting({ title, label, onBack, }) {
|
|
160
|
+
return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0", children: [_jsx(PageHeader, { title: title, onBack: onBack }), _jsx(CenteredContent, { children: _jsx(ProgressPulse, { label: label }) })] }));
|
|
161
|
+
}
|
|
162
|
+
/** SumSub identity verification widget. */
|
|
102
163
|
function SumSubWidget({ kycToken, onComplete, }) {
|
|
103
164
|
const handleMessage = useCallback((type) => {
|
|
104
165
|
console.log("[sumsub] event:", type);
|
|
105
|
-
// User finished submitting — start polling backend for approval
|
|
106
166
|
if (type === "idCheck.onApplicantSubmitted") {
|
|
107
167
|
onComplete();
|
|
108
168
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountEnrollmentPage.js","sourceRoot":"","sources":["../../../../src/web/components/account/AccountEnrollmentPage.tsx"],"names":[],"mappings":";AAAA,OAAO,YAAY,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGjE,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"AccountEnrollmentPage.js","sourceRoot":"","sources":["../../../../src/web/components/account/AccountEnrollmentPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountOtpPage.d.ts","sourceRoot":"","sources":["../../../../src/web/components/account/AccountOtpPage.tsx"],"names":[],"mappings":"AAWA,KAAK,mBAAmB,GAAG;IACzB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAIF,wBAAgB,cAAc,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"AccountOtpPage.d.ts","sourceRoot":"","sources":["../../../../src/web/components/account/AccountOtpPage.tsx"],"names":[],"mappings":"AAWA,KAAK,mBAAmB,GAAG;IACzB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAIF,wBAAgB,cAAc,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,mBAAmB,2CA+GzE"}
|
|
@@ -24,11 +24,22 @@ export function AccountOtpPage({ onBack, onVerified }) {
|
|
|
24
24
|
inputsRef.current[index + 1]?.focus();
|
|
25
25
|
}
|
|
26
26
|
}, [digits, account]);
|
|
27
|
+
const handleVerify = useCallback(async () => {
|
|
28
|
+
if (!account || !isComplete)
|
|
29
|
+
return;
|
|
30
|
+
const success = await account.verifyOtp(code);
|
|
31
|
+
if (success)
|
|
32
|
+
onVerified();
|
|
33
|
+
}, [account, code, isComplete, onVerified]);
|
|
27
34
|
const handleKeyDown = useCallback((index, e) => {
|
|
28
35
|
if (e.key === "Backspace" && !digits[index] && index > 0) {
|
|
29
36
|
inputsRef.current[index - 1]?.focus();
|
|
30
37
|
}
|
|
31
|
-
|
|
38
|
+
else if (e.key === "Enter" && isComplete) {
|
|
39
|
+
e.preventDefault();
|
|
40
|
+
handleVerify();
|
|
41
|
+
}
|
|
42
|
+
}, [digits, isComplete, handleVerify]);
|
|
32
43
|
const handlePaste = useCallback((e) => {
|
|
33
44
|
e.preventDefault();
|
|
34
45
|
const pasted = e.clipboardData.getData("text").replace(/\D/g, "");
|
|
@@ -40,13 +51,6 @@ export function AccountOtpPage({ onBack, onVerified }) {
|
|
|
40
51
|
const focusIdx = Math.min(pasted.length, OTP_LENGTH - 1);
|
|
41
52
|
inputsRef.current[focusIdx]?.focus();
|
|
42
53
|
}, [digits]);
|
|
43
|
-
const handleVerify = useCallback(async () => {
|
|
44
|
-
if (!account || !isComplete)
|
|
45
|
-
return;
|
|
46
|
-
const success = await account.verifyOtp(code);
|
|
47
|
-
if (success)
|
|
48
|
-
onVerified();
|
|
49
|
-
}, [account, code, isComplete, onVerified]);
|
|
50
54
|
const handleResend = useCallback(async () => {
|
|
51
55
|
if (!account)
|
|
52
56
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountOtpPage.js","sourceRoot":"","sources":["../../../../src/web/components/account/AccountOtpPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEtD,OAAO,EAAE,CAAC,EAAE,MAAM,uBAAuB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EACL,eAAe,EACf,YAAY,EACZ,UAAU,GACX,MAAM,cAAc,CAAC;AAOtB,MAAM,UAAU,GAAG,CAAC,CAAC;AAErB,MAAM,UAAU,cAAc,CAAC,EAAE,MAAM,EAAE,UAAU,EAAuB;IACxE,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAW,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3E,MAAM,SAAS,GAAG,MAAM,CAA8B,EAAE,CAAC,CAAC;IAE1D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC;IAE9C,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,KAAa,EAAE,KAAa,EAAE,EAAE;QAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO;QACjC,IAAI,OAAO,EAAE,SAAS;YAAE,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,SAAS,CAAC,IAAI,CAAC,CAAC;QAChB,eAAe;QACf,IAAI,KAAK,IAAI,KAAK,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC;YACpC,SAAS,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;QACxC,CAAC;IACH,CAAC,EACD,CAAC,MAAM,EAAE,OAAO,CAAC,CAClB,CAAC;IAEF,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,KAAa,EAAE,CAAwC,EAAE,EAAE;QAC1D,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACzD,SAAS,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;QACxC,CAAC;IACH,CAAC,EACD,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"AccountOtpPage.js","sourceRoot":"","sources":["../../../../src/web/components/account/AccountOtpPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -4,9 +4,10 @@ type AccountStatusPageProps = {
|
|
|
4
4
|
sessionId: string;
|
|
5
5
|
clientSecret: string;
|
|
6
6
|
baseUrl: string;
|
|
7
|
-
onBack: () => void;
|
|
8
7
|
};
|
|
9
|
-
/**
|
|
10
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Async deposit status — ConfirmationSpinner + progress steps + action rows.
|
|
10
|
+
*/
|
|
11
|
+
export declare function AccountStatusPage({ region, sessionId, clientSecret, baseUrl, }: AccountStatusPageProps): import("react/jsx-runtime").JSX.Element;
|
|
11
12
|
export {};
|
|
12
13
|
//# sourceMappingURL=AccountStatusPage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountStatusPage.d.ts","sourceRoot":"","sources":["../../../../src/web/components/account/AccountStatusPage.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAwB,MAAM,4BAA4B,CAAC;AAQtF,KAAK,sBAAsB,GAAG;IAC5B,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"AccountStatusPage.d.ts","sourceRoot":"","sources":["../../../../src/web/components/account/AccountStatusPage.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAwB,MAAM,4BAA4B,CAAC;AAQtF,KAAK,sBAAsB,GAAG;IAC5B,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAyBF;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,SAAS,EACT,YAAY,EACZ,OAAO,GACR,EAAE,sBAAsB,2CAmDxB"}
|
|
@@ -3,16 +3,31 @@ import { useState } from "react";
|
|
|
3
3
|
import { useDaimoClient } from "../../hooks/DaimoClientContext.js";
|
|
4
4
|
import { t } from "../../hooks/locale.js";
|
|
5
5
|
import { useDepositPoller } from "../../hooks/useDepositPoller.js";
|
|
6
|
-
import { ConfirmationSpinner } from "../ConfirmationSpinner.js";
|
|
7
6
|
import { ErrorPage } from "../ErrorPage.js";
|
|
8
|
-
import { CenteredContent, PageHeader
|
|
7
|
+
import { CenteredContent, PageHeader } from "../shared.js";
|
|
9
8
|
const TERMINAL_STATUSES = [
|
|
10
9
|
"completed",
|
|
11
10
|
"failed",
|
|
12
11
|
"expired",
|
|
13
12
|
];
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
const REGION_ETA = {
|
|
14
|
+
CA: "5–30 min",
|
|
15
|
+
US: "1–3 days",
|
|
16
|
+
};
|
|
17
|
+
/** Map status to a 0-2 step index for the progress indicator. */
|
|
18
|
+
function getStep(status) {
|
|
19
|
+
switch (status) {
|
|
20
|
+
case "payment_received": return 0;
|
|
21
|
+
case "token_delivered": return 1;
|
|
22
|
+
case "completed": return 2;
|
|
23
|
+
default: return 0;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
const STEP_LABELS = ["Received", "Processing", "Complete"];
|
|
27
|
+
/**
|
|
28
|
+
* Async deposit status — ConfirmationSpinner + progress steps + action rows.
|
|
29
|
+
*/
|
|
30
|
+
export function AccountStatusPage({ region, sessionId, clientSecret, baseUrl, }) {
|
|
16
31
|
const client = useDaimoClient();
|
|
17
32
|
const [status, setStatus] = useState("payment_received");
|
|
18
33
|
useDepositPoller({
|
|
@@ -23,12 +38,36 @@ export function AccountStatusPage({ sessionId, clientSecret, baseUrl, onBack, })
|
|
|
23
38
|
shouldStop: (deposit) => TERMINAL_STATUSES.includes(deposit.status),
|
|
24
39
|
});
|
|
25
40
|
const isComplete = status === "completed";
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
if (isFailed) {
|
|
29
|
-
return (_jsx(ErrorPage, { message: t.errorDepositFailed, hideRetry: true }));
|
|
41
|
+
if (status === "failed" || status === "expired") {
|
|
42
|
+
return _jsx(ErrorPage, { message: t.errorDepositFailed, sessionId: sessionId, hideRetry: true });
|
|
30
43
|
}
|
|
31
|
-
const
|
|
32
|
-
|
|
44
|
+
const step = getStep(status);
|
|
45
|
+
const title = isComplete ? t.accountDepositComplete : t.accountDepositReceived;
|
|
46
|
+
const receiptUrl = `${baseUrl}/receipt?id=${sessionId}`;
|
|
47
|
+
const accountUrl = `${baseUrl}/account?session=${sessionId}`;
|
|
48
|
+
return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0", children: [_jsx(PageHeader, { title: title }), _jsx(CenteredContent, { children: _jsxs("div", { className: "daimo-flex daimo-flex-col daimo-items-center daimo-gap-3", children: [_jsx(DepositProgress, { step: step }), !isComplete && (_jsxs("span", { className: "daimo-text-[10px] daimo-px-2.5 daimo-py-1 daimo-rounded-full", style: {
|
|
49
|
+
backgroundColor: "var(--daimo-surface-secondary)",
|
|
50
|
+
color: "var(--daimo-text-muted)",
|
|
51
|
+
fontVariantNumeric: "tabular-nums",
|
|
52
|
+
}, children: ["ETA ", REGION_ETA[region]] }))] }) }), _jsxs("div", { className: "daimo-px-8 daimo-pb-4 daimo-flex daimo-flex-col daimo-gap-1", children: [_jsx(LinkPill, { href: accountUrl, icon: "user", label: t.accountViewAccount }), _jsx(LinkPill, { href: receiptUrl, icon: "receipt", label: t.showReceipt })] })] }));
|
|
53
|
+
}
|
|
54
|
+
/** Three-dot progress indicator with current step label. */
|
|
55
|
+
function DepositProgress({ step }) {
|
|
56
|
+
return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-items-center daimo-gap-2", children: [_jsx("div", { className: "daimo-flex daimo-items-center daimo-w-[120px]", children: [0, 1, 2].map((i) => (_jsxs("div", { className: "daimo-contents", children: [i > 0 && (_jsx("div", { className: "daimo-flex-1 daimo-h-[2px] daimo-rounded-full", style: {
|
|
57
|
+
backgroundColor: i <= step
|
|
58
|
+
? "var(--daimo-success)"
|
|
59
|
+
: "var(--daimo-surface-secondary)",
|
|
60
|
+
transition: "background-color 300ms ease-out",
|
|
61
|
+
} })), _jsx("div", { className: "daimo-w-2 daimo-h-2 daimo-rounded-full daimo-shrink-0", style: {
|
|
62
|
+
backgroundColor: i <= step
|
|
63
|
+
? "var(--daimo-success)"
|
|
64
|
+
: "var(--daimo-surface-secondary)",
|
|
65
|
+
transition: "background-color 300ms ease-out",
|
|
66
|
+
boxShadow: i === step ? "0 0 0 3px var(--daimo-success-light)" : "none",
|
|
67
|
+
} })] }, i))) }), _jsx("span", { className: "daimo-text-[10px]", style: { color: "var(--daimo-text-muted)", transition: "color 200ms ease-out" }, children: STEP_LABELS[step] })] }));
|
|
68
|
+
}
|
|
69
|
+
/** Compact pill link — icon + label, 44px min tap target. */
|
|
70
|
+
function LinkPill({ href, icon, label }) {
|
|
71
|
+
return (_jsxs("a", { href: href, target: "_blank", rel: "noopener noreferrer", className: "daimo-flex daimo-items-center daimo-gap-2 daimo-rounded-[var(--daimo-radius-md)] daimo-px-3 daimo-py-2.5 daimo-text-xs daimo-font-medium daimo-transition-[background-color] daimo-duration-150 hover:[@media(hover:hover)]:daimo-bg-[var(--daimo-surface-secondary)]", style: { color: "var(--daimo-text-muted)" }, children: [icon === "user" && (_jsxs("svg", { width: "13", height: "13", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("circle", { cx: "12", cy: "8", r: "5" }), _jsx("path", { d: "M20 21a8 8 0 0 0-16 0" })] })), icon === "receipt" && (_jsxs("svg", { width: "13", height: "13", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("path", { d: "M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z" }), _jsx("path", { d: "M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8" }), _jsx("path", { d: "M12 17.5v-11" })] })), _jsx("span", { className: "daimo-flex-1", children: label }), _jsxs("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", style: { opacity: 0.5 }, children: [_jsx("path", { d: "M7 7h10v10" }), _jsx("path", { d: "M7 17 17 7" })] })] }));
|
|
33
72
|
}
|
|
34
73
|
//# sourceMappingURL=AccountStatusPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountStatusPage.js","sourceRoot":"","sources":["../../../../src/web/components/account/AccountStatusPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGjC,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,CAAC,EAAE,MAAM,uBAAuB,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"AccountStatusPage.js","sourceRoot":"","sources":["../../../../src/web/components/account/AccountStatusPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openDeeplink.d.ts","sourceRoot":"","sources":["../../../../src/web/components/account/openDeeplink.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"openDeeplink.d.ts","sourceRoot":"","sources":["../../../../src/web/components/account/openDeeplink.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAGlE,yDAAyD;AACzD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAqB5D"}
|
|
@@ -1,13 +1,21 @@
|
|
|
1
|
+
import { isDesktopBrowser } from "../../isDesktopBrowser.js";
|
|
1
2
|
/** Execute a provider deeplink in the user's browser. */
|
|
2
3
|
export function openDeeplink(deeplink) {
|
|
4
|
+
const desktop = isDesktopBrowser();
|
|
5
|
+
if (!desktop) {
|
|
6
|
+
const url = deeplink.type === "form-post" ? deeplink.warmUrl : deeplink.url;
|
|
7
|
+
// In a native WKWebView, use the bridge to open in Safari directly.
|
|
8
|
+
if (postNativeOpenUrl(url))
|
|
9
|
+
return;
|
|
10
|
+
// Fallback: trigger navigation for the native delegate to intercept.
|
|
11
|
+
window.location.href = url;
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
3
14
|
switch (deeplink.type) {
|
|
4
15
|
case "redirect":
|
|
5
16
|
window.open(deeplink.url, "_blank");
|
|
6
17
|
break;
|
|
7
18
|
case "form-post":
|
|
8
|
-
// No browser API can open a new tab + POST form data in one step.
|
|
9
|
-
// We open warmUrl first (GET, sets cookies), then replace with a
|
|
10
|
-
// self-submitting form targeting formAction.
|
|
11
19
|
openFormPost(deeplink);
|
|
12
20
|
break;
|
|
13
21
|
}
|
|
@@ -42,4 +50,13 @@ function escAttr(s) {
|
|
|
42
50
|
.replace(/</g, "<")
|
|
43
51
|
.replace(/>/g, ">");
|
|
44
52
|
}
|
|
53
|
+
/** Post an openUrl message to the native WKWebView bridge. Returns true if sent. */
|
|
54
|
+
function postNativeOpenUrl(url) {
|
|
55
|
+
const w = window;
|
|
56
|
+
const handler = w.webkit?.messageHandlers?.daimoPay;
|
|
57
|
+
if (!handler)
|
|
58
|
+
return false;
|
|
59
|
+
handler.postMessage({ type: "openUrl", url });
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
45
62
|
//# sourceMappingURL=openDeeplink.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openDeeplink.js","sourceRoot":"","sources":["../../../../src/web/components/account/openDeeplink.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"openDeeplink.js","sourceRoot":"","sources":["../../../../src/web/components/account/openDeeplink.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,yDAAyD;AACzD,MAAM,UAAU,YAAY,CAAC,QAAyB;IACpD,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;IAEnC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,GAAG,GACP,QAAQ,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;QAClE,oEAAoE;QACpE,IAAI,iBAAiB,CAAC,GAAG,CAAC;YAAE,OAAO;QACnC,qEAAqE;QACrE,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC;QAC3B,OAAO;IACT,CAAC;IAED,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,UAAU;YACb,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YACpC,MAAM;QACR,KAAK,WAAW;YACd,YAAY,CAAC,QAAQ,CAAC,CAAC;YACvB,MAAM;IACV,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,QAAiD;IACrE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACtD,IAAI,CAAC,KAAK;QAAE,OAAO;IAEnB,UAAU,CAAC,GAAG,EAAE;QACd,KAAK,CAAC,QAAQ,CAAC,IAAI,GAAG,aAAa,CAAC;QACpC,UAAU,CAAC,GAAG,EAAE;YACd,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;iBAC/C,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,8BAA8B,OAAO,CAAC,CAAC,CAAC,YAAY,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;iBACpF,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,KAAK,CAAC,QAAQ,CAAC,KAAK,CAClB,cAAc;gBACd,gFAAgF;gBAChF,mCAAmC;gBACnC,sCAAsC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI;gBACtE,GAAG,MAAM,SAAS;gBAClB,yDAAyD;gBACzD,gBAAgB,CACjB,CAAC;YACF,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC3B,CAAC;AAED,+EAA+E;AAC/E,SAAS,OAAO,CAAC,CAAS;IACxB,OAAO,CAAC;SACL,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC3B,CAAC;AAED,oFAAoF;AACpF,SAAS,iBAAiB,CAAC,GAAW;IACpC,MAAM,CAAC,GAAG,MAIT,CAAC;IACF,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,CAAC;IACpD,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9C,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"containers.d.ts","sourceRoot":"","sources":["../../../src/web/components/containers.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqB,MAAM,OAAO,CAAC;AAKrD,KAAK,cAAc,GAAG;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,KAAK,mBAAmB,GAAG,cAAc,GAAG;IAC1C,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;
|
|
1
|
+
{"version":3,"file":"containers.d.ts","sourceRoot":"","sources":["../../../src/web/components/containers.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqB,MAAM,OAAO,CAAC;AAKrD,KAAK,cAAc,GAAG;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,KAAK,mBAAmB,GAAG,cAAc,GAAG;IAC1C,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAuDF,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,gBAAuB,EACvB,OAAO,EACP,OAAO,GACR,EAAE,mBAAmB,2CAoCrB;AAED,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,gBAAuB,GACxB,EAAE,cAAc,2CAWhB"}
|