@incodetech/web 0.0.0-dev-20260909-14ef44cf → 0.0.0-dev-20260910-30fb659a
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/ae-signature/ae-signature.es.js +3 -3
- package/dist/antifraud/antifraud.es.js +3 -3
- package/dist/assets/dm-sans-latin-400-normal.woff2 +0 -0
- package/dist/assets/dm-sans-latin-500-normal.woff2 +0 -0
- package/dist/assets/dm-sans-latin-600-normal.woff2 +0 -0
- package/dist/assets/dm-sans-latin-700-normal.woff2 +0 -0
- package/dist/assets/rethink-sans-latin-800-normal.woff2 +0 -0
- package/dist/authentication/authentication.es.js +4 -2
- package/dist/base.css +5 -5
- package/dist/baseTutorial-DdU221rI.js +172 -0
- package/dist/bottomSheet-C3MHkEfL.js +101 -0
- package/dist/cameraOverlay-hVopsg3m.js +2 -0
- package/dist/cameraOverlayHeader-DFD85Ezb.js +43 -0
- package/dist/cameraView-CR2WH_wN.js +49 -0
- package/dist/captureFooter-BlAq3nsT.js +67 -0
- package/dist/certificate-issuance/certificate-issuance.es.js +7 -5
- package/dist/checkbox-CSTnDDdf.js +97 -0
- package/dist/connectionError-TamPptzl.js +45 -0
- package/dist/consent/consent.es.js +6 -5
- package/dist/countries-jgOG0hnw.js +8560 -0
- package/dist/{countrySelector-DKg5Ds1n.js → countrySelector-7TnHDtSs.js} +3 -3
- package/dist/cross-document-data-match/cross-document-data-match.es.js +3 -3
- package/dist/curp-validation/curp-validation.es.js +10 -5
- package/dist/{customFields-CNoRKnPl.js → customFields-CYz-FC0C.js} +9 -5
- package/dist/{customWatchlist-ThbdoH2_.js → customWatchlist-DokxUqHy.js} +6 -5
- package/dist/{dashboardTheme-CwGkC76p.js → dashboardTheme-DBTW5Y2p.js} +1 -1
- package/dist/dateInputComposed-B1RmMKnV.js +1 -0
- package/dist/dateInputComposed-DdB7BruV.js +69 -0
- package/dist/document-capture/document-capture.es.js +1 -1
- package/dist/documentCapture-BkeibTS3.js +2 -0
- package/dist/{documentCapture-DX5zyk3c.js → documentCapture-heFwS-vY.js} +14 -7
- package/dist/dropdownComposed-CnIoWdph.js +386 -0
- package/dist/dropdownComposed-DbKfnljI.js +1 -0
- package/dist/dynamic-forms/dynamic-forms.es.js +11 -5
- package/dist/ekyb/ekyb.es.js +1 -1
- package/dist/ekybModule-CZdKKqpT.js +2 -0
- package/dist/{ekybModule-CLORvLGs.js → ekybModule-DAuLI3ad.js} +12 -8
- package/dist/ekyc/ekyc.es.js +1 -1
- package/dist/ekycModule-BvBAH-p5.js +2 -0
- package/dist/{ekycModule-CabDUmu7.js → ekycModule-v9k32tXV.js} +12 -6
- package/dist/electronic-signature/electronic-signature.es.js +1 -1
- package/dist/{electronic-signature-CZwV6Z7-.js → electronic-signature-2Uv08XOv.js} +7 -5
- package/dist/email/email.es.js +7 -6
- package/dist/{emailInput-CZmNT4xf.js → emailInput-D1LMc-aF.js} +3 -2
- package/dist/errorContent-Be-w9xjB.js +58 -0
- package/dist/expiredId-ziDNDwCS.js +80 -0
- package/dist/extensibility.es.js +699 -5
- package/dist/face-match/face-match.es.js +1 -1
- package/dist/faceMatch-CvrSgSTi.js +2 -0
- package/dist/{faceMatch-DXTrrC-m.js → faceMatch-D_6MaDry.js} +6 -6
- package/dist/field-comparison/field-comparison.es.js +1 -1
- package/dist/fieldComparison-CqjjCpNq.js +2 -0
- package/dist/{fieldComparison-BOROqbI9.js → fieldComparison-grzKEozd.js} +7 -5
- package/dist/fieldLabelHint-Cy5t7tNp.js +16 -0
- package/dist/{finalSuccessScreen-Drn9GVQR.js → finalSuccessScreen-CiSREy-O.js} +9 -5
- package/dist/fiscal-qr/fiscal-qr.es.js +9 -5
- package/dist/flipAnimation-Bp4vkj5T.js +2758 -0
- package/dist/flow/flow.es.js +25 -10
- package/dist/formField-DfTSFK4p.js +60 -0
- package/dist/geolocation/geolocation.es.js +8 -5
- package/dist/government-validation/government-validation.es.js +3 -3
- package/dist/{homeScreen-zaTBPYZP.js → homeScreen-DnSGezVj.js} +6 -3
- package/dist/{dropdownComposed-QhS8uwDE.js → icons-BTQAPX7h.js} +3 -732
- package/dist/id/id.es.js +28 -20
- package/dist/id-selfie-flow/id-selfie-flow.es.js +8 -5
- package/dist/id-verification/id-verification.es.js +4 -3
- package/dist/{idOcr-BuInTg8J.js → idOcr-CnNDvFs1.js} +11 -4
- package/dist/identity-reuse/identity-reuse.es.js +6 -5
- package/dist/incodeComponent-OpYmmHuG.js +1050 -0
- package/dist/{incodeModule-DNwi5PIv.js → incodeModule-DQfs4RF7.js} +2 -2
- package/dist/index.es.js +2 -2
- package/dist/inputComposed-9jDBJqse.js +1 -0
- package/dist/inputComposed-BP78Sou-.js +99 -0
- package/dist/{mandatoryConsent-Dh0qqIS8.js → mandatoryConsent-5hb2q0Nc.js} +6 -5
- package/dist/manualCaptureButton-BOXGfoAr.js +255 -0
- package/dist/manualCaptureButton-DnE00y7z.js +63 -0
- package/dist/modal-BKL_l4J2.js +140 -0
- package/dist/modal.hooks-BG9W0mhz.js +201 -0
- package/dist/numberedStep-BZchXwF2.js +13 -0
- package/dist/{optionAccessibleLabel-DFs_dU6k.js → optionAccessibleLabel-FCfVmVrz.js} +5 -2
- package/dist/otpInput-BcoACg71.js +157 -0
- package/dist/passwordInputComposed-CMtVpi08.js +74 -0
- package/dist/{pdf-DxaEyX9N.js → pdf-2Mzn83pW.js} +1 -1
- package/dist/{pdfViewer-BztufNDo.js → pdfViewer-BXfw3EF1.js} +3 -3
- package/dist/pdfViewer-D5NNOdPt.js +2 -0
- package/dist/permissions-CjX0aA3u.js +2248 -0
- package/dist/phone/phone.es.js +8 -5
- package/dist/phoneInputComposed-CsJ_yD0l.js +3751 -0
- package/dist/processing-DAhWY6sA.js +8 -0
- package/dist/qe-signature/qe-signature.es.js +3 -3
- package/dist/radioGroupComposed-DO3Ysp1j.js +1 -0
- package/dist/radioGroupComposed-DdiOBGH9.js +160 -0
- package/dist/redirect-to-mobile/redirect-to-mobile.es.js +9 -6
- package/dist/resendTimer-BF44I8m1.js +79 -0
- package/dist/{richText-CmgFuzHO.js → richText-C93h8B8I.js} +2 -2
- package/dist/selfie/selfie.es.js +9 -6
- package/dist/signature/signature.es.js +7 -6
- package/dist/{spacer-DI-GUPzr.js → spacer-CP6nfo3f.js} +9 -9
- package/dist/{spinner-79XGZYai.js → spinner-1GVajlEK.js} +1 -1
- package/dist/statusPage-BSf9rrbK.js +35 -0
- package/dist/{tabs-D593NLWd.js → tabs-OBRm19dX.js} +1 -1
- package/dist/tutorial-R4tGibYC.js +574 -0
- package/dist/{uiConfig-DG7HXVR0.js → uiConfig-Sd_A0KwB.js} +84 -84
- package/dist/useCoverMedia-DofxqCtg.js +149 -0
- package/dist/{useModuleLoader-CMxfEBdJ.js → useModuleLoader-BN3raWWz.js} +31 -23
- package/dist/verificationResult-C-TUwYRU.js +81 -0
- package/dist/video-selfie/video-selfie.es.js +10 -7
- package/dist/watchlist/watchlist.es.js +6 -5
- package/dist/{watchlistForBusiness-B3au4z_B.js → watchlistForBusiness-CAfxFTrq.js} +8 -6
- package/dist/workflow/workflow.es.js +6 -6
- package/package.json +2 -2
- package/dist/documentCapture-DgSmPfdz.js +0 -2
- package/dist/ekybModule-D5jakNDp.js +0 -2
- package/dist/ekycModule-CgLgN1XM.js +0 -2
- package/dist/extensibility-DwFhaxCo.js +0 -21459
- package/dist/faceMatch-BM-FVaiU.js +0 -2
- package/dist/fieldComparison-D7LH3ZoD.js +0 -2
- package/dist/pdfViewer-B41kWu8T.js +0 -2
- /package/dist/{af-ZA-BSsDSZUP.js → af-ZA-qhcjE8Ll.js} +0 -0
- /package/dist/{aligndevicelottie-DD49iAwf.js → aligndevicelottie-BecybMtU.js} +0 -0
- /package/dist/{am-CA3CGdPa.js → am-DVltCO9H.js} +0 -0
- /package/dist/{ar-AE-B7wxORmn.js → ar-AE-DTmHPD7L.js} +0 -0
- /package/dist/{ar-7gJlfDmG.js → ar-B8E9vjK8.js} +0 -0
- /package/dist/{ar-EG-CpCAzmnP.js → ar-EG-DjHcOH9m.js} +0 -0
- /package/dist/{az-B1eZnP21.js → az-BFwACmvz.js} +0 -0
- /package/dist/{back-horizontal-hint-DcL2aeXz.js → back-horizontal-hint-CgMvLs_S.js} +0 -0
- /package/dist/{back-tutorial-BggT_Ad7.js → back-tutorial-D07UcHc5.js} +0 -0
- /package/dist/{back-vertical-hint-IHJzvCUW.js → back-vertical-hint-jsA5tD5E.js} +0 -0
- /package/dist/{backdevicelottie-Dw7W6vlg.js → backdevicelottie-C6hCbM0B.js} +0 -0
- /package/dist/{blurdevicelottie-DPY8NMNI.js → blurdevicelottie-CtGLqNN2.js} +0 -0
- /package/dist/{bn-B_3z3OFc.js → bn-DbIWkXe9.js} +0 -0
- /package/dist/{browser-ponyfill-CL58t85F.js → browser-ponyfill-BdqoHrvJ.js} +0 -0
- /package/dist/{bs-DhIMdYZL.js → bs-z1Ps12rk.js} +0 -0
- /package/dist/{ca-DTgrHIgt.js → ca-DUElvSDc.js} +0 -0
- /package/dist/{ceb-D8Pa-wLn.js → ceb-jzHzP2FJ.js} +0 -0
- /package/dist/{cs-pR8MytaO.js → cs-BrqY3ZP3.js} +0 -0
- /package/dist/{cs-CZ-Dig-AJzP.js → cs-CZ-CZtZyop9.js} +0 -0
- /package/dist/{da-DK-Y9A9UyPq.js → da-DK-BQvE1_ak.js} +0 -0
- /package/dist/{de-DNBTQCf3.js → de-ChPY7o4H.js} +0 -0
- /package/dist/{defineProperty-BvSzJNzg.js → defineProperty-DXYyyct1.js} +0 -0
- /package/dist/{el-CrLx45jW.js → el-BD0wlCYW.js} +0 -0
- /package/dist/{el-GR-B22DulOT.js → el-GR-Dt5-c7bC.js} +0 -0
- /package/dist/{en-BiNeRav4.js → en-CyzAzqIc.js} +0 -0
- /package/dist/{en-DG-CxJxuefq.js → en-DG-or497Mnl.js} +0 -0
- /package/dist/{es-419-C4_DkQug.js → es-419-B3p3NYae.js} +0 -0
- /package/dist/{es-BzklSN-G.js → es-BHy4PuoW.js} +0 -0
- /package/dist/{es-ES-xGnTUx3f.js → es-ES-DlvpXGeg.js} +0 -0
- /package/dist/{es-MX-PwA3FVdN.js → es-MX-Cqi6vOtT.js} +0 -0
- /package/dist/{et-j_o0Kn1b.js → et-qYB56l1n.js} +0 -0
- /package/dist/{fa-IR-BOqqb1KG.js → fa-IR-DVTTM_tu.js} +0 -0
- /package/dist/{fi-FI-K7cTHxBg.js → fi-FI-CfTvDUdu.js} +0 -0
- /package/dist/{flip-animation-D3Zr5EgF.js → flip-animation-DqsJznNB.js} +0 -0
- /package/dist/{fr-CmfT3Fji.js → fr-BewHYECv.js} +0 -0
- /package/dist/{fr-CA-DSKQfUyV.js → fr-CA-BWmoTiX5.js} +0 -0
- /package/dist/{front-horizontal-hint-BplEh02R.js → front-horizontal-hint-B37YE8CS.js} +0 -0
- /package/dist/{front-vertical-hint-D_dkG5uT.js → front-vertical-hint-BGNYUm4v.js} +0 -0
- /package/dist/{frontdevicelottie-CgADJyDu.js → frontdevicelottie-6kC6cgo8.js} +0 -0
- /package/dist/{glaredevicelottie-ep0zWB24.js → glaredevicelottie-CSU5ZUYd.js} +0 -0
- /package/dist/{he-DxOu5qcv.js → he-DskmIhH1.js} +0 -0
- /package/dist/{hi-Bqm14Xbz.js → hi-Bwj78dXS.js} +0 -0
- /package/dist/{hmn-B30BDQex.js → hmn-BVc2cEgu.js} +0 -0
- /package/dist/{hr-B_SOZRj6.js → hr-4NNWn8Hc.js} +0 -0
- /package/dist/{ht-DEmRwvgU.js → ht-C2_a-KG0.js} +0 -0
- /package/dist/{hu-DsIWgPzB.js → hu--akRgpT5.js} +0 -0
- /package/dist/{id-MGtp66fo.js → id-D7RQjfvC.js} +0 -0
- /package/dist/{id-back-of-card-CP5QObX3.js → id-back-of-card-U-NxDg8D.js} +0 -0
- /package/dist/{id-back-of-card-vertical-DhMg1rYw.js → id-back-of-card-vertical-B_u3_MBo.js} +0 -0
- /package/dist/{id-front-of-card-DX83rakq.js → id-front-of-card-N_jDGmho.js} +0 -0
- /package/dist/{id-front-of-card-vertical-CNeXlgvh.js → id-front-of-card-vertical-rHe_Ym9p.js} +0 -0
- /package/dist/{id-laser-h-CbY0k-mZ.js → id-laser-h-8TMlUzO4.js} +0 -0
- /package/dist/{id-laser-v-BdjZEhnE.js → id-laser-v-DVMkqyIr.js} +0 -0
- /package/dist/{id-tutorial-kabKpVGr.js → id-tutorial-DtvAPllr.js} +0 -0
- /package/dist/{it-DHz80acm.js → it-40b_QJ49.js} +0 -0
- /package/dist/{ja-7DjoBn_g.js → ja-BmtuIzaT.js} +0 -0
- /package/dist/{ja-JP-Bjt5yyeN.js → ja-JP-CbKDwCr2.js} +0 -0
- /package/dist/{jv-BogujYN8.js → jv-V7T3CZCW.js} +0 -0
- /package/dist/{ka-SMCEpz2i.js → ka-DElVzAwl.js} +0 -0
- /package/dist/{kk-Bmi4Ibdp.js → kk-DGGqZzoC.js} +0 -0
- /package/dist/{km-CTosjBPA.js → km-CTydY36i.js} +0 -0
- /package/dist/{ko-BNgzff2c.js → ko-Bjxwt0To.js} +0 -0
- /package/dist/{ko-KP-LuZ9duqN.js → ko-KP-Cb8ITTNz.js} +0 -0
- /package/dist/{ky-BPsNSnoV.js → ky-Da-svfsh.js} +0 -0
- /package/dist/{lo-B98nj7CD.js → lo-BcBrBLSe.js} +0 -0
- /package/dist/{lottie_light-BN2vmgOg.js → lottie_light-CtKkb7ze.js} +0 -0
- /package/dist/{lt-CGYCKnKw.js → lt-CRUODUDK.js} +0 -0
- /package/dist/{lv-BVGESywl.js → lv-COEqtHv9.js} +0 -0
- /package/dist/{mk-DSz43gN7.js → mk-D6OWaZi9.js} +0 -0
- /package/dist/{mn-V7tBxJeq.js → mn-CHZsnJ9w.js} +0 -0
- /package/dist/{ms-gKXHhgRq.js → ms-DWzO2k9X.js} +0 -0
- /package/dist/{my-CF92BB6U.js → my-DAkvSk_W.js} +0 -0
- /package/dist/{nb-NO-CouM1951.js → nb-NO-d7OazihS.js} +0 -0
- /package/dist/{ne-D8y4O4-O.js → ne-BTRq-Yeo.js} +0 -0
- /package/dist/{nl-BM_bYA8-.js → nl-DB9dav30.js} +0 -0
- /package/dist/{passport-horizontal-hint-CFRGHRVa.js → passport-horizontal-hint-Dt6gI-ZI.js} +0 -0
- /package/dist/{passport-tutorial-KbO7bbXm.js → passport-tutorial--ne0dDhV.js} +0 -0
- /package/dist/{passport-vertical-hint-BPaLhlho.js → passport-vertical-hint-Boe1pkkz.js} +0 -0
- /package/dist/{pl-CKNZeqJV.js → pl-CCkxKrjg.js} +0 -0
- /package/dist/{pt-BR-D17Ov788.js → pt-BR-CZ_z8Olc.js} +0 -0
- /package/dist/{pt-DvCZWJo7.js → pt-FtGjaVNi.js} +0 -0
- /package/dist/{pt-PT-CmMpxZIz.js → pt-PT-RBrFLLkL.js} +0 -0
- /package/dist/{registerIncodeElement-BMz2FMUm.js → registerIncodeElement-B-SfWDa0.js} +0 -0
- /package/dist/{ro-D49YZb_H.js → ro-DysboDNv.js} +0 -0
- /package/dist/{ru-C7Do9bMI.js → ru-CID3CZfu.js} +0 -0
- /package/dist/{ru-RU-BJwv_g41.js → ru-RU-BHy7AaUd.js} +0 -0
- /package/dist/{selfieTutorial-B30HiUvv.js → selfieTutorial-BarIUFDH.js} +0 -0
- /package/dist/{sk-2xyFSXZw.js → sk-D7kS5PBd.js} +0 -0
- /package/dist/{sl-CDEQCPMS.js → sl-D9TEWuUe.js} +0 -0
- /package/dist/{so-BQlNWbjF.js → so-CfgWC0fM.js} +0 -0
- /package/dist/{sr-OvJ8EQ2w.js → sr--ms6iMWz.js} +0 -0
- /package/dist/{sr-Latn-DBPpu-WK.js → sr-Latn-BiWFn5aX.js} +0 -0
- /package/dist/{sr-YU-ANiGGXx1.js → sr-YU-BNAd049F.js} +0 -0
- /package/dist/{sv-SE-N4rDD4lE.js → sv-SE-CJjtaNDA.js} +0 -0
- /package/dist/{sw-Cnb_N7Mx.js → sw-6SDfYBIC.js} +0 -0
- /package/dist/{th-CqyxWXb5.js → th-BcNF0ama.js} +0 -0
- /package/dist/{th-TH-Dgv1Kucb.js → th-TH-DMKAHwNe.js} +0 -0
- /package/dist/{tl-PH-CBw224by.js → tl-PH-Bl0duIQB.js} +0 -0
- /package/dist/{tl-DRzqwC1-.js → tl-lLJU4U50.js} +0 -0
- /package/dist/{tr-hYr5_fPV.js → tr-i2Q79BRH.js} +0 -0
- /package/dist/{uk-CG8cA8Vh.js → uk-C6nph67y.js} +0 -0
- /package/dist/{uk-UA-fLrAqsX9.js → uk-UA-B8zIiiNG.js} +0 -0
- /package/dist/{ur-COEA7gAs.js → ur-Zbr32KyN.js} +0 -0
- /package/dist/{uz-DluVEF_a.js → uz-DeV1ZkHM.js} +0 -0
- /package/dist/{vi-Da8N9N4q.js → vi-CxGLHnnW.js} +0 -0
- /package/dist/{zh-CN-DYqvh3BJ.js → zh-CN-DvWvvJIf.js} +0 -0
- /package/dist/{zh-Bo6qs8Vi.js → zh-CU10i68v.js} +0 -0
- /package/dist/{zh-HANT-jjgTtifM.js → zh-HANT-CUbWZ_Ie.js} +0 -0
- /package/dist/{zh-TW-BklGQhpL.js → zh-TW-BZnhC9_5.js} +0 -0
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { u as T, v as u } from "./vendor-preact-C0jX1Cbq.js";
|
|
2
|
+
import { l as Page } from "./incodeComponent-OpYmmHuG.js";
|
|
3
|
+
import { d as cn, o as Lottie } from "./spacer-CP6nfo3f.js";
|
|
4
|
+
import { S as Button } from "./icons-BTQAPX7h.js";
|
|
5
|
+
//#region src/shared/baseTutorial/replaceBaseTutorial.ts
|
|
6
|
+
/**
|
|
7
|
+
* The brand blues baked into the tutorial animations. The selfie oval/shoulders
|
|
8
|
+
* use `#007aff`; the ID/passport tutorials additionally use `#006aff` (the
|
|
9
|
+
* default brand blue) for their accent. Both are re-tinted to the active
|
|
10
|
+
* branding color.
|
|
11
|
+
*
|
|
12
|
+
* Authored as hex and converted to Lottie's normalized `[r, g, b]` (0–1) form.
|
|
13
|
+
* The two greens are ~0.06 apart, comfortably outside `COLOR_MATCH_TOLERANCE`,
|
|
14
|
+
* so they neither cross-match nor catch the (grayscale/white) document and
|
|
15
|
+
* face artwork.
|
|
16
|
+
*/
|
|
17
|
+
var SOURCE_BRAND_COLORS = ["#007aff", "#006aff"].map(hexToRgbUnit).filter((color) => color !== null);
|
|
18
|
+
/**
|
|
19
|
+
* Per-channel tolerance when matching a source color. The baked values are
|
|
20
|
+
* authored as rounded decimals (e.g. `0.48`), so an exact comparison is too
|
|
21
|
+
* brittle; a small tolerance keeps the match robust without catching
|
|
22
|
+
* unrelated colors.
|
|
23
|
+
*/
|
|
24
|
+
var COLOR_MATCH_TOLERANCE = .02;
|
|
25
|
+
/**
|
|
26
|
+
* Reads a CSS custom property off the document root and returns its value.
|
|
27
|
+
* Returns `fallback` (empty by default) when the property is unset or
|
|
28
|
+
* unavailable (e.g. during SSR / tests). With the default empty fallback the
|
|
29
|
+
* recolor no-ops, leaving the animation's authored colors in place — which are
|
|
30
|
+
* the default brand blue, so no theme-specific literal is needed here.
|
|
31
|
+
*/
|
|
32
|
+
function getCssVariableAsHex(variableName, fallback = "") {
|
|
33
|
+
if (typeof document === "undefined") return fallback;
|
|
34
|
+
return getComputedStyle(document.documentElement).getPropertyValue(variableName).trim() || fallback;
|
|
35
|
+
}
|
|
36
|
+
function hexToRgbUnit(hex) {
|
|
37
|
+
let normalized = hex.replace("#", "").trim();
|
|
38
|
+
if (normalized.length === 3) normalized = normalized.split("").map((char) => char + char).join("");
|
|
39
|
+
const result = /^([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(normalized);
|
|
40
|
+
if (!result) return null;
|
|
41
|
+
return [
|
|
42
|
+
Number.parseInt(result[1], 16) / 255,
|
|
43
|
+
Number.parseInt(result[2], 16) / 255,
|
|
44
|
+
Number.parseInt(result[3], 16) / 255
|
|
45
|
+
];
|
|
46
|
+
}
|
|
47
|
+
function channelMatches(a, b) {
|
|
48
|
+
return Math.abs(a - b) <= COLOR_MATCH_TOLERANCE;
|
|
49
|
+
}
|
|
50
|
+
function isSourceColor(r, g, b) {
|
|
51
|
+
return SOURCE_BRAND_COLORS.some(([sr, sg, sb]) => channelMatches(r, sr) && channelMatches(g, sg) && channelMatches(b, sb));
|
|
52
|
+
}
|
|
53
|
+
function isStaticColorArray(value) {
|
|
54
|
+
return Array.isArray(value) && value.length >= 3 && value.every((entry) => typeof entry === "number");
|
|
55
|
+
}
|
|
56
|
+
function recolorSolid(node, target) {
|
|
57
|
+
const colorHolder = node.c;
|
|
58
|
+
if (!colorHolder || typeof colorHolder !== "object") return;
|
|
59
|
+
const k = colorHolder.k;
|
|
60
|
+
if (isStaticColorArray(k) && isSourceColor(k[0], k[1], k[2])) {
|
|
61
|
+
k[0] = target[0];
|
|
62
|
+
k[1] = target[1];
|
|
63
|
+
k[2] = target[2];
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
function recolorGradient(node, target) {
|
|
67
|
+
const gradient = node.g;
|
|
68
|
+
if (!gradient || typeof gradient !== "object") return;
|
|
69
|
+
const { p, k } = gradient;
|
|
70
|
+
const stopCount = typeof p === "number" ? p : 0;
|
|
71
|
+
const stops = k?.k;
|
|
72
|
+
if (stopCount <= 0 || !Array.isArray(stops)) return;
|
|
73
|
+
for (let stop = 0; stop < stopCount; stop++) {
|
|
74
|
+
const base = stop * 4;
|
|
75
|
+
const r = stops[base + 1];
|
|
76
|
+
const g = stops[base + 2];
|
|
77
|
+
const b = stops[base + 3];
|
|
78
|
+
if (typeof r === "number" && typeof g === "number" && typeof b === "number" && isSourceColor(r, g, b)) {
|
|
79
|
+
stops[base + 1] = target[0];
|
|
80
|
+
stops[base + 2] = target[1];
|
|
81
|
+
stops[base + 3] = target[2];
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
function recolorNode(node, target) {
|
|
86
|
+
if (Array.isArray(node)) {
|
|
87
|
+
for (const child of node) recolorNode(child, target);
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
if (!node || typeof node !== "object") return;
|
|
91
|
+
const obj = node;
|
|
92
|
+
if (obj.ty === "fl" || obj.ty === "st") recolorSolid(obj, target);
|
|
93
|
+
else if (obj.ty === "gf" || obj.ty === "gs") recolorGradient(obj, target);
|
|
94
|
+
for (const key of Object.keys(obj)) recolorNode(obj[key], target);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Returns a deep copy of `animationData` with the baked-in brand blue swapped
|
|
98
|
+
* for `hexColor`. The input is never mutated. Unparseable colors leave the
|
|
99
|
+
* animation untouched.
|
|
100
|
+
*/
|
|
101
|
+
function replaceLottieColor(animationData, hexColor) {
|
|
102
|
+
const target = hexToRgbUnit(hexColor);
|
|
103
|
+
if (!target) return animationData;
|
|
104
|
+
const clone = JSON.parse(JSON.stringify(animationData));
|
|
105
|
+
recolorNode(clone, target);
|
|
106
|
+
return clone;
|
|
107
|
+
}
|
|
108
|
+
//#endregion
|
|
109
|
+
//#region src/shared/baseTutorial/baseTutorial.tsx
|
|
110
|
+
var BaseTutorial = ({ className = "", animationData, title, titleId, subtitle, onContinue, buttonText, disclaimerText, isLoading, secondaryAction, actionsSlot, stopFramePosition = "middle", recolor = true, shouldScaleAnimationContainer }) => {
|
|
111
|
+
const themedAnimationData = T(() => {
|
|
112
|
+
if (!animationData) return null;
|
|
113
|
+
if (!recolor) return animationData;
|
|
114
|
+
return replaceLottieColor(animationData, getCssVariableAsHex("--primitive-color-brand-500"));
|
|
115
|
+
}, [animationData, recolor]);
|
|
116
|
+
let scaledClasses = {
|
|
117
|
+
page: "",
|
|
118
|
+
container: "",
|
|
119
|
+
animationContainer: ""
|
|
120
|
+
};
|
|
121
|
+
if (shouldScaleAnimationContainer) scaledClasses = {
|
|
122
|
+
page: "IncodeTutorialPageScaled",
|
|
123
|
+
container: "IncodeBaseTutorialContainerScaled",
|
|
124
|
+
animationContainer: "IncodeBaseTutorialAnimationContainerScaled"
|
|
125
|
+
};
|
|
126
|
+
return /* @__PURE__ */ u(Page, {
|
|
127
|
+
className: cn("IncodeTutorialPage", scaledClasses.page, className),
|
|
128
|
+
title,
|
|
129
|
+
titleId,
|
|
130
|
+
subtitle,
|
|
131
|
+
children: [/* @__PURE__ */ u("div", {
|
|
132
|
+
class: cn("IncodeBaseTutorialContainer", scaledClasses.container),
|
|
133
|
+
children: /* @__PURE__ */ u("div", {
|
|
134
|
+
class: cn("IncodeBaseTutorialAnimationContainer", scaledClasses.animationContainer),
|
|
135
|
+
"aria-hidden": "true",
|
|
136
|
+
children: themedAnimationData ? /* @__PURE__ */ u(Lottie, {
|
|
137
|
+
animationData: themedAnimationData,
|
|
138
|
+
className: "IncodeBaseTutorialAnimation",
|
|
139
|
+
autoStop: true,
|
|
140
|
+
stopFramePosition
|
|
141
|
+
}) : null
|
|
142
|
+
})
|
|
143
|
+
}), /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ u("p", {
|
|
144
|
+
class: "IncodeBaseTutorialDisclaimer",
|
|
145
|
+
children: disclaimerText
|
|
146
|
+
}), /* @__PURE__ */ u("div", {
|
|
147
|
+
class: "IncodeBaseTutorialButtonContainer",
|
|
148
|
+
children: [
|
|
149
|
+
/* @__PURE__ */ u(Button, {
|
|
150
|
+
onClick: onContinue,
|
|
151
|
+
class: "IncodeBaseTutorialButton",
|
|
152
|
+
isLoading,
|
|
153
|
+
children: buttonText
|
|
154
|
+
}),
|
|
155
|
+
secondaryAction ? /* @__PURE__ */ u(Button, {
|
|
156
|
+
variant: "link",
|
|
157
|
+
onClick: secondaryAction.onClick,
|
|
158
|
+
class: "IncodeBaseTutorialSecondaryAction",
|
|
159
|
+
disabled: isLoading,
|
|
160
|
+
"data-testid": secondaryAction.testId,
|
|
161
|
+
children: secondaryAction.label
|
|
162
|
+
}) : null,
|
|
163
|
+
actionsSlot && /* @__PURE__ */ u("div", {
|
|
164
|
+
class: "IncodeBaseTutorialActionsSlot",
|
|
165
|
+
children: actionsSlot
|
|
166
|
+
})
|
|
167
|
+
]
|
|
168
|
+
})] })]
|
|
169
|
+
});
|
|
170
|
+
};
|
|
171
|
+
//#endregion
|
|
172
|
+
export { BaseTutorial as t };
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { _ as y, c as A, f as d, h as q, v as u } from "./vendor-preact-C0jX1Cbq.js";
|
|
2
|
+
import { d as cn } from "./spacer-CP6nfo3f.js";
|
|
3
|
+
import { i as useModalFocusCapture, n as useModalBodyScrollLock, o as useModalTabCycle, r as useModalEscapeDismiss, s as useModalVisualViewportBounds } from "./modal.hooks-BG9W0mhz.js";
|
|
4
|
+
function prefersReducedMotion() {
|
|
5
|
+
if (typeof window === "undefined") return false;
|
|
6
|
+
return window.matchMedia("(prefers-reduced-motion: reduce)").matches;
|
|
7
|
+
}
|
|
8
|
+
function useBottomSheetAnimatedClose({ isOpen, onClose, sheetRef }) {
|
|
9
|
+
const closeCommittedRef = A(false);
|
|
10
|
+
const [isClosing, setIsClosing] = d(false);
|
|
11
|
+
const isVisible = isOpen || isClosing;
|
|
12
|
+
const canDismiss = Boolean(onClose) && !isClosing;
|
|
13
|
+
const finishClose = q(() => {
|
|
14
|
+
if (closeCommittedRef.current) return;
|
|
15
|
+
closeCommittedRef.current = true;
|
|
16
|
+
setIsClosing(false);
|
|
17
|
+
onClose?.();
|
|
18
|
+
}, [onClose]);
|
|
19
|
+
const requestClose = q(() => {
|
|
20
|
+
if (!canDismiss) return;
|
|
21
|
+
closeCommittedRef.current = false;
|
|
22
|
+
if (prefersReducedMotion()) {
|
|
23
|
+
finishClose();
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
setIsClosing(true);
|
|
27
|
+
}, [canDismiss, finishClose]);
|
|
28
|
+
y(() => {
|
|
29
|
+
if (isOpen) {
|
|
30
|
+
closeCommittedRef.current = false;
|
|
31
|
+
setIsClosing(false);
|
|
32
|
+
}
|
|
33
|
+
}, [isOpen]);
|
|
34
|
+
y(() => {
|
|
35
|
+
if (!isClosing) return;
|
|
36
|
+
const timeout = setTimeout(finishClose, 750);
|
|
37
|
+
return () => clearTimeout(timeout);
|
|
38
|
+
}, [finishClose, isClosing]);
|
|
39
|
+
return {
|
|
40
|
+
isVisible,
|
|
41
|
+
isClosing,
|
|
42
|
+
canDismiss,
|
|
43
|
+
requestClose,
|
|
44
|
+
handleSheetAnimationEnd: q((event) => {
|
|
45
|
+
if (!isClosing || event.target !== sheetRef.current) return;
|
|
46
|
+
if (event.animationName !== "IncodeSlideDown") return;
|
|
47
|
+
finishClose();
|
|
48
|
+
}, [
|
|
49
|
+
finishClose,
|
|
50
|
+
isClosing,
|
|
51
|
+
sheetRef
|
|
52
|
+
]),
|
|
53
|
+
overlayClassName: cn("IncodeBottomSheetOverlay", isClosing && "IncodeBottomSheetOverlay--closing"),
|
|
54
|
+
sheetClassName: cn("IncodeBottomSheet", isClosing && "IncodeBottomSheet--closing")
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
//#endregion
|
|
58
|
+
//#region src/shared/bottomSheet/bottomSheet.tsx
|
|
59
|
+
var BottomSheet = ({ isOpen = false, onClose, labelledById, children, returnFocusRef, manageInitialFocus = true, "data-testid": dataTestId }) => {
|
|
60
|
+
const dialogRef = A(null);
|
|
61
|
+
const overlayRef = A(null);
|
|
62
|
+
const { isVisible, canDismiss, requestClose, handleSheetAnimationEnd, overlayClassName, sheetClassName } = useBottomSheetAnimatedClose({
|
|
63
|
+
isOpen,
|
|
64
|
+
onClose,
|
|
65
|
+
sheetRef: dialogRef
|
|
66
|
+
});
|
|
67
|
+
useModalBodyScrollLock(isVisible);
|
|
68
|
+
useModalEscapeDismiss(isOpen && canDismiss, canDismiss, requestClose);
|
|
69
|
+
useModalFocusCapture(isVisible, dialogRef, manageInitialFocus, returnFocusRef);
|
|
70
|
+
useModalTabCycle(isVisible, dialogRef);
|
|
71
|
+
useModalVisualViewportBounds(isVisible, overlayRef);
|
|
72
|
+
if (!isVisible) return null;
|
|
73
|
+
return /* @__PURE__ */ u("div", {
|
|
74
|
+
ref: overlayRef,
|
|
75
|
+
class: overlayClassName,
|
|
76
|
+
"data-testid": dataTestId,
|
|
77
|
+
onPointerUp: (event) => {
|
|
78
|
+
if (!canDismiss) return;
|
|
79
|
+
const target = event.target;
|
|
80
|
+
if (!dialogRef.current?.contains(target)) requestClose();
|
|
81
|
+
},
|
|
82
|
+
children: /* @__PURE__ */ u("div", {
|
|
83
|
+
class: "IncodeBottomSheetContainer",
|
|
84
|
+
children: /* @__PURE__ */ u("div", {
|
|
85
|
+
ref: dialogRef,
|
|
86
|
+
class: sheetClassName,
|
|
87
|
+
role: "dialog",
|
|
88
|
+
"aria-modal": "true",
|
|
89
|
+
"aria-labelledby": labelledById,
|
|
90
|
+
tabIndex: -1,
|
|
91
|
+
onAnimationEnd: handleSheetAnimationEnd,
|
|
92
|
+
children: [/* @__PURE__ */ u("span", {
|
|
93
|
+
class: "IncodeBottomSheetHandle",
|
|
94
|
+
"aria-hidden": "true"
|
|
95
|
+
}), children]
|
|
96
|
+
})
|
|
97
|
+
})
|
|
98
|
+
});
|
|
99
|
+
};
|
|
100
|
+
//#endregion
|
|
101
|
+
export { BottomSheet as t };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { _ as y, c as A, v as u } from "./vendor-preact-C0jX1Cbq.js";
|
|
2
|
+
import { d as cn } from "./spacer-CP6nfo3f.js";
|
|
3
|
+
import { n as Title } from "./spinner-1GVajlEK.js";
|
|
4
|
+
//#region src/shared/cameraOverlay/cameraOverlay.tsx
|
|
5
|
+
/**
|
|
6
|
+
* Absolute-positioned flex-column overlay that sits on top of the camera video.
|
|
7
|
+
*
|
|
8
|
+
* Expected child order:
|
|
9
|
+
* 1. (optional) Module-specific header extras (e.g. CaptureNotification)
|
|
10
|
+
* 2. CameraOverlayHeader
|
|
11
|
+
* 3. CameraFrame
|
|
12
|
+
* 4. CaptureFooter
|
|
13
|
+
*/
|
|
14
|
+
var CameraOverlay = ({ children, className }) => {
|
|
15
|
+
return /* @__PURE__ */ u("div", {
|
|
16
|
+
class: cn("IncodeCameraOverlay", className),
|
|
17
|
+
children
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
//#endregion
|
|
21
|
+
//#region src/shared/cameraOverlay/cameraOverlayHeader.tsx
|
|
22
|
+
var CameraOverlayHeader = ({ title, subtitle, visible = true, className, titleId, titleRef }) => {
|
|
23
|
+
const fallbackTitleRef = A(null);
|
|
24
|
+
const resolvedTitleRef = titleRef ?? fallbackTitleRef;
|
|
25
|
+
y(() => {
|
|
26
|
+
resolvedTitleRef.current?.focus();
|
|
27
|
+
}, [resolvedTitleRef]);
|
|
28
|
+
return /* @__PURE__ */ u("div", {
|
|
29
|
+
class: cn("IncodeCameraOverlayHeader", !visible && "IncodeCameraOverlayHeaderHidden", className),
|
|
30
|
+
children: [/* @__PURE__ */ u(Title, {
|
|
31
|
+
ref: resolvedTitleRef,
|
|
32
|
+
id: titleId,
|
|
33
|
+
className: "IncodeCameraOverlayHeaderTitle",
|
|
34
|
+
tabIndex: -1,
|
|
35
|
+
children: title
|
|
36
|
+
}), /* @__PURE__ */ u("p", {
|
|
37
|
+
class: "IncodeCameraOverlayHeaderSubtitle",
|
|
38
|
+
children: subtitle
|
|
39
|
+
})]
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
//#endregion
|
|
43
|
+
export { CameraOverlay as n, CameraOverlayHeader as t };
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { _ as y, c as A, i as D, v as u } from "./vendor-preact-C0jX1Cbq.js";
|
|
2
|
+
import { d as cn } from "./spacer-CP6nfo3f.js";
|
|
3
|
+
import { t as useCoverMedia } from "./useCoverMedia-DofxqCtg.js";
|
|
4
|
+
//#region src/shared/cameraOverlay/cameraFrame.tsx
|
|
5
|
+
var CameraFrame = D(({ variant, aspectRatio, orientation = "horizontal", frameState = "idle", className, children }, ref) => {
|
|
6
|
+
const stateClass = `IncodeCameraFrame${frameState.charAt(0).toUpperCase()}${frameState.slice(1)}`;
|
|
7
|
+
return /* @__PURE__ */ u("div", {
|
|
8
|
+
ref,
|
|
9
|
+
class: cn("IncodeCameraFrame", variant === "fill" && "IncodeCameraFrameFill", variant === "locked" && "IncodeCameraFrameLocked", variant === "locked" && orientation === "horizontal" && "IncodeCameraFrameHorizontal", variant === "locked" && orientation === "vertical" && "IncodeCameraFrameVertical", stateClass, className),
|
|
10
|
+
style: aspectRatio ? { aspectRatio } : void 0,
|
|
11
|
+
"aria-hidden": true,
|
|
12
|
+
children
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
//#endregion
|
|
16
|
+
//#region src/shared/cameraOverlay/cameraView.tsx
|
|
17
|
+
var CameraView = ({ stream, children, videoRef: externalVideoRef, onPlaying, className, mirrored, ...rest }) => {
|
|
18
|
+
const internalVideoRef = A(null);
|
|
19
|
+
useCoverMedia(internalVideoRef, stream);
|
|
20
|
+
const setVideoRef = (el) => {
|
|
21
|
+
internalVideoRef.current = el;
|
|
22
|
+
if (typeof externalVideoRef === "function") externalVideoRef(el);
|
|
23
|
+
else if (externalVideoRef) externalVideoRef.current = el;
|
|
24
|
+
};
|
|
25
|
+
y(() => {
|
|
26
|
+
if (internalVideoRef.current && stream) {
|
|
27
|
+
internalVideoRef.current.srcObject = stream;
|
|
28
|
+
internalVideoRef.current.play().catch(() => {});
|
|
29
|
+
}
|
|
30
|
+
}, [stream]);
|
|
31
|
+
return /* @__PURE__ */ u("div", {
|
|
32
|
+
class: cn("IncodeCameraView", className),
|
|
33
|
+
...rest,
|
|
34
|
+
children: [/* @__PURE__ */ u("div", {
|
|
35
|
+
class: "IncodeCameraViewVideo",
|
|
36
|
+
children: /* @__PURE__ */ u("video", {
|
|
37
|
+
ref: setVideoRef,
|
|
38
|
+
autoplay: true,
|
|
39
|
+
playsInline: true,
|
|
40
|
+
muted: true,
|
|
41
|
+
onPlaying,
|
|
42
|
+
"aria-hidden": "true",
|
|
43
|
+
class: cn("IncodeCameraViewVideoElement", mirrored && "IncodeCameraViewVideoMirrored")
|
|
44
|
+
})
|
|
45
|
+
}), children]
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
//#endregion
|
|
49
|
+
export { CameraFrame as n, CameraView as t };
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { o as useTranslation } from "./uiConfig-Sd_A0KwB.js";
|
|
2
|
+
import { S as k, v as u } from "./vendor-preact-C0jX1Cbq.js";
|
|
3
|
+
import { d as cn, t as Spacer } from "./spacer-CP6nfo3f.js";
|
|
4
|
+
import { S as Button, _ as CaptureButtonIcon, a as LockIcon, o as HelpIcon } from "./icons-BTQAPX7h.js";
|
|
5
|
+
//#region src/shared/progressBar/progressBar.tsx
|
|
6
|
+
var ProgressBar = ({ progress, label, className, labelledById }) => /* @__PURE__ */ u("div", {
|
|
7
|
+
class: cn("IncodeProgressBarContainer", className),
|
|
8
|
+
children: [/* @__PURE__ */ u("div", {
|
|
9
|
+
class: "IncodeProgressBar",
|
|
10
|
+
role: "progressbar",
|
|
11
|
+
"aria-valuenow": progress,
|
|
12
|
+
"aria-valuemin": 0,
|
|
13
|
+
"aria-valuemax": 100,
|
|
14
|
+
"aria-label": labelledById ? void 0 : label,
|
|
15
|
+
"aria-labelledby": labelledById,
|
|
16
|
+
children: /* @__PURE__ */ u("div", {
|
|
17
|
+
class: "IncodeProgressBarFill",
|
|
18
|
+
style: { width: `${progress}%` }
|
|
19
|
+
})
|
|
20
|
+
}), label ? /* @__PURE__ */ u(k, { children: [/* @__PURE__ */ u(Spacer, { size: 24 }), /* @__PURE__ */ u("p", {
|
|
21
|
+
class: "IncodeProgressBarLabel",
|
|
22
|
+
children: label
|
|
23
|
+
})] }) : null]
|
|
24
|
+
});
|
|
25
|
+
//#endregion
|
|
26
|
+
//#region src/shared/captureFooter/captureFooter.tsx
|
|
27
|
+
var CaptureFooter = ({ onOpenHelp, onCapture, isManualCapture, captureAriaLabel, captureAriaDescribedBy, helpAriaLabel, helpButtonRef, captureButtonRef, encryptionLabel, children, hideActions }) => {
|
|
28
|
+
const { t } = useTranslation();
|
|
29
|
+
const isCaptureSectionVisible = !hideActions && isManualCapture && Boolean(onCapture);
|
|
30
|
+
const isHelpSectionVisible = !hideActions;
|
|
31
|
+
return /* @__PURE__ */ u("div", {
|
|
32
|
+
class: "IncodeCaptureFooter",
|
|
33
|
+
children: [
|
|
34
|
+
/* @__PURE__ */ u("div", {
|
|
35
|
+
class: "IncodeCaptureFooterEncryption",
|
|
36
|
+
children: [/* @__PURE__ */ u(LockIcon, { className: "IncodeCaptureFooterEncryptionIcon" }), /* @__PURE__ */ u("span", { children: encryptionLabel ?? t("idv2.capture.allDataIsEncrypted") })]
|
|
37
|
+
}),
|
|
38
|
+
isCaptureSectionVisible && /* @__PURE__ */ u("div", {
|
|
39
|
+
class: "IncodeCaptureFooterCaptureSection",
|
|
40
|
+
children: [children, /* @__PURE__ */ u("button", {
|
|
41
|
+
ref: captureButtonRef,
|
|
42
|
+
type: "button",
|
|
43
|
+
class: "IncodeCaptureFooterCaptureButton",
|
|
44
|
+
onClick: onCapture,
|
|
45
|
+
"aria-label": captureAriaLabel ?? t("manualCapture.ariaLabel"),
|
|
46
|
+
"aria-describedby": captureAriaDescribedBy,
|
|
47
|
+
"data-testid": "capture-button",
|
|
48
|
+
children: /* @__PURE__ */ u(CaptureButtonIcon, {})
|
|
49
|
+
})]
|
|
50
|
+
}),
|
|
51
|
+
isHelpSectionVisible && /* @__PURE__ */ u("div", {
|
|
52
|
+
class: "IncodeCaptureFooterHelp",
|
|
53
|
+
children: /* @__PURE__ */ u(Button, {
|
|
54
|
+
ref: helpButtonRef,
|
|
55
|
+
variant: "link",
|
|
56
|
+
onClick: onOpenHelp,
|
|
57
|
+
"aria-label": helpAriaLabel ?? t("idv2.needHelp.open"),
|
|
58
|
+
class: "IncodeCaptureFooterHelpButton",
|
|
59
|
+
"data-testid": "capture-help-button",
|
|
60
|
+
children: /* @__PURE__ */ u(HelpIcon, {})
|
|
61
|
+
})
|
|
62
|
+
})
|
|
63
|
+
]
|
|
64
|
+
});
|
|
65
|
+
};
|
|
66
|
+
//#endregion
|
|
67
|
+
export { ProgressBar as n, CaptureFooter as t };
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { o as useTranslation } from "../uiConfig-
|
|
1
|
+
import { o as useTranslation } from "../uiConfig-Sd_A0KwB.js";
|
|
2
2
|
import { _ as y, c as A, u as T, v as u } from "../vendor-preact-C0jX1Cbq.js";
|
|
3
|
-
import {
|
|
4
|
-
import { t as Spacer } from "../spacer-
|
|
5
|
-
import {
|
|
6
|
-
import { t as
|
|
3
|
+
import { C as useManager, a as withStandaloneModuleBootstrap, l as Page, r as AutoFocusTitle, t as IncodeComponent, x as useModuleTerminalCallbacks } from "../incodeComponent-OpYmmHuG.js";
|
|
4
|
+
import { t as Spacer } from "../spacer-CP6nfo3f.js";
|
|
5
|
+
import { S as Button, r as SuccessIcon } from "../icons-BTQAPX7h.js";
|
|
6
|
+
import { t as VerificationResult } from "../verificationResult-C-TUwYRU.js";
|
|
7
|
+
import { t as PasswordInputComposed } from "../passwordInputComposed-CMtVpi08.js";
|
|
8
|
+
import { t as registerIncodeModuleElement } from "../incodeModule-DQfs4RF7.js";
|
|
7
9
|
import { MIN_PASSWORD_LENGTH, PASSWORD_VALIDATION_KEYS, REQUIREMENT_I18N_KEYS, createCertificateIssuanceManager } from "@incodetech/core/certificate-issuance";
|
|
8
10
|
//#region src/modules/certificate-issuance/downloadScreen.tsx
|
|
9
11
|
var DownloadScreen = ({ blob, onDownloaded, onError }) => {
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { f as d, i as D, v as u } from "./vendor-preact-C0jX1Cbq.js";
|
|
2
|
+
import { d as cn } from "./spacer-CP6nfo3f.js";
|
|
3
|
+
import { g as CheckmarkIcon, x as ErrorIcon } from "./icons-BTQAPX7h.js";
|
|
4
|
+
import { t as FieldLabelHint } from "./fieldLabelHint-Cy5t7tNp.js";
|
|
5
|
+
//#region src/shared/checkbox/checkbox.tsx
|
|
6
|
+
var Checkbox = D(({ id, label, labelHint, size = "m", checked, defaultChecked, disabled = false, required = false, name, value, onChange, error, helper, showErrorIcon = true, class: className, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy, "aria-invalid": ariaInvalid, ...restProps }, ref) => {
|
|
7
|
+
const [internalChecked, setInternalChecked] = d(!!defaultChecked);
|
|
8
|
+
const isControlled = checked !== void 0;
|
|
9
|
+
const isChecked = isControlled ? !!checked : internalChecked;
|
|
10
|
+
const isDisabled = !!disabled;
|
|
11
|
+
const isRequired = !!required;
|
|
12
|
+
const classStr = typeof className === "string" ? className : void 0;
|
|
13
|
+
const handleChange = (event) => {
|
|
14
|
+
if (!isControlled) setInternalChecked(event.target.checked);
|
|
15
|
+
onChange?.(event);
|
|
16
|
+
};
|
|
17
|
+
const helperTextId = helper ? `${id}-helper` : void 0;
|
|
18
|
+
const errorTextId = error ? `${id}-error` : void 0;
|
|
19
|
+
const describedBy = [
|
|
20
|
+
ariaDescribedBy,
|
|
21
|
+
errorTextId,
|
|
22
|
+
helperTextId
|
|
23
|
+
].filter(Boolean).join(" ") || void 0;
|
|
24
|
+
return /* @__PURE__ */ u("div", {
|
|
25
|
+
class: cn("IncodeCheckbox", classStr),
|
|
26
|
+
children: [
|
|
27
|
+
/* @__PURE__ */ u("label", {
|
|
28
|
+
class: cn("IncodeCheckboxLabel", { IncodeCheckboxLabelDisabled: isDisabled }),
|
|
29
|
+
htmlFor: id,
|
|
30
|
+
children: [/* @__PURE__ */ u("div", {
|
|
31
|
+
class: "IncodeCheckboxControl",
|
|
32
|
+
children: [/* @__PURE__ */ u("input", {
|
|
33
|
+
ref,
|
|
34
|
+
type: "checkbox",
|
|
35
|
+
class: "IncodeCheckboxInput",
|
|
36
|
+
id,
|
|
37
|
+
name,
|
|
38
|
+
value,
|
|
39
|
+
...isControlled ? { checked } : { defaultChecked },
|
|
40
|
+
disabled,
|
|
41
|
+
required,
|
|
42
|
+
onChange: handleChange,
|
|
43
|
+
"aria-label": ariaLabel,
|
|
44
|
+
"aria-labelledby": ariaLabelledBy,
|
|
45
|
+
"aria-describedby": describedBy,
|
|
46
|
+
"aria-invalid": ariaInvalid || !!error,
|
|
47
|
+
"aria-required": isRequired,
|
|
48
|
+
...restProps
|
|
49
|
+
}), /* @__PURE__ */ u("div", {
|
|
50
|
+
class: cn("IncodeCheckboxVisual", {
|
|
51
|
+
IncodeCheckboxVisualChecked: isChecked,
|
|
52
|
+
IncodeCheckboxVisualDisabled: isDisabled,
|
|
53
|
+
IncodeCheckboxVisualError: !!error
|
|
54
|
+
}),
|
|
55
|
+
children: isChecked && /* @__PURE__ */ u(CheckmarkIcon, { size: 28 })
|
|
56
|
+
})]
|
|
57
|
+
}), label && /* @__PURE__ */ u("span", {
|
|
58
|
+
class: cn("IncodeCheckboxText", {
|
|
59
|
+
IncodeCheckboxTextS: size === "s",
|
|
60
|
+
IncodeCheckboxTextM: size === "m",
|
|
61
|
+
IncodeCheckboxTextDisabled: isDisabled
|
|
62
|
+
}),
|
|
63
|
+
"aria-hidden": ariaLabelledBy ? "true" : void 0,
|
|
64
|
+
children: [label, /* @__PURE__ */ u(FieldLabelHint, {
|
|
65
|
+
className: "IncodeCheckboxLabelHint",
|
|
66
|
+
hint: labelHint,
|
|
67
|
+
required: isRequired,
|
|
68
|
+
testId: `${id}-label-hint`
|
|
69
|
+
})]
|
|
70
|
+
})]
|
|
71
|
+
}),
|
|
72
|
+
error && /* @__PURE__ */ u("div", {
|
|
73
|
+
class: "IncodeCheckboxMessageWrapper",
|
|
74
|
+
"data-testid": `${id}-error-wrapper`,
|
|
75
|
+
children: [showErrorIcon && /* @__PURE__ */ u("div", {
|
|
76
|
+
class: "IncodeCheckboxIconWrapper",
|
|
77
|
+
children: /* @__PURE__ */ u(ErrorIcon, { size: 17 })
|
|
78
|
+
}), /* @__PURE__ */ u("p", {
|
|
79
|
+
id: errorTextId,
|
|
80
|
+
class: "IncodeCheckboxErrorText",
|
|
81
|
+
children: error
|
|
82
|
+
})]
|
|
83
|
+
}),
|
|
84
|
+
helper && !error && /* @__PURE__ */ u("div", {
|
|
85
|
+
class: "IncodeCheckboxMessageWrapper",
|
|
86
|
+
"data-testid": `${id}-helper-wrapper`,
|
|
87
|
+
children: /* @__PURE__ */ u("p", {
|
|
88
|
+
id: helperTextId,
|
|
89
|
+
class: "IncodeCheckboxHelperText",
|
|
90
|
+
children: helper
|
|
91
|
+
})
|
|
92
|
+
})
|
|
93
|
+
]
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
//#endregion
|
|
97
|
+
export { Checkbox as t };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { o as useTranslation } from "./uiConfig-Sd_A0KwB.js";
|
|
2
|
+
import { v as u } from "./vendor-preact-C0jX1Cbq.js";
|
|
3
|
+
import { S as Button } from "./icons-BTQAPX7h.js";
|
|
4
|
+
import { t as StatusPage } from "./statusPage-BSf9rrbK.js";
|
|
5
|
+
//#region src/shared/connectionError/NoNetworkIcon.tsx
|
|
6
|
+
var NoNetworkIcon = ({ size = 32 }) => /* @__PURE__ */ u("svg", {
|
|
7
|
+
width: size,
|
|
8
|
+
height: size,
|
|
9
|
+
viewBox: "0 0 32 32",
|
|
10
|
+
fill: "none",
|
|
11
|
+
"aria-hidden": "true",
|
|
12
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
13
|
+
children: /* @__PURE__ */ u("path", {
|
|
14
|
+
d: "M5.76851 4.74117C6.31338 4.24592 7.156 4.28617 7.65131 4.83101L20.3847 18.8368C20.4974 18.9196 20.6085 19.0051 20.7167 19.0946C20.8955 19.2427 21.0255 19.4282 21.1054 19.6298L26.2704 25.3114C26.7653 25.8562 26.7251 26.699 26.1806 27.1942C25.6357 27.6895 24.7921 27.6492 24.2968 27.1044L18.6113 20.8505C17.8196 20.3301 16.8826 20.0637 15.9277 20.0976C14.8042 20.1375 13.7339 20.5889 12.9208 21.3651C12.3882 21.8737 11.5436 21.8538 11.0351 21.3212C10.5273 20.7886 10.5468 19.9447 11.079 19.4364C12.289 18.2812 13.859 17.5811 15.5204 17.4501L13.1933 14.8906C11.5724 15.3528 10.0882 16.2132 8.87787 17.3974C8.35154 17.9124 7.50714 17.9032 6.99214 17.3769C6.47722 16.8505 6.48634 16.0061 7.01264 15.4911C8.23115 14.2989 9.66965 13.3667 11.2402 12.7421L9.16987 10.4648C7.60544 11.2159 6.17457 12.2232 4.93843 13.4472C4.41517 13.9653 3.57082 13.9607 3.05269 13.4374C2.53495 12.9141 2.53835 12.0697 3.06148 11.5517C4.32081 10.3047 5.75306 9.25083 7.31049 8.41889L5.67866 6.62398C5.18343 6.07911 5.22371 5.23649 5.76851 4.74117ZM15.9999 22.6659C17.1044 22.6659 17.9997 23.5615 17.9999 24.6659C17.9999 25.7705 17.1045 26.6659 15.9999 26.6659C14.8955 26.6658 13.9999 25.7704 13.9999 24.6659C14.0001 23.5616 14.8956 22.666 15.9999 22.6659ZM17.4843 13.204C17.6613 12.4894 18.3839 12.0537 19.0986 12.2304C21.3018 12.7761 23.3184 13.9031 24.9374 15.4941C25.4626 16.0102 25.4702 16.8546 24.954 17.3798C24.4378 17.9045 23.5933 17.9124 23.0683 17.3964C21.7898 16.14 20.1978 15.2492 18.4579 14.8183C17.7436 14.6411 17.3077 13.9185 17.4843 13.204ZM15.9745 6.25679C20.8097 6.24487 25.4527 8.14859 28.8866 11.5527C29.4095 12.071 29.4136 12.9154 28.8954 13.4384C28.377 13.9613 27.5326 13.9646 27.0097 13.4462C24.076 10.538 20.1084 8.9107 15.9775 8.92182H15.9726C15.2238 8.92088 14.4753 8.97508 13.7343 9.08295C13.0058 9.18891 12.3289 8.68438 12.2226 7.956C12.1168 7.22763 12.6213 6.55059 13.3495 6.44429C14.2173 6.31795 15.0937 6.25593 15.9706 6.25679V6.25581L15.9736 6.25679L15.9755 6.25581L15.9745 6.25679Z",
|
|
15
|
+
fill: "var(--icon-status-negative)"
|
|
16
|
+
})
|
|
17
|
+
});
|
|
18
|
+
//#endregion
|
|
19
|
+
//#region src/shared/connectionError/connectionError.tsx
|
|
20
|
+
/**
|
|
21
|
+
* Full-screen "no internet connection" state, shown whenever a backend request
|
|
22
|
+
* fails due to lost connectivity. Flow-agnostic and cross-cutting — any module
|
|
23
|
+
* can render it on a connectivity failure — so it lives in `shared/` rather
|
|
24
|
+
* than inside a single module. Composes the shared `StatusPage` primitive
|
|
25
|
+
* (icon + title + subtitle + actions) so it stays visually consistent with the
|
|
26
|
+
* rest of the status/result screens. Copy defaults to the shared
|
|
27
|
+
* `connectionError.*` namespace and can be overridden per caller.
|
|
28
|
+
*/
|
|
29
|
+
var ConnectionError = ({ onRefresh, title, subtitle, refreshLabel }) => {
|
|
30
|
+
const { t } = useTranslation();
|
|
31
|
+
return /* @__PURE__ */ u(StatusPage, {
|
|
32
|
+
variant: "connectionError",
|
|
33
|
+
hideFooterBranding: true,
|
|
34
|
+
icon: /* @__PURE__ */ u(NoNetworkIcon, { size: 32 }),
|
|
35
|
+
title: title ?? t("connectionError.title"),
|
|
36
|
+
subtitle: subtitle ?? t("connectionError.subtitle"),
|
|
37
|
+
actions: /* @__PURE__ */ u(Button, {
|
|
38
|
+
onClick: onRefresh,
|
|
39
|
+
"data-testid": "connection-error-refresh",
|
|
40
|
+
children: refreshLabel ?? t("connectionError.refresh")
|
|
41
|
+
})
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
//#endregion
|
|
45
|
+
export { ConnectionError as t };
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { o as useTranslation } from "../uiConfig-
|
|
1
|
+
import { o as useTranslation } from "../uiConfig-Sd_A0KwB.js";
|
|
2
2
|
import { v as u } from "../vendor-preact-C0jX1Cbq.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { t as
|
|
6
|
-
import { t as
|
|
3
|
+
import { C as useManager, a as withStandaloneModuleBootstrap, b as isTerminalModuleState, f as TransitionSpinner, l as Page, t as IncodeComponent, x as useModuleTerminalCallbacks } from "../incodeComponent-OpYmmHuG.js";
|
|
4
|
+
import { S as Button } from "../icons-BTQAPX7h.js";
|
|
5
|
+
import { t as Checkbox } from "../checkbox-CSTnDDdf.js";
|
|
6
|
+
import { t as registerIncodeModuleElement } from "../incodeModule-DQfs4RF7.js";
|
|
7
|
+
import { t as RichText } from "../richText-C93h8B8I.js";
|
|
7
8
|
import { createConsentManager } from "@incodetech/core/consent";
|
|
8
9
|
//#region src/modules/consent/consent.tsx
|
|
9
10
|
var stopLinkPropagation = (event) => {
|