@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.
Files changed (227) hide show
  1. package/dist/ae-signature/ae-signature.es.js +3 -3
  2. package/dist/antifraud/antifraud.es.js +3 -3
  3. package/dist/assets/dm-sans-latin-400-normal.woff2 +0 -0
  4. package/dist/assets/dm-sans-latin-500-normal.woff2 +0 -0
  5. package/dist/assets/dm-sans-latin-600-normal.woff2 +0 -0
  6. package/dist/assets/dm-sans-latin-700-normal.woff2 +0 -0
  7. package/dist/assets/rethink-sans-latin-800-normal.woff2 +0 -0
  8. package/dist/authentication/authentication.es.js +4 -2
  9. package/dist/base.css +5 -5
  10. package/dist/baseTutorial-DdU221rI.js +172 -0
  11. package/dist/bottomSheet-C3MHkEfL.js +101 -0
  12. package/dist/cameraOverlay-hVopsg3m.js +2 -0
  13. package/dist/cameraOverlayHeader-DFD85Ezb.js +43 -0
  14. package/dist/cameraView-CR2WH_wN.js +49 -0
  15. package/dist/captureFooter-BlAq3nsT.js +67 -0
  16. package/dist/certificate-issuance/certificate-issuance.es.js +7 -5
  17. package/dist/checkbox-CSTnDDdf.js +97 -0
  18. package/dist/connectionError-TamPptzl.js +45 -0
  19. package/dist/consent/consent.es.js +6 -5
  20. package/dist/countries-jgOG0hnw.js +8560 -0
  21. package/dist/{countrySelector-DKg5Ds1n.js → countrySelector-7TnHDtSs.js} +3 -3
  22. package/dist/cross-document-data-match/cross-document-data-match.es.js +3 -3
  23. package/dist/curp-validation/curp-validation.es.js +10 -5
  24. package/dist/{customFields-CNoRKnPl.js → customFields-CYz-FC0C.js} +9 -5
  25. package/dist/{customWatchlist-ThbdoH2_.js → customWatchlist-DokxUqHy.js} +6 -5
  26. package/dist/{dashboardTheme-CwGkC76p.js → dashboardTheme-DBTW5Y2p.js} +1 -1
  27. package/dist/dateInputComposed-B1RmMKnV.js +1 -0
  28. package/dist/dateInputComposed-DdB7BruV.js +69 -0
  29. package/dist/document-capture/document-capture.es.js +1 -1
  30. package/dist/documentCapture-BkeibTS3.js +2 -0
  31. package/dist/{documentCapture-DX5zyk3c.js → documentCapture-heFwS-vY.js} +14 -7
  32. package/dist/dropdownComposed-CnIoWdph.js +386 -0
  33. package/dist/dropdownComposed-DbKfnljI.js +1 -0
  34. package/dist/dynamic-forms/dynamic-forms.es.js +11 -5
  35. package/dist/ekyb/ekyb.es.js +1 -1
  36. package/dist/ekybModule-CZdKKqpT.js +2 -0
  37. package/dist/{ekybModule-CLORvLGs.js → ekybModule-DAuLI3ad.js} +12 -8
  38. package/dist/ekyc/ekyc.es.js +1 -1
  39. package/dist/ekycModule-BvBAH-p5.js +2 -0
  40. package/dist/{ekycModule-CabDUmu7.js → ekycModule-v9k32tXV.js} +12 -6
  41. package/dist/electronic-signature/electronic-signature.es.js +1 -1
  42. package/dist/{electronic-signature-CZwV6Z7-.js → electronic-signature-2Uv08XOv.js} +7 -5
  43. package/dist/email/email.es.js +7 -6
  44. package/dist/{emailInput-CZmNT4xf.js → emailInput-D1LMc-aF.js} +3 -2
  45. package/dist/errorContent-Be-w9xjB.js +58 -0
  46. package/dist/expiredId-ziDNDwCS.js +80 -0
  47. package/dist/extensibility.es.js +699 -5
  48. package/dist/face-match/face-match.es.js +1 -1
  49. package/dist/faceMatch-CvrSgSTi.js +2 -0
  50. package/dist/{faceMatch-DXTrrC-m.js → faceMatch-D_6MaDry.js} +6 -6
  51. package/dist/field-comparison/field-comparison.es.js +1 -1
  52. package/dist/fieldComparison-CqjjCpNq.js +2 -0
  53. package/dist/{fieldComparison-BOROqbI9.js → fieldComparison-grzKEozd.js} +7 -5
  54. package/dist/fieldLabelHint-Cy5t7tNp.js +16 -0
  55. package/dist/{finalSuccessScreen-Drn9GVQR.js → finalSuccessScreen-CiSREy-O.js} +9 -5
  56. package/dist/fiscal-qr/fiscal-qr.es.js +9 -5
  57. package/dist/flipAnimation-Bp4vkj5T.js +2758 -0
  58. package/dist/flow/flow.es.js +25 -10
  59. package/dist/formField-DfTSFK4p.js +60 -0
  60. package/dist/geolocation/geolocation.es.js +8 -5
  61. package/dist/government-validation/government-validation.es.js +3 -3
  62. package/dist/{homeScreen-zaTBPYZP.js → homeScreen-DnSGezVj.js} +6 -3
  63. package/dist/{dropdownComposed-QhS8uwDE.js → icons-BTQAPX7h.js} +3 -732
  64. package/dist/id/id.es.js +28 -20
  65. package/dist/id-selfie-flow/id-selfie-flow.es.js +8 -5
  66. package/dist/id-verification/id-verification.es.js +4 -3
  67. package/dist/{idOcr-BuInTg8J.js → idOcr-CnNDvFs1.js} +11 -4
  68. package/dist/identity-reuse/identity-reuse.es.js +6 -5
  69. package/dist/incodeComponent-OpYmmHuG.js +1050 -0
  70. package/dist/{incodeModule-DNwi5PIv.js → incodeModule-DQfs4RF7.js} +2 -2
  71. package/dist/index.es.js +2 -2
  72. package/dist/inputComposed-9jDBJqse.js +1 -0
  73. package/dist/inputComposed-BP78Sou-.js +99 -0
  74. package/dist/{mandatoryConsent-Dh0qqIS8.js → mandatoryConsent-5hb2q0Nc.js} +6 -5
  75. package/dist/manualCaptureButton-BOXGfoAr.js +255 -0
  76. package/dist/manualCaptureButton-DnE00y7z.js +63 -0
  77. package/dist/modal-BKL_l4J2.js +140 -0
  78. package/dist/modal.hooks-BG9W0mhz.js +201 -0
  79. package/dist/numberedStep-BZchXwF2.js +13 -0
  80. package/dist/{optionAccessibleLabel-DFs_dU6k.js → optionAccessibleLabel-FCfVmVrz.js} +5 -2
  81. package/dist/otpInput-BcoACg71.js +157 -0
  82. package/dist/passwordInputComposed-CMtVpi08.js +74 -0
  83. package/dist/{pdf-DxaEyX9N.js → pdf-2Mzn83pW.js} +1 -1
  84. package/dist/{pdfViewer-BztufNDo.js → pdfViewer-BXfw3EF1.js} +3 -3
  85. package/dist/pdfViewer-D5NNOdPt.js +2 -0
  86. package/dist/permissions-CjX0aA3u.js +2248 -0
  87. package/dist/phone/phone.es.js +8 -5
  88. package/dist/phoneInputComposed-CsJ_yD0l.js +3751 -0
  89. package/dist/processing-DAhWY6sA.js +8 -0
  90. package/dist/qe-signature/qe-signature.es.js +3 -3
  91. package/dist/radioGroupComposed-DO3Ysp1j.js +1 -0
  92. package/dist/radioGroupComposed-DdiOBGH9.js +160 -0
  93. package/dist/redirect-to-mobile/redirect-to-mobile.es.js +9 -6
  94. package/dist/resendTimer-BF44I8m1.js +79 -0
  95. package/dist/{richText-CmgFuzHO.js → richText-C93h8B8I.js} +2 -2
  96. package/dist/selfie/selfie.es.js +9 -6
  97. package/dist/signature/signature.es.js +7 -6
  98. package/dist/{spacer-DI-GUPzr.js → spacer-CP6nfo3f.js} +9 -9
  99. package/dist/{spinner-79XGZYai.js → spinner-1GVajlEK.js} +1 -1
  100. package/dist/statusPage-BSf9rrbK.js +35 -0
  101. package/dist/{tabs-D593NLWd.js → tabs-OBRm19dX.js} +1 -1
  102. package/dist/tutorial-R4tGibYC.js +574 -0
  103. package/dist/{uiConfig-DG7HXVR0.js → uiConfig-Sd_A0KwB.js} +84 -84
  104. package/dist/useCoverMedia-DofxqCtg.js +149 -0
  105. package/dist/{useModuleLoader-CMxfEBdJ.js → useModuleLoader-BN3raWWz.js} +31 -23
  106. package/dist/verificationResult-C-TUwYRU.js +81 -0
  107. package/dist/video-selfie/video-selfie.es.js +10 -7
  108. package/dist/watchlist/watchlist.es.js +6 -5
  109. package/dist/{watchlistForBusiness-B3au4z_B.js → watchlistForBusiness-CAfxFTrq.js} +8 -6
  110. package/dist/workflow/workflow.es.js +6 -6
  111. package/package.json +2 -2
  112. package/dist/documentCapture-DgSmPfdz.js +0 -2
  113. package/dist/ekybModule-D5jakNDp.js +0 -2
  114. package/dist/ekycModule-CgLgN1XM.js +0 -2
  115. package/dist/extensibility-DwFhaxCo.js +0 -21459
  116. package/dist/faceMatch-BM-FVaiU.js +0 -2
  117. package/dist/fieldComparison-D7LH3ZoD.js +0 -2
  118. package/dist/pdfViewer-B41kWu8T.js +0 -2
  119. /package/dist/{af-ZA-BSsDSZUP.js → af-ZA-qhcjE8Ll.js} +0 -0
  120. /package/dist/{aligndevicelottie-DD49iAwf.js → aligndevicelottie-BecybMtU.js} +0 -0
  121. /package/dist/{am-CA3CGdPa.js → am-DVltCO9H.js} +0 -0
  122. /package/dist/{ar-AE-B7wxORmn.js → ar-AE-DTmHPD7L.js} +0 -0
  123. /package/dist/{ar-7gJlfDmG.js → ar-B8E9vjK8.js} +0 -0
  124. /package/dist/{ar-EG-CpCAzmnP.js → ar-EG-DjHcOH9m.js} +0 -0
  125. /package/dist/{az-B1eZnP21.js → az-BFwACmvz.js} +0 -0
  126. /package/dist/{back-horizontal-hint-DcL2aeXz.js → back-horizontal-hint-CgMvLs_S.js} +0 -0
  127. /package/dist/{back-tutorial-BggT_Ad7.js → back-tutorial-D07UcHc5.js} +0 -0
  128. /package/dist/{back-vertical-hint-IHJzvCUW.js → back-vertical-hint-jsA5tD5E.js} +0 -0
  129. /package/dist/{backdevicelottie-Dw7W6vlg.js → backdevicelottie-C6hCbM0B.js} +0 -0
  130. /package/dist/{blurdevicelottie-DPY8NMNI.js → blurdevicelottie-CtGLqNN2.js} +0 -0
  131. /package/dist/{bn-B_3z3OFc.js → bn-DbIWkXe9.js} +0 -0
  132. /package/dist/{browser-ponyfill-CL58t85F.js → browser-ponyfill-BdqoHrvJ.js} +0 -0
  133. /package/dist/{bs-DhIMdYZL.js → bs-z1Ps12rk.js} +0 -0
  134. /package/dist/{ca-DTgrHIgt.js → ca-DUElvSDc.js} +0 -0
  135. /package/dist/{ceb-D8Pa-wLn.js → ceb-jzHzP2FJ.js} +0 -0
  136. /package/dist/{cs-pR8MytaO.js → cs-BrqY3ZP3.js} +0 -0
  137. /package/dist/{cs-CZ-Dig-AJzP.js → cs-CZ-CZtZyop9.js} +0 -0
  138. /package/dist/{da-DK-Y9A9UyPq.js → da-DK-BQvE1_ak.js} +0 -0
  139. /package/dist/{de-DNBTQCf3.js → de-ChPY7o4H.js} +0 -0
  140. /package/dist/{defineProperty-BvSzJNzg.js → defineProperty-DXYyyct1.js} +0 -0
  141. /package/dist/{el-CrLx45jW.js → el-BD0wlCYW.js} +0 -0
  142. /package/dist/{el-GR-B22DulOT.js → el-GR-Dt5-c7bC.js} +0 -0
  143. /package/dist/{en-BiNeRav4.js → en-CyzAzqIc.js} +0 -0
  144. /package/dist/{en-DG-CxJxuefq.js → en-DG-or497Mnl.js} +0 -0
  145. /package/dist/{es-419-C4_DkQug.js → es-419-B3p3NYae.js} +0 -0
  146. /package/dist/{es-BzklSN-G.js → es-BHy4PuoW.js} +0 -0
  147. /package/dist/{es-ES-xGnTUx3f.js → es-ES-DlvpXGeg.js} +0 -0
  148. /package/dist/{es-MX-PwA3FVdN.js → es-MX-Cqi6vOtT.js} +0 -0
  149. /package/dist/{et-j_o0Kn1b.js → et-qYB56l1n.js} +0 -0
  150. /package/dist/{fa-IR-BOqqb1KG.js → fa-IR-DVTTM_tu.js} +0 -0
  151. /package/dist/{fi-FI-K7cTHxBg.js → fi-FI-CfTvDUdu.js} +0 -0
  152. /package/dist/{flip-animation-D3Zr5EgF.js → flip-animation-DqsJznNB.js} +0 -0
  153. /package/dist/{fr-CmfT3Fji.js → fr-BewHYECv.js} +0 -0
  154. /package/dist/{fr-CA-DSKQfUyV.js → fr-CA-BWmoTiX5.js} +0 -0
  155. /package/dist/{front-horizontal-hint-BplEh02R.js → front-horizontal-hint-B37YE8CS.js} +0 -0
  156. /package/dist/{front-vertical-hint-D_dkG5uT.js → front-vertical-hint-BGNYUm4v.js} +0 -0
  157. /package/dist/{frontdevicelottie-CgADJyDu.js → frontdevicelottie-6kC6cgo8.js} +0 -0
  158. /package/dist/{glaredevicelottie-ep0zWB24.js → glaredevicelottie-CSU5ZUYd.js} +0 -0
  159. /package/dist/{he-DxOu5qcv.js → he-DskmIhH1.js} +0 -0
  160. /package/dist/{hi-Bqm14Xbz.js → hi-Bwj78dXS.js} +0 -0
  161. /package/dist/{hmn-B30BDQex.js → hmn-BVc2cEgu.js} +0 -0
  162. /package/dist/{hr-B_SOZRj6.js → hr-4NNWn8Hc.js} +0 -0
  163. /package/dist/{ht-DEmRwvgU.js → ht-C2_a-KG0.js} +0 -0
  164. /package/dist/{hu-DsIWgPzB.js → hu--akRgpT5.js} +0 -0
  165. /package/dist/{id-MGtp66fo.js → id-D7RQjfvC.js} +0 -0
  166. /package/dist/{id-back-of-card-CP5QObX3.js → id-back-of-card-U-NxDg8D.js} +0 -0
  167. /package/dist/{id-back-of-card-vertical-DhMg1rYw.js → id-back-of-card-vertical-B_u3_MBo.js} +0 -0
  168. /package/dist/{id-front-of-card-DX83rakq.js → id-front-of-card-N_jDGmho.js} +0 -0
  169. /package/dist/{id-front-of-card-vertical-CNeXlgvh.js → id-front-of-card-vertical-rHe_Ym9p.js} +0 -0
  170. /package/dist/{id-laser-h-CbY0k-mZ.js → id-laser-h-8TMlUzO4.js} +0 -0
  171. /package/dist/{id-laser-v-BdjZEhnE.js → id-laser-v-DVMkqyIr.js} +0 -0
  172. /package/dist/{id-tutorial-kabKpVGr.js → id-tutorial-DtvAPllr.js} +0 -0
  173. /package/dist/{it-DHz80acm.js → it-40b_QJ49.js} +0 -0
  174. /package/dist/{ja-7DjoBn_g.js → ja-BmtuIzaT.js} +0 -0
  175. /package/dist/{ja-JP-Bjt5yyeN.js → ja-JP-CbKDwCr2.js} +0 -0
  176. /package/dist/{jv-BogujYN8.js → jv-V7T3CZCW.js} +0 -0
  177. /package/dist/{ka-SMCEpz2i.js → ka-DElVzAwl.js} +0 -0
  178. /package/dist/{kk-Bmi4Ibdp.js → kk-DGGqZzoC.js} +0 -0
  179. /package/dist/{km-CTosjBPA.js → km-CTydY36i.js} +0 -0
  180. /package/dist/{ko-BNgzff2c.js → ko-Bjxwt0To.js} +0 -0
  181. /package/dist/{ko-KP-LuZ9duqN.js → ko-KP-Cb8ITTNz.js} +0 -0
  182. /package/dist/{ky-BPsNSnoV.js → ky-Da-svfsh.js} +0 -0
  183. /package/dist/{lo-B98nj7CD.js → lo-BcBrBLSe.js} +0 -0
  184. /package/dist/{lottie_light-BN2vmgOg.js → lottie_light-CtKkb7ze.js} +0 -0
  185. /package/dist/{lt-CGYCKnKw.js → lt-CRUODUDK.js} +0 -0
  186. /package/dist/{lv-BVGESywl.js → lv-COEqtHv9.js} +0 -0
  187. /package/dist/{mk-DSz43gN7.js → mk-D6OWaZi9.js} +0 -0
  188. /package/dist/{mn-V7tBxJeq.js → mn-CHZsnJ9w.js} +0 -0
  189. /package/dist/{ms-gKXHhgRq.js → ms-DWzO2k9X.js} +0 -0
  190. /package/dist/{my-CF92BB6U.js → my-DAkvSk_W.js} +0 -0
  191. /package/dist/{nb-NO-CouM1951.js → nb-NO-d7OazihS.js} +0 -0
  192. /package/dist/{ne-D8y4O4-O.js → ne-BTRq-Yeo.js} +0 -0
  193. /package/dist/{nl-BM_bYA8-.js → nl-DB9dav30.js} +0 -0
  194. /package/dist/{passport-horizontal-hint-CFRGHRVa.js → passport-horizontal-hint-Dt6gI-ZI.js} +0 -0
  195. /package/dist/{passport-tutorial-KbO7bbXm.js → passport-tutorial--ne0dDhV.js} +0 -0
  196. /package/dist/{passport-vertical-hint-BPaLhlho.js → passport-vertical-hint-Boe1pkkz.js} +0 -0
  197. /package/dist/{pl-CKNZeqJV.js → pl-CCkxKrjg.js} +0 -0
  198. /package/dist/{pt-BR-D17Ov788.js → pt-BR-CZ_z8Olc.js} +0 -0
  199. /package/dist/{pt-DvCZWJo7.js → pt-FtGjaVNi.js} +0 -0
  200. /package/dist/{pt-PT-CmMpxZIz.js → pt-PT-RBrFLLkL.js} +0 -0
  201. /package/dist/{registerIncodeElement-BMz2FMUm.js → registerIncodeElement-B-SfWDa0.js} +0 -0
  202. /package/dist/{ro-D49YZb_H.js → ro-DysboDNv.js} +0 -0
  203. /package/dist/{ru-C7Do9bMI.js → ru-CID3CZfu.js} +0 -0
  204. /package/dist/{ru-RU-BJwv_g41.js → ru-RU-BHy7AaUd.js} +0 -0
  205. /package/dist/{selfieTutorial-B30HiUvv.js → selfieTutorial-BarIUFDH.js} +0 -0
  206. /package/dist/{sk-2xyFSXZw.js → sk-D7kS5PBd.js} +0 -0
  207. /package/dist/{sl-CDEQCPMS.js → sl-D9TEWuUe.js} +0 -0
  208. /package/dist/{so-BQlNWbjF.js → so-CfgWC0fM.js} +0 -0
  209. /package/dist/{sr-OvJ8EQ2w.js → sr--ms6iMWz.js} +0 -0
  210. /package/dist/{sr-Latn-DBPpu-WK.js → sr-Latn-BiWFn5aX.js} +0 -0
  211. /package/dist/{sr-YU-ANiGGXx1.js → sr-YU-BNAd049F.js} +0 -0
  212. /package/dist/{sv-SE-N4rDD4lE.js → sv-SE-CJjtaNDA.js} +0 -0
  213. /package/dist/{sw-Cnb_N7Mx.js → sw-6SDfYBIC.js} +0 -0
  214. /package/dist/{th-CqyxWXb5.js → th-BcNF0ama.js} +0 -0
  215. /package/dist/{th-TH-Dgv1Kucb.js → th-TH-DMKAHwNe.js} +0 -0
  216. /package/dist/{tl-PH-CBw224by.js → tl-PH-Bl0duIQB.js} +0 -0
  217. /package/dist/{tl-DRzqwC1-.js → tl-lLJU4U50.js} +0 -0
  218. /package/dist/{tr-hYr5_fPV.js → tr-i2Q79BRH.js} +0 -0
  219. /package/dist/{uk-CG8cA8Vh.js → uk-C6nph67y.js} +0 -0
  220. /package/dist/{uk-UA-fLrAqsX9.js → uk-UA-B8zIiiNG.js} +0 -0
  221. /package/dist/{ur-COEA7gAs.js → ur-Zbr32KyN.js} +0 -0
  222. /package/dist/{uz-DluVEF_a.js → uz-DeV1ZkHM.js} +0 -0
  223. /package/dist/{vi-Da8N9N4q.js → vi-CxGLHnnW.js} +0 -0
  224. /package/dist/{zh-CN-DYqvh3BJ.js → zh-CN-DvWvvJIf.js} +0 -0
  225. /package/dist/{zh-Bo6qs8Vi.js → zh-CU10i68v.js} +0 -0
  226. /package/dist/{zh-HANT-jjgTtifM.js → zh-HANT-CUbWZ_Ie.js} +0 -0
  227. /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,2 @@
1
+ import "./cameraView-CR2WH_wN.js";
2
+ import "./cameraOverlayHeader-DFD85Ezb.js";
@@ -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-DG7HXVR0.js";
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 { Nt as useManager, St as Page, gt as AutoFocusTitle, it as PasswordInputComposed, jt as useModuleTerminalCallbacks, mt as IncodeComponent, ut as VerificationResult, vt as withStandaloneModuleBootstrap } from "../extensibility-DwFhaxCo.js";
4
- import { t as Spacer } from "../spacer-DI-GUPzr.js";
5
- import { A as Button, d as SuccessIcon } from "../dropdownComposed-QhS8uwDE.js";
6
- import { t as registerIncodeModuleElement } from "../incodeModule-DNwi5PIv.js";
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-DG7HXVR0.js";
1
+ import { o as useTranslation } from "../uiConfig-Sd_A0KwB.js";
2
2
  import { v as u } from "../vendor-preact-C0jX1Cbq.js";
3
- import { At as isTerminalModuleState, Nt as useManager, St as Page, Tt as TransitionSpinner, et as Checkbox, jt as useModuleTerminalCallbacks, mt as IncodeComponent, vt as withStandaloneModuleBootstrap } from "../extensibility-DwFhaxCo.js";
4
- import { A as Button } from "../dropdownComposed-QhS8uwDE.js";
5
- import { t as registerIncodeModuleElement } from "../incodeModule-DNwi5PIv.js";
6
- import { t as RichText } from "../richText-CmgFuzHO.js";
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) => {